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

Occasionally very slow (~1s) replication times when have low number of operations

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 3.0
    • 2.5.1
    • couchbase-bucket
    • Security Level: Public
    • Physical Machine environment - using CentOS
      Couchbase Inc machines -172.23.96.15 - 172.23.96.18
      Running 2.5.1
      Test using uploaded program.
    • Yes

    Description

      I performed 2 experiments. In the first experiment I ran my test program durability-test-simple (which I have uploaded) on 172.23.96.15, and used a 2 node cluster (172.23.96.16 & 17). I ran my program 5 times, as follows ./durability-test 1 1 200 2 0. This means document size= 1 byte, number of documents=1, repeat =200x, mode=2 (which means replicate to one other node). The zero at the end means don't print debug.

      I have uploaded the results in experiment1.txt. The summary of the 5 runs (each looping 200x) are provided below.
      (Note: The average is not very meaningful because we have lots of fast operations and a few very slow (i.e. 1000x) operations).

      Time (microseconds) to complete SETs (no guarantee) = 177 (averaged over number of runs)
      Time (microseconds) to complete ADDs (no guarantee) = 166 (averaged over number of runs)
      Time (microseconds) Observing SETS until completion = 2742 (averaged over number of runs)
      Time (microseconds) Observing ADDS time taken = 15998 (averaged over number of runs)
      Time (microseconds) to complete SETs (no guarantee) = 191 (averaged over number of runs)
      Time (microseconds) to complete ADDs (no guarantee) = 186 (averaged over number of runs)
      Time (microseconds) Observing SETS until completion = 22835 (averaged over number of runs)
      Time (microseconds) Observing ADDS time taken = 34900 (averaged over number of runs)
      Time (microseconds) to complete SETs (no guarantee) = 193 (averaged over number of runs)
      Time (microseconds) to complete ADDs (no guarantee) = 189 (averaged over number of runs)
      Time (microseconds) Observing SETS until completion = 2927 (averaged over number of runs)
      Time (microseconds) Observing ADDS time taken = 2829 (averaged over number of runs)
      Time (microseconds) to complete SETs (no guarantee) = 190 (averaged over number of runs)
      Time (microseconds) to complete ADDs (no guarantee) = 171 (averaged over number of runs)
      Time (microseconds) Observing SETS until completion = 17349 (averaged over number of runs)
      Time (microseconds) Observing ADDS time taken = 63352 (averaged over number of runs)
      Time (microseconds) to complete SETs (no guarantee) = 163 (averaged over number of runs)
      Time (microseconds) to complete ADDs (no guarantee) = 160 (averaged over number of runs)
      Time (microseconds) Observing SETS until completion = 5687 (averaged over number of runs)
      Time (microseconds) Observing ADDS time taken = 11300 (averaged over number of runs)

      As you can see the standard SET /ADDs are approximately the same, however the replica vary significantly. See experiment1.txt for more details.

      The second experiment was the same as the first however I used 172.23.96.16 as the client. i.e. one of the nodes in the cluster.
      The detailed results are provided in experiment2.txt, however I enclose the summary below.

      Time (microseconds) to complete SETs (no guarantee) = 137 (averaged over number of runs)
      Time (microseconds) to complete ADDs (no guarantee) = 131 (averaged over number of runs)
      Time (microseconds) Observing SETS until completion = 2857 (averaged over number of runs)
      Time (microseconds) Observing ADDS time taken = 25564 (averaged over number of runs)
      Time (microseconds) to complete SETs (no guarantee) = 143 (averaged over number of runs)
      Time (microseconds) to complete ADDs (no guarantee) = 141 (averaged over number of runs)
      Time (microseconds) Observing SETS until completion = 5050 (averaged over number of runs)
      Time (microseconds) Observing ADDS time taken = 30525 (averaged over number of runs)
      Time (microseconds) to complete SETs (no guarantee) = 146 (averaged over number of runs)
      Time (microseconds) to complete ADDs (no guarantee) = 138 (averaged over number of runs)
      Time (microseconds) Observing SETS until completion = 2822 (averaged over number of runs)
      Time (microseconds) Observing ADDS time taken = 2713 (averaged over number of runs)
      Time (microseconds) to complete SETs (no guarantee) = 145 (averaged over number of runs)
      Time (microseconds) to complete ADDs (no guarantee) = 142 (averaged over number of runs)
      Time (microseconds) Observing SETS until completion = 16368 (averaged over number of runs)
      Time (microseconds) Observing ADDS time taken = 19275 (averaged over number of runs)
      Time (microseconds) to complete SETs (no guarantee) = 153 (averaged over number of runs)
      Time (microseconds) to complete ADDs (no guarantee) = 146 (averaged over number of runs)
      Time (microseconds) Observing SETS until completion = 22488 (averaged over number of runs)
      Time (microseconds) Observing ADDS time taken = 39718 (averaged over number of runs)

      Again, as you can see the standard SET /ADDs are approximately the same, however the replica vary significantly. See experiment2.txt for more details.

      I appreciate there is a concern about network latency etc., therefore collected the ping times from
      15 -> 16 = ~200 microseconds
      15 -> 17 = ~200 microseconds.
      16 -> 16 = ~24 microseconds
      16 -> 17 = ~200 microseconds

      The detailed results are provided in pingdata.pdf.

      Attachments

        1. pingdata.pdf
          24 kB
        2. latencyData.pdf
          64 kB
        3. experiment2.txt
          29 kB
        4. experiment1.txt
          29 kB
        5. durability-test-simple.c
          13 kB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            chiyoung Chiyoung Seo (Inactive)
            owend Daniel Owen
            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