CAP定理対BASE(NoSQL)
こんにちは、私はNoSQLに関する私の仕事のための小さな論文を書こうとしています。CAP定理を、すべてではないにしても、ほとんどのNoSQLデータベースが準拠していると説明しました。私は後でNoSQLとRDBMSの違いについての論文を読みました。NoSQLデータベースはACIDの対応するBASEを使用すると述べています。
BASE、ACID、CAPの特性を知っていますが、CAPの定理とBASEの関係を理解するのに苦労しました。私が理解しているように、CAPの定理はBASEの頭字語につながりますが、それは正しい結論ですか?または、いくつかの類似したプロパティを共有するデータベースを「構築」するための2つの異なるアプローチですか?
このブログ投稿(http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/)で、著者はこう書いています:
フォールトトレラントなBASEの世界でソフトウェアを開発するのは、退屈なACIDの世界に比べて困難ですが、BrewerのCAPの定理では、スケールアップする場合は選択肢がないとされています。ただし、Brewerがこのプレゼンテーションで指摘しているように、ACIDとBASEの間には連続性があります。優先順位に応じて、連続体の一端または他の端にどれだけ近づけるかを決定できます。
別の記事で著者はこう書いている:
上記のNOSQLデータベースの多くは、可用性とパーティション分割を改善するために、整合性に関する要件を緩和しています。これにより、システムはBASE(基本的に使用可能、ソフト状態、結果的に一貫性)として認識されます。これらには古典的な意味でのトランザクションがなく、データモデルに制約を導入して、より良いパーティション構成(Dynamoシステムなど)を有効にします。 CAP、ACID、およびBASEのより包括的な議論は、この紹介で利用できます。
これは、BASEでCAP resultsであることを明確に示しています。
誰かがこれを明確にして、私の混乱を取り除くことができるといいのですが。
ありがとう
-Mestika
CAPは基本的に、BASEとACIDが反対側にある連続体です。
[〜#〜] cap [〜#〜]は、一貫性、可用性、およびパーティションの許容範囲です。基本的には2つ選択できますが、3つすべてを選択することはできません。
[〜#〜] acid [〜#〜]は一貫性と可用性に重点を置いています。
[〜#〜] base [〜#〜]は、パーティションの許容範囲と可用性に焦点を当て、一貫性をウィンドウの外にスローします。