Uploaded image for project: 'Couchbase .NET client library'
  1. Couchbase .NET client library
  2. NCBC-1375

ClusterManger.CreateBucket defaults result in high IO priority bucket

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.4.2
    • Fix Version/s: 2.4.5
    • Component/s: None
    • Labels:
      None

      Description

      The default value for threadNumber is 2 in the SDK.  Couchbase Server interprets this as high IO priority.  The default threadNumber value should be set to 3 so Couchbase will create the bucket with low IO priority.

        Attachments

        For Gerrit Dashboard: NCBC-1375
        # Subject Branch Project Status CR V

          Activity

          Hide
          mike.goldsmith Michael Goldsmith added a comment -

          Hi Dean Proctor - I have a few questions:
          1) Do you mean the number of TCP connections that are created for KV operations?
          2) Does simply only have a low number of open connections indicate they should be treated as high priority by the server?
          3) What is the impact of having the connections treated at high priority?

          As part of the 2.4 client, we changed the default IO service to use a single multiplexing connection where operations are pipelined instead of a spreading operations over a number of connection (pooling). We have plans of using a pool of multiplexing connections in the future but that work is not yet complete.

          Show
          mike.goldsmith Michael Goldsmith added a comment - Hi  Dean Proctor - I have a few questions: 1) Do you mean the number of TCP connections that are created for KV operations? 2) Does simply only have a low number of open connections indicate they should be treated as high priority by the server? 3) What is the impact of having the connections treated at high priority? As part of the 2.4 client, we changed the default IO service to use a single multiplexing connection where operations are pipelined instead of a spreading operations over a number of connection (pooling). We have plans of using a pool of multiplexing connections in the future but that work is not yet complete.
          Hide
          dproctor Dean Proctor (Inactive) added a comment - - edited

          I'm referring to bucket IO priority within Couchbase Server.  This has nothing to do with client->server TCP connections or IO service.

          See: https://developer.couchbase.com/documentation/server/3.x/admin/REST/rest-bucket-set-priority.html

          Couchbase 3.0 changed the threading model for buckets in Couchbase Server.  Rather than assigning a specific number of threads per bucket, it moved to a global thread pool where certain buckets could be assigned either low or high priority (meaning they get a differing percentage of access to disk IO).  The API's threadNumber parameter was kept, but the meaning was changed.  3 threads = low priority.  8 threads = high priority.

          The SDK currently sets 2 threads, which does not conform to the 3/8 convention.  Since the default bucket priority for manually created buckets is low, the SDK should also use this default for programmatically created buckets.  That requires threadNumber=3.

          Show
          dproctor Dean Proctor (Inactive) added a comment - - edited I'm referring to bucket IO priority within Couchbase Server.  This has nothing to do with client->server TCP connections or IO service. See: https://developer.couchbase.com/documentation/server/3.x/admin/REST/rest-bucket-set-priority.html Couchbase 3.0 changed the threading model for buckets in Couchbase Server.  Rather than assigning a specific number of threads per bucket, it moved to a global thread pool where certain buckets could be assigned either low or high priority (meaning they get a differing percentage of access to disk IO).  The API's threadNumber parameter was kept, but the meaning was changed.  3 threads = low priority.  8 threads = high priority. The SDK currently sets 2 threads, which does not conform to the 3/8 convention.  Since the default bucket priority for manually created buckets is low, the SDK should also use this default for programmatically created buckets.  That requires threadNumber=3.
          Hide
          mike.goldsmith Michael Goldsmith added a comment -

          Dean Proctor - thanks for the extra information. I'll discuss with Jeff, thanks.

          Show
          mike.goldsmith Michael Goldsmith added a comment - Dean Proctor - thanks for the extra information. I'll discuss with Jeff, thanks.

            People

            • Assignee:
              mike.goldsmith Michael Goldsmith
              Reporter:
              dproctor Dean Proctor (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Gerrit Reviews

                There are no open Gerrit changes

                  PagerDuty

                  Error rendering 'com.pagerduty.jira-server-plugin:PagerDuty'. Please contact your Jira administrators.