【发布时间】:2012-01-11 01:44:40
【问题描述】:
MongoDB 使用主从复制,这意味着所有写入都转到单个主节点(从节点只是备份或备用,或者可以提供不需要绝对最新的读取)。
MongoDB 还具有分片功能,可将数据拆分为分片,每个分片都有自己的复制集(即它们自己的主节点)。因此,如果写入均匀分布在分片上,写入性能就会提高。
到目前为止,我只考虑将分片作为横向扩展选项:添加更多机器来托管分片。
在同一台机器上拥有多个分片也只是为了分散写入是否有意义?
Machine A: [Shard A Master] [Shard B Replica]
Machine B: [Shard B Master] [Shard C Replica]
Machine C: [Shard C Master] [Shard A Replica]
【问题讨论】:
-
两天前我刚刚在 mongodb 网站上观看了分片和复制的视频。真的很棒的信息。这听起来就像驱动器的 RAID5 配置,其中每个驱动器都包含其他驱动器的奇偶校验信息。我也很想知道这是否有任何好处。
-
我的直觉是这可能不是一个好主意,因为它会减少主机可用的 RAM。 Mongo 喜欢 RAM。
-
虽然如果系统中有足够的内存,那也许没关系?
-
有点 OT 但是:最好使用raid 6(即raid 5 加上一个几百美元的备用磁盘)。刚刚进行了 raid 5 设置降级,Linux 进入只读模式,不适合生产设置 :)
标签: mongodb replication scaling sharding