LinuCレベル4 システムアーキテクト ネットワークとストレージの選定 問12
ネットワークとストレージの選定/集中型および分散型ストレージ3台のノードにデータを複製する分散データベースで、書き込みはW台、読み込みはR台からの応答で完了とする方式をとる。最新の書き込みを必ず読める強い整合性を保ちつつ、どの1台が故障しても読み書きの両方を継続したい。WとRの組み合わせとして最も適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「ネットワークとストレージの選定」に対応。実際の試験問題ではありません)
- AW=1、R=1(読み書きとも1台の応答で完了させ、応答時間を最小にする)
- BW=3、R=1(全台に書き込み、読み込みは任意の1台から行うRead One Write All)
- CW=1、R=2(書き込みは1台で完了させ、読み込みで2台に問い合わせて新しい方を採る)
- DW=2、R=2(過半数に書き込み、読み込みでも過半数に問い合わせる)
正解:D
解説
複製数をNとしたとき、R+W>Nであれば、読み込みの対象となるノードの集合と、直前の書き込みを受け取ったノードの集合が必ず1台以上重なるため、最新の値を読めます。N=3でW=2、R=2ならこの条件を満たし、かつ1台が故障しても残り2台で読み書きの両方を完了できます。W=3、R=1のRead One Write Allは読み込みが速く強い整合性を保てますが、1台でも故障すると書き込みを完了できません。W=1、R=1は可用性と応答時間に優れる代わりに古い値を読むことがあり、結果整合性にとどまります(読み込み時に古い複製を検出して更新するRead Repairなどで、時間をかけて収束させます)。
選択肢ごとの解説
- A誤り。R+W=2でN=3を超えないため、書き込みを受けていないノードから古い値を読むことがあります。低遅延と可用性を優先し、結果整合性を許容する場合の設定です。
- B誤り。Read One Write Allは強い整合性を保てますが、全台への書き込みが必要なため、1台でも故障すると書き込みを継続できません。
- C誤り。R+W=3でN=3を超えないため、読み込んだ2台がどちらも書き込みを受けていない場合があり、最新の値を読める保証はありません。
- D正しい。R+W=4>3で強い整合性を保て、1台が故障しても2台で読み書きを完了できます。