gpt4 book ai didi

nosql - CouchDB 和 Couchbase 的区别

转载 作者:行者123 更新时间:2023-12-02 02:52:03 24 4
gpt4 key购买 nike

CouchDB之间是否有本质区别?和 Couchbase .

最佳答案

我认为需要指出 CouchDB 和 Couchbase Server 之间的一些本质区别。

我不会写从 CouchDB 切换到 Couchbase 服务器的优势,因为这些优势几乎无处不在(参见 Damien Katz 的 The Future of CouchDB
Couchbase vs. Apache CouchDB
通过沙发基地)。相反,我将尝试枚举 您在 Couchbase 服务器中找不到的 CouchDB 功能 .

所有与 CouchDB 和 Couchbase 相关的名称都可能令人困惑,因此我更新了这个答案,首先对最重要的名称进行简要说明。

名称和混淆

有 CouchDB、CouchIO、CouchOne、Couchbase、Couchbase Server、Couchbase Mobile、Couchbase Lite、CouchApps、BigCouch、Touchbase、Membase、Memcached、MemcacheDB ......所有这些都不同,但它们的相关性从名称上看并不明显。

首先是 CouchDB,这是一个由前 IBM 开发人员 Damien Katz 创建的数据库。在成为 Apache 项目后,它的正式名称更改为 Apache CouchDB。

成立了一家名为 CouchIO 的公司,致力于使用 Apache CouchDB,后来更名为 CouchOne(“它的名字”是指公司名称,而不是数据库名称)。

CouchOne(前身为 CouchIO)与 Membase(前身为 NorthScale)合并,组成了一家名为 Couchbase 的新公司。 Membase(公司)开发了 Membase(同名产品)。 Membase 是由 Memcached 项目的几位领导创建的,它使用了 Memcached 协议(protocol)。 CouchOne 和 Membase 合并后,Couchbase 继续开发 Membase 软件,后来更名为 Couchbase Server。

今天我想大多数人都认为 Couchbase Server 是 CouchDB 的新版本,但实际上它是 Membase 的新版本。它仍然使用 Memcached 协议(protocol),而不是 CouchDB 的 RESTful API。同时,CouchDB 仍然是 CouchDB,作为 Apache 项目积极维护和增强。

现在到相关差异:

许可

Couchbase 服务器不完全是 open-source/free software .有两个版本:社区版(免费但没有最新的错误修复)和企业版(有使用限制、保密规定、Couchbase Inc. 的审计“将在被许可人的设施的正常工作时间内进行”和 other terms许多人可能认为 Not Acceptable 专有软件的典型特征)。

CouchDB 是 Apache 软件基金会的一个开源/免费软件(无附加条件)项目,以 Apache License, Version 2.0 发布。 (DFSG 兼容、FSF 批准、OSI 批准、GPL 兼容、非 Copyleft、商业友好)。

哲学

我从来没有看到它直接指出,但这实际上可能是这两个数据库之间最重要的区别,因为它深入了解分布式计算模型的基本理念,而不仅仅是某些功能、API 或许可。 CouchDB 和 Couchbase Server 在构建分布式系统和数据库的理念上完全不同。

根据CAP theorem分布式数据库不可能同时提供一致性、可用性和分区容错性。

CouchDB 美联社 类型系统(提供 可用性 分区容差 )。

Couchbase 服务器 正品类型系统(根据 Wikipedia )或 CA 类型系统(根据 Couchbase technical update ) - 以下哪个是正确的?请给出意见。

特征

这是我发现的 Couchbase 服务器不支持的 CouchDB 功能列表:

  • RESTful API(仅用于 View ,不适用于 CRUD 操作)
  • _changes feed
  • peer-to-peer replication
  • CouchApps
  • Futon (有一个不同的管理界面可用)
  • document IDs
  • 没有数据库的概念(只有桶)
  • CouchDB 数据库和 Couchbase 服务器之间没有复制
  • 没有明确的附件(您必须将其他文件存储为新的键/值对)
  • 没有适用于所有内容的 HTTP API(您需要使用 Couchbase Server SDK 或 Couchbase Develop 处的实验客户端库之一,所以没有使用 curlwget 的实验)
  • 没有 CouchDB API(它使用 Memcached API 代替)
  • 你不能从浏览器做任何事情(你必须编写一个服务器端应用程序)
  • Web 应用程序不可能有两层架构(您必须编写一个服务器端应用程序以位于浏览器和数据库之间,就像关系数据库一样)
  • eventual consistency
  • 不完全open-source/free software
  • 不是 CouchDB 的直接替代品(似乎是 Memcached 的替代品)

  • CouchDB 的这些特性对你来说可能重要也可能不重要,所以缺乏它们是否是一个缺点是严格主观的,但我认为是否从 CouchDB 切换到 Couchbase Server 的决定应该基于这些差异和您当前的 CouchDB 部署中对这些功能的依赖。

    例如,如果您在观看 The CouchDB changes feed 后对 CouchDB 产生了兴趣Mikeal Rogers 的 NodeCamp 演讲或 J. Chris Anderson 的精彩 CouchApp 教程之一,那么您必须意识到,如果您想切换到 Couchbase 服务器,那么您将不得不忘记他们谈论的几乎所有内容。

    正因为如此,我会说 Couchbase Server 看起来像是 Memcached 和 Membase 的演变(不是 CouchDB 的演变),因此如果您目前正在使用 Memchached 或 Membase,它看起来是一个很棒的产品。如果您以最基本的方式使用 CouchDB,那么您可以考虑将 Couchbase Server 用于相同的事情,它可能会也可能不会表现得更好(如果您不介意许可证限制)。但是,如果您实际上正在使用 CouchDB 中独特的任何功能(例如更改源、CouchApps、两层架构、点对点复制等),那么您可以忘记这些功能或继续使用 CouchDB。
    无论如何,请务必阅读并理解 Migration to Couchbase for CouchDB Users在您考虑切换之前的教程。

    人们通常会产生错误的印象(可能是在阅读了 "What's the future of CouchDB? It's Couchbase." 之类的内容之后),认为 CouchDB 以某种方式被 Couchbase 服务器淘汰了,或者它是 Couchbase 的旧版本。同时 CouchDB是一个积极维护的开源项目,Couchbase 服务器是一个完全独立的项目(它是一个较新的项目,但它不是 CouchDB 的较新版本——它们甚至不兼容),因为即使是用于创建 CouchApps 的新工具仍在开发中(例如,参见 Kanso 项目)然后 CouchDB 不会很快去任何地方。

    我希望它能澄清混淆。如果我在这里有任何错误,请纠正我。

    更新:

    Couchbase Server 实际上是 Membase Server 的新名称(Membase Server 在 1.8 版左右重命名为 Couchbase Server)。见 Couchbase 2011 Year in Review :

    Unfortunately, we confused the heck out of many of our potential users. In addition to Membase Server and our new mobile products we also offered Couchbase Single Server which was a packaged “distribution” of Apache CouchDB. On top of that we began releasing developer previews of Couchbase Server 2.0, which incorporated CouchDB technology into Membase Server – but this product was not compatible with Couchbase Single Server (or CouchDB). [...] Membase Server will be renamed Couchbase Server 1.8 on its next release in January – a tiny step that simply alleviates “name” confusion. As has been planned from the beginning, the Couchbase Server 2.0 release (currently at Developer Preview 3) will add index and query functionality. While Couchbase Server 2.0 will incorporate substantial technology from the CouchDB project, it will not be upward compatible with CouchDB and it shouldn’t be viewed as a “version of CouchDB.” [emphasis added]



    也可以看看:
  • Comments to "The Future of CouchDB" by Damien Katz (2012 年移除 - available in the Web Archive)
  • Comments to "Why Couchbase?" by Damien Katz (2012 年移除 - available in the Web Archive)
  • Couchbase 2011 Year in Review
  • Membase Server is Now Couchbase Server
  • Couchbase technical update
  • Difference between Cloudant and CouchOne
  • 关于nosql - CouchDB 和 Couchbase 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5578608/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com