【问题标题】:Distributed database management system - alternatives?分布式数据库管理系统 - 替代方案?
【发布时间】:2015-05-10 23:08:02
【问题描述】:

我正在开发一个需要跨国家分布数据的应用程序。内容将“按区域”提供,但需要能够轻松复制到另一个区域。除此之外,我还有需要在数据库之间共享和同步的一般信息。

我工作的组织正在考虑自己实施这个系统,但感觉应该已经有一些好的解决方案了(我对云解决方案持开放态度 - 我的公司需要管理的越少越好)?

这可能是一个模糊的问题,但我认为可以很好地回答。

在开发这种分布式数据系统时,我有哪些选择?

更新:

应该详细说明(但我不确定在 NDA 的情况下我能说多少)。可以说,我有“内容”,我需要将其存储在一些空间(文件)中。我需要存储关于分布在多个节点(可能由我们或其他人托管)上的内容的元数据,以允许快节奏的通信和数据的区域化差异。我需要控制如何在节点之间复制数据,但最好以符合标准的方式。 (最好不是我们写的)

【问题讨论】:

    标签: database distributed


    【解决方案1】:

    你可以试试 CouchDB。它的离线复制模型听起来很适合地理分布式系统。

    【讨论】:

    • 嗯,是的,听起来很有趣!不过,我有点怀疑我们是否可以使用面向文档的数据库.. 除了相互关联的数据之外,是否有类似的东西?
    • 我无法帮助您处理 rdbmses。通常为了同步这样的数据库,在数据库层的顶部还有另一层。我可以说 MySQL 复制根本不起作用。关于 couchDB,如果 map-reduce 可以处理您需要执行的查询,那么存储关系数据就不是问题。从备选方案中,阅读 BigTable 论文(或类似论文)以了解 google 如何处理数据中心之间的通信。你的系统看起来像全局缓存引擎——看看那些公司是如何处理这个问题的。
    【解决方案2】:

    有趣的问题 - 但它确实有助于获得更多背景信息。

    您谈论“数据”,这通常意味着具有相当明确的结构的东西,通常在关系数据库中实现。

    您还谈到了“内容”,这通常意味着具有(很多)不太明确的结构的东西,通常实现为某种类型的文档。存在许多用于构建“文档”的解决方案,例如文件系统或网站。

    假设我们谈论的是结构化数据,最简单的做法是拥有一个可随处访问的单一存储库。看看“云”产品——亚马逊是个不错的选择。创建您自己的全球数据存储库是一项艰巨的任务 - 但如果您正在处理高度机密的数据,或者有特定的性能要求,那么这可能是您的理想之选。

    如果这些选项都不起作用,那么您就处于“企业服务总线”的世界中。谷歌一下,但要小心 - 这是一个复杂的领域,你真的想找到一个知道他们在做什么的人。

    话虽如此,使用现成的 ESB 比构建自己的分布式数据结构要痛苦许多倍。

    【讨论】:

    • 查看我的更新。但是感谢您的回答,给了谷歌一个流行语! :) (一位同事主张推出我们自己的复制工具,将 XML-diffs 发送到也将由我们编写的服务器进程。这些服务器进程将处理更新其他数据库。)
    【解决方案3】:

    我知道这是在问了几年之后,但我一直在寻找同一个问题的答案,看起来 Cassandra 可能符合要求。设置完成后,它的外观和行为类似于其他数据库解决方案(表、视图、SQL、事务等),但它也可以完全分散。每个实例都充当其他 Cassandra 节点集群中的一个节点。他们在幕后同步,如果一个人倒下,其他人就会收拾残局。这使得 Cassandra 具有高度可扩展性和高度容错性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-12
      • 2011-08-12
      • 1970-01-01
      相关资源
      最近更新 更多