【问题标题】:voldemort vs. couchdb伏地魔与沙发数据库
【发布时间】:2009-03-01 23:46:46
【问题描述】:

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

各有什么优缺点?

谢谢

【问题讨论】:

  • 我经常读到 InterSystems 制造的 Cache 在医疗“世界”中被大量使用。他们不能提供解决方案吗?

标签: database couchdb voldemort


【解决方案1】:

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

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

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

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

我建议你也检查一下传统的 RDBMS 路线。 There are huge issues 拥有 RDBMS 方法之外的可用人才,并且 Oracle & Co 提供非常强大的产品。

【讨论】:

    【解决方案2】:

    从您的问题中了解的不够多,但我还是会说 Project Voldemort 或像 CouchDB 这样的分布式哈希表 (DHTs) 通常可以解决您的 HA 问题。

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

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 当然,memcacheDB 与其他 2 相比有什么优势
      • Memcache 可以通过一些配置进行容错。它已经“分发”了。这个想法是您的应用程序将在查看数据库之前检查 Memcache。如果 Memcache 服务器出现故障,所有其他 Memcache 服务器将根据需要更新丢失的服务器。
      • (续)您仍然需要一个底层数据库引擎来存储“永久”副本并运行查询。
      • 其实父帖子指的是memcacheDB 也就是带有Berkley Db后端的memcached代码:memcachedb.org
      • Sam152:“高可用性”的缩写。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-16
      相关资源
      最近更新 更多