Uploaded image for project: 'Couchbase C client library libcouchbase'
  1. Couchbase C client library libcouchbase
  2. CCBC-916

cbc-pillowfight is 3-4x slower in libcouchbase 2.8.6 compared to 2.8.4

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.8.6
    • Fix Version/s: 2.8.7
    • Component/s: library
    • Labels:
      None

      Description

      I'm trying to load to Couchbase v4.6.4

      On libcouchbase 2.8.4 -

      Arunas-MacBook-Pro: apiravi$ cbc-pillowfight -U couchbase://172.23.106.120/default -I 4000000 -M 100 -B 1000 --populate-only --json
      Populating using 4000 cycles
      Running. Press Ctrl-C to terminate...
      OPS/SEC: 26666

      Arunas-MacBook-Pro: apiravi$ brew switch libcouchbase 2.8.6
      Cleaning /usr/local/Cellar/libcouchbase/2.7.6
      Cleaning /usr/local/Cellar/libcouchbase/2.8.4
      Cleaning /usr/local/Cellar/libcouchbase/2.8.6
      73 links created for /usr/local/Cellar/libcouchbase/2.8.6

      Arunas-MacBook-Pro: apiravi$ cbc-pillowfight -U couchbase://172.23.106.120/default -I 4000000 -M 100 -B 1000 --populate-only --json
      Populating using 4000 cycles
      Running. Press Ctrl-C to terminate...
      OPS/SEC: 833

      I do not see ops crossing 1k on the latest version.

        Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

          Hide
          apiravi Aruna Piravi (Inactive) added a comment -

          On 5.1.0, Sergey and I noted comparable ops with both 2.8.4 and 2.8.6. This Sergey says, is because older versions of Couchbase drop pillowfight connections when snappy is enabled on the sdk.

          Show
          apiravi Aruna Piravi (Inactive) added a comment - On 5.1.0, Sergey and I noted comparable ops with both 2.8.4 and 2.8.6. This Sergey says, is because older versions of Couchbase drop pillowfight connections when snappy is enabled on the sdk.
          Show
          apiravi Aruna Piravi (Inactive) added a comment - https://s3.amazonaws.com/cb-engineering/Aruna/collectinfo-2018-04-18T224205-ns_1%40127.0.0.1.zip
          Hide
          avsej Sergey Avseyev added a comment - - edited

          So the problem was in --json flag, 4.6.x does not understands JSON datatype (and does not acknowledge on HELO that feature is supported). But due to the bug in cbc-pillowfight, we don't check if the server allowed us to use JSON datatype and still sending it in SET requests, which causes rejecting commands and closing the sockets. The observed speed is actually rate of the operations, but essentially the server does not accept any of requests.

          Workaround:
          do not use --json with libcouchbase 2.8.5/2.8.6 and Couchbase 4.6.x and older

          Solution:
          upgrade to 2.8.7

          Show
          avsej Sergey Avseyev added a comment - - edited So the problem was in --json flag, 4.6.x does not understands JSON datatype (and does not acknowledge on HELO that feature is supported). But due to the bug in cbc-pillowfight, we don't check if the server allowed us to use JSON datatype and still sending it in SET requests, which causes rejecting commands and closing the sockets. The observed speed is actually rate of the operations, but essentially the server does not accept any of requests. Workaround: do not use --json with libcouchbase 2.8.5/2.8.6 and Couchbase 4.6.x and older Solution: upgrade to 2.8.7
          Hide
          build-team Couchbase Build Team added a comment -

          Build libcouchbase-2.8.5-146 contains libcouchbase commit 14b02d2ed9840e98abcfd7675274f8f90dbcfc0d with commit message:
          CCBC-916: Do not set JSON datatype if server didn't ack it
          https://github.com/couchbase/libcouchbase/commit/14b02d2ed9840e98abcfd7675274f8f90dbcfc0d

          Show
          build-team Couchbase Build Team added a comment - Build libcouchbase-2.8.5-146 contains libcouchbase commit 14b02d2ed9840e98abcfd7675274f8f90dbcfc0d with commit message: CCBC-916 : Do not set JSON datatype if server didn't ack it https://github.com/couchbase/libcouchbase/commit/14b02d2ed9840e98abcfd7675274f8f90dbcfc0d
          Hide
          build-team Couchbase Build Team added a comment -

          Build couchbase-server-5.5.0-2544 contains libcouchbase commit 14b02d2ed9840e98abcfd7675274f8f90dbcfc0d with commit message:
          CCBC-916: Do not set JSON datatype if server didn't ack it
          https://github.com/couchbase/libcouchbase/commit/14b02d2ed9840e98abcfd7675274f8f90dbcfc0d

          Show
          build-team Couchbase Build Team added a comment - Build couchbase-server-5.5.0-2544 contains libcouchbase commit 14b02d2ed9840e98abcfd7675274f8f90dbcfc0d with commit message: CCBC-916 : Do not set JSON datatype if server didn't ack it https://github.com/couchbase/libcouchbase/commit/14b02d2ed9840e98abcfd7675274f8f90dbcfc0d
          Hide
          build-team Couchbase Build Team added a comment -

          Build couchbase-server-6.0.0-1040 contains libcouchbase commit 14b02d2ed9840e98abcfd7675274f8f90dbcfc0d with commit message:
          CCBC-916: Do not set JSON datatype if server didn't ack it
          https://github.com/couchbase/libcouchbase/commit/14b02d2ed9840e98abcfd7675274f8f90dbcfc0d

          Show
          build-team Couchbase Build Team added a comment - Build couchbase-server-6.0.0-1040 contains libcouchbase commit 14b02d2ed9840e98abcfd7675274f8f90dbcfc0d with commit message: CCBC-916 : Do not set JSON datatype if server didn't ack it https://github.com/couchbase/libcouchbase/commit/14b02d2ed9840e98abcfd7675274f8f90dbcfc0d

            People

            • Assignee:
              avsej Sergey Avseyev
              Reporter:
              apiravi Aruna Piravi (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              3 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.