MongoDB - 小/多或少/大节点的集群

时间:2011-01-21 09:32:41

标签: mongodb cluster-computing

可以说一般情况下最好的是什么(数据库大小真的很大):要让MongoDB集群包含大量较小的刀片服务器,还是一些非常胖的服务器?

鉴于分片键具有非常精细的粒度,因此分割应该不是问题。

如果没有“金色子弹”,那么这两种设置的优缺点是什么?

1 个答案:

答案 0 :(得分:3)

最佳方面是什么?从财务角度来看,我会购买大量便宜的硬件:)

MongoDB已经构建成可以轻松跨节点扩展,那么为什么不利用这个呢?您只需要一个或几个强大的服务器用于SQL服务器的原因是最小化跨物理节点的关系数据的传播。但由于MongoDB使用文档,因此大多数相关数据都存储在单个文档中。这意味着它们都存储在同一个物理位置,您无需在其他节点上进行昂贵的查找,即可重建数据的“完整图片”。

要记住的另一件事是map-reduce作业可以only run in parallel in a sharded environment。因此,如果您计划进行大量地图缩减,则更多的分片/服务器将带来更好的性能。

如果您的数据库超出了强大的服务器,该怎么办?您是否打算投资另一个能够处理少量额外增长的强大服务器?或者,如果其中一个崩溃了怎么办?使用更小,更便宜的服务器,如果需要,您可以逐渐扩大(或缩小)。此外,服务器崩溃的影响要小得多,因为它只会影响一小部分数据。

总结一下:大型小型服务器集群并不是一个灵丹妙药,因为管理这样一个集群有其自身的挑战,但如果你正在进行map-reduce,它会更便宜,也可能更快。