CouchDBとCouchbaseの違い


270

間の本質的な違いがあるのCouchDBCouchbaseのは


45
名前について混乱していますか?私はから命名情報リミックスによって開始されたので、だから私は、だったこのトップの答えを命名履歴の可視化これらの答えのいずれかを理解する必要があり、。
Jeroen、2015

@Jeroenそれは素晴らしい視覚化です。それを編集してその上位の回答にする必要がありますか?
16

@shoover Thx、助けてくれてうれしい。それが十分に正確であるかどうかは完全には判断できないが、rsp(その回答の主な著者)/コミュニティがそれを価値があると判断した場合は、SOライセンスの下に自由に含めることができます。
Jeroen

回答:


555

CouchDBとCouchbase Serverの間には、指摘しなければならない本質的な違いがあると思います。

CouchDBからCouchbase Serverへの切り替えの利点についてはほとんどどこでも説明されているので、ここでは触れません(Damien KatzによるCouchDBの未来または CouchbaseとCouchbaseに よるApache CouchDBの比較を参照)。代わりに、Couchbase ServerにはないCouchDBの機能を列挙します

CouchDBとCouchbaseに関連するすべての名前は本当に混乱する可能性があるため、最も重要なものの簡単な説明から始めるために、この回答を更新しました。

名前と混乱

CouchDB、CouchIO、CouchOne、Couchbase、Couchbase Server、Couchbase Mobile、Couchbase Lite、CouchApps、BigCouch、Touchbase、Membase、Memcached、MemcacheDBなどがありますが、名前だけからは明らかではない方法で関連付けられています。

最初に、元IBM開発者のDamien Katzが作成したデータベースであるCouchDBがありました。その正式名称は、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の新しいバージョンです。それでも、CouchDBのRESTful APIではなく、Memcachedプロトコルを使用します。一方、CouchDBは引き続きCouchDBであり、Apacheプロジェクトとして積極的に維持および拡張されています。

次に、関連する違いについて説明します。

ライセンシング

Couchbase Serverは完全にオープンソース / フリーのソフトウェアではありません。2つのバージョンがあります:Community Edition(無料ですが、最新のバグ修正はありません)とEnterprise Edition(使用に関する制限、機密保持規定、Couchbase Inc.による監査があり、「ライセンシーの施設で通常の営業時間中に行われます」とその他の一般的な条件があります。多くの人々が受け入れられないかもしれない独占的なソフトウェアに)。

CouchDBは、Apache Software Foundationのオープンソース/無料ソフトウェア(文字列は添付されていません)プロジェクトであり、Apache License、Version 2.0(DFSG互換、FSF承認、OSI承認、GPL互換、非コピーレフトでリリースされています。、商業向け)。

哲学

直接指摘したことはありませんが、特定の機能、API、またはライセンスだけでなく、分散コンピューティングモデルの根本的な哲学に深く関わっているので、これは実際にはこれら2つのデータベースの最も重要な違いかもしれません。CouchDBとCouchbase Serverは、分散システムとデータベースを構築するという考え方が完全に異なります。

CAPの定理によれば、分散データベースが一貫性、可用性、パーティション許容度を同時に提供することは不可能です。

CouchDBAPタイプのシステムです(可用性パーティションの許容範囲を提供します)。

Couchbase Serverは、CPタイプシステム(Wikipediaによる)またはCAタイプシステム(Couchbaseテクニカルアップデートによる)のどちらかです。どちらが正しいですか。コメントしてください。

特徴

これは、Couchbase ServerでサポートされていないCouchDB機能のリストであることがわかりました。

  • ノーRESTfulな API(唯一のビューのではなく、CRUD操作のため)
  • ノーフィードを_changes
  • ノーピア・ツー・ピア・レプリケーション
  • CouchApps
  • 布団なし(別の管理インターフェースが利用可能です)
  • ノー文書ID
  • データベースの概念なし(バケットのみあります)
  • CouchDBデータベースとCouchbase Server間のレプリケーションはありません
  • 明示的な添付ファイルなし(追加のファイルを新しいキー/値のペアとして保存する必要があります)
  • すべてに対してHTTP APIはありません(Couchbase Server SDKまたはCouchbase Developの試験的なクライアントライブラリの1つを使用する必要があるため、curlwgetを使用した実験はありません)
  • CouchDB APIなし(代わりにMemcached APIを使用)
  • ブラウザからすべてを行うことはできません(サーバー側アプリケーションを作成する必要があります)
  • Webアプリの2層アーキテクチャーは不可能です(リレーショナルデータベースの場合と同様に、ブラウザーとデータベースの間にサーバー側アプリケーションを作成する必要があります)
  • なし最終的な一貫性
  • 完全にオープンソース / フリーソフトウェアではない
  • CouchDBのドロップイン置換ではありません(代わりにMemcachedのドロップイン置換のようです)

CouchDBのこれらの機能は、ユーザーにとって重要である場合とそうでない場合があるため、それらの欠如が不利益であるかどうかは厳密に主観的ですが、CouchDBからCouchbase Serverに切り替えるかどうかの決定は、それらの違いと現在のCouchDBデプロイメントにおけるそれらの機能への依存。

たとえば、CouchDBの変更フィード Mikeal RogersによるNodeCampトーク、またはJ. Chris Andersonによる素晴らしいCouchAppチュートリアルの1つを見た後でCouchDBに興味がある場合は、Couchbase Serverに切り替えたい場合は、彼らが話していたほとんどすべてを忘れなければならないでしょう。

そのため、Couchbase ServerはMemcachedとMembaseの進化(CouchDBの進化ではない)のように見えるため、現在MemchachedまたはMembaseを使用している場合は優れた製品のように見えます。CouchDBを最も基本的な方法で使用している場合は、同じ目的でCouchbase Serverを使用することを検討してください(ライセンスの制限を気にしない場合)。ただし、実際にCouchDBに固有の機能(変更フィード、CouchApps、2層アーキテクチャー、ピアツーピアレプリケーションなど)を使用している場合は、それらの機能を忘れるか、CouchDBを使い続けることができます。いずれの場合でも、切り替えを考える前に、CouchDBユーザー向けのCouchbaseへ移行のチュートリアルを読んで理解してください。

「CouchDBの未来は何か?それはCouchbaseです。」などを読んだ後、CouchDBがCouchbase Serverによって何らかの形で廃止されている、またはCouchbaseの古いレガシーバージョンであるという印象をよく受けます。一方、CouchDBはアクティブに維持されているオープンソースプロジェクトであり、Couchbaseサーバーは完全に別のプロジェクトです(これは新しいプロジェクトですが、CouchDBの新しいバージョンではありません-互換性さえありません)。開発中(たとえばKansoプロジェクトを参照)、CouchDBはすぐには機能しません。

それが混乱を明確にすることを願っています。ここで何か間違っている場合は修正してください。

更新:

Couchbase Serverは実際にはMembase Serverの新しい名前です(Membase Serverはバージョン1.8前後のどこかでCouchbase Serverに名前が変更されました)。Couchbase 2011 Year in Reviewをご覧ください。

残念ながら、私たちは潜在的なユーザーの多くを混乱させました。Membaseサーバーと新しいモバイル製品に加えて、Apache CouchDBの「配布」パッケージであるCouchbaseシングルサーバーも提供しました。さらに、CouchDBテクノロジーをMembaseサーバーに組み込んだCouchbase Server 2.0の開発者向けプレビューのリリースを開始しましたが、この製品はCouchbase Single Server(またはCouchDB)と互換性がありませんでした。[...] Membase Serverは、1月の次のリリースでCouchbase Server 1.8に名前が変更されます。これは、「名前」の混乱を軽減する小さなステップです。当初から計画されていたように、Couchbase Server 2.0リリース(現在はDeveloper Preview 3)では、インデックスとクエリ機能が追加されます。Couchbase Server 2.0にはCouchDBプロジェクトの重要なテクノロジーが組み込まれますが、CouchDBとの上位互換性がないため、「CouchDBのバージョン」と見なすべきではありません。【強調追加】

以下も参照してください。


69
ブラボー。この側面を実際に説明している何かを見てうれしいです(リストにあるように、既存のすべての比較には顕著なCouchbaseバイアスがあります)。
スチュアートP.ベントレー

6
@WalterTross:実際にはCouchDB APIを使用していない、RESTfulでない、HTTPを使用していない、ということはまったく同じではありません。たとえば、RiakはCouchDB APIを使用していませんが、RESTful APIを使用しています。また、RESTを使用せずにHTTP(SOAPやその他のWebサービスなど)を使用する場合もあります。ここで私は、CouchbaseサーバーがCouchDB APIを使用していないだけでなく、そのAPIがRESTfulではなく、HTTPをまったく使用していないことを明確にしたいと思いました。
rsp 2013

24
これが答えだと思います。ありがとう。
2013年

10
「CP vs CA」の質問について:簡単に言えば、1台のマシンについて話しているのでない限り、「CA」システムを持つことは不可能です。ネットワークには常にパーティションがあり(aphyr.com/posts/288-the-network-is-reliable)、分散システムはいつでも、トレードオフで利用可能または一貫性のどちらかになります。パーティション(両方ではありません)。したがって、誘導によってCouchbaseはCPになります。実際、これは、a)1:nマスター/スレーブまたはb)1..nチェーンベースの、またはDynamo(AP)をモデルとするシステムなどのvBucketsの背後にあるレプリケーション戦略に基づいています。
Greg Burd、2014年

9
今日の時点で、この記事に非常に重要な追加がありました:Couchbase SyncGateway。これは基本的に、CouchDBをAPI互換レベルでCouchbaseに複製する部分であり、CouchDBはSyncGatewayを介してCouchbaseで複製できます。これは、Couchbase Liteの観点から非常に重要です。これは、(一部の例外的なケースを除いて)CouchDBとの同期からSyncGatewayとの同期にシームレスに切り替えることができます
Leonid Usov

39

それらは異なるが類似したソフトウェアです。上位の回答のコンテンツを、「違い」や一般的なことを明確にするのに役立つ画像に再構成しました。

上記の他の回答は、この画像の詳細な説明です

Matt Ingenthronからのコメントはこれに追加します:

コンテキスト/修正を追加するには:NorthScaleの創設者はSteve YenとDustin Sallingsです。創業して間もなく参加しました。また、Damienは後にCouchbaseに参加せず、合併前はCouchIO / Couch Oneのメンバーでした。楽しく歴史的な情報源:https : //youtube.com/watch?v=aZ_JOnU8tkI


4
それは非常に役立つ情報グラフィックです!
Zach Smith

3
コンテキスト/修正を追加するには:NorthScaleの創設者はSteve YenとDustin Sallingsです。創業して間もなく参加しました。また、Damienは後にCouchbaseに参加せず、合併前はCouchIO / Couch Oneのメンバーでした。楽しい歴史的な出典を引用:youtube.com/watch
v=aZ_JOnU8tkI

1
@MattIngenthron Thxの更新。私は答えであなたの発言をスリップストリームしました、私がそれに応じてフローチャートを微調整するかもしれない時間を見つけたら。
Jeroen、

1

CouchBaseは、CouchDBの「エンタープライズ」の代替として認識されているように思えます。これはある意味で本当のようです。CouchDBと比較して、ファイルをレコード(ドキュメント)に添付する機能と「すぐに使える」RESTエンドポイントが不足していることを除けば、CouchBaseにはSQLのような言語、つまりN1QL(時々Nickelと発音される)があります。これが、私が「NoSQL」という用語の使用を本当に好まない/推奨しない理由の1つです。私は個人的に「非リレーショナル」という言葉が好きです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.