rsp*_*rsp 526
我认为需要指出CouchDB和Couchbase Server之间存在一些本质区别.
我不会谈到从CouchDB切换到Couchbase服务器的优势,因为几乎所有地方都有这些优点(参见Damien Katz 的CouchDB的未来或 Couchbase的Couchbase与Apache CouchDB ).相反,我将尝试枚举您在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功能列表:
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 Server以同样的事情,它可能会或可能不会有更好的表现(如果你不介意的许可限制).但是,如果您实际使用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的服务器的开发者预览-但这个产品不符合Couchbase单个服务器(或CouchDB的)兼容.[...] Membase Server将在1月份的下一个版本中重命名为Couchbase Server 1.8 - 这一小步骤可以简化"名称"的混乱.正如从一开始就计划的那样,Couchbase Server 2.0版本(目前在开发人员预览版3中)将添加索引和查询功能.虽然Couchbase Server 2.0将采用CouchDB项目的大量技术,但它不会与CouchDB向上兼容,也不应被视为"CouchDB版本". [强调添加]
J C*_*s A 58
我们已经更详细地写了CouchDB和Couchbase之间的关系.简而言之,Couchbase Server采用了CouchDB所有耐用的NoSQL优点,并为它提供了memcache结霜的清晰硬边.
如果您是NoSQL的新手,基本上,您将JSON存储在Couchbase中.它非常快,可以扩展到您可能看到的大量流量负载.
与关系数据库一样,它可以在您需要时为您提供存储的内容.耶的数据库!
与关系数据库不同,您不必先预先指定要存储的内容,而是可以存储它(如果您使用的是memcached,我们是一个直接升级),我们将帮助您稍后对其进行排序.
Jer*_*oen 31
它们是不同但相似的软件.我已经将顶部答案中的内容重新混合成了一张图片,可能有助于澄清"差异"以及常见的事物:
Matt Ingenthron的评论补充说:
添加一些背景/更正:NorthScale的创始人是Steve Yen和Dustin Sallings.我在创立后不久加入了他们.此外,达米恩后来没有加入Couchbase,他在合并前是CouchIO/Couch One的一员.引用有趣的历史资料来源:https://youtube.com/watch?v = aZ_JOnU8tkI