2011-03-17 70 views
1

我正在努力开发需要跨国家分布数据的应用程序。内容将按“每个地区”提供,但需要能够轻松复制到其他地区。最重要的是,我拥有需要在数据库之间共享和同步的一般信息。分布式数据库管理系统 - 替代方案?

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

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

开发这种分布式数据系统时有什么选择?

更新:

应该已经制定了(但我不知道我是多么能说给NDA)。我只想说,我有“内容”,我需要存储在一些空间(文件)。我需要存储有关分布在多个节点(可能由我们或其他人)托管的内容的元数据,以实现快节奏的通信和区域化的数据差异。我需要控制HOW数据在节点之间如何复制,但最好以符合标准的方式进行控制。 (最好不要写我们)

回答

0

有趣的问题 - 但它会真正有助于获得更多的上下文。

您谈论的是“数据”,通常意味着一些具有相当定义好的结构的东西,通常在关系数据库中实现。

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

假设我们正在谈论结构化数据,最简单的事情就是拥有一个存储库,可以随处访问。看看“云”产品 - 亚马逊是一个很好的选择。创建您自己的全球数据存储库是一项重大任务 - 但如果您要处理高度机密的数据,或者具有特定的性能要求,则可能需要继续。

如果这两个选项都不起作用,那么您就处于“企业服务总线”的世界。谷歌它,但要小心 - 这是一个复杂的领域,你真的想找人知道他们在做什么。尽管如此,使用现成的ESB比构建自己的分布式数据结构要少很多痛苦。

+0

查看我的更新。但谢谢你的回答,给了谷歌的口头禅!:)(一位同事主张将我们自己的复制工具发送给服务器进程,这些服务器进程也将由我们编写,这些服务器进程将处理更新其他数据库的工作。) – Max 2011-03-17 14:01:31

1

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

+0

嗯,是的,听起来很有趣!尽管我们是否可以使用面向文档的数据库,但我有点怀疑。有没有类似的东西,但相关的数据? – Max 2011-03-17 14:14:38

+0

我无法帮助您使用rdbmses。通常为了同步这样的数据块,db层上还有另一层。我可以告诉MySQL复制根本不起作用。关于couchDB,如果map-reduce可以处理需要执行的查询,那么存储关系数据就不成问题了。从其他选项中,阅读BigTable论文(或类似文章)以了解Google如何处理数据中心之间的通信。你的系统看起来像全局缓存引擎 - 看看这些公司如何处理这个问题。 – user425720 2011-03-20 14:47:13

0

我知道这是几年后问,但我正在查找同一问题的答案,它看起来像Cassandra可能符合法案。安装完成后,它看起来像其他数据库解决方案(表,视图,SQL,交易等)一样行事,但它也可以完全分散。每个实例都充当其他Cassandra节点集群中的一个节点。它们在幕后同步,如果一个人倒下,其他人就会捡起松弛的东西。这使得Cassandra具有高度可扩展性和高度容错性。