是否有经过商业验证的云存储/ Key =>价值数据库? (开源)

时间:2009-03-12 17:01:57

标签: open-source amazon-ec2 cloud key-value

我一直在寻找云计算/存储解决方案很长一段时间(受Google Bigtable的启发)。但我找不到一个易于使用,业务就绪的解决方案。

我正在搜索一个简单的,容错的,分布式的Key => Value DB,就像亚马逊的SimpleDB一样。

我见过这样的话:

  1. The CouchDB Project:简单且分布式,容错的数据库。但它只能理解JSON。没有XML连接器等。
  2. Eucalyptus:不错的Amazon EC2接口。开放标准& XML。但分布较少,容错性较差? XEN / VMWare问题也有很多打开的门票。
  3. Cloudstore / Kosmosfs:分布式,容错的fs。但配置起来很困难。有没有java连接器?
  4. Apache Hadoop:很好的系统,可以存储数据的能力。使用自己的Hadoop分布式文件系统,并在具有2000个节点的集群上进行测试。
  5. * Amazon SimpleDB:无法找到开源替代品!对于大量数据来说,这是一个不错但价格昂贵的系统。你沉迷于亚马逊。
  6. 那里还有其他更好的解决方案吗?哪一个最好选择?哪一个提供最小量的SOF(单点故障)?

12 个答案:

答案 0 :(得分:17)

memcached怎么样?

High Scalability博客涵盖了这个问题;如果有一个开源解决方案,你肯定会在那里。

其他项目包括:

另一个好的清单:Anti-RDBMS: A list of distributed key-value stores

答案 1 :(得分:7)

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

它有大量的文档,可能会一炮不响,所以我建议从Developer's tour开始

答案 2 :(得分:4)

维基百科说雅虎both contributes to Hadoop and uses it in productionarticle linked from wikipedia)。所以我认为这很适合经过业务验证,但我不确定它是否算作K / V值数据库。

不在列表中的是使用MySQL as a simple schema-less key/value store的Friendfeed系统。

我很难理解你的优先事项。 CouchDB很简单,容错,并且是分布式的,但不知怎的,你排除了它,因为它没有XML。 XML和Java连接器是否是未说明的要求?

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

答案 3 :(得分:4)

我使用Google的Google Base api,它是Xml,免费,文档化,基于云,并且具有多种语言的连接器。如果您想要免费托管,我认为这将填补您的账单。

现在,如果您想托管自己的服务器Tokyo cabinet是您的答案,其密钥=>基于值,使用平面文件,并且是目前最快的数据库(与Oracle相比,非常简陋,但非常擅长存储和访问数据,每秒约100万条记录,大约10字节的开销(取决于存储引擎))。至于商业准备,TokyoCabinet是一项名为Mixi的服务的核心,它相当于日本的Facebook + MyPage,拥有数百万重量级用户,所以它实际上已经过战斗验证。

答案 4 :(得分:3)

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

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

答案 5 :(得分:2)

你可能想看一下以谷歌的bigtable为模型的hypertable

答案 6 :(得分:2)

使用CouchDB

  • JSON有什么问题?
  • JSON to XML很简单

答案 7 :(得分:1)

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

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

答案 8 :(得分:0)

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

答案 9 :(得分:0)

为什么不直接使用bigtable,而不是寻找灵感来自 Google的大牌?您可以在Google App-Engine上编写前端。

答案 10 :(得分:0)

答案 11 :(得分:0)

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