過去問ドリル

LinuCレベル4 システムアーキテクト ネットワークとストレージの選定 問12

ネットワークとストレージの選定/集中型および分散型ストレージ

3台のノードにデータを複製する分散データベースで、書き込みはW台、読み込みはR台からの応答で完了とする方式をとる。最新の書き込みを必ず読める強い整合性を保ちつつ、どの1台が故障しても読み書きの両方を継続したい。WとRの組み合わせとして最も適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「ネットワークとストレージの選定」に対応。実際の試験問題ではありません)

正解: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台で読み書きを完了できます。
LinuCレベル4 システムアーキテクトの問題を演習モードで解く