最终一致的文档存储数据库类似于cassandra

时间:2015-12-12 08:06:29

标签: database scaling distributed nosql

我正在寻找一个像Cassandra一样容易扩展的开源数据存储,但可以通过像MongoDB这样的文档来查询数据。

目前是否有任何数据库可以执行此操作?

1 个答案:

答案 0 :(得分:2)

在这个网站http://nosql-database.org中,您可以找到按数据存储类型排序的许多NoSQL数据库的列表,您应该检查那里的文档存储。

我没有命名任何特定的数据库来避免偏见/基于意见的答案,但是如果您对像Cassandra一样可扩展的数据存储感兴趣,您可能想要检查那些使用master-master的数据存储/ multi-master / masterless(你的名字,想法是相同的)架构,其中写和读都可以在集群中的所有节点之间分开。

我知道Cassandra针对写入而不是读取进行了优化,但如果没有进一步的详细信息,则无法通过更多信息改进答案。

更新:

  

免责声明:我根本没有使用过CouchDB,也没有对它的性能进行过测试。

由于您发现了CouchDB,我会在distributed database and replication部分添加我在官方文档中找到的内容。

  

CouchDB是一个基于对等的分布式数据库系统。它允许用户   和服务器访问和更新相同的共享数据   断开。然后可以双向复制这些更改   后面。

     

CouchDB文档存储,视图和安全模型旨在实现   共同努力使真正的双向复制更有效率   可靠。文档和设计都可以复制,允许完整   数据库应用程序(包括应用程序设计,逻辑和数据   要复制到笔记本电脑以供脱机使用或复制到服务器   在远程办公室中,缓慢或不可靠的连接进行共享   数据很难。

     

复制过程是增量的。在数据库级别,   复制仅检查自上次更新的文档   复制。然后,对于每个更新的文档,只有字段和blob   已更改的内容将通过网络进行复制。如果复制   由于网络问题或崩溃,例如,在任何步骤都失败了   下一次复制从它停止的同一文档重新开始。

     

可以创建和维护部分副本。复制可以   通过javascript函数过滤,这样只有特定的文档   或者那些符合特定标准的人被复制。这可以允许   用户将大型共享数据库应用程序的子集脱机   供自己使用,同时保持与...的正常互动   应用程序和该数据子集。

对我来说,它看起来非常具有可扩展性,因为您似乎可以向群集添加新节点,然后复制所有数据。

对于真正重要的数据集,部分副本似乎也是一个有趣的选项,我要非常仔细地配置这些数据集,以防止对数据库的给定查询可能无法产生有效结果的情况,例如,网络分区的情况,只能访问部分集。