关于nosql:CouchDB和Couchbase之间的区别

Difference between CouchDB and Couchbase

CouchDB和Couchbase之间是否存在任何本质区别。


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

我不会谈到从CouchDB切换到Couchbase服务器的优势,因为这些几乎无处不在(请参阅Damien Katz的CouchDB的未来或
Couchbase与Apache CouchDB
通过Couchbase)。相反,我将尝试枚举您在Couchbase服务器中找不到的CouchDB功能。

所有与CouchDB和Couchbase相关的名称都可能令人困惑,所以我更新了这个答案,首先简要介绍一下最重要的答案。

名字和混乱

有CouchDB,CouchIO,CouchOne,Couchbase,Couchbase服务器,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协议。在CouchOne和Membase合并之后,Couchbase继续开发Membase软件,后来更名为Couchbase Server。

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

现在来看相关的差异:

许可

Couchbase Server不是完全开源/免费软件。有两个版本:社区版(免费但没有最新的错误修复)和企业版(对使用,保密规定,Couchbase Inc.的审核"将在被许可方设施的正常工作时间内进行"和其他典型术语的限制)许多人可能认为不可接受的专有软件。

CouchDB是Apache Software Foundation的开源/免费软件(无附加条件)项目,并在Apache许可证2.0版本下发布(DFSG兼容,FSF认证,OSI认证,GPL兼容,非Copyleft ,商业友好)。

哲学

我从未直接指出它,但实际上这可能是这两个数据库之间最重要的区别,因为它深深地关注分布式计算模型的基本理念,而不仅仅是关于某些特性,API或许可。 CouchDB和Couchbase Server在构建分布式系统和数据库的理念上完全不同。

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

CouchDB是一种AP类型系统(提供可用性和分区容差)。

Couchbase Server是一个CP类型系统(根据维基百科)或CA类型系统(根据Couchbase技术更新) - 这些是正确的吗?请评论。

特征

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

  • 没有RESTful API(仅适用于视图,不适用于CRUD操作)
  • 没有_改变饲料
  • 没有点对点复制
  • 没有CouchApps
  • 没有被褥(有不同的管理界面可用)
  • 没有文件ID
  • 没有数据库的概念(只有桶)
  • CouchDB数据库和Couchbase服务器之间没有复制
  • 没有明确的附件(您必须将其他文件存储为新的键/值对)
  • 没有HTTP API适用于所有内容(您需要使用Couchbase Server SDK或Couchbase Develop中的一个实验客户端库,因此不需要使用curl和wget进行实验)
  • 没有CouchDB API(它使用Memcached API代替)
  • 你不能从浏览器做任何事情(你必须编写服务器端应用程序)
  • 没有Web层应用程序的双层架构(你必须编写一个服务器端应用程序来放置在浏览器和数据库之间,就像关系数据库一样)
  • 没有最终的一致性
  • 不完全是开源/免费软件
  • 不是CouchDB的直接替代品(看起来像是Memcached的直接替代品)
  • CouchDB的这些功能对你来说可能是重要的,也可能不重要,所以缺乏它们是否是一个缺点是严格主观的,但我认为是否从CouchDB切换到Couchbase Server的决定应该基于这些差异和您在当前CouchDB部署中对这些功能的依赖。

    例如,如果您在观看CouchDB后更改了CouchDB,那么Mikeal Rogers改变了Feed NodeCamp的讲话,或者来自J. Chris Anderson的一个很棒的CouchApp教程,那么你必须意识到,如果你想切换到Couchbase服务器,那么你将不得不忘记他们谈论的几乎所有事情。

    因此,我会说Couchbase Server看起来像是Memcached和Membase的演变(不是CouchDB的演变),因此如果你目前使用的是Memchached或Membase,它看起来就像是一个很棒的产品。如果您以最基本的方式使用CouchDB,那么您可以考虑将Couchbase服务器用于相同的事情,它可能会或可能不会更好(如果您不介意许可限制)。但是,如果您实际使用CouchDB中独有的任何功能(如更改提要,CouchApps,双层体系结构,对等复制等),那么您可以忘记这些功能或者使用CouchDB。
    在任何情况下,在考虑切换之前,请务必阅读并理解"迁移到Couchbase for CouchDB用户"教程。

    人们经常会得到错误的印象(也许在阅读了"CouchDB的未来是什么?它是Couchbase。"之后),CouchDB在某种程度上被Couchbase Server淘汰了,或者它是Couchbase的旧版本。同时CouchDB是一个积极维护的开源项目,Couchbase服务器是一个完全独立的项目(它是一个较新的项目,但它不是CouchDB的新版本 - 它们甚至不兼容),因为甚至创建CouchApps的新工具仍然保持不变正在开发中(例如,参见Kanso项目),CouchDB不会很快到来。

    我希望它澄清了这种混乱。如果我在这里做错了,请纠正我。

    更新:

    Couchbase Server实际上是Membase Server的新名称(Membase Server在1.8版本左右重命名为Couchbase Server)。参见Couchbase 2011年度回顾:

    不幸的是,我们混淆了许多潜在用户。除了Membase Server和我们的新移动产品,我们还提供了Couchbase Single Server,它是Apache CouchDB的打包"发行版"。最重要的是,我们开始发布Couchbase Server 2.0的开发者预览,其中将CouchDB技术整合到Membase Server中 - 但该产品与Couchbase Single Server(或CouchDB)不兼容。 [...] Membase Server将在1月份的下一个版本中重命名为Couchbase Server 1.8 - 这一小步骤可以简化"名称"的混乱。正如从一开始就计划的那样,Couchbase Server 2.0版本(目前在开发人员预览版3中)将添加索引和查询功能。虽然Couchbase Server 2.0将采用CouchDB项目的大量技术,但它不会与CouchDB向上兼容,也不应被视为"CouchDB版本"。[强调添加]

    也可以看看:

  • Damien Katz对"CouchDB的未来"的评论(2012年删除 - 可在网上档案中找到)
  • 评论"为什么Couchbase?" 作者Damien Katz(2012年删除 - 可在网上档案中找到)
  • Couchbase 2011年度回顾
  • Membase Server现在是Couchbase Server
  • Couchbase技术更新
  • Cloudant和CouchOne之间的区别
  • 好。


    我们已经更详细地写了CouchDB和Couchbase之间的关系。简而言之,Couchbase Server采用了CouchDB所有耐用的NoSQL优点,并为它提供了memcache结霜的清晰硬边。

    如果您是NoSQL的新手,基本上,您将JSON存储在Couchbase中。它非常快,可以扩展到您可能看到的大量流量负载。

    与关系数据库一样,它可以在您需要时为您提供存储的内容。耶的数据库!

    与关系数据库不同,您不必先预先指定要存储的内容,而只需存储它(如果您使用的是memcached,我们会进行直接升级),我们会帮助您稍后对其进行排序。


    它们是不同但相似的软件。我已经将顶部答案中的内容重新混合成了一张可能有助于澄清"差异"以及常见事物的图片:

    the other answer linked above is an extended description of this image

    Matt Ingenthron的评论补充说:

    To add some context/corrections: NorthScale founders are Steve Yen and Dustin Sallings. I joined them shortly after founding. Also, Damien didn't later join Couchbase, he was part of CouchIO/Couch One prior to the merger. Citing a fun, historical source: https://youtube.com/watch?v=aZ_JOnU8tkI