MongoDB removeShard的流程
向mongos发送removeShard命令 mongos向cs发送_configsvrRemoveShard命令 cs查询除了要remove的shard,是否还有别的shard在drain状态,是的话则返回失败。{"_id": {$ne: "shard1"}, "drainging": true}}} 表明同一时刻只能有一个removeShard操作。 cs查询是否要remove的shard是最后一个shard,是的话本次请求返回失败。 cs查询要remove的shard是否在drain状态,如果不是的话,则置draining状态为true,并且reload shardRegistry(缓存的shard的路由表)。日志层面记录removeShard开始 cs查询shard对应的chunk表,还遗留有多少条chunk cs查询shard对应的database表,还遗…