/** * Stores sample shard and ping information at the current version. */ void storeShardsAndPings(int numShards, int numPings) { DBDirectClient client(&_txn); for (int i = 0; i < numShards; i++) { ShardType shard; shard.setName(OID::gen().toString()); shard.setHost((string) (str::stream() << "$dummyShard:" << (i + 1) << "0000")); client.insert(ShardType::ConfigNS, shard.toBSON()); } for (int i = 0; i < numPings; i++) { MongosType ping; ping.setName((string) (str::stream() << "$dummyMongos:" << (i + 1) << "0000")); ping.setPing(jsTime()); ping.setMongoVersion(versionString); ping.setConfigVersion(CURRENT_CONFIG_VERSION); if (i % 2 == 0) { ping.setPing(ping.getPing() - Minutes(10)); } client.insert(MongosType::ConfigNS, ping.toBSON()); } }
void Balancer::_ping(OperationContext* txn, bool waiting) { MongosType mType; mType.setName(_myid); mType.setPing(jsTime()); mType.setUptime(_timer.seconds()); mType.setWaiting(waiting); mType.setMongoVersion(versionString); grid.catalogManager(txn)->updateConfigDocument(txn, MongosType::ConfigNS, BSON(MongosType::name(_myid)), BSON("$set" << mType.toBSON()), true); }