gpt4 book ai didi

mongodb - 为什么 MongoDb 分片中 Collection 的文档数量在减少

转载 作者:可可西里 更新时间:2023-11-01 09:51:21 25 4
gpt4 key购买 nike

我有一个 mongo 分片集群,有 3 个分片,对该数据库的所有操作都是 findupdate(使用 upsert=true 选项)。这意味着collection的计数会一直增加,但是当collection的计数(db.mycollection.find().count())增加到80000000或者更大的时候,我发现有时候是在增加,但是有时它会减少,为什么?我保证不会对此数据库执行任何删除操作。

我正在使用 db.myCollection.getShardDistribution() 来显示分布,shard2 只有 29%,低于平均水平。

计数趋势如下:

mongos> db.myCollection.find().count()
84374837
mongos> db.myCollection.find().count()
84375036
mongos> db.myCollection.find().count()
84409281
mongos> db.myCollection.find().count()
84408921
mongos> db.myCollection.find().count()
84407190
mongos> db.myCollection.find().count()
84407173
mongos> db.myCollection.find().count()
84407013
mongos> db.myCollection.find().count()
84406911

最佳答案

我敢打赌这就是分片。这是它的工作原理:

  • 所有文档都被分解成虚拟 block
  • block 可以在分片之间移动
  • 当平衡器移动一个 block 时,它

    1) 将这个 block 中的所有文档复制到它们的新分片

    2) 将 block 的所有权转移到新的分片

    3) 删除旧分片中的文档。

再次重申,这只是根据所提供的信息进行的猜测。但既然你发誓你的应用程序中没有删除,那么一定是这样。

关于mongodb - 为什么 MongoDb 分片中 Collection 的文档数量在减少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29900912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com