您是否编写过用于分片的自定义平衡器来平衡不使用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. 亚马逊API - 如何创建自定义负载平衡器?
- 6. HTTP负载平衡器自定义错误页面
- 7. 为入口负载平衡器设置自定义端口
- 8. 最大平衡树的定义
- 9. Linux中的Numa平衡器
- 10. 自我平衡机器人的实现
- 11. 自定义负载平衡的URL位置nginx
- 12. 来自document.write和变量未定义的不平衡树
- 13. httpd.conf:BalancerMember在位置中定义时不能有平衡器名称
- 14. 自平衡avl树
- 15. 如何自定义功能区负载平衡器Zuul服务器
- 16. 阿帕奇删除/删除/取消定义的代理平衡器定义
- 17. Camera2 API设置自定义白平衡和温度颜色
- 18. ZMQ套接字与自定义负载平衡
- 19. 负载均衡器中的自定义路由
- 20. mod_jk平衡器树
- 21. 自动平衡(或便宜平衡)的3D数据结构
- 22. 出类拔萃 - 从以前的平衡和值自动平衡
- 23. MongoDB的自定义排序
- 24. 查询路由器的MongoDB负载平衡和故障转移
- 25. 春天+自定义转换器+ Mongodb
- 26. solrcloud的负载平衡器
- 27. URL特定的平衡
- 28. Http绑定负载平衡器
- 29. 自定义水平进度条与自定义选择器
- 30. 使用平衡组匹配配置文件中的自定义嵌套结构