SERVER-17397: Dropping a Database or Collection in a Sharded Cluster may not fully succeed 是 MongoDB 里老大难的问题,库或集合删除操作如果没有完全执行成功,再新建相同名字的集合,可能导致读到老版本数据的问题。
集合分片原理
MongoDB sharding 分片原理参考 MongoDB Sharded cluster架构原理
总的来说,当用户对集合执行开启分片之后,集合分片的元数据会保存在 config server 的 config 集合里
config.collections
记录集合分片的元数据,根据哪个 shardKey 分片,集合是否已经被删除等元数据config.chunks
,记录各个 chunk(shardKey的某一段范围)