File: forget_mr_temp_ns.js

package info (click to toggle)
mongodb 1%3A2.4.10-5
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 82,464 kB
  • sloc: cpp: 740,225; ansic: 152,098; sh: 13,820; python: 11,864; makefile: 1,012; perl: 922; pascal: 617; java: 452; lisp: 222; asm: 174
file content (46 lines) | stat: -rw-r--r-- 1,417 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//
// Tests whether we forget M/R's temporary namespaces for sharded output
//

var options = { separateConfig : true };

var st = new ShardingTest({ shards : 1, mongos : 1, other : options });

var mongos = st.s0;
var admin = mongos.getDB( "admin" );
var coll = mongos.getCollection( "foo.bar" );
var outputColl = mongos.getCollection( (coll.getDB() + "") + ".mrOutput" ); 

for ( var i = 0; i < 10; i++ ) {
    coll.insert({ _id : i, even : (i % 2 == 0) });
}
assert.eq( null, coll.getDB().getLastError() );

var map = function() { emit( this.even, 1 ); };
var reduce = function( key, values ) { return Array.sum(values); };

out = coll.mapReduce( map, reduce, { out: { reduce : outputColl.getName(), sharded: true } } );

printjson( out );
printjson( outputColl.find().toArray() );

var mongodThreadStats = st.shard0.getDB( "admin" ).runCommand({ shardConnPoolStats : 1 }).threads;
var mongosThreadStats = admin.runCommand({ shardConnPoolStats : 1 }).threads;

printjson( mongodThreadStats );
printjson( mongosThreadStats );

var checkForSeenNS = function( threadStats, regex ) {
    for ( var i = 0; i < threadStats.length; i++ ) {
        var seenNSes = threadStats[i].seenNS;
        for ( var j = 0; j < seenNSes.length; j++ ) {
            assert( !( regex.test( seenNSes ) ) );
        }
    }
}

checkForSeenNS( mongodThreadStats, /^foo.tmp/ );
checkForSeenNS( mongosThreadStats, /^foo.tmp/ );

st.stop();