35

我一直在寻找云计算/存储解决方案(灵感来自 Google Bigtable)。但我找不到一个易于使用、业务就绪的解决方案。

我正在搜索一个简单的、容错的、分布式的 Key=>Value DB,比如来自 Amazon 的 SimpleDB。

我见过这样的事情:

  1. CouchDB 项目:简单的分布式容错数据库。但它只理解 JSON。没有 XML 连接器等。
  2. Eucalyptus:不错的 Amazon EC2 接口。开放标准和 XML。但是分布式更少,容错性更差?还有很多 XEN/VMWare 问题的未解决问题。
  3. Cloudstore / Kosmosfs:很好的分布式、容错 fs。但是很难配置。有没有java连接器?
  4. Apache Hadoop:很好的系统,比存储数据的能力要强得多。使用自己的 Hadoop 分布式文件系统,并已在 2000 个节点的集群上进行测试。
  5. * Amazon SimpleDB:找不到开源替代品!对于海量数据来说,这是一个不错但昂贵的系统。你沉迷于亚马逊。

还有其他更好的解决方案吗?哪一个是最好的选择?哪一个提供最少的 SOF(单点故障)?

4

12 回答 12

17

内存缓存怎么样?

可扩展性博客涵盖了这个问题;如果有你所追求的开源解决方案,它肯定会在那里。

其他项目包括:

另一个不错的列表:Anti-RDBMS:分布式键值存储列表

于 2009-03-21T21:24:43.487 回答
7

MongoDB是另一个与 CouchDB 非常相似的选项,但使用与 SQL 非常相似的查询语言而不是 JavaScript 中的 map/reduce。它还支持二进制数据的索引、查询分析、复制和存储。

它有大量的文档,一开始可能会让人不知所措,所以我建议从开发者之旅开始

于 2009-04-06T07:25:28.217 回答
4

维基百科说,雅虎既为 Hadoop 做出了贡献,又在生产中使用它文章链接自维基百科)。所以我会说它对业务证明很重要,尽管我不确定它是否算作 K/V 值数据库。

使用MySQL 作为简单的无模式键/值存储的 Friendfeed 系统不在您的列表中。

我很难理解你的优先事项。CouchDB 简单、容错且分布式,但不知何故您将它排除在外,因为它没有 XML。XML 和 Java 连接器是未说明的要求吗?

(无论如何,CouchDB 实际上应该被排除在外,因为它还很年轻,它的 API 不稳定,而且它不是键值存储。)

于 2009-03-21T16:20:41.343 回答
4

我使用 Google 的Google Base api,它是 Xml、免费、文档化、基于云的,并且具有多种语言的连接器。如果您也想要免费托管,我认为它会满足您的需求。

现在,如果您想托管自己的服务器,东京机柜就是您的答案,它基于 key=>value,使用平面文件,并且是目前最快的数据库(与 Oracle 相比非常准系统,但非常擅长存储和访问数据,大约每秒 100 万条记录,大约 10 字节的开销(取决于存储引擎)。至于业务就绪,TokyoCabinet 是一项名为 Mixi 的服务的核心,它相当于日本的 Facebook+MyPage,拥有数百万重度用户,因此它实际上是经过实战证明的。

于 2009-03-22T02:08:58.683 回答
3

如果你想要 Bigtable 之类的东西,你不能超越HBaseHypertable——它们都是开源的 Bigtable 克隆。不过,要考虑的一件事是,您的要求是否真的对 Bigtable 来说“足够大”。它可以扩展到数千台平板服务器,因此,它下面有相当多的基础设施来实现这一点(例如,处理常规节点故障的预期)。

如果您预计至少不会增长到数十台平板电脑服务器,您可能需要考虑其中一种建议的替代方案:您不能因为简单而击败 BerkelyDb,或者因为无处不在而击败 MySQL。如果您只需要一个键/值数据存储,您可以在您的数据库接口周围放置一个简单的“dict”包装器,如果您的后端超出了一个,则可以关闭您的后端。

于 2009-03-27T21:58:09.410 回答
2

您可能想查看仿照 google 的 bigtable 的hypertable 。

于 2009-03-23T17:29:14.207 回答
2

使用 CouchDB

  • JSON有什么问题?
  • JSON 到 XML 很简单
于 2009-03-28T02:06:27.753 回答
1

您可能想看看这个(使用 MySQL 作为键值存储):

http://bret.appspot.com/entry/how-friendfeed-uses-mysql

于 2009-03-12T17:05:52.970 回答
0

Cloudera是一家将 Apache Hadoop 商业化的公司,当然还有一些附加值,比如产品化、配置、培训和支持服务。

于 2009-03-21T21:17:32.270 回答
0

而不是寻找受 Google 的 bigtable 启发的东西——为什么不直接使用 bigtable 呢?您可以在 Google App-Engine 上编写前端。

于 2009-03-23T18:04:54.197 回答
0

为您的问题精心汇编的存储工具:

http://www.metabrew.com/article/anti-rdbms-a-list-of-distributed-key-value-stores/

于 2009-11-28T05:35:32.420 回答
0

Tokyo Cabinet也受到了一些关注,因为它支持表模式、键值对和哈希表。它使用 Lua 作为嵌入式脚本平台,并使用 HTTP 作为其通信协议。这是一个很好的演示

于 2009-11-28T12:05:53.283 回答