【问题标题】:Replication and effect on performance复制和对性能的影响
【发布时间】:2014-03-13 15:24:34
【问题描述】:

据我所知,MongoDB 中的复制是一种在mongods 上的不同服务器中保持相同数据集的方法。我阅读了 MongoDB 文档,但没有发现任何与性能变化相关的内容。

我总是有一个问题,复制能否帮助 MongoDB 提高读写操作性能?

【问题讨论】:

    标签: mongodb replication database-replication


    【解决方案1】:

    性能不应受此影响。主节点不会向下复制,而是从节点和其他成员“挑选”形成主节点 oplog,这基本上是一个操作日志。

    我想在 oplog 的存储中存在性能问题,您确实需要一些额外的磁盘空间。

    我总是有一个问题,复制能否帮助 MongoDB 提高读写操作性能?

    不写不,您只能写入主数据库,并且由于读取是并发的,并且您有写入器贪婪锁,因此您没有写入性能提升。

    至于阅读;好吧,投票已经结束了。由于该集合的成员获得的 OP 与主要成员一样多,而权重也同样多,因此许多人说实际上它根本没有帮助,但是,他们确实承认在某些情况下(分析报告)它确实有帮助。

    当然,读取将始终返回陈旧数据,即可能已更改/删除的数据。

    实际上,副本读取是否会使您受益取决于您的情况,我们不知道是否足以告诉您是或否。

    【讨论】:

    • 感谢您提供如此好的答案。因此,复制的目标是提供高可用性的 MongoDB 服务器,而不是提高性能或 I/O。对吗?
    • @AfshinMehrabani 是的,确实,建议您查看分片
    • 复制的目标首先不是性能提升。目标是保护数据并提供高可用性。另一方面,如果您的设置包含足够多的节点,您可以为您的副本集选择最近的读取偏好,这在地质分布系统中可以减少获取数据所需的延迟。所以这样会很有帮助。
    • 复制实际上也是一种性能度量,您稍微接触过它,但是在分区复制的 dc 意识中,它变成了一个性能案例,而 MongoDB 实际上是基于这个意图构建的,无论他们是否承认现在;然而,我不知道,这是几年前的初衷。但即使在非 dc 环境中,复制也可以帮助从辅助节点生成缓存读取,这对于通常使用 memcached 的高流量站点非常重要
    猜你喜欢
    • 2011-04-15
    • 2015-01-20
    • 2012-09-04
    • 2023-04-01
    • 2013-08-30
    • 2021-03-09
    • 2011-06-08
    • 1970-01-01
    相关资源
    最近更新 更多