メインコンテンツへ
データベースデータベース応用

データベースレプリケーションにおける同期レプリケーションと非同期レプリケーションの違いに関する記述として、最も適切なものはどれか。

ア.同期レプリケーションはマスタとスレーブが異なるスキーマでも動作するが、非同期は完全に同じスキーマが必要である。
イ.同期レプリケーションは書き込みのみ、非同期レプリケーションは読み込みのみを複製する。
ウ.同期レプリケーションも非同期レプリケーションも応答速度・データ保護に違いはなく、どちらを選んでも同じ結果になる。
エ.同期レプリケーションはマスタへの書き込みコミット時にスレーブへの反映完了を待ってから応答するためデータロストはほぼゼロだが、ネットワーク遅延がそのままトランザクション応答時間に乗る。非同期レプリケーションはマスタコミット後にスレーブへ非同期で配送するため応答が速く高スループットだが、マスタ障害時に未配送分の更新が失われるリスクがある。正解

解説

同期レプリケーションは「全員揃ってからスタートする宅配」(遅いけど確実)、非同期は「先に出発して後から追いかける宅配」(速いけど追いつけないかも)。耐久性と性能のトレードオフを決める根本的な選択です。

なぜ エ が正解か

エが正解。同期レプリケーションはマスタとレプリカに同時書き込み完了を待ってからクライアントにコミット成功を返すため、マスタ障害時もレプリカに完全な最新データがあり「データロストゼロ」が達成できるが、ネットワーク遅延がコミット時間に直接加算される。非同期レプリケーションはマスタコミット直後にクライアント応答し、レプリカへの配信は遅れて非同期実行される。応答時間は短くスループットは高いが、マスタが突然死ぬと未送信のWALが失われるRPO>0の構成。準同期(semi-sync)はその中間。

なぜ ア は間違いか

スキーマは通常レプリケーション全方式で揃える必要がある。同期/非同期の違いはタイミングであってスキーマ可変性ではない。

なぜ イ は間違いか

レプリケーションは原則すべての書き込み変更を複製するもので、「読み込みのみ複製」というのは意味不明。読み込み専用レプリカへの分散読み取りとは別概念。

なぜ ウ は間違いか

応答速度・データ保護の差こそが同期/非同期選択の本質。「同じ結果」は全くの誤り。

出典: AI生成問題(学習用)