Couchbase Server并非完全开源/免费软件。它有两个版本:社区版(免费但没有最新的错误修复)和企业版(有使用限制、保密条款、Couchbase公司进行审核,“将在执照持有者的设施内在常规工作时间进行”以及其他专有软件的典型条款,许多人可能无法接受)。
CouchDB是Apache软件基金会的开源/自由软件(没有任何附加条件),并且根据Apache许可证2.0版发布(DFSG兼容,FSF批准,OSI批准,GPL兼容,非版权,商业友好)。
我从未直接指出过,但这可能实际上是这两个数据库之间最重要的区别,因为它深刻关乎分布式计算模型的基础哲学,而不仅仅是某些特性、API或许可证。CouchDB和Couchbase Server在构建分布式系统和数据库的哲学上有很大区别。
根据CAP定理,一个分布式数据库同时提供一致性、可用性和分区容错性是不可能的。
CouchDB 是一个 AP 类型系统(提供可用性和分区容错性)。
Couchbase Server 要么是一个CP类型系统(根据 维基百科),要么是一个CA类型系统(根据 Couchbase技术更新)- 哪种是正确的?请留言评论。
这些CouchDB的功能对你是否重要取决于主观因素,所以它们的缺失是否是一个劣势严格来说是主观的,但我认为,从CouchDB切换到Couchbase Server或不应该基于这些差异以及你在当前CouchDB部署中对这些功能的依赖。
例如,如果你在看了Mikeal Rogers的The CouchDB changes feed NodeCamp演讲或J. Chris Anderson的一些很棒的CouchApp教程后对CouchDB产生了兴趣,那么你必须意识到,如果你想切换到Couchbase Server,那么你将不得不忘掉他们所谈论的几乎所有内容。
由此可以看出,我认为Couchbase Server看起来更像是Memcached和Membase的进化版本(而不是CouchDB的进化版本),因此如果您目前使用的是Memchached或Membase,则它看起来是一个很好的产品。如果您只是以最基本的方式使用CouchDB,那么您可以考虑使用Couchbase Server来完成相同的事情,也许它会表现得更好(如果您不介意许可证限制)。但是,如果您实际上正在使用CouchDB中独特的任何功能(例如更改提要、CouchApps、双层架构、点对点复制等),那么您可以忘记这些功能或继续使用CouchDB。 无论如何,在考虑切换之前,请务必阅读并理解迁移到Couchbase for CouchDB Users教程。它们是不同但相似的软件。我将顶级答案的内容混合成一张图片,可能有助于澄清“差异”以及共同点:
来自Matt Ingenthron的评论补充了这个内容:
为了增加一些上下文/修正:NorthScale的创始人是Steve Yen和Dustin Sallings。我在成立后不久加入了他们。此外,Damien并没有后来加入Couchbase,他之前是CouchIO/Couch One的一部分,在这里引用一个有趣的历史来源:https://youtube.com/watch?v=aZ_JOnU8tkI
我认为CouchBase似乎被视为CouchDB的“企业”替代品,这在某种程度上似乎是正确的。 除了无法将文件附加到记录(文档)和与CouchDB相比缺少“即用型”REST端点之外,CouchBase具有类似于SQL的语言,即N1QL(有时发音为Nickel,在Couchbase 7.0中重命名为SQL ++)。 这是我不太喜欢/推荐使用“NoSQL”这个术语的原因之一。我个人更喜欢术语“非关系型”。