6

我正在尝试决定是否将 voldemort 或 couchdb 用于即将进行的医疗保健项目。我想要一个具有高可用性、容错性并且可以扩展以适应大量数据的存储系统。

每个的优点/缺点是什么?

谢谢

4

3 回答 3

5

伏地魔计划看起来不错,但到目前为止我还没有深入研究它。

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

CouchDB 本身不支持 HA,但可以轻松构建:所有 CouchDB 节点都在多主设置中相互复制数据库节点。我们在 CouchDB 机器前面放置了两个Varnish 代理,并且 Varnish 盒与CARP冗余。CouchDB 的“从 Web 构建”设计使这些事​​情变得非常容易。

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

我建议你也检查一下传统的 RDBMS 路线。RDBMS 方法之外的可用人才存在巨大问题,Oracle & Co 提供了非常强大的产品。

于 2009-03-02T11:35:21.813 回答
4

从您的问题中了解的不够多,我仍然会说 Project Voldemort 或像 CouchDB 这样的分布式哈希表 ( DHT ) 通常是解决您的 HA 问题的方法。

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

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

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

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

于 2009-03-15T09:35:40.417 回答
1

memcacheDB是一个选项吗?我听说 Digg 就是这样处理 HA 问题的。

于 2009-03-02T00:04:47.857 回答