2012-09-13 164 views
0

我知道MongoDB可以设置为未分片的副本集或分片。 Sharded用于非常大的数据集的可伸缩性。mongodb体系结构

问题是,在什么时候我知道应该使用Sharded与3个mongodb节点的基本副本集?

+0

为什么要投票? –

回答

1

一如既往,这取决于。当数据库太大而无法在一台机器上完全保存在RAM中时,请考虑分片。一如既往,最好的方法就是根据自己的具体情况/体系结构/使用模式进行测试,然后亲自查看。

0

除了数据集大小之外,还有几个可以考虑的参数。

  1. 写入负载。副本集将允许读取缩放(1个主 - 许多从属),但是如果应用程序写入很重,则分片是分配写入负载的一种方式。但为了达到这种效果,数据在整个群集中分布的方式应与并发写入模式相匹配。
  2. 多数据中心部署。如果应用程序需要为(2.2引入)地理上分布的标签了解分片可以让你保持
0

正如@gkamal提到你需要考虑拆分当你的数据存储开始打单箱尺寸的60-70%并且负载主要是重写。

未着色的3个副本集和副本集不会缩小写入负载的分片实例之间的主要区别。由于锁定开销,主服务器将成为写主服务器的瓶颈。另一方面,如果分片正确完成,它将消除写入/读取的负载,因为每个分片都分割成多个隔离的实例。