マナビング基本情報技術者

分散データベースの更新確定はどう決めるか

基本情報技術者試験 平成29年度春期 午前 問28 / データベース › トランザクション処理

過去問にチャレンジ

平成29年度春期 午前 問28

分散データベースシステムにおいて,一連のトランザクション処理を行う複数サイトに更新処理が確定可能かどうかを問い合わせ,全てのサイトが確定可能である場合,更新処理を確定する方式はどれか。

  1. ア

    2相コミット

  2. イ

    排他制御

  3. ウ

    ロールバック

  4. エ

    ロールフォワード

会話形式の解説

講師講師
注目するのは、複数のサイトに確定の可否を尋ねた後、全体の更新をどう決めるかという手順です。
受験者受験者
複数の処理が関わるので、最初は排他制御かと思いました。何を区別すればよいですか。
講師講師
各サイトへの問い合わせの後に、どんな条件で確定を指示していますか。
受験者受験者
全てのサイトが確定できると答えた場合です。先に確認し、その結果で確定を決めています。
講師講師
その二段階を行うのが2相コミットです。複数サイトの更新を一体として扱う方式で、正解はこれです。
受験者受験者
排他制御は、各サイトに確定できるかを確認する手順ではないのですね。
講師講師
はい。排他制御は、ある処理が資源を使っている間、他の処理による利用を待たせる制御です。
受験者受験者
ロールバックとロールフォワードも更新に関係しますが、確定の判断とはどう違いますか。
講師講師
ロールバックは更新前の情報を使って処理開始前に戻す操作です。ロールフォワードは更新後の情報を再適用し、障害から復旧する処理です。
受験者受験者
分かりました。競合を抑える制御や更新の取り消し・復旧ではなく、全サイトの返答を確認して確定を指示する方式を選ぶのですね。
講師講師
そのとおりです。「可否の確認」と「確定の指示」という順序を手掛かりにすると、選択肢を区別できます。

まとめ

2相コミットは、複数サイトに確定の可否を問い合わせ、全サイトが可能と答えた場合に確定を指示する方式です。排他制御は、同じ資源を使う処理同士の競合を抑えます。ロールバックは更新の取り消し、ロールフォワードは障害後の復旧に関わる操作です。

解答・解説

正解はアです

この問題のテーマ

分散データベースで、複数のサイトにまたがる更新を確定する手順を問う問題です。

解き方の考え方

着目するのは、各サイトに確定できるかを問い合わせ、全サイトの応答を受けて確定を決めるという流れです。2相コミットでは、まず調整役が確定の可否を確認し、全サイトが可能と答えた場合に確定を指示します。この手順に当てはまる選択肢を選びます。

選択肢ごとの解説

  1. ○ア  2相コミット
    2相コミットは、複数サイトにまたがる更新を一体として扱うための方式です。各サイトへの可否の問い合わせと、その結果に基づく確定の指示という二つの段階が、問題文の説明に一致します。
  2. ×イ  排他制御
    排他制御は、ある処理が資源を使用している間、他の処理による利用を待たせる制御です。複数サイトに確定の可否を尋ねて更新を確定する、という問題文の手順とは役割が異なります。
  3. ×ウ  ロールバック
    ロールバックは、更新前の情報を使って処理開始前の状態に戻す操作です。問題文では更新を取り消す操作ではなく、全サイトの応答を確認して確定する方式が問われています。
  4. ×エ  ロールフォワード
    ロールフォワードは、更新後の情報を再適用して障害から復旧する処理です。確定できるかを各サイトに問い合わせる手順を指すものではありません。

POINT

  • 2相コミットでは、可否の確認を終えてから、全体としての確定を指示します。
  • 排他制御は、同じ資源を使う処理同士の競合を抑えるための制御です。
  • ロールバックは更新の取り消し、ロールフォワードは障害後の復旧に関わる操作です。

※出典:平成29年度春期 基本情報技術者試験 午前 問28