Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-4245

why syn write outperforms asyn,why Synchronous writing is better(async have more asyn thread to consume)

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 3.0.6
    • Component/s: None
    • None
    • Environment:
      Linux bogon 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

      @keith.bostic 
      @xgen-internal-githook
      can you help me.

      I always thought asynchronous writing was better than synchronous writing, but The test results are opposite.

       

      why syn write outperforms  asyn,why Synchronous writing is better(async have more asyn thread to consume)

       

      The test results are as follows:

       

      1. async thread config to write:

      root@dprofiler-jvm-00.gz01:/data1/yyz/wtperf-test$ 
      root@dprofiler-jvm-00.gz01:/data1/yyz/wtperf-test$ cat WT_TEST/test.stat 
      root@dprofiler-jvm-00.gz01:/data1/yyz/wtperf-test$ 
      root@dprofiler-jvm-00.gz01:/data1/yyz/wtperf-test$ ls
      500m-btree-populate.wtperf wtperf WT_TEST
      root@dprofiler-jvm-00.gz01:/data1/yyz/wtperf-test$ tail -f WT_TEST/test.stat 
      Starting 4 populate thread(s) for 50000000 items
      Starting 20 async thread(s)
      5195456 populate inserts (5195456 of 50000000) in 10 secs (10 total secs)
      4915569 populate inserts (10111025 of 50000000) in 10 secs (20 total secs)
      5044813 populate inserts (15155838 of 50000000) in 10 secs (30 total secs)
      5221553 populate inserts (20377391 of 50000000) in 10 secs (40 total secs)
      4905787 populate inserts (25283178 of 50000000) in 10 secs (50 total secs)
      5442404 populate inserts (30725582 of 50000000) in 10 secs (60 total secs)
      4915668 populate inserts (35641250 of 50000000) in 10 secs (70 total secs)
      3652834 populate inserts (39294084 of 50000000) in 10 secs (80 total secs)
      4845839 populate inserts (44139923 of 50000000) in 10 secs (90 total secs)
      5246793 populate inserts (49386716 of 50000000) in 10 secs (100 total secs)
      Finished load of 50000000 items
      Load time: 102.40
      load ops/sec: 488266
      Compact after populate
      Compact completed in 10 seconds

       

      2. no async thread config reusult:

      root@dprofiler-jvm-00.gz01:/data1/yyz/wtperf-test$ tail -f WT_TEST/test.stat 
      Starting 4 populate thread(s) for 50000000 items
      5735292 populate inserts (5735292 of 50000000) in 10 secs (10 total secs)
      5703659 populate inserts (11438951 of 50000000) in 10 secs (20 total secs)
      6021691 populate inserts (17460642 of 50000000) in 10 secs (30 total secs)
      5849552 populate inserts (23310194 of 50000000) in 10 secs (40 total secs)
      5833485 populate inserts (29143679 of 50000000) in 10 secs (50 total secs)
      5780148 populate inserts (34923827 of 50000000) in 10 secs (60 total secs)
      5672788 populate inserts (40596615 of 50000000) in 10 secs (70 total secs)
      5652205 populate inserts (46248820 of 50000000) in 10 secs (80 total secs)
      Finished load of 50000000 items
      Load time: 86.97
      load ops/sec: 574904
      Compact after populate
      Compact completed in 3 seconds
      Run completed

            Assignee:
            backlog-server-execution [DO NOT USE] Backlog - Storage Execution Team
            Reporter:
            wocuocuo yxyxz123456
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: