web-dev-qa-db-ja.com

CouchDBとCouchbaseの違い

CouchDBCouchbase の間に本質的な違いはありますか。

251
yojimbo87

CouchDBとCouchbaseの関係 について詳しく説明しました。一言で言えば、 Couchbase Server は、CouchDBの歯ごたえのあるNoSQLの長所をすべて引き継ぎ、memcacheのフロストの鮮明なハードエッジを提供します。

基本的に、NoSQLを初めて使用する場合は、JSONをCouchbaseに保存します。それは非常に高速で、 あなたが見そうなトラフィックの負荷に合わせてスケールアップできます

リレーショナルデータベースのように、必要なときに保存したものを返します。 はいデータベース!

リレーショナルデータベースとは異なり、保存するものを事前に指定する代わりに、保存するだけで(memcachedを使用している場合はドロップインアップグレードです)、後で整理するのに役立ちます。

59
J Chris A

CouchDBとCouchbase Serverの間には、指摘する必要のある本質的な違いがあると思います。

CouchDBからCouchbase Serverに切り替えることの利点については、ほとんどどこでも説明されているため、書きません(Damien Katzによる The Future of CouchDB または Couchbase vs. 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の新しいバージョンであると信じていると思いますが、実際には、Mouchbaseの新しいバージョンです。 CouchDBのRESTful APIではなく、Memcachedプロトコルを引き続き使用します。一方、CouchDBはまだCouchDBであり、Apacheプロジェクトとして積極的に維持および強化されています。

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

免許

Couchbase Serverは完全に open-source / free software ではありません。 2つのバージョンがあります。CommunityEdition(無料ですが最新のバグ修正はありません)とEnterprise Edition(使用法、機密保持条項、Couchbase Inc.による監査があり、「ライセンシーの施設で通常の営業時間中に行われます」と 他の用語 多くの人々が容認できないと感じるかもしれないプロプライエタリなソフトウェアに典型的)。

CouchDBは、Apache Software Foundationのオープンソース/フリーソフトウェア(文字列なし)プロジェクトであり、 Apacheライセンス、バージョン2.0 (DFSG互換、FSF承認、OSI -承認済み、GPL互換、非コピーレフト、商用向け)。

哲学

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

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

CouchDBAP型システムです(可用性およびパーティション許容値を提供)。

Couchbase ServerはいずれかCP型システム( Wikipedia による)OR aCAtype system( Couchbase technical update による)-これらのIS正しいのはどれですか?コメントしてください。

特徴

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

  • no RESTful API(ビューのみ、CRUD操作は不可)
  • いいえ _ changes feed
  • いいえ ピアツーピアレプリケーション
  • いいえ CouchApps
  • no Futon (利用可能な別の管理インターフェイスがあります)
  • いいえ ドキュメントID
  • データベースの概念はありません(バケットのみがあります)
  • couchDBデータベースとCouchbase Serverの間のレプリケーションはありません
  • 明示的な添付ファイルなし(追加のファイルを新しいキー/値ペアとして保存する必要があります)
  • すべてのHTTP APIはありません( Couchbase Develop でCouchbase Server SDKまたはExperimental Client Librariesのいずれかを使用する必要があるため、 curl および wget
  • couchDB APIなし(代わりに Memcached APIを使用します)
  • ブラウザからすべてを行うことはできません(サーバー側のアプリケーションを作成する必要があります)
  • webアプリの2層アーキテクチャは使用できません(リレーショナルデータベースの場合のように、ブラウザとデータベースの間に配置するサーバー側アプリケーションを作成する必要があります)
  • いいえ 結果整合性
  • 完全ではない オープンソース / フリーソフトウェア
  • couchDBのドロップイン置換ではありません(代わりにMemcachedのドロップイン置換のようです)

CouchDBのこれらの機能は重要な場合もそうでない場合もあるため、それらの欠如がデメリットであるかどうかは厳密に主観的ですが、CouchDBからCouchbase Serverに切り替えるかどうかの決定は、それらの違いに基づいて行う必要があると思います現在のCouchDBデプロイメントのこれらの機能への依存。

たとえば、視聴後にCouchDBに興味がある場合 、CouchDBはfeed を変更します。MikealRogersによるNodeCampトーク、またはJ. Chris AndersonによるすばらしいCouchAppチュートリアルの1つです。 Couchbase Serverに切り替えたい場合は、彼らが話していたほとんどすべてのことを忘れなければなりません。

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

多くの場合、人々は間違った印象を覚えます( 「CouchDBの将来は何ですか?Couchbaseです。」 )。 、Couchbaseのレガシーバージョン。一方 CouchDB はアクティブに維持されるオープンソースプロジェクトであり、Couchbaseサーバーは完全に独立したプロジェクトです(新しいプロジェクトですが、CouchDBの新しいバージョンではありません-互換性さえありません)そして、CouchAppを作成するための新しいツールでさえ開発が続けられているため(例: Kanso プロジェクトを参照)、CouchDBはすぐには行きません。

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

更新:

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

残念ながら、私たちは潜在的なユーザーの多くを混乱させました。 Membaseサーバーと新しいモバイル製品に加えて、Apache CouchDBのパッケージ化された「配布」であるCouchbaseシングルサーバーも提供しました。さらに、CouchDBテクノロジーをMembase Serverに組み込んだ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のバージョン」と見なされるべきではありません。[強調を追加]

こちらもご覧ください:

518
rsp

それらは異なるが類似したソフトウェアです。 トップアンサー のコンテンツを、「違い」と一般的なことを明確にするのに役立つ写真にリミックスしました。

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

Matt Ingenthronからのコメントがこれに追加されます。

コンテキスト/修正を追加するには:NorthScaleのファウンダーはSteve YenとDustin Sallingsです。設立後まもなく参加しました。また、Damienは後にCouchbaseに参加せず、合併前はCouchIO/Couch Oneの一部でした。楽しく歴史的な情報源を引用: https://youtube.com/watch?v=aZ_JOnU8tkI

28
Jeroen