diff options
author | Antonin Kral <a.kral@bobek.cz> | 2011-03-17 00:05:43 +0100 |
---|---|---|
committer | Antonin Kral <a.kral@bobek.cz> | 2011-03-17 00:05:43 +0100 |
commit | 582fc32574a3b158c81e49cb00e6ae59205e66ba (patch) | |
tree | ac64a3243e0d2121709f685695247052858115c8 /jstests/parallel | |
parent | 2761bffa96595ac1698d86bbc2e95ebb0d4d6e93 (diff) | |
download | mongodb-582fc32574a3b158c81e49cb00e6ae59205e66ba.tar.gz |
Imported Upstream version 1.8.0
Diffstat (limited to 'jstests/parallel')
-rw-r--r-- | jstests/parallel/del.js | 79 | ||||
-rw-r--r-- | jstests/parallel/repl.js | 4 |
2 files changed, 81 insertions, 2 deletions
diff --git a/jstests/parallel/del.js b/jstests/parallel/del.js new file mode 100644 index 0000000..c6eb500 --- /dev/null +++ b/jstests/parallel/del.js @@ -0,0 +1,79 @@ + + +N = 1000; + +HOST = db.getMongo().host + +DONE = false; + +function del1( dbname ){ + var m = new Mongo( HOST ) + var db = m.getDB( "foo" + dbname ); + var t = db.del + + while ( ! DONE ){ + var r = Math.random(); + var n = Math.floor( Math.random() * N ); + if ( r < .9 ){ + t.insert( { x : n } ) + } + else if ( r < .98 ){ + t.remove( { x : n } ); + } + else if ( r < .99 ){ + t.remove( { x : { $lt : n } } ) + } + else { + t.remove( { x : { $gt : n } } ); + } + if ( r > .9999 ) + print( t.count() ) + } +} + +function del2( dbname ){ + var m = new Mongo( HOST ) + var db = m.getDB( "foo" + dbname ); + var t = db.del + + while ( ! DONE ){ + var r = Math.random(); + var n = Math.floor( Math.random() * N ); + var s = Math.random() > .5 ? 1 : -1; + + if ( r < .5 ){ + t.findOne( { x : n } ) + } + else if ( r < .75 ){ + t.find( { x : { $lt : n } } ).sort( { x : s } ).itcount(); + } + else { + t.find( { x : { $gt : n } } ).sort( { x : s } ).itcount(); + } + } +} + +all = [] + +all.push( fork( del1 , "a" ) ) +all.push( fork( del2 , "a" ) ) +all.push( fork( del1 , "b" ) ) +all.push( fork( del2 , "b" ) ) + +for ( i=0; i<all.length; i++ ) + all[i].start() + +a = db.getSisterDB( "fooa" ) +b = db.getSisterDB( "foob" ) + +for ( i=0; i<10; i++ ){ + sleep( 2000 ) + print( "dropping" ) + a.dropDatabase(); + b.dropDatabase(); +} + +DONE = true; + +all[0].join() + diff --git a/jstests/parallel/repl.js b/jstests/parallel/repl.js index cb9b770..919b0d7 100644 --- a/jstests/parallel/repl.js +++ b/jstests/parallel/repl.js @@ -1,4 +1,4 @@ -// test all operations in parallel +// test basic operations in parallel, with replication baseName = "parallel_repl" @@ -25,7 +25,7 @@ for( id = 0; id < 10; ++id ) { g.addRemove( { _id:Random.randInt( 1000 ) } ); break; case 2: // update - g.addUpdate( {_id:{$lt:1000}}, {a:{$inc:5}} ); + g.addUpdate( {_id:{$lt:1000}}, {$inc:{a:5}} ); break; default: assert( false, "Invalid op code" ); |