[SERVER-21092] wiredTiger performance regression from 3.0.6 for contended update Created: 23/Oct/15  Updated: 26/Feb/16  Resolved: 26/Feb/16

Status: Closed
Project: Core Server
Component/s: WiredTiger
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Chung-yen Chang Assignee: Chung-yen Chang
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File s21092.js     File s21092_bench.sh    
Backwards Compatibility: Fully Compatible
Operating System: ALL
Steps To Reproduce:

var run_contended_update = function(nThread, server_addr) {
    var d = db.getSiblingDB("test");
    d.dropDatabase();
    d.foo.insert({_id:1,a:0});
 
    res = benchRun( { 
        ops : [{ 
            ns : "test.foo",
            op : "update" ,
            query: {_id: 1},
            update : { $inc: {a: 1} } ,
            writeCmd : true }],
        seconds : 300,
        totals : true,
        host : server_addr,
        parallel : nThread
    });
 
    return res;
};
 
var run_tests = function(server_addr) {
    // exit if this is sharded
    if ( sharded() ) {
        // do nothing here
        return;
    } else {
        res = run_contended_update(32, server_addr);
 
        res = run_contended_update(64, server_addr);
    }
};
 
run_tests(server);

Sprint: Performance 10 (02/22/16), Performance 11 (03/14/16)
Participants:

 Description   

Running a highly contended update workload, a significant performance regression was observed for wiredTiger compared to 3.0.6. With 64 threads concurrently updating a single document, the drop was ~15% for a single-node set up with oplog. Same workload on a 3-node replset showed roughly 30% drop.

Interestingly, same workloads with 32 threads contending on doing the update, the throughput is more than 50% higher and shows no regression compared to 3.0.6.



 Comments   
Comment by Chung-yen Chang [ 26/Feb/16 ]

There has been multiple improvement to performance since this ticket was filed. The accumulative effect of those improvements has recovered the issue reported in this ticket.

In our latest performance test, the maximum throughputs achieved on master and 3.2 are higher than 3.0.6. The master still has slightly lower throughput at the thread count of 64 but it's very close to the noise range of our workload. With the recovery observed in the latest tests, we can close this ticket as fixed.

Comment by Alexander Gorrod [ 17/Nov/15 ]

Alex's reproducer scripts.

Comment by Githook User [ 13/Nov/15 ]

Author:

{u'username': u'ksuarz', u'name': u'Kyle Suarez', u'email': u'kyle.suarez@mongodb.com'}

Message: SERVER-21092 override contended_update for WT

This overrides the reference rule against the baseline.
Branch: master
https://github.com/10gen/dsi/commit/6a85f684482e6f88e766b6eabdef9b9246e2782a

Generated at Thu Feb 08 03:56:16 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.