Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-10539

Fetching evicted items over a single connection is extremely slow on 3.0

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • 3.0
    • 3.0
    • couchbase-bucket
    • Security Level: Public
    • None
    • Untriaged
    • 2
    • Yes
    • June 30 - July 18

    Description

      Steps to reproduce.

      1. Get a working go installation (http://golang.org/doc/install)

      2. Get a tool to reproduce the issue:

      $ go get github.com/aartamonau/bgfetches

      3. Start a cluster with bucket "default". I used a single node cluster started using cluster_run script.

      4. Create some items using the tool:

      $ bgfetches -sets -numItems=100000 -value=512 -numConnections=1 -sinkURL=http://localhost:9000/
      2014/03/21 17:05:16 Starting sending sets
      2014/03/21 17:05:16 Warning: Finalizing a bucket with active connections.
      2014/03/21 17:05:18 Processed all sets (44427.894679 per second)

      5. Wait until all the items are persisted.

      6. Evict the items:

      $ bgfetches -evicts -numItems=100000 -numConnections=1 -sinkURL=http://localhost:9000/
      2014/03/21 17:06:04 Starting sending evicts
      2014/03/21 17:06:04 Warning: Finalizing a bucket with active connections.
      2014/03/21 17:06:05 Processed all evicts (119015.589544 per second)

      7. Ensure that resident ration is 0%.

      8. Now try to get the items over a single connection and observe how slow it is:

      $ bgfetches -gets -numItems=100000 -numConnections=1 -sinkURL=http://localhost:9000/
      2014/03/21 17:08:15 Starting sending gets
      2014/03/21 17:08:15 Warning: Finalizing a bucket with active connections.
      2014/03/21 17:08:20 Processed 841 items in 5.014137 seconds
      2014/03/21 17:08:25 Processed 1818 items in 10.022151 seconds
      2014/03/21 17:08:30 Processed 2662 items in 15.029192 seconds
      2014/03/21 17:08:35 Processed 3723 items in 20.072094 seconds
      ................
      2014/03/21 17:16:25 Processed 97718 items in 490.498886 seconds
      2014/03/21 17:16:30 Processed 98718 items in 495.501054 seconds
      2014/03/21 17:16:35 Processed 99721 items in 500.501190 seconds
      2014/03/21 17:16:36 Processed all sets (199.738497 per second)

      9. Now compare it to multiple connections case:

      $ bgfetches -evicts -numItems=100000 -numConnections=1 -sinkURL=http://localhost:9000/
      2014/03/21 17:18:04 Starting sending evicts
      2014/03/21 17:18:04 Warning: Finalizing a bucket with active connections.
      2014/03/21 17:18:05 Processed all evicts (116519.587060 per second)

      $ bgfetches -gets -numItems=100000 -numConnections=32 -sinkURL=http://localhost:9000/
      2014/03/21 17:18:30 Starting sending gets
      2014/03/21 17:18:30 Warning: Finalizing a bucket with active connections.
      2014/03/21 17:18:34 Processed all sets (22849.428253 per second)

      10. And also compare it to the same scenario on 2.5:

      $ bgfetches -gets -numItems=100000 -numConnections=1 -sinkURL=http://localhost:9000/
      2014/03/21 17:25:45 Starting sending gets
      2014/03/21 17:25:45 Warning: Finalizing a bucket with active connections.
      2014/03/21 17:25:50 Processed 28150 items in 5.000138 seconds
      2014/03/21 17:25:55 Processed 63200 items in 10.000287 seconds
      2014/03/21 17:26:00 Processed 98341 items in 15.000390 seconds
      2014/03/21 17:26:01 Processed all sets (6558.884736 per second)

      Attachments

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

        Activity

          People

            sundar Sundar Sridharan (Inactive)
            Aliaksey Artamonau Aliaksey Artamonau (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty