連載
» 2017年11月14日 05時00分 公開

「データベーススペシャリスト試験」戦略的学習のススメ(30):「分散データベース」を理解する (2/2)

[具志堅融, 河科湊,著]
前のページへ 1|2       

分散トランザクション制御

 分散データベースでは、一つのトランザクションを複数のサイトに対して実行する場合があります。この場合、トランザクションが複数のサイトにまたがりつつも、あるサイトではコミットされ、あるサイトではロールバックされる(=原子性【→20】が失われる)事がないように、特殊なコミットメント制御が必要になります。

<1>1相コミットメント制御

 下図のように1回のコミット要求でトランザクションが確定する方法を1相コミットメント制御と呼びます。

 この制御方式では、主サイトからのコミット要求後(下記シーケンスの×と示した二カ所のいずれか)に障害が発生した場合、結果としてコミットしたサイトとロールバックしたサイトの両方が存在してしまい、原子性が崩れるという問題点があります。

1相コミットメント制御のシーケンス(データを更新する場合)

<2>2相コミットメント制御(2相コミット)

 1相コミットメント制御に対して、下図のようにコミット準備要求のシーケンスを追加したのが2相コミットメント制御です。コミット準備要求により、全ての従サイトがコミットもロールバックも可能なセキュアな状態になったことを確認した後、主サイトの指示によりコミットを行います。

 尚、従サイトはコミット準備の応答をした後、セキュアな状態のまま待ち続けるため、主サイトがこの応答を受けた直後(下図×で示したタイミング)に、主サイトで障害が起きると、主サイトが復旧するまで、従サイトが待ち状態になるという問題点があります。

2相コミットメント制御のシーケンス(データを更新する場合)

 本分野については、午前問題で「2相コミットの処理として正しい内容を答える」もしくは「2相コミットの処理の中で、障害が起きるとまずいタイミングについて」のいずれかの問題がほぼ確実に出題されます。これらの問いに答えられるよう、再度シーケンス図を確認してください。

Chance問題

演習29-4

 分散データベースのトランザクションは複数のサブトランザクションに分割され、複数のサイトで実行される。このとき、トランザクションのコミット制御に関する記述のうち、適切なものはどれか。

ア 2相コミットでは、サブトランザクションが実行される全てのサイトからコミット了承応答が主サイトに届いても、主サイトはサブトランザクションごとにコミット又はロールバックの異なる指示をする場合がある。

イ 2相コミットを用いても、サブトランザクションが実行されるサイトに主サイトの指示が届かず、サブトランザクションをコミットすべきかロールバックすべきか分からない場合がある。

ウ 2相コミットを用いると、サブトランザクションがロールバックされてもトランザクションがコミットされる場合がある。

エ 集中型データベースのコミット制御である1相コミットで、個々のサイトが独自に分散型データベースのコミットを行っても、サイト間のデータベースの一貫性は保持できる。

(H27春DB午前II問12)


解答 演習29-4 

 *囲み内をクリックすると解答を表示します(表示後ページをリロードすると、再び非表示になります)

本試験過去問題による類題演習
□H26 午前II問12 2相コミットプロトコルの正常処理の流れ
□H15 午前問37 2相コミットメントプロトコルの正常処理の流れ
□H18 午前問38 2相コミットのコマンドシーケンス
□H16 午前問37 2相コミットにおいて障害時にブロック状態になるタイミング
□H25 午前II問13 2相コミットにてコミットすべきかロールバックすべきかを判断できなくなるような障害
□H14 午前問37 データベース更新ににおける2相コミットに関する記述

Chance問題

Point check

分散データベースのトランザクションは複数のサブトランザクションに分割され、複数のサイトで実行される。このとき、トランザクションのコミット制御に関する記述のうち、適切なものはどれか。

(H24春DB午前II問12)


 2相コミットでは、すべてのサブトランザクションからコミット了承応答が届いても、必ずしもすべてのサブトランザクションをコミットするとは限らない。

 2相コミットを用いても、サブトランザクションが実行されるサイトに主サイトの指示が届かず、サブトランザクションをコミットすべきかロールバックすべきか分からない場合がある。

 2相コミットを用いると、サブトランザクションがロールバックされてもトランザクションがコミットされる場合がある。

 集中型データベースのコミット制御である1相コミットで、個々のサイトが独自に分散データベースのコミットを行っても、サイト間のデータベースの一貫性は保証できる。


解答 Point check 

 *囲み内をクリックすると解答を表示します(表示後ページをリロードすると、再び非表示になります)

書籍紹介

ポケットスタディ データベーススペシャリスト [第2版]

ポケットスタディ データベーススペシャリスト [第2版]

具志堅融、河科湊著
秀和システム 1,500円

データベーススペシャリスト試験は同じパターンの出題が多いため、過去問をたくさん解くことが合格の早道です。しかし、難易度の高い過去問を解くには、勉強が必要であり、多くの時間と労力を必要とします。本書は、プロの講師が推奨する、テキストを少し読み→該当する過去問を解き→理解を深めるというアジャイル的学習法で、驚くほど短時間で合格するツボとコツを解説します。"すき間時間"を活用して効果的な学習ができます!


注文ページへ

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

編集部からのお知らせ

8月8日10時30分〜16時30分の間、システムメンテナンスのため記事の一部表示や資料のダウンロードができなくなります。ご理解のほどよろしくお願いいたします。

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。