【问题标题】:Is there a business proven cloud store / Key=>Value Database? (Open Source) [closed]是否有经过业务验证的云存储/Key=>Value 数据库? (开源)[关闭]
【发布时间】:2010-10-12 23:28:07
【问题描述】:

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

我正在搜索一个简单、容错、分布式的 Key=>Value DB,例如来自 Amazon 的 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:找不到开源替代品!对于海量数据来说,这是一个不错但昂贵的系统。而且你沉迷于亚马逊。

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

【问题讨论】:

  • 也许 Berkeley DB,您可以进行复制。
  • 警告:我正在考虑将 Hadoop 的 HDFS 用于需要分布式文件系统的项目。在我发现他们仍然没有弄清楚高可用性之后,我立即放弃了这个想法——HDFS namenode 机器是一个没有定义故障转移机制的单点故障..
  • SimpleDB 有一个开源插件兼容替代方案,称为 M/DB:gradvs1.mgateway.com/main/index.html?path=mdb
  • 恭喜,你现在有 2013 个代表,2013 年新年快乐 :)

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 更正:Hypertable 是 C++
      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

        使用 CouchDB

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

        【讨论】:

          【解决方案6】:

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

          【讨论】:

          • 他说他希望它是开源的,并且对于大数据集的成本限制可能与亚马逊的 simpleDB 相同。
          【解决方案7】:

          你可能想看看hypertable,它是仿照 google 的 bigtable。

          【讨论】:

            【解决方案8】:

            memcached怎么样?

            High Scalability 博客涵盖了这个问题;如果有适合您所追求的开源解决方案,它肯定会在那里。

            其他项目包括:

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

            【讨论】:

            • 它只提供内存持久性!如果您想在集群中存储比可用 RAM 更多的东西,那就太糟糕了。
            • 是的,但也有 memcachedb 和其他类似的解决方案提供真正的数据库实现 + 缓存。和project-voldemort.com。简而言之,HS 博客涵盖了所有这些系统,因此您要么在那里找到它,要么找不到;)
            【解决方案9】:

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

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

            【讨论】:

            • 在 wikipedia (en.wikipedia.org/wiki/Mixi) 我可以读到 Mixi 使用了数百个 MySQL 服务器。他们两者都用还是*错了?
            • 我希望 Hazlecast 的人也改进他们的数据库(平面文件等)。Tokio Tryant/Tokio Cabinet 是主/从或主/备用集群。那不是真正的云方法;(
            【解决方案10】:

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

            【讨论】:

              【解决方案11】:

              *说雅虎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 不稳定,而且它不是键值存储。)

              【讨论】:

              • 如果您在谈论可并行化的分布式操作和容错,那么速度并不是必然的杀手锏。
              • 另外,我只想说我是多么的震惊和自豪,因为我在第一次尝试时就得到了我的它和我的它。
              • CouchDB 也应该被排除在外,因为它“仅适用于摇滚明星”:p
              【解决方案12】:

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

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

              【讨论】:

              • MySQL 无法满足我的需求,因为它不是真正分布式的、容错的,并且主要具有很大的 SOF。 Key=>Value 平面文件存储库可能比 mysql 好得多(表大小等)
              • 在文章中,您可以看到他们正在以分布式非 SOF 方式使用 MySQL 集群。嘿,也许平面文件更适合您的问题集,但我建议考虑一下 Friendfeed 和其他人正在做什么。
              最近更新 更多