0o0dグッ

J Question vol.1957

これらのキーワードがハイライトされています:フォント

▲ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┏┓

┃┃  のんびりやろう!情報処理試験! ~1問1問コツコツと~  ┃┃
┃┃ 2009.3.11 vol.1957 18,301 部発行 http://www.shunzei.com/ ┃┃
┗┛ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼

  • PR------------------------------------------------------------------

◇◆ C言語対策の決定版!アルゴリズム力を身に付けるための1冊! ◆◇
◆◇       【基本情報技術者試験 C言語の切り札】      ◇◆
◇◆     http://www.shunzei.com/book/kirifuda_c.html     ◆◇
◆◇◆                             ◆◇◆
◇◆◇    C言語対策の定番として継続的に売れています(^^)   ◇◆◇


  。.・*:.。.BIGLOBEのADSLは3大セキュリティ標準装備☆.。.・*:.

 ミ★ さらにお得!⇒>> 月額基本料金 最大2カ月無料、初期費用無料!
 ミ★ さらに安心!⇒>> パソコン1台の出張設定も無料でうれしい!
 詳細は⇒ http //px.a8.net/svt/ejp?a8mat=CI6E0+2JORXU+B4+6DZBN


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■今日の問題■☆☆(等幅フォントで見てね!)


 2 相コミットプロトコルを使用した分散データベースにおいて、
 クライアント障害が発生した場合、各データベースサーバ(DB サーバ)は
 コミットすべきかアボートすべきか判断不能(ブロック状態)に
 なることがある。DB サーバ 1,2 のどちらもブロック状態になる箇所は
 どこか。

  クライアント DB サーバ 1 DB サーバ 2
    │       │       │
    │SQL      │       │
    ├──────→│       │
    │←──────┤       │
    │      SQL│       │
    ├───────┼──────→│
    │←──────┼───────┤
    │       │       │
  ア ×       │    prepare│
    ├───────┼──────→│
    ├──────→│       │
    │prepare    │       │
    │Yes      │       │
    │←──────┤      Yes│
    │←──────┼───────┤
    │       │       │
  イ ×       │       │
    ├──────→│       │
    │commit    │       │
  ウ ×       │       │
    │       │commit    │
    ├───────┼──────→││
  エ ×       │       ││時
    │       │       │↓間

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■解答■(出典:H16. データベース 問37)


 イ

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■解説■


 データベース特集を続けています。
 今日は、分散データベースの 2 相コミット に関する問題でした。
 ソフトウェアや高度向けの問題になります。

 2相コミット(two-phase commit)とは、分散型のデータベース上で
 更新を行う際に、文字通り2つのフェーズで更新処理を行う方式です。

 分散データベースの場合、データベースの一貫性を保つために、
 複数のデータベース間で同期を取る必要があります。

 そこで、更新処理の際に1回のコミットで更新を確定するのではなく、
 コミットをする前にセキュアと呼ばれる状態を設定して
 複数のデータベースが更新できる状態かどうかを確認します。

 手順としては、まず複数のデータベースの中から指揮者(coordinator)が
 選ばれ、残りが参加者(participant)となります。

 フェーズ1では、指揮者(coordinator)から参加者(participant)に
 「更新可能ですか?」と問合わせます。

 全ての参加者から更新可能であることを確認した後(セキュアの状態)、
 フェーズ2として各データベースに「更新を実行してください」と
 指示を出します。

 逆に、一定時間内に全ての参加者から OK が返ってこない場合は
 指揮者は参加者に対し、アボート処理(ロールバック)を行います。

 アボート(abort)とは、処理を無効にすることを言います。
 abortには「中断する」という意味があります。

 このような方式で、分散データベースの一貫性を保つ方式です。

 それでは、問題に戻りましょう。

 クライアント DB サーバ 1 DB サーバ 2

   │       │       │

   │SQL      │       │

   ├──────→│       │

   │←──────┤       │

   │      SQL│       │

   ├───────┼──────→│

   │←──────┼───────┤

   │       │       │

 ア ×       │    prepare│

   ├───────┼──────→│

   ├──────→│       │

   │prepare    │       │

   │Yes      │       │

   │←──────┤      Yes│

   │←──────┼───────┤

   │       │       │

 イ ×       │       │

   ├──────→│       │

   │commit    │       │

 ウ ×       │       │

   │       │commit    │

   ├───────┼──────→││

 エ ×       │       ││時

   │       │       │↓間

 この問題では、クライアントサーバの構成となっていますが
 クライアントが「指揮者」、DBサーバが「参加者」に該当します。

 クライアントは、アプリケーションサーバをイメージしても良いですし、
 クライアントを更新系のDBサーバ、DBサーバを参照系のDBサーバと
 考えても良いでしょう。

 選択肢(ア~エ)のことは、いったん置いておき
 全体の流れを簡単に見ておきましょう。

 まず、クライアントから各 DB サーバに SQL 文が発行されていますね。

 その後、prepareという「更新可能ですか?」という確認を行い、
 各 DB サーバから Yes の応答を受け、commitを発行しています。

 問題文をもう一度見てみましょう。

2 相コミットプロトコルを使用した分散データベースにおいて、

クライアント障害が発生した場合、各データベースサーバ(DB サーバ)は

コミットすべきかアボートすべきか判断不能(ブロック状態)に

なることがある。DB サーバ 1,2 のどちらもブロック状態になる箇所は

どこか。

 問題は、DB サーバ 1,2 のどちらもブロック状態になる箇所を
 求める問題でした。

 ブロック状態とは、コミットすべきかアボートすべきか判断不能となる
 状態のことです。

 つまり、処理を確定(commit)するか、無効(abort)とするか
 判断が付かない部分を探せば良いということになりますね。

 逆に、各 DB サーバから見ると、判断が付く場合というのは
 クライアントからの指示があった場合となります。

 選択肢を順に見ていきましょう。

ア(各 DB サーバにprepareを発行する直前)

  各 DB サーバから見ると「更新可能ですか?」という
  確認が来ていません。

  この場合、一定時間経過後にはタイムアウトと判断し、
  コミットせずに SQL 文を無効とすれば良いですね。

イ(各 DB サーバからYesの応答があった直後)

  これが正解です。

  各 DB サーバはYesと応答した後、その後の指示がないため、
  コミットすべきかアボートすべきか判断不能となります。

ウ( DB サーバ 1 にcommitを発行した後)

  DB サーバ 1 ではcommitを受け、処理を確定します。
  この時、DB サーバ 2 ではYesと応答した後にその後の指示がないため、
  コミットすべきかアボートすべきか判断不能となります。

エ( DB サーバ 2 にcommitを発行した後)

  DB サーバ 2 ではcommitを受け、処理を確定します。
  つまり、両サーバともcommitを行った状態です。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
★これ、おしえてっ!(回答編)★vol.1954(2009.3.4)の質問に対する回答


 しゅんぜいの都合により、回答編は金曜日に回します。
 すみません。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
★これ、おしえてっ!(質問編)★ 回答期限:3月16日(月)の夜まで


 「この問題がわからないっ!!」という、
 読者からの質問をみなさんに回答してもらおう!というコーナーです。

 今回の質問はこちらです。(出典:H20.春 基本情報 問11)


 次の BNF で定義されるビット列 S であるものはどれか。

  <S> ::= 01 | 0 <S> 1

 ア 000111

 イ 010010

 ウ 010101

 エ 011111

  • [回答のめやす(横幅:全角34文字)]--------------------------------

    1234567890123456789012345678901234


 過去にも取り上げたことがあると思いますが、リクエストがあったので
 再度取り上げますね。

 これに対する回答(解説)を3月16日(月)の夜までにお願いします。

 このコーナーで取り上げてほしい問題のリクエストも募集中です。
 回答&お便りはこちらからでもOKです。
 http://www.shunzei.com/about/mail.html

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼選択肢で勉強しよっ!▼(答えはこのメールの一番下にあります)


NAPT(Network Address Port Translation) って?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

*********************** 投稿募集中のテーマ *********************** <


 ●「これ、おしえてっ!」で扱ってほしい問題のリクエストやその回答
 ●「選択肢で勉強しよっ!」で扱ってほしい用語のリクエスト
 ●「その他、試験などに関するお便り(テーマフリー)」

 ハンドル名を添えて、このメールマガジンに返信して頂ければ届きます。
 WebからでもOK! http://www.shunzei.com/about/mail.html

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 のんびりやろう!情報処理試験! ~1問1問コツコツと~(週3日発行)


 編集・発行:しゅんぜい mail_at_shunzei.com (_at_は @ に)

    発送:melma!   http://www.melma.com/  (ID:189)

      :まぐまぐ  http://www.mag2.com/   (ID:24856)
      :めろんぱん http://www.melonpan.net/ (ID:78)

 登録・解除:http://www.shunzei.com/mm/

 ○バックナンバー
 立ち読み  : http://www.melma.com/backnumber_189/
 ダウンロード: http://www.shunzei.com/mm/backnumber.html

 転載について: http://www.shunzei.com/about/disclaimer.html
 広告掲載は mail_at_shunzei.com (_at_は @ に)までお願いします。


 ○メールマガジンの購読の登録・解除は個人の責任で行ってください。
  しゅんぜいは一切代行しません!

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼選択肢で勉強しよっ!の答え▼


 (ソフトウェア平成20年秋問36)の問題文より

一つのグローバルIPアドレスを使って複数のホストが同時に

インターネットにアクセスできるようにする仕組み

 (セキュリティ平成20年問12)より

ダイヤルアップルータやブロードバンドルータが、IP マスカレード機能

(NAPT)を実現するために管理している情報はどれか。

ウ プライベート IP アドレス及びそのポート番号と、

  グローバル IP アドレス及びそのポート番号との対応

 (ソフトウェア平成19年秋問53)
 (エンデベッド平成18年問42)の問題文より

LAN に接続されている複数の PC を FTTH を使って、インターネットに

接続するシステムがあり、装置 A の WAN 側インタフェースには

1 個のグローバル IP アドレスが割り当てられている。

この 1 個のグローバル IP アドレスを使って複数の PC が

インターネットを利用するのに必要となる装置 A の機能はどれか。

                利用者宅内

┌───────────────────┐

│┌──┐               │

││PC├┐              │

│└──┘│┌──┐┌───┐┌───┐│光ファイバケーブル(FTTH)

│    ├┤ハブ├┤装置A├┤ONU├┼────────────

│┌──┐│└──┘└───┘└───┘│

││PC├┘              │

│└──┘               │

└───────────────────┘

 (ネットワーク平成19年問36)の問題文より

TCP,UDPのポート番号を識別し、プライベート IP アドレスと

グローバル IP アドレスとの対応関係を管理することによって、

プライベート IP アドレスを使用する LAN の複数の端末が、一つの

グローバル IP アドレスを共有してインターネットにアクセスする仕組み。

 NAPT(Network Address Port Translation)とは、
 1つのグローバル IP アドレスを複数の端末で共有する技術のことです。

 プライベート IP アドレスを使用する LAN に複数の端末がある場合に、
 それぞれの端末から同時にインターネットへのアクセスを可能とする際に
 使われます。

 このような場合、1 対多でアドレス変換をする必要があるため、
 NAT(Network Address Translation)の IP アドレスの変換だけでなく、
 TCP/UDPのポートも変換することで、同時接続を可能にします。

 NAPTは、IPマスカレードとも言います。元々、NAPTとIPマスカレードは
 違う意味で用いていましたが、最近はほぼ同じ意味使われ方をしています。
 また、全てを合わせて、広い意味で NAT と呼ぶこともありますね。

=-=[あとがき]=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

 このところ、平日も少しバタバタしております。
 今日は回答編が間に合いませんでした。

 春試験まであと1ヶ月強となったので、
 そろそろ過去問に取り掛かってくださいね。

 ちょっと短めですが、今日はこの辺で(^^;;


◆のんびりやろう!情報処理試験!はこちらから http://www.shunzei.com/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◎のんびりやろう!情報処理試験!-1問1問コツコツと-

 のバックナンバー・配信停止はこちら

http://archive.mag2.com/0000024856/index.html

 このメールに返信すれば、発行者さんへ感想を送れます

━【まぐまぐ!からのお知らせ】━━━━━━━━━━━━━━━━━━━━━
<あなたもメルマガを発行してみませんか?>
手続きはカンタン!個人はもちろん、法人の方でも無料でご利用いただけます。
発行までの詳しい流れはこちら!⇒ http://rd2.mag2.com/r?aid=18892&rid=4
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▽こちらもいかが?子育て・教育ジャンルの公式情報メール
―――――――――――――――――――――――――――――――――――─
●まぐまぐ!親子ニュース
http://rd2.mag2.com/r?aid=22994&rid=4 毎週月・金曜日
子育てや、教育、家族に関する、お役立ち情報が満載です。読者アンケートや
突撃インタビューなどで旬の話題を掘り下げ、月に1回あなたのもとにお届け
します!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━【まぐまぐ!】━