43 lines
1.3 KiB
JavaScript
43 lines
1.3 KiB
JavaScript
/**
|
|
* Test write concern with w parameter will not cause an error when writes to mongos would trigger
|
|
* writes to config servers (in this test, autosplit is used).
|
|
*/
|
|
(function() {
|
|
'use strict';
|
|
|
|
var st = new ShardingTest({shards: 1, rs: true, other: {chunkSize: 1, enableAutoSplit: true}});
|
|
|
|
var mongos = st.s;
|
|
var testDB = mongos.getDB('test');
|
|
var coll = testDB.user;
|
|
|
|
assert.commandWorked(st.s0.adminCommand({enableSharding: testDB.getName()}));
|
|
assert.commandWorked(st.s0.adminCommand({shardCollection: coll.getFullName(), key: {x: 1}}));
|
|
|
|
var chunkCount = function() {
|
|
return mongos.getDB('config').chunks.find().count();
|
|
};
|
|
|
|
var initChunks = chunkCount();
|
|
var currChunks = initChunks;
|
|
var gleObj = null;
|
|
var x = 0;
|
|
var largeStr = new Array(1024 * 128).toString();
|
|
|
|
assert.soon(
|
|
function() {
|
|
var bulk = coll.initializeUnorderedBulkOp();
|
|
for (var i = 0; i < 100; i++) {
|
|
bulk.insert({x: x++, largeStr: largeStr});
|
|
}
|
|
assert.writeOK(bulk.execute({w: 'majority', wtimeout: 60 * 1000}));
|
|
currChunks = chunkCount();
|
|
return currChunks > initChunks;
|
|
},
|
|
function() {
|
|
return "currChunks: " + currChunks + ", initChunks: " + initChunks;
|
|
});
|
|
|
|
st.stop();
|
|
})();
|