クライアントサーバの通信負荷を減らす仕組みは?
基本情報技術者試験 平成29年度秋期 午前 問26 / システム構成要素 › システムの構成
過去問にチャレンジ
クライアントサーバシステムにおいて,利用頻度が高い命令群をあらかじめサーバ上のDBMSに格納しておくことによって,クライアントサーバ間のネットワーク負荷を軽減する仕組みはどれか。
- ア
2相コミットメント
- イ
グループコミットメント
- ウ
サーバプロセスのマルチスレッド化
- エ
ストアドプロシージャ
会話形式の解説
講師この問題では、頻繁に使う命令群をどこに置き、クライアントから何を送るかが手掛かりです。
受験者通信負荷を減らすなら、サーバの処理を速くする方法も候補になりそうです。
講師まず、命令群をDBMSに保存しておくと、クライアントは毎回何を送ればよいでしょうか。
受験者保存済みの処理を呼び出す指示だけでよくなります。命令をその都度送る必要が減りますね。
講師その仕組みがストアドプロシージャです。一連の処理をDBMS内に保存し、呼び出して使います。
受験者2相コミットメントもサーバ間のやり取りに関係しそうですが、同じ仕組みですか。
講師2相コミットメントは、分散したトランザクションの確定を二段階で調整する手法です。命令群を保存する仕組みとは対象が違います。
受験者グループコミットメントは、何をまとめるのでしょうか。
講師複数のトランザクションのログをまとめてディスクに書き出します。クライアントから送る命令群を減らす方法ではありません。
受験者サーバプロセスのマルチスレッド化は、サーバ内での実行方法を変えるものですね。
講師はい。一つのプロセス内で複数の実行単位を並行して動かしますが、命令群をDBMSに保存する条件には合いません。
受験者通信、ログの書込み、並行実行のどれを扱うかで見分けられます。今回は保存済みの処理を呼び出すストアドプロシージャです。
まとめ
頻繁に使う命令群をDBMSに保存し、クライアントから呼び出す仕組みはストアドプロシージャです。命令をその都度送る必要が減るため、通信負荷を抑えられます。2相コミットメントは確定の調整、グループコミットメントはログの書込み、マルチスレッド化はサーバ内の並行実行を扱います。
解答・解説
正解はエです
この問題のテーマ
頻繁に使う命令群をDBMSに保存し、クライアントとサーバ間の通信負荷を抑える仕組みを問う問題です。
解き方の考え方
命令群をどこに置き、クライアントが何を送るかに注目します。サーバ側に処理を保存して呼び出せば、命令をその都度送る必要が減ります。各選択肢が扱う対象を、この条件と照らし合わせます。
選択肢ごとの解説
- ×ア 2相コミットメント2相コミットメントは、分散したトランザクションの確定を二段階で調整する手法です。命令群をDBMSに保存して呼び出す仕組みではないため、設問には当てはまりません。
- ×イ グループコミットメントグループコミットメントは、複数のトランザクションのログをまとめてディスクに書き出します。対象はログの書込みであり、クライアントから送る命令群の扱いとは異なります。
- ×ウ サーバプロセスのマルチスレッド化サーバプロセスのマルチスレッド化は、一つのプロセス内で複数の実行単位を並行して動かす方式です。サーバでの実行方法を変えるもので、頻用する命令群を保存するという条件には合いません。
- ○エ ストアドプロシージャストアドプロシージャは、一連の処理をあらかじめDBMS内に保存したものです。クライアントはその呼出しを指示すればよく、命令をその都度やり取りする場合に比べて通信負荷を抑えられます。
POINT
- 仕組みを選ぶときは、通信、ディスクへの書込み、処理の並行実行のどれを扱うかを見分けます。
- 設問の「DBMSに格納」は、保存済みの処理を使うことを示す手掛かりです。
- ネットワーク負荷を考える際は、クライアントとサーバの間で何を送るかを確認します。
