本資料は、ScalarDBにおけるトランザクションのリカバリー処理について解説した資料です。
ScalarDBはトランザクションのリカバリー処理として「Lazy Recovery(遅延リカバリ)」を採用しており、別のトランザクションが不整合状態のレコードを読み込んだタイミングでリカバリーを実行します。
本資料では、複数のバックエンドDBを跨ぐトランザクション処理において、各フェーズで障害が発生した場合の具体的なリカバリーの挙動を図解で詳しく解説しています。
【主な内容】
- ScalarDBトランザクションのリカバリー処理(Lazy Recovery)の概要
- Prepareフェーズで障害が発生した場合の動作
- Commitフェーズ1で障害が発生した場合の動作(Rollbackの仕組み)
- Commitフェーズ2で障害が発生した場合の動作(Rollforwardの仕組み)
各フェーズでの障害時に、Before imageやコーディネーターテーブルを利用してどのようにAtomicity(原子性)を保証しているかを、具体的な構成例(アカウント残高とクレジット利用額の更新トランザクション)を用いてステップバイステップで確認できます。