我一直在寻找云计算/存储解决方案很长一段时间(受Google Bigtable的启发)。但我找不到一个易于使用,业务就绪的解决方案。
我正在搜索一个简单的,容错的,分布式的Key => Value DB,就像亚马逊的SimpleDB一样。
我见过这样的话:
那里还有其他更好的解决方案吗?哪一个最好选择?哪一个提供最小量的SOF(单点故障)?
答案 0 :(得分:17)
memcached怎么样?
High Scalability博客涵盖了这个问题;如果有一个开源解决方案,你肯定会在那里。
其他项目包括:
答案 1 :(得分:7)
MongoDB是另一个与CouchDB非常相似的选项,但使用的查询语言与SQL非常相似,而不是JavaScript中的map / reduce。它还支持索引,查询分析,复制和存储二进制数据。
它有大量的文档,可能会一炮不响,所以我建议从Developer's tour开始
答案 2 :(得分:4)
维基百科说雅虎both contributes to Hadoop and uses it in production(article 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这样的东西,你不能超过HBase或Hypertable - 它们都是开源的Bigtable克隆。但要考虑的一件事是,如果您的要求对Bigtable来说真的“足够大”。它可以扩展到数千个平板电脑服务器,因此,它下面有相当多的基础设施来实现它(例如,处理常规节点故障的期望)。
如果您预计不会增加至少数十台平板电脑服务器,您可能需要考虑其中一个提议的替代方案:您不能为了简单而无法击败BerkelyDb,或者无处不在的MySQL。如果你需要的只是一个键/值数据存储区,你可以在数据库接口周围放一个简单的“dict”包装器,如果你的数据库接口超出了它,就可以切换出你的后端。
答案 5 :(得分:2)
你可能想看一下以谷歌的bigtable为模型的hypertable。
答案 6 :(得分:2)
使用CouchDB
答案 7 :(得分:1)
您可能想看看这个(使用MySQL作为键值存储):
答案 8 :(得分:0)
Cloudera是一家将Apache Hadoop商业化的公司,当然还有一些增值,如产品化,配置,培训和支持服务。
答案 9 :(得分:0)
为什么不直接使用bigtable,而不是寻找灵感来自 Google的大牌?您可以在Google App-Engine上编写前端。
答案 10 :(得分:0)
答案 11 :(得分:0)
Tokyo Cabinet也受到了一些关注,因为它支持表模式,键值对和哈希表。它使用Lua作为嵌入式脚本平台,并使用HTTP作为其通信协议。这是一个great demonstration。