您是否编写过用于分片的自定义平衡器来平衡不使用MongoDB中的平衡器的块,并且请您解释一下为什么必须这样做的用例?MongoDB中的自定义平衡器
2
A
回答
2
我曾经管理过一些自定义平衡脚本暂时有用的情况,例如,在某些分片上存在区域性数据需求或者某些集合不应平衡的情况下。在速度方面没有真正的优势(主要受磁盘和内存中的数据分布限制),事实上,进行自定义平衡的一个原因是让速度变慢。
虽然这是很挑剔的,但通常不值得我的长期经验。您可以使用平衡器窗口进行基于时间的平衡,并且将来可以使用块标记以及将集合标记为“不平衡”的功能,这将使大多数其他任务无需自定义脚本。
https://jira.mongodb.org/browse/SERVER-2545 https://jira.mongodb.org/browse/SERVER-4621一个价格
0
两个答案:
- 目标:慢平衡 - 自定义均衡器能写入更慢,增加每个余额轮回之间的时间延迟。这可以用于在您与其他(可能更重要)的应用程序共享吞吐量的情况下降低IOPS /磁盘吞吐量。我可能会建议寻求在守护进程中使用unix'nice',或者设置平衡来使用时间表(请参阅Mongo文档)。
注意:使用MongoDB的版本2.4,默认改变secondaryThrottle验证之前与块迁移前进的数据被写入到次级。如果您只是禁用了辅助程序,这可能会大大减慢块迁移。为了解决这个问题,类型:
use config
db.settings.update({"_id":"balancer"},{$set:{"_secondaryThrottle":false}})
- 目标:更快的平衡 - 我们都知道平衡器可以永远需要平衡不同的疯狂块计算,天量级。我没有写这种平衡器,但我可以很容易地看到它是如何成为一个平衡器。假定一次只能有一个块移动。如果我们假定我们有大量的碎片(比如48个),并且每个碎片都有它自己的磁盘/设备,那么这个迁移概念可以通过配对要被迁移的碎片/碎块来加速,并且全部进入平行。
我们不知道的是,这对配置服务器有什么影响。配置服务器的工作方式是否存在假设,如果我们有2个以上的同时移动,会使其中断?听起来好像是该查看配置服务器代码的时候了。或者,如果你/我/我们写了这样一种动物,它是否有用或者只是导致疼痛和死亡,或者甚至更糟,被迫住在密西西比州,我们中的一个人可能会问10Gen。
相关问题
- 1. Word 2013 - 脚注自定义平衡?
- 2. 平衡树的定义
- 3. Windows Azure的自定义探针负载平衡器
- 4. MongoDB:不能停止平衡器
- 5. HTTP负载平衡器自定义错误页面
- 6. 为入口负载平衡器设置自定义端口
- 7. 最大平衡树的定义
- 8. Linux中的Numa平衡器
- 9. 自我平衡机器人的实现
- 10. 自定义负载平衡的URL位置nginx
- 11. 如何自定义功能区负载平衡器Zuul服务器
- 12. 阿帕奇删除/删除/取消定义的代理平衡器定义
- 13. 负载均衡器中的自定义路由
- 14. 春天+自定义转换器+ Mongodb
- 15. 出类拔萃 - 从以前的平衡和值自动平衡
- 16. solrcloud的负载平衡器
- 17. Http绑定负载平衡器
- 18. 使用平衡组匹配配置文件中的自定义嵌套结构
- 19. 相机自动白平衡
- 20. 无法升级sharded mongoDB或停止平衡器
- 21. AWS中使用自动负载平衡器的OrientDB
- 22. 使用自定义域和DNS SRV记录在Bluemix中进行负载平衡
- 23. mod_cluster自定义负载均衡算法
- 24. 将流量重定向到来自负载平衡器的特定实例
- 25. MongoDB中的自定义索引比较器
- 26. 平衡器数据管道
- 27. Netty负载平衡器
- 28. 负载平衡器IP
- 29. 括号平衡器程序
- 30. AWS负载平衡器