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特性