- ACID(Atomicity, Consistency, Isolation, Durability)
- 分類
- 上位概念・下位概念
- メリット
- デメリット
- 既存との比較
- 競合
- 導入ポイント
- 注意点
- 今後
- 関連キーワード
ACID(Atomicity, Consistency, Isolation, Durability)
定義
- 原子性(Atomicity) トランザクション内の処理が「すべて実行される」か「一つも実行されない」かのいずれかである状態。中途半端な状態での終了を許容しない特性。
- 一貫性(Consistency) 実行前後でデータの整合性が保たれる特性。あらかじめ定義されたルール(一意制約やデータ型など)に矛盾しない状態を維持。
- 独立性(Isolation) 複数のトランザクションを同時に実行しても、それぞれの処理が互いに干渉しない特性。並列処理の結果が、逐次実行(一つずつ順番に実行)した結果と一致することを保証。
- 永続性(Durability) 完了した処理結果が、その後のシステム障害(停電やクラッシュなど)によって失われない特性。ログ記録やストレージへの書き込みによる保証。
分類
データベース管理システム(DBMS)の信頼性指標
- リレーショナルデータベース(RDB)における標準的な設計指針。
- トランザクション処理の信頼性を保証するための4つの要素。
上位概念・下位概念
トランザクション管理と制御レベル
- 上位概念: データベース管理システム(DBMS)、データ整合性(Data Integrity)。
- 下位概念: 分離レベル(Isolation Level)、排他制御(Locking)、ログ先行書き込み(Write-Ahead Logging / WAL)。
メリット
データ信頼性の確保と運用負荷の低減
- 不正なデータ更新の防止。
- システム障害発生時の復旧の容易性。
- アプリケーション側での整合性チェック処理の簡略化。
デメリット
パフォーマンスとスケーラビリティの制約
- 排他制御による処理待ち(ブロッキング)の発生。
- 厳格な同期処理による応答速度(Latency)の低下。
- 分散システムにおける水平スケール(横方向の拡張)の困難さ。
既存との比較
BASE特性との対比
- ACID: 強い一貫性を重視。金融系システムや基幹業務向け。
- BASE(Basically Available, Soft state, Eventual consistency): 可用性とスケーラビリティを重視。大規模WebサービスやSNS向け。
競合
データ整合性モデルの選択肢
- CAP定理: 分散システムにおいて「一貫性」「可用性」「分断耐性」の3つを同時に満たすことはできないとする理論。
- 最終的一貫性(Eventual Consistency): 一時的な不整合を許容し、最終的に整合性が取れる状態を目指すモデル。
導入ポイント
要件定義における優先順位の策定
- 厳密な数値管理(在庫、残高など)が必要な処理への適用。
- 更新頻度と同時接続数の見積もりに基づく分離レベルの選定。
- 適切なインデックス設計によるロック範囲の最小化。
注意点
オーバーヘッドとデッドロックのリスク
- 高負荷環境下でのスループット低下。
- 複雑なトランザクション設計によるデッドロック(処理の停滞)の発生。
- 分散データベースにおけるACID特性維持コストの増大。
今後
NewSQLと分散トランザクションの進化
- ACID特性を維持しつつスケールアウトを実現するNewSQLの普及。
- クラウドネイティブな環境での分散ACIDトランザクション技術の高度化。
関連キーワード
データベースおよびトランザクション用語
- リレーショナルデータベース(RDB)
- NoSQL
- 2相コミット(Two-Phase Commit / 2PC)
- 排他制御(Locking)
- マルチバージョン並行処理制御(MVCC)
- CAP定理
- BASE特性