[SERVER-17375] 10% drop in throughput of rc10 vs 2.6.7 for Commands.v1.DistinctWithoutIndex Created: 25/Feb/15  Updated: 15/May/15  Resolved: 15/May/15

Status: Closed
Project: Core Server
Component/s: MMAPv1
Affects Version/s: 3.0.0-rc9, 3.0.0-rc10
Fix Version/s: None

Type: Bug Priority: Critical - P2
Reporter: Alvin Richards (Inactive) Assignee: Ramon Fernandez Marina
Resolution: Won't Fix Votes: 0
Labels: 28qa
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PDF File 267.pdf     PNG File Screen Shot 2015-02-25 at 9.03.39 AM.png     PDF File rc10.pdf    
Operating System: ALL
Steps To Reproduce:

/home/ec2-user/mongodb-linux-x86_64-2.6.7/bin/mongod --dbpath /data2/db --logpath /data3/logs/db/simple_commands/server.log --fork --bind_ip 127.0.0.1

python benchrun.py -f testcases/simple_commands.js -t 1 2 4 8 12 16 20 -l SERVER-xxxx-2.6.7-mmapv0-c1 --rhost "54.191.70.12" --rport 27017 -s /home/ec2-user/mongo-perf-shell/mongo --writeCmd true --trialC
ount 7 --trialTime 120 --testFilter \'Commands.v1.DistinctWithoutIndex\' -c 1 --dyno

Participants:

 Description   

Problem

Observed a 10% drop in throughput for the mongo-perf test Commands.v1.DistinctWithoutIndex. Appears to beyond normal observed variance. This is 2.6.7 vs RC9/10 MMAPV1

2.6.7 1555.64 Stddev 33.33
RC9 1418.79 Stddev 6.21
RC10 1425.96 Stddev 6.46

This appears to happen at client threads counts higher than the number of cores available to MongoDB. In the attached results, MongoDB was pinned to 8 cores, the drop appears to start after 12 client threads.

Testcase

tests.push( genDistinctTest( "Commands.v1.DistinctWithoutIndex", false, false ) );
function genDistinctTest( name, index, query ) {
    var doc = { name : name,
                tags: ['distinct','command','sanity','daily','weekly','monthly']
              };
    if ( index ) {
        doc.pre = function( collection ) {
            collection.drop();
            for ( var i = 0; i < 4800; i++ ) {
                collection.insert( { x : 1 } );
                collection.insert( { x : 2 } );
                collection.insert( { x : 3 } );
            }
            collection.ensureIndex( { x : 1 } );
        };
    }
    else {
        doc.pre = function( collection ) {
            collection.drop();
            for ( var i = 0; i < 4800; i++ ) {
                collection.insert( { x : 1 } );
                collection.insert( { x : 2 } );
                collection.insert( { x : 3 } );
            }
            collection.getDB().getLastError();
        };
    }
 
    var op = { op: "command",
               tags: ['distinct','command','sanity','daily','weekly','monthly'],
               ns : "#B_DB",
               command : { distinct : "#B_COLL",
                           key : "x" } };
    if ( query )
        op.command.query = { x : 1 };
 
    doc.ops = [ op ];
 
    return doc;
}



 Comments   
Comment by Alvin Richards (Inactive) [ 25/Feb/15 ]

Attached screenshot of the throughput profiles

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