我正在创建一个基于 mongoDB/nodejs 的 CMS,并且我正在使用 GridFS 来存储所有上传的文档。我的问题是:
MongoDB 复制集是否允许增加数据库存储量,或者只是复制数据库。例如,如果我有 5 台服务器,每台服务器都有 1TB 的存储空间,如果我在所有服务器上复制 mongo,我的 GridFS 系统理论上是否会具有 5TB 的存储空间(减去缓存和填充)或 1TB 的存储空间重复多次以获得更好的读取性能?
谢谢!
非正式描述:
复制 = 多个节点上的相同数据副本,即 5 个节点各 1TB,总共提供 1TB。
分片/分区 = 数据的一部分进入节点,即 5 个 1TB 的节点总共提供 5TB。
每种方法都有某些优点和缺点,例如,复制可以帮助提高读取吞吐量并且作为备份很好,但会减慢插入速度(取决于提交级别),而分区可以帮助提高插入吞吐量和分布式查找。同样,细节留给存储系统实施者。
Sharding
意味着将数据拆分到多个节点,这在您拥有大量数据时很有用。
Replication
意味着将数据从一个节点复制到另一个节点,例如,当您的应用程序读取繁重或您想要备份数据时,它很有用。
资源:
http://www.mongodb.org/display/DOCS/Sharding
http://www.mongodb.org/display/DOCS/Replication
http://nosql-exp.blogspot.com/2010/09/mongodb-sharding- and-replication-with.html