トランザクション処理 (Transaction Processing)
概要と特徴
- 処理単位の不可分性 一連の処理を分割不可能な最小単位(トランザクション)として実行。
- データの整合性維持 一連の操作がすべて成功するか、すべて失敗(ロールバック)するかのいずれかを保証。
- ACID特性 Atomicity(原子性)、Consistency(一貫性)、Isolation(独立性)、Durability(永続性)の4要素。
分類
- オンライン事務処理 (OLTP: Online Transaction Processing) 即時性が求められる少量のデータ更新処理。銀行振込や在庫管理。
- バッチ処理 (Batch Processing) 一定期間のデータを一括して処理。給与計算や月次報告。
- 分散トランザクション (Distributed Transaction) ネットワーク上の複数のデータベースにまたがる処理。
上位概念・下位概念
- データベース管理システム (DBMS: Database Management System) トランザクションを管理・実行する基盤ソフトウェア。
- コミット (Commit) 処理を確定させ、データベースに永続的に反映させる操作。
- ロールバック (Rollback) 処理を中断し、開始前の状態に復元する操作。
メリット
- データの信頼性向上 中途半端な更新を防ぎ、情報の矛盾を解消。
- 障害耐性の強化 システム停止時でもログを利用したリカバリが可能。
デメリット
- オーバーヘッドの発生 排他制御やログ記録による処理負荷。
- デッドロックのリスク 複数の処理が互いに資源を待ち合い、停止する現象。
既存との比較
- ファイルシステムとの比較 ファイル操作は一括管理が困難。トランザクション処理は複数ファイル間の一貫性を担保。
競合
- 結果整合性 (Eventual Consistency) NoSQL等で採用。即時の一貫性を犠牲にし、可用性とスケーラビリティを優先。
導入ポイント
- 排他制御 (Locking) の設計 データの整合性と同時実行性能のバランス検討。
- ログ管理 障害復旧に必要なWAL(Write Ahead Logging)の構成。
注意点
- トランザクションの長時間化回避 長時間ロックは他処理を阻害。処理範囲を最小限に設定。
- 2フェーズコミット (Two-Phase Commit) 分散環境での調整コスト増大への配慮。
今後
- NewSQLの普及 RDBのACID特性とNoSQLのスケーラビリティの両立。
- サーバーレス環境での最適化 ステートレスな環境における分散トランザクション管理の高度化。
関連キーワード
- 排他制御 (Concurrency Control)
- デッドロック (Deadlock)
- 隔離レベル (Isolation Level)
- 楽観的ロック (Optimistic Locking)
- 悲観的ロック (Pessimistic Locking)