summaryrefslogtreecommitdiff
path: root/jstests
diff options
context:
space:
mode:
authorEric Milkie <milkie@10gen.com>2012-11-09 10:47:00 -0500
committerEric Milkie <milkie@10gen.com>2012-11-09 14:21:30 -0500
commit39f9638a400a1189d9f00f89c5ece874b4acaf2a (patch)
tree41ff2b9bf5e70554e3e403079ef437aa8be761ed /jstests
parent105f52b07e90f809a5f6d5ca063c6fbf7638ad17 (diff)
downloadmongo-39f9638a400a1189d9f00f89c5ece874b4acaf2a.tar.gz
SERVER-7551 use same batch limits for initialsync and synctail
Diffstat (limited to 'jstests')
-rw-r--r--jstests/replsets/replset9.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/jstests/replsets/replset9.js b/jstests/replsets/replset9.js
new file mode 100644
index 00000000000..e3912877405
--- /dev/null
+++ b/jstests/replsets/replset9.js
@@ -0,0 +1,52 @@
+
+
+var rt = new ReplSetTest( { name : "replset9tests" , nodes: 1, oplogSize: 400 } );
+
+var nodes = rt.startSet();
+rt.initiate();
+var master = rt.getMaster();
+var bigstring = "a";
+var md = master.getDB( 'd' );
+var mdc = md[ 'c' ];
+
+// idea: while cloner is running, update some docs and then immediately remove them.
+// oplog will have ops referencing docs that no longer exist.
+
+var doccount = 20000;
+// Avoid empty extent issues
+mdc.insert( { _id:-1, x:"dummy" } );
+
+// Make this db big so that cloner takes a while.
+print ("inserting bigstrings");
+for( i = 0; i < doccount; ++i ) {
+ mdc.insert( { _id:i, x:bigstring } );
+ bigstring += "a";
+}
+md.getLastError();
+
+// Insert some docs to update and remove
+print ("inserting x");
+for( i = doccount; i < doccount*2; ++i ) {
+ mdc.insert( { _id:i, bs:bigstring, x:i } );
+}
+md.getLastError();
+
+// add a secondary; start cloning
+var slave = rt.add();
+rt.reInitiate();
+print ("initiation complete!");
+var sc = slave.getDB( 'd' )[ 'c' ];
+slave.setSlaveOk();
+
+print ("updating and deleting documents");
+for (i = doccount*2; i > doccount; --i) {
+ mdc.update( { _id:i }, { $inc: { x : 1 } } );
+ md.getLastError();
+ mdc.remove( { _id:i } );
+ md.getLastError();
+ mdc.insert( { bs:bigstring } );
+ md.getLastError();
+}
+print ("finished");
+// Wait for replication to catch up.
+rt.awaitReplication(640000);