diff options
author | Dan Pasette <dan@mongodb.com> | 2016-09-29 19:19:59 -0400 |
---|---|---|
committer | Dan Pasette <dan@mongodb.com> | 2016-09-29 19:19:59 -0400 |
commit | 9a4474ea06409f729121283dadbdf3a17b131cdb (patch) | |
tree | 8ec980a5569c8ab6dc3b5d4e93e0f9da29d2edc6 | |
parent | 4b6f1b99aea01016e875bb74872927b621c7321a (diff) | |
download | mongo-9a4474ea06409f729121283dadbdf3a17b131cdb.tar.gz |
Revert "SERVER-26309 Disable auto splitting in ShardingTest by default"
This reverts commit c47eb7408d712ac75c09b54079abfd0c28346a07.
28 files changed, 45 insertions, 98 deletions
diff --git a/buildscripts/resmokeconfig/suites/sharding_continuous_config_stepdown.yml b/buildscripts/resmokeconfig/suites/sharding_continuous_config_stepdown.yml index 46e8df9c0fb..d20af7870f9 100644 --- a/buildscripts/resmokeconfig/suites/sharding_continuous_config_stepdown.yml +++ b/buildscripts/resmokeconfig/suites/sharding_continuous_config_stepdown.yml @@ -57,6 +57,9 @@ selector: - jstests/sharding/sharding_balance3.js - jstests/sharding/sharding_balance4.js - jstests/sharding/sharding_migrate_cursor1.js + - jstests/sharding/split_with_force.js + - jstests/sharding/split_with_force_small.js + - jstests/sharding/stale_mongos_updates_and_removes.js - jstests/sharding/tag_auto_split.js - jstests/sharding/tag_auto_split_partial_key.js - jstests/sharding/tag_range.js diff --git a/jstests/libs/override_methods/multiversion_override_balancer_control.js b/jstests/libs/override_methods/multiversion_override_balancer_control.js index a620f7f4e38..0a5252ce0cd 100644 --- a/jstests/libs/override_methods/multiversion_override_balancer_control.js +++ b/jstests/libs/override_methods/multiversion_override_balancer_control.js @@ -47,14 +47,6 @@ arguments[0].other.enableBalancer = true; } - // In ShardingTest, enableAutoSplit defaults to the value of enableBalancer. However, this - // override causes enableBalancer to always be true when constructing ShardingTest. So, if - // enableAutoSplit is not specified, make sure enableAutoSplit defaults to the original - // enableBalancer value. - if (!("enableAutoSplit" in arguments[0].other)) { - arguments[0].other.enableAutoSplit = originalEnableBalancer; - } - // Construct the original object originalShardingTest.apply(this, arguments); diff --git a/jstests/noPassthroughWithMongod/sharding_migrate_large_docs.js b/jstests/noPassthroughWithMongod/sharding_migrate_large_docs.js index 4831969953e..7a468b51a10 100644 --- a/jstests/noPassthroughWithMongod/sharding_migrate_large_docs.js +++ b/jstests/noPassthroughWithMongod/sharding_migrate_large_docs.js @@ -3,6 +3,8 @@ // var st = new ShardingTest({shards: 2, mongos: 1}); +st.disableAutoSplit(); +st.stopBalancer(); var mongos = st.s0; var coll = mongos.getCollection("foo.bar"); diff --git a/jstests/sharding/auth.js b/jstests/sharding/auth.js index 44cef91233b..03a3068008c 100644 --- a/jstests/sharding/auth.js +++ b/jstests/sharding/auth.js @@ -37,7 +37,7 @@ name: "auth", mongos: 1, shards: 0, - other: {keyFile: "jstests/libs/key1", chunkSize: 1, enableAutoSplit: true}, + other: {keyFile: "jstests/libs/key1", chunkSize: 1}, }); if (s.getDB('admin').runCommand('buildInfo').bits < 64) { diff --git a/jstests/sharding/authCommands.js b/jstests/sharding/authCommands.js index 4dd36172d85..ba015c556af 100644 --- a/jstests/sharding/authCommands.js +++ b/jstests/sharding/authCommands.js @@ -7,8 +7,11 @@ var st = new ShardingTest({ shards: 2, rs: {oplogSize: 10, useHostname: false}, - other: - {keyFile: 'jstests/libs/key1', useHostname: false, chunkSize: 2, enableAutoSplit: true}, + other: { + keyFile: 'jstests/libs/key1', + useHostname: false, + chunkSize: 2, + }, }); var mongos = st.s; diff --git a/jstests/sharding/autosplit.js b/jstests/sharding/auto1.js index bb34021487f..8c5e4510b9b 100644 --- a/jstests/sharding/autosplit.js +++ b/jstests/sharding/auto1.js @@ -4,7 +4,7 @@ (function() { 'use strict'; - var s = new ShardingTest({name: "auto1", shards: 2, mongos: 1, other: {enableAutoSplit: true}}); + var s = new ShardingTest({name: "auto1", shards: 2, mongos: 1}); assert.commandWorked(s.s0.adminCommand({enablesharding: "test"})); s.ensurePrimaryShard('test', 'shard0001'); diff --git a/jstests/sharding/autosplit_with_balancer.js b/jstests/sharding/auto2.js index f1853211e4c..f3d8bf299ec 100644 --- a/jstests/sharding/autosplit_with_balancer.js +++ b/jstests/sharding/auto2.js @@ -1,6 +1,6 @@ (function() { - var s = new ShardingTest({name: "auto2", shards: 2, mongos: 2, other: {enableAutoSplit: true}}); + var s = new ShardingTest({name: "auto2", shards: 2, mongos: 2}); s.adminCommand({enablesharding: "test"}); s.ensurePrimaryShard('test', 'shard0001'); diff --git a/jstests/sharding/autosplit_heuristics.js b/jstests/sharding/autosplit_heuristics.js index 659f74725b0..bfde45cfc67 100644 --- a/jstests/sharding/autosplit_heuristics.js +++ b/jstests/sharding/autosplit_heuristics.js @@ -5,7 +5,7 @@ (function() { 'use strict'; - var st = new ShardingTest({shards: 1, mongos: 1, other: {chunkSize: 1, enableAutoSplit: true}}); + var st = new ShardingTest({shards: 1, mongos: 1, other: {chunkSize: 1}}); // The balancer is by default stopped, thus it will NOT interfere unpredictably with the chunk // moves/splits depending on the timing. diff --git a/jstests/sharding/commands_that_write_accept_wc_configRS.js b/jstests/sharding/commands_that_write_accept_wc_configRS.js index 4a983a0b7b7..213081c0f2a 100644 --- a/jstests/sharding/commands_that_write_accept_wc_configRS.js +++ b/jstests/sharding/commands_that_write_accept_wc_configRS.js @@ -21,6 +21,7 @@ load('jstests/multiVersion/libs/auth_helpers.js'); configReplSetTestOptions: {settings: {chainingAllowed: false}}, mongos: 1 }); + st.disableAutoSplit(); var mongos = st.s; var dbName = "wc-test-configRS"; diff --git a/jstests/sharding/conf_server_write_concern_metadata.js b/jstests/sharding/conf_server_write_concern_metadata.js index dd15c5cb179..8f2a0063ac7 100644 --- a/jstests/sharding/conf_server_write_concern_metadata.js +++ b/jstests/sharding/conf_server_write_concern_metadata.js @@ -1,11 +1,11 @@ /** * 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). + * writes to config servers (in this test, split chunks is used). */ (function() { 'use strict'; - var st = new ShardingTest({shards: 1, rs: true, other: {chunkSize: 1, enableAutoSplit: true}}); + var st = new ShardingTest({shards: 1, rs: true, other: {chunkSize: 1}}); var mongos = st.s; var testDB = mongos.getDB('test'); diff --git a/jstests/sharding/cursor1.js b/jstests/sharding/cursor1.js index 0644aee1dca..de39f04841f 100644 --- a/jstests/sharding/cursor1.js +++ b/jstests/sharding/cursor1.js @@ -4,6 +4,9 @@ var s = new ShardingTest({name: "sharding_cursor1", shards: 2}); + // This test handles chunk splitting manually. + s.disableAutoSplit(); + s.config.settings.find().forEach(printjson); // create a sharded 'test.foo', for the moment with just one chunk diff --git a/jstests/sharding/disable_autosplit.js b/jstests/sharding/disable_autosplit.js index d6982c3280a..d62d41e95f4 100644 --- a/jstests/sharding/disable_autosplit.js +++ b/jstests/sharding/disable_autosplit.js @@ -1,13 +1,11 @@ -// Tests disabling of autosplit. +// Tests disabling of autosplit from mongos (function() { 'use strict'; var chunkSizeMB = 1; - // Autosplit is disabled by default, but specify it anyway in case the default changes, - // especially since it defaults to the enableBalancer setting. - var st = new ShardingTest( - {shards: 1, mongos: 1, other: {chunkSize: chunkSizeMB, enableAutoSplit: false}}); + var st = new ShardingTest({shards: 1, mongos: 1, other: {chunkSize: chunkSizeMB}}); + st.disableAutoSplit(); var data = "x"; while (data.length < chunkSizeMB * 1024 * 1024) { diff --git a/jstests/sharding/findandmodify2.js b/jstests/sharding/findandmodify2.js index ab706a448c4..6df89a73d04 100644 --- a/jstests/sharding/findandmodify2.js +++ b/jstests/sharding/findandmodify2.js @@ -1,7 +1,7 @@ (function() { 'use strict'; - var s = new ShardingTest({shards: 2, mongos: 1, other: {chunkSize: 1, enableAutoSplit: true}}); + var s = new ShardingTest({shards: 2, mongos: 1, other: {chunkSize: 1}}); assert.commandWorked(s.s0.adminCommand({enablesharding: "test"})); var db = s.getDB("test"); diff --git a/jstests/sharding/jumbo1.js b/jstests/sharding/jumbo1.js index 315cd3ee6b6..594c8165ab2 100644 --- a/jstests/sharding/jumbo1.js +++ b/jstests/sharding/jumbo1.js @@ -1,7 +1,7 @@ (function() { 'use strict'; - var s = new ShardingTest({shards: 2, mongos: 1, other: {chunkSize: 1, enableAutoSplit: true}}); + var s = new ShardingTest({shards: 2, mongos: 1, other: {chunkSize: 1}}); assert.commandWorked(s.s0.adminCommand({enablesharding: "test"})); s.ensurePrimaryShard('test', 'shard0001'); diff --git a/jstests/sharding/move_chunk_wc.js b/jstests/sharding/move_chunk_wc.js index 54a41c2d9fa..e94e9a01940 100644 --- a/jstests/sharding/move_chunk_wc.js +++ b/jstests/sharding/move_chunk_wc.js @@ -21,6 +21,7 @@ load('jstests/libs/write_concern_util.js'); config: 1, configReplSetTestOptions: {settings: {chainingAllowed: false}} }); + st.disableAutoSplit(); var mongos = st.s; var dbName = "move-chunk-wc-test"; diff --git a/jstests/sharding/movechunk_with_default_paranoia.js b/jstests/sharding/movechunk_with_default_paranoia.js index 97b8d5c6db1..52597fec149 100644 --- a/jstests/sharding/movechunk_with_default_paranoia.js +++ b/jstests/sharding/movechunk_with_default_paranoia.js @@ -2,8 +2,7 @@ * This test checks that moveParanoia defaults to off (ie the moveChunk directory will not * be created). */ - -var st = new ShardingTest({shards: 2, mongos: 1, other: {chunkSize: 1, enableAutoSplit: true}}); +var st = new ShardingTest({shards: 2, mongos: 1, other: {chunkSize: 1}}); load("jstests/sharding/movechunk_include.js"); setupMoveChunkTest(st); diff --git a/jstests/sharding/movechunk_with_moveParanoia.js b/jstests/sharding/movechunk_with_moveParanoia.js index 740878507b2..f8c2fd0fbd8 100644 --- a/jstests/sharding/movechunk_with_moveParanoia.js +++ b/jstests/sharding/movechunk_with_moveParanoia.js @@ -1,11 +1,8 @@ /** * This test sets moveParanoia flag and then check that the directory is created with the moved data */ -var st = new ShardingTest({ - shards: 2, - mongos: 1, - other: {chunkSize: 1, enableAutoSplit: true, shardOptions: {moveParanoia: ""}} -}); +var st = new ShardingTest( + {shards: 2, mongos: 1, other: {chunkSize: 1, shardOptions: {moveParanoia: ""}}}); load("jstests/sharding/movechunk_include.js"); setupMoveChunkTest(st); diff --git a/jstests/sharding/movechunk_with_noMoveParanoia.js b/jstests/sharding/movechunk_with_noMoveParanoia.js index 2ca6ef96f16..4e75421543a 100644 --- a/jstests/sharding/movechunk_with_noMoveParanoia.js +++ b/jstests/sharding/movechunk_with_noMoveParanoia.js @@ -1,11 +1,8 @@ /** * This test sets moveParanoia flag and then check that the directory is created with the moved data */ -var st = new ShardingTest({ - shards: 2, - mongos: 1, - other: {chunkSize: 1, enableAutoSplit: true, shardOptions: {noMoveParanoia: ""}} -}); +var st = new ShardingTest( + {shards: 2, mongos: 1, other: {chunkSize: 1, shardOptions: {noMoveParanoia: ""}}}); load("jstests/sharding/movechunk_include.js"); setupMoveChunkTest(st); diff --git a/jstests/sharding/sharding_balance4.js b/jstests/sharding/sharding_balance4.js index 4df4171bd39..170448cbf11 100644 --- a/jstests/sharding/sharding_balance4.js +++ b/jstests/sharding/sharding_balance4.js @@ -1,12 +1,8 @@ // Check that doing updates done during a migrate all go to the right place (function() { - var s = new ShardingTest({ - name: "slow_sharding_balance4", - shards: 2, - mongos: 1, - other: {chunkSize: 1, enableAutoSplit: true} - }); + var s = new ShardingTest( + {name: "slow_sharding_balance4", shards: 2, mongos: 1, other: {chunkSize: 1}}); s.adminCommand({enablesharding: "test"}); s.ensurePrimaryShard('test', 'shard0001'); diff --git a/jstests/sharding/split_with_force.js b/jstests/sharding/split_with_force.js index 7a40714c35c..c5bacd2dd28 100644 --- a/jstests/sharding/split_with_force.js +++ b/jstests/sharding/split_with_force.js @@ -7,6 +7,8 @@ var options = { }; var st = new ShardingTest({shards: 1, mongos: 1, other: options}); +st.disableAutoSplit(); +st.stopBalancer(); var mongos = st.s0; var admin = mongos.getDB("admin"); diff --git a/jstests/sharding/split_with_force_small.js b/jstests/sharding/split_with_force_small.js index 2554d41048f..ffc0e4d5bbd 100644 --- a/jstests/sharding/split_with_force_small.js +++ b/jstests/sharding/split_with_force_small.js @@ -5,6 +5,7 @@ 'use strict'; var st = new ShardingTest({shards: 1, mongos: 1, other: {chunkSize: 1}}); + st.disableAutoSplit(); var mongos = st.s0; var admin = mongos.getDB("admin"); diff --git a/jstests/sharding/stale_mongos_updates_and_removes.js b/jstests/sharding/stale_mongos_updates_and_removes.js index 0621d44196f..dc2fd701a78 100644 --- a/jstests/sharding/stale_mongos_updates_and_removes.js +++ b/jstests/sharding/stale_mongos_updates_and_removes.js @@ -172,7 +172,7 @@ var checkAllUpdateQueries = function(makeMongosStaleFunc) { }; var st = new ShardingTest({shards: 2, mongos: 2}); - +st.disableAutoSplit(); var dbName = 'test'; var collNS = dbName + '.foo'; var numShardKeys = 10; diff --git a/jstests/sharding/top_chunk_autosplit.js b/jstests/sharding/top_chunk_autosplit.js index 2a8e40a787a..6047e7a948c 100644 --- a/jstests/sharding/top_chunk_autosplit.js +++ b/jstests/sharding/top_chunk_autosplit.js @@ -294,8 +294,7 @@ var maxSizeTests = [ var dbName = "TopChunkDB"; var collName = "coll"; -var st = shardSetup( - {name: "topchunk", shards: 4, chunkSize: 1, other: {enableAutoSplit: true}}, dbName, collName); +var st = shardSetup({name: "topchunk", shards: 4, chunkSize: 1}, dbName, collName); var db = st.getDB(dbName); var coll = db[collName]; var configDB = st.s.getDB('config'); @@ -311,9 +310,7 @@ for (var i = 0; i < tests.length; i++) { st.stop(); // Single node shard tests -st = shardSetup({name: "singleNode", shards: 1, chunkSize: 1, other: {enableAutoSplit: true}}, - dbName, - collName); +st = shardSetup({name: "singleNode", shards: 1, chunkSize: 1}, dbName, collName); db = st.getDB(dbName); coll = db[collName]; configDB = st.s.getDB('config'); @@ -330,14 +327,8 @@ st.stop(); // maxSize test // To set maxSize, must manually add the shards -st = shardSetup({ - name: "maxSize", - shards: 2, - chunkSize: 1, - other: {manualAddShard: true, enableAutoSplit: true} -}, - dbName, - collName); +st = shardSetup( + {name: "maxSize", shards: 2, chunkSize: 1, other: {manualAddShard: true}}, dbName, collName); db = st.getDB(dbName); coll = db[collName]; configDB = st.s.getDB('config'); diff --git a/jstests/sharding/write_cmd_auto_split.js b/jstests/sharding/write_cmd_auto_split.js index 1cf9b5ab39a..0b340148787 100644 --- a/jstests/sharding/write_cmd_auto_split.js +++ b/jstests/sharding/write_cmd_auto_split.js @@ -4,7 +4,7 @@ (function() { 'use strict'; - var st = new ShardingTest({shards: 1, other: {chunkSize: 1, enableAutoSplit: true}}); + var st = new ShardingTest({shards: 1, other: {chunkSize: 1}}); var configDB = st.s.getDB('config'); assert.commandWorked(configDB.adminCommand({enableSharding: 'test'})); diff --git a/jstests/sharding/zbigMapReduce.js b/jstests/sharding/zbigMapReduce.js index ac4380267e8..9853982d535 100644 --- a/jstests/sharding/zbigMapReduce.js +++ b/jstests/sharding/zbigMapReduce.js @@ -9,7 +9,7 @@ function setupTest() { numReplicas: 2, chunkSize: 1, rsOptions: {oplogSize: 50}, - enableBalancer: true + enableBalancer: 1 } }); diff --git a/jstests/tool/dumprestore9.js b/jstests/tool/dumprestore9.js index 9123c75bf04..dfb8f2d0979 100644 --- a/jstests/tool/dumprestore9.js +++ b/jstests/tool/dumprestore9.js @@ -13,7 +13,7 @@ if (0) { name: "dumprestore9a", shards: 2, mongos: 3, - other: {chunkSize: 1, enableBalancer: true} + other: {chunkSize: 1, enableBalancer: 1} }); step("Shard collection"); diff --git a/src/mongo/shell/servers.js b/src/mongo/shell/servers.js index 5625ae44a80..17d3fdb7c93 100644 --- a/src/mongo/shell/servers.js +++ b/src/mongo/shell/servers.js @@ -647,12 +647,6 @@ var MongoRunner, _startMongod, startMongoProgram, runMongoProgram, startMongoPro opts.binVersion = MongoRunner.getBinVersionFor(testOptions.mongosBinVersion); } - // If the mongos is being restarted with a newer version, make sure we remove any options - // that no longer exist in the newer version. - if (opts.restart && MongoRunner.areBinVersionsTheSame('latest', opts.binVersion)) { - delete opts.noAutoSplit; - } - return opts; }; diff --git a/src/mongo/shell/shardingtest.js b/src/mongo/shell/shardingtest.js index bb39563c69e..42b8c7158d8 100644 --- a/src/mongo/shell/shardingtest.js +++ b/src/mongo/shell/shardingtest.js @@ -66,8 +66,6 @@ * mongosOptions {Object}: same as the mongos property above. * Can be used to specify options that are common all mongos. * enableBalancer {boolean} : if true, enable the balancer - * enableAutoSplit {boolean} : if true, enable autosplitting; else, default to the - * enableBalancer setting * manualAddShard {boolean}: shards will not be added if true. * * useBridge {boolean}: If true, then a mongobridge process is started for each node in the @@ -209,12 +207,10 @@ var ShardingTest = function(params) { * Configures the cluster based on the specified parameters (balancer state, etc). */ function _configureCluster() { + // Disable the balancer unless it is explicitly turned on if (!otherParams.enableBalancer) { self.stopBalancer(); } - if (!otherParams.enableAutoSplit) { - self.disableAutoSplit(); - } } function connectionURLTheSame(a, b) { @@ -778,15 +774,6 @@ var ShardingTest = function(params) { if (opts.restart) { opts = Object.merge(mongos.fullOptions, opts); - - // If the mongos is being restarted with a newer version, make sure we remove any - // options that no longer exist in the newer version. - // Note: If a jstest specifies the mongos binVersion as an array, calling - // MongoRunner.areBinVersionsTheSame() will advance the binVersion iterator over that - // array (SERVER-26261). - if (MongoRunner.areBinVersionsTheSame('latest', opts.binVersion)) { - delete opts.noAutoSplit; - } } var newConn = MongoRunner.runMongos(opts); @@ -950,15 +937,6 @@ var ShardingTest = function(params) { ? otherParams.waitForCSRSSecondaries : true; - // Default enableBalancer to false. - otherParams.enableBalancer = - ("enableBalancer" in otherParams) && (otherParams.enableBalancer === true); - - // Let autosplit behavior match that of the balancer if autosplit is not explicitly set. - if (!("enableAutoSplit" in otherParams)) { - otherParams.enableAutoSplit = otherParams.enableBalancer; - } - // Allow specifying mixed-type options like this: // { mongos : [ { noprealloc : "" } ], // config : [ { smallfiles : "" } ], @@ -1351,17 +1329,6 @@ var ShardingTest = function(params) { options.port = options.port || allocatePort(); - // TODO(esha): remove after v3.4 ships. - // Legacy mongoses use a command line option to disable autosplit instead of reading the - // config.settings collection. - // Note: If a jstest specifies the mongos binVersion as an array, calling - // MongoRunner.areBinVersionsTheSame() will advance the binVersion iterator over that array - // (SERVER-26261). - if (options.binVersion && MongoRunner.areBinVersionsTheSame('3.2', options.binVersion) && - !otherParams.enableAutoSplit) { - options.noAutoSplit = ""; - } - if (otherParams.useBridge) { var bridgeOptions = Object.merge(otherParams.bridgeOptions, options.bridgeOptions || {}); |