MongoDB碎片集群:只插入一个碎片

MongoDB碎片集群:只插入一个碎片,mongodb,Mongodb,我们正在使用一个包含6个碎片的集群 集合使用非散列的键 文档相当大,我们的块大小设置为512MB 两个巨大的批量插入击中了我们的集群,但所有内容都插入到一个碎片上。 这将导致120%的有效锁定,而其他碎片的锁定率为5% 我认为批量插入只附加最后一个块,因为插入是有序的。由于负载很重,在插入结束之前不会重新分配块 在大容量插入之后,重新分配工作得很好 MongoDB版本是2.6.5 如何配置配置服务器以自动分发批量插入 如果需要更多信息,我将编辑此帖子 谢谢大家 答复如下: 预拆分是我们的最佳解决

我们正在使用一个包含6个碎片的集群

集合使用非散列的

文档相当大,我们的
块大小设置为512MB

两个巨大的批量插入击中了我们的集群,但所有内容都插入到一个碎片上。 这将导致120%的有效锁定,而其他碎片的锁定率为5%

我认为批量插入只附加最后一个块,因为插入是有序的。由于负载很重,在插入结束之前不会重新分配块

在大容量插入之后,重新分配工作得很好

MongoDB版本是2.6.5

如何配置配置服务器以自动分发批量插入

如果需要更多信息,我将编辑此帖子

谢谢大家

答复如下:
预拆分是我们的最佳解决方案。这允许我们在插入之前均匀地分布整个集合,因为我们知道密钥空间!谢谢大家!

听起来你的切分键是单调的?这个

本质上

  • 或者
  • 或插入到不同的mongos(不适用于初始插入)
  • 和/或确保切分键不会单调增加(对于非散列集合,这通常是个好主意)