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

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.8.6
    • 2.8.7
    • library
    • None
    • 1

    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

          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.

          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.
          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
          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

          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

          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

          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

          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

          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

          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

          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

            avsej Sergey Avseyev
            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