CouchDB 和 Couchbase 的区别 [英] Difference between CouchDB and Couchbase

查看:16
本文介绍了CouchDB 和 Couchbase 的区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

CouchDBCouchbase.

推荐答案

我觉得CouchDB和Couchbase Server有一些本质的区别需要指出.

I think there are some essential differences between CouchDB and Couchbase Server that need to be pointed out.

我不会写从 CouchDB 切换到 Couchbase 服务器的优点,因为这些几乎到处都有描述(参见 CouchDB 的未来 作者 Damien Katz 或Couchbase 与 Apache CouchDB由沙发基地).相反,我将尝试列举 您在 Couchbase 服务器中找不到的 CouchDB 功能.

I will not write about the advantages of switching from CouchDB to the Couchbase Server because those are described pretty much everywhere (see The Future of CouchDB by Damien Katz or Couchbase vs. Apache CouchDB by Couchbase). Instead, I will try to enumerate features of CouchDB that you will not find in the Couchbase Server.

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

All of the names relating to CouchDB and Couchbase can be really confusing, so I've updated this answer, to begin with a brief explanation of the most important ones.

有 CouchDB、CouchIO、CouchOne、Couchbase、Couchbase Server、Couchbase Mobile、Couchbase Lite、CouchApps、BigCouch、Touchbase、Membase、Memcached、MemcacheDB ......所有这些都不同,但在某种程度上并不明显.名字而已.

There is CouchDB, CouchIO, CouchOne, Couchbase, Couchbase Server, Couchbase Mobile, Couchbase Lite, CouchApps, BigCouch, Touchbase, Membase, Memcached, MemcacheDB... all different and yet related in a way not at all obvious from the names alone.

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

First, there was CouchDB, a database created by Damien Katz, a former IBM developer. Its official name was changed to Apache CouchDB after it became an Apache project.

成立了一家名为 CouchIO 的公司,致力于开发 Apache CouchDB,后来更名为 CouchOne(它的名称"是指公司名称,而不是数据库名称).

A company named CouchIO was founded to work on Apache CouchDB and later changed its name to CouchOne (by "its name" I mean the company name - not the database name).

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

CouchOne (formerly CouchIO) merged with Membase (formerly NorthScale) to form a new company called Couchbase. Membase (the company) developed Membase (a product of the same name). Membase was created by several leaders of the Memcached project and it used the Memcached protocol. After the merger of CouchOne and Membase, Couchbase continued the development of the Membase software and later changed its name to Couchbase Server.

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

Today I think most people believe that Couchbase Server is a new version of CouchDB but it is, in fact, a new version of Membase. It still uses the Memcached protocol and not the RESTful API of CouchDB. Meanwhile, CouchDB is still CouchDB, actively maintained and enhanced as an Apache project.

现在来看看相关的区别:

Now to the relevant differences:

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

The Couchbase Server is not entirely open-source/free software. There are two versions: Community Edition (free but no latest bug fixes) and Enterprise Edition (there are restrictions on usage, confidentiality provisions, audits by Couchbase Inc. that "will be conducted during regular business hours at Licensee's facilities" and other terms typical to proprietary software that many people may find unacceptable).

CouchDB 是 Apache 软件基金会的一个开源/免费软件(无附加条件)项目,并在 Apache 许可证,2.0 版(DFSG 兼容、FSF 批准、OSI 批准、GPL 兼容、非 copyleft、商业友好).

CouchDB is an open-source/free software (no strings attached) project of The Apache Software Foundation and is released under the Apache License, Version 2.0 (DFSG-compatible, FSF-approved, OSI-approved, GPL-compatible, non-copyleft, commercial-friendly).

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

I have never seen it directly pointed out but this may be actually the most important difference between those two databases because it is deeply about the underlying philosophy of distributed computing models and not only about certain features, APIs or licensing. CouchDB and the Couchbase Server completely differ in their philosophy of building distributed systems and databases.

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

According to the CAP theorem it is impossible for a distributed database to simultaneously provide consistency, availability and partition tolerance.

CouchDB 是一个AP 类型的系统(提供AvailabilityPartition tolerance).

CouchDB is an AP type system (provides Availability and Partition tolerance).

Couchbase ServerCP 类型系统(根据 Wikipedia) 或 CA 类型系统(根据 Couchbase 技术更新) - 哪些是正确的?请发表评论.

Couchbase Server is EITHER a CP type system (according to Wikipedia) OR a CA type system (according to Couchbase technical update) - WHICH OF THESE IS CORRECT? PLEASE COMMENT.

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

This is what I found to be a list of CouchDB features that are not supported by the Couchbase Server:

  • 没有 RESTful API(仅用于视图,不适用于 CRUD 操作)
  • 没有 _changes 提要
  • 没有点对点复制
  • 没有 CouchApps
  • 没有 蒲团(有不同的管理界面可用)
  • 没有 文档 ID
  • 没有数据库的概念(只有存储桶)
  • CouchDB 数据库和 Couchbase 服务器之间没有复制
  • 没有明确的附件(您必须将其他文件存储为新的键/值对)
  • 没有适用于所有内容的 HTTP API(您需要使用 Couchbase 服务器 SDK 或 Couchbase Develop 上的实验客户端库之一 所以没有用 curlwget)
  • 没有 CouchDB API(它使用 Memcached API)
  • 您无法从浏览器中完成所有操作(您必须编写服务器端应用程序)
  • Web 应用程序不可能有两层架构(您必须编写一个服务器端应用程序以位于浏览器和数据库之间,就像关系数据库一样)
  • 没有最终一致性
  • 并非完全开源/免费软件
  • 不是 CouchDB 的直接替代品(似乎是 Memcached 的直接替代品)
  • no RESTful API (only for views, not for CRUD operations)
  • no _changes feed
  • no peer-to-peer replication
  • no CouchApps
  • no Futon (there is a different administration interface available)
  • no document IDs
  • no notion of databases (there are only buckets)
  • no replication between a CouchDB database and Couchbase Server
  • no explicit attachments (you have to store additional files as new key/value pairs)
  • no HTTP API for everything (you need to use the Couchbase Server SDKs or one of the Experimental Client Libraries at Couchbase Develop so no experiments with curl and wget)
  • no CouchDB API (it uses the Memcached API instead)
  • you can't do everything from the browser (you have to write a server-side application)
  • no two-tier architecture for Web apps is possible (you have to write a server-side application to sit between the browser and the database, like with relational databases)
  • no eventual consistency
  • not entirely open-source/free software
  • not a drop-in replacement for CouchDB (seems like a drop-in replacement for Memcached instead)

CouchDB 的这些特性对你来说可能重要也可能不重要,因此缺少它们是否是劣势完全是主观的,但我认为是否从 CouchDB 切换到 Couchbase Server 的决定应该基于这些差异以及您在当前 CouchDB 部署中对这些功能的依赖.

Those features of CouchDB may or may not be important to you so whether the lack of them is a disadvantage or not is strictly subjective, but I think that the decision whether to switch from CouchDB to Couchbase Server or not should be based on those differences and your dependence on those feature in your current CouchDB deployments.

例如,如果您在观看 CouchDB 更改提要后对 CouchDB 感兴趣Mikeal Rogers 的 NodeCamp 演讲或 J. Chris Anderson 的优秀 CouchApp 教程之一,那么您必须意识到,如果您想切换到 Couchbase Server,那么您将不得不忘记他们所谈论的几乎所有内容.

For example if you've got interested in CouchDB after watching The CouchDB changes feed NodeCamp talk by Mikeal Rogers or one of the great CouchApp tutorials by J. Chris Anderson then you have to realize that if you want to switch to the Couchbase Server then you will have to forget about pretty much everything they were talking about.

因此,我会说 Couchbase Server 看起来像是 Memcached 和 Membase 的演变(而不是 CouchDB 的演变),因此,如果您当前使用 Memchached 或 Membase,它看起来像是一个很棒的产品.如果您以最基本的方式使用 CouchDB,那么您可以考虑将 Couchbase 服务器用于相同的事情,它可能会或可能不会更好地执行(如果您不介意许可证限制).但是,如果您实际上正在使用 CouchDB 中独特的任何功能(例如更改提要、CouchApps、两层架构、点对点复制等),那么您可以忘记这些功能或继续使用 CouchDB.无论如何,请务必阅读并理解 CouchDB 用户迁移到 Couchbase 教程.

Because of that, I would say that Couchbase Server looks like an evolution of Memcached and Membase (not an evolution of CouchDB) and as such it looks like a great product if you are currently using Memchached or Membase. If you are using CouchDB in the most basic way then you may consider using the Couchbase Server for the same things and it may or may not perform better (if you don't mind the license restrictions). But if you are actually using any of the features that are unique in CouchDB (like the changes feed, CouchApps, two-tier architecture, peer-to-peer replication etc.) then you can either forget about those features or stay with CouchDB. In any case, make sure to read and understand the Migration to Couchbase for CouchDB Users tutorial before you think about switching.

人们经常得到错误的印象(也许在阅读了 "CouchDB 的未来是什么?Couchbase.")CouchDB 不知何故被 Couchbase 服务器淘汰了,或者它是 Couchbase 的旧版本.同时 CouchDB 是一个积极维护的开源项目,Couchbase 服务器是一个完全独立的项目(它是一个较新的项目但它不是 CouchDB 的较新版本——它们甚至不兼容)并且因为用于创建 CouchApps 的新工具仍在不断开发中(例如,参见 Kanso 项目)那么 CouchDB 不会很快去任何地方.

People often get the wrong impression (maybe after reading things like "What's the future of CouchDB? It's Couchbase.") that CouchDB is somehow obsoleted by the Couchbase Server, or that it is an old, legacy version of Couchbase. Meanwhile CouchDB is an actively maintained open-source project, Couchbase server is a completely separate project (it is a newer project but it is not a newer version of CouchDB - they are not even compatible) and since even new tools for creating CouchApps still keep being developed (eg. see the Kanso project) then CouchDB is not going anywhere soon.

我希望它能澄清困惑.如果我在这里有任何错误,请纠正我.

I hope it clarifies the confusion. Please correct me if I'm wrong on anything here.

Couchbase Server 实际上是 Membase Server 的新名称(Membase Server 在 1.8 版左右重命名为 Couchbase Server).请参阅 Couchbase 2011 年回顾:

Couchbase Server is actually a new name for the Membase Server (the Membase Server was renamed to Couchbase Server somewhere around version 1.8). See Couchbase 2011 Year in Review:

很遗憾,我们把许多潜在用户弄糊涂了.除了 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 的版本". [强调]

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]

另见:

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆