2009-03-01 28 views
6

我正在尝试决定是否使用voldemort或couchdb进行即将推出的医疗保健项目。我想要一个具有高可用性和容错能力的存储系统,并且可以扩展大量数据。voldemort vs. couchdb

每个的优缺点是什么?

感谢

+0

我经常阅读InterSystems的提出,缓存巨资医疗 '世界' 中使用。他们不能提供解决方案吗? – tuinstoel 2009-03-15 10:32:01

回答

1

memcacheDB的选项?我听说这是Digg如何处理HA问题。

+0

当然,MemcacheDB比其他2 – py213py 2009-03-02 00:42:08

5

Project Voldemort看起来不错,但到目前为止我还没有深入研究过它。

在当前状态下CouchDB可能不适合“海量数据”。相应地在节点之间分配数据并路由查询在路线图上,但到目前为止尚未实现。 CouchDB最大的已知生产设置使用大约200G的“表”(沙发发言中的“数据库”)。

HA本身不被CouchDB支持,但可以轻松构建:所有CouchDB节点都在多主设置中复制彼此之间的数据库节点。我们将两个Varnish proxies放在CouchDB机器的前面,并且用CARP使光油盒变得冗余。 CouchDB“从Web构建”设计使这种事情变得非常简单。

our setup中最紧迫的问题是,将大型(多MB)附件复制到CouchDB文档仍存在问题。

我建议你也检查传统的RDBMS路线。 There are huge issues与RDBMS的方法外可用人才,酒店还可提供非常有能力的产品从Oracle &有限公司

4

不是从你的问题了解不够,但我亦说伏地魔项目或分布式哈希表(DHT方法)像CouchDB的一般是您HA问题的解决方案。

这些DHT对于高可用性非常好,但比关于一致性的传统关系数据库(RDBMS)更难编写代码。

它们非常适合存储文档类型信息,这些信息可能很适合您的医疗保健项目,但会使数据的开发变得更加困难。

  • 大多数商店的最大的限制是,他们不事务安全(见Scalaris一个事务安全存储),你需要自己保证数据的一致性 - 大部分使用通过合并冲突的读取时间一致性数据)。 RDBMS更容易用于数据的一致性(ACID)
  • 加入数据也非常困难。在RDBM中,您可以轻松地在多个表上查询数据,您需要在CouchDB中编写代码来汇总数据。对于其他商店Hadoop可能是聚合信息的不错选择。

阅读BASECAP定理上与可用性的一致性。