2012年 秋期 応用情報技術者試験 問4
データ分析処理の並列化
K 社は、様々な商品の売行きを調査し分析した結果を、顧客企業に提供している。K 社で使用しているアプリケーションプログラムの全体の流れを図1に示す。変換処理には変換サーバを、分析処理には分析サーバを用いている。変換処理の結果は、ファイル転送処理によって、変換サーバから分析サーバにファイル転送される。
最近では、分析対象となるデータの種類や量が増加するだけでなく、分析結果をより短時間で提供することが求められている。そこで K 社では、処理時間を大幅に短縮する方策を検討することにした。
〔変換処理プログラムの改良〕
変換処理は、分析処理がしやすいように入力ファイルを加工する処理であり、入力ファイルごとに異なるレコードフォーマットやコードを統一する。変換処理のステップを図2に示す。
変換処理の時間を短縮するために、プログラムの改良を実施した。改良前の各ステップの処理時間の比率は、フォーマット変換処理が20%、コード変換処理が30%であった。プログラムの改良によって、フォーマット変換処理の時間は1/4に、コード変換処理の時間は1/3に短縮された。その他の処理のプログラムは変更せず、処理時間の短縮もない。これによって変換処理はa倍の性能向上が達成された。
〔分析処理の並列化〕
分析処理は、変換処理が出力した結果ファイルを基に、顧客に合わせた分析レポートを出力する。従来は、1台のサーバで全ての処理を逐次実行してきた。処理1件当たりの処理時間は、顧客からの処理要件や、データの種類や量によってその都度異なるが、最短で1時間、最長で3時間である。
分析処理の時間を短縮するために、分析サーバを3台用意し、処理を並行して実行することにした。ただし、各分析サーバに割り当てられた処理は逐次実行し、1件の処理を複数のサーバに分散して実行することはない。複数の処理を1台のサーバで並行実行することもない。
3台の分析サーバに処理を割り当てる方法として、方法A と方法B を考えた。
(1) 方法A
各分析サーバで実行する件数が均等になるように処理を割り振る(図3)。
(2) 方法B
分析サーバ間の処理時間のばらつきが小さくなるように、bした分析サーバに、順次,次の処理を割り当てる(図4)。
方法A の場合、①分析サーバ間の処理時間のばらつきが大きくなり過ぎて、予想していた時間内に分析処理が完了しないことがある。一方、方法B の場合、割り当てられた全部の処理を完了する時間が最も長く掛かる分析サーバでも、他の分析サーバよりも最大でc時間長く掛かるだけで済む。
分析処理全体の処理時間の短縮を考え、方法B を採用した。
〔システム構成の検討〕
システム構成案として、分析処理のデータの入出力方法が異なる構成案1と構成案2を考え、ファイル転送処理と分析処理における特徴について考察した。
(1) 構成案1
個々の分析サーバがもつ内蔵ディスクでデータの入出力を行う(図5)。
(2) 構成案2
どの分析サーバからもアクセスできるファイルサーバでデータの入出力を行う(図6)。
ファイル転送処理において、構成案1では、変換処理結果のファイルを、全分析サーバに対し、それぞれ別々にファイル転送する。変換サーバは、ファイル転送時間の短縮のために、複数のファイル転送処理を同時に実行する。しかし、分析サーバが増えた場合は、変換サーバの内蔵ディスクからの読込みやdがボトルネックになりかねない必要がある。一方、構成案2の場合、変換処理の結果は、ファイルサーバにだけファイル転送すればよいので、分析サーバが増えた場合でもこれらがボトルネックになることはない。
分析処理において、構成案1の場合、分析に必要なデータは個々の分析サーバの内蔵ディスクにあるので、分析サーバが増えてもdはボトルネックにならない。一方、構成案2の場合、データはファイルサーバにあるので、分析サーバが増えた場合は、dだけでなくeについても、ボトルネックにならないか考慮する必要がある。
ある分析サーバに障害が起きたときは、別の分析サーバが処理を引き継ぐ。その際の処理時間の遅延は無視できるとした場合、構成案2におけるシステム全体の稼働率は、変換サーバ及び各分析サーバの稼働率を x、ファイルサーバの稼働率を y としたとき、fと表すことができる。ファイルサーバの稼働率がシステムの稼働率に大きく影響するので、②可用性向上のために対策を施す必要がある。