初心者のためのグラフデータベース:ACID vs.BASE Explained
NoSQLデータベースに関しては、データ一貫性モデルは、リレーショナルデータベースで使用されるものとは著しく異なることがあります(他のNoSQLストアとは全く異なることもあります)。
二つの最も一般的な一貫性モデルは、頭字語ACIDとBASEによって知られています。 彼らはしばしば究極の勝利のための戦いでお互いにピットインしていますが(誰かがそのビデオを作ってください)、両方の一貫性モデルには長所と短所があり、どちらも常に完璧なフィット感ではありません。
両方のデータベース整合性モデルのトレードオフを詳しく見てみましょう。
初心者のためのこのグラフデータベースのブログシリー 過去数週間では、グラフ技術が未来である理由、接続されたデータが重要な理由、データモデリングの基本(および落とし穴)、データベースクエリ言語が重要な理由、命令型クエリ言語と宣言型クエリ言語の違い、グラフ理論を使用した予測モデリング、グラフ検索アルゴリズムの基礎、およびNoSQLデータベースが必要な理由に取り組んできました。
今週は、ACIDとBASEデータベースの整合性モデルの主な違いと、それらのトレードオフがデータトランザクションにとって何を意味するかを詳しく見ていきます。
ACID一貫性モデル
多くの開発者は、リレーショナルデータベースでの作業からACIDトランザクションに精通しています。 このように、酸の一貫性モデルは、しばらくの間、標準となっています。
キー ACID保証は、それがあなたのデータを操作するための安全な環境を提供することです。 ACIDの頭字語は、
Atomic
- トランザクション内のすべての操作が成功するか、すべての操作がロールバックされます。
一貫性のある
- トランザクションの完了時に、データベースは構造的に健全です。
分離された
- トランザクションは互いに競合しません。 データへの論争のあるアクセスは、トランザクションが順番に実行されるようにデータベースによって調整されます。
Durable
- トランザクションを適用した結果は、障害が発生しても永続的です。
ACIDプロパティは、トランザクションが完了すると、そのデータが一貫性があり(技術用語:書き込み一貫性)、ディスク上で安定していることを意味します。
書き込みの一貫性はアプリケーション開発者にとって素晴らしいことですが、ほとんどのユースケースでは一般的に重いパターンである洗練されたロッNoSQL技術に関しては、ほとんどのグラフデータベース(Neo4Jを含む)はACID一貫性モデルを使用して、データが安全で一貫して保存されるようにしています。
基本整合性モデル
多くのドメインとユースケースでは、ACIDトランザクションは、ドメインが実際に必要とするよりもはるかに悲観的です(つまり、
NoSQLデータベースの世界では、ACIDトランザクションは、規模や回復力などの他の利点を得るために、即時の一貫性、データの新鮮さ、正確さの要件を緩和して
(特に、.NETベースのRavenDBは、ACID取引をサポートする集約店舗の間で傾向を打ち破っています。)
基本的な可用性
- データベースはほとんどの場合動作するように見えます。
ソフトステート
- ストアは、書き込み一貫性を持たせる必要はなく、異なるレプリカは常に相互に一貫性を持たせる必要もありません。
最終的な一貫性
- ストアは、後である時点で一貫性を示します(たとえば、読み取り時に遅延します)。
基本プロパティはACID保証よりもはるかに緩いですが、2つの一貫性モデル間に直接の1対1のマッピングはありません(おそらく誇張
ベースデータストアは可用性を評価します(スケールにとって重要なので)が、書き込み時に複製されたデータの一貫性は保証されていません。 全体として、基本整合性モデルは、ACIDよりも厳密ではありません:データは、読み取り時(Riakなど)に将来一貫性があるか、常に一貫性がありますが、特定の処理された過去のスナップショット(Datomicなど)に対してのみ一貫性があります。
基本整合性モデルは、主に列ファミリ、キーと値、およびドキュメントストアを含む集計ストアで使用されます。
ベーストレードオフ
アプリケーションがACID対BASE一貫性モデルを必要とするかどうかには正しい答えはありません。 開発者とデータアーキテクトは、トレンドや以前に使用されたモデルだけではなく、ケースバイケースでデータ一貫性のトレードオフを選択する必要があります。
BASEの緩い一貫性を考えると、開発者は、アプリケーションのベースストアを選択する場合、一貫性のあるデータについてより知識があり、厳密である必要が 選択した集約ストアの基本動作に精通し、それらの制約内で作業することが不可欠です。
一方、ACID取引の単純さと比較して、ベース制限を中心に計画することは、時には大きな欠点になることがあります。 完全にACIDデータベースは、データの信頼性と一貫性が不可欠なユースケースに最適です(銀行、誰でも?).
今後数週間で、集約ストアやその他のグラフ技術に関しては、より多くの酸/塩基の詳細に飛び込みます。
オライリーグラフデータベースブックのコピーを取得し、現実世界の問題を解決するためにグラフ技術を使用し始めます。
本を取得
初心者シリーズのためのグラフデータベースの残りの部分に追いつく:
- なぜグラフ技術は未来です
- なぜ接続されたデータ事項
- データモデ
- グラフ理論&予測モデリング
- グラフ検索アルゴリズムの基礎
- なぜ私たちはNoSQLデータベースを必要とする
- 集計ストアのツアー
- 他のグラフデータ技術
- ネイティブ対非ネイティブグラフ技術