IPA過去問ドリル

令和2年度 10月 データベーススペシャリスト試験 午前Ⅱ 問1

テクノロジ/データベース

図のデータベース1,2は互いのデータの複製をもつ冗長構成である。クライアントからの更新・参照要求を受けたデータベースサーバ(以下,サーバという)は直下のデータベースを更新・参照し,他方のサーバにデータ更新を通知する。通知を受けたサーバは直下のデータベースに更新を反映する。 サーバ1,2間のネットワークが分断し,データ更新を通知できなくなったとき,CAP定理で重視する特性(C,A,P)に対するサーバの挙動のうち,適切な組合せはどれか。

令和2年度 10月 データベーススペシャリスト試験 午前Ⅱ 問1の図

出典:令和2年度 10月 データベーススペシャリスト試験 午前Ⅱ 問1

正解:イ

解説

CAP定理は,分散システムにおいて整合性(Consistency),可用性(Availability),分断耐性(Partition tolerance)の三つを同時に満たすことはできないという定理です。設問ではサーバ1,2間のネットワークが分断(P)した状況が既に発生しています。この状況でC(整合性)を優先する場合,更新通知を届けられない側のサーバが古いデータのまま応答してしまうと整合性が崩れるため,そのサーバを停止させて(応答を拒否させて)矛盾したデータを返さないようにする必要があります。すなわち「一方は停止し,もう一方は動作し続ける」という挙動になります。一方,A(可用性)を優先する場合は,分断中でも両サーバがそれぞれ独立に更新・参照要求に応じ続けます(データは一時的に不整合になりますが,後で更新通知が届いた時点で反映され,最終的には整合します)。すなわち「両方のサーバが動作し続ける」という挙動になります。この組合せに一致するのはイです。

選択肢ごとの解説

  • 誤り。A及びPを重視する場合に両方のサーバが停止するとしていますが,可用性(A)を優先するなら分断中もサーバは要求に応じ続けるべきであり,両方停止するのでは可用性を放棄したことになり矛盾します。
  • 正しい。C及びPを重視する場合は,通知が届かない側のサーバを停止させて不整合な応答を防ぎ整合性を守ります。A及びPを重視する場合は両方のサーバが要求に応え続け,可用性を維持します(データは一時的に不整合になりますが,後で通知が届けば収束します)。
  • 誤り。C及びPを重視する場合に両方のサーバが動作し続けるとしていますが,これでは分断中に互いに矛盾した更新が生じ得るため,整合性(C)を守ることができません。
  • 誤り。A及びPを重視する場合に一方のサーバが停止するとしていますが,これは可用性(A)の放棄であり,可用性重視の挙動とは矛盾します。C及びPを重視する場合を両方継続としている点も,整合性維持の観点から適切ではありません。
データベーススペシャリストの過去問を演習モードで解く