(57)【要約】  情報処理システム内に余計なデータを持つことなく、データの耐障害性を保ちながら、半構造化データの分析を高速に実行することができる情報処理システム及び情報処理方法の提供を目的とし、外部装置から格納要求を受けたデータについて、あらかじめ設定されている情報処理システム内での格納数とデータ構造を取得し、対応データのデータ構造管理情報を参照して、前記データを格納すべきデータ格納部を決定し、格納要求に係る前記データの複製作成及び作成した複製の格納先である前記データ格納部への送信を指示し、前記データ構造管理情報を参照して、いずれかの前記複製が格納された前記データ格納部に格納された前記データについてデータ操作を実行する指示をデータ構造操作部に送信し、分析処理部は、分析要求の内容に応じていずれかのデータ格納部に格納されているデータ構造操作後のデータ又はデータ構造未操作のデータのいずれかにより分析処理を実行する。
2013136520.tif 000002
【特許請求の範囲】
【請求項１】
外部装置からの要求に応じてデータの格納及び格納した前記データの分析を実行する情報処理システムであって、  それぞれが前記データの格納領域を提供している、複数のデータ格納部と、  それぞれが各前記データ格納部に関連付けられて、前記データ格納部に格納されている前記データのデータ構造に対して所定の操作を実行する、複数のデータ構造操作部と、  それぞれが各前記データ格納部に関連付けられて、前記データ格納部に格納されている前記データのいずれかを他の前記データ格納部に送信する、複数のデータ冗長化部と、  前記外部装置から要求された前記データを、複数の前記データ格納部のいずれに格納するかを決定するデータ配置決定部と、  複数の前記データ冗長化部にいずれかの前記データの他の前記データ格納部への送信をさせるデータ冗長化決定部と、  各前記データ構造操作部に前記データ格納部に格納されている前記データの前記データ構造を操作させるデータ構造操作決定部と、  複数の前記データ格納部に格納する前記データ及び前記データのデータ構造に関する情報であるデータ構造管理データを保持しているデータ構造管理情報保持部と、  前記外部装置から前記データ格納部に格納された前記データに対する分析要求を受け付けて、前記分析要求に係る前記データの分析処理を実行する分析処理部と、を備え、  前記データ配置決定部は、前記外部装置から格納要求を受けた前記データについて、あらかじめ設定されている、前記情報処理システム内での格納数とその格納される前記データに関する前記データ構造を取得し、前記データ構造管理情報保持部に格納されている対応データの前記データ構造管理情報を参照して、前記格納要求に係る前記データを格納すべき前記データ格納部を決定して前記外部装置に通知し、  前記データ冗長化決定部は、前記データ構造管理情報保持部を参照して前記格納要求に係る前記データの複製作成及び作成した複製の格納先である前記データ格納部への送信を前記データ冗長化部に指示し、  前記データ構造操作決定部は、前記データ構造管理情報保持部に記録されている前記データ構造管理情報を参照して、いずれかの前記複製が格納された前記データ格納部に格納された前記データについてデータ操作を実行する指示を前記データ構造操作部に送信し、  前記分析処理部は、前記分析要求の内容に応じていずれかの前記データ格納部に格納されている前記データ構造操作後の前記データ又はデータ構造未操作の前記データのいずれかにより前記分析処理を実行する、情報処理システム。
【請求項２】
請求項１に記載の情報処理システムであって、  前記データ構造操作決定部は、前記外部装置からの前記格納要求に係る前記データについて前記データ構造管理情報保持部に記録されている前記データ構造管理情報に応じて、複数の前記データ構造操作部のいずれかに、前記格納要求に係る前記データに対する前記データ構造操作処理を実行させる、情報処理システム。
【請求項３】
請求項１に記載の情報処理システムであって、  前記分析実行場所決定部は、前記外部装置からの前記分析要求の内容に基づいて、分析対象である前記データにつき前記データ構造に対する前記データ操作ごまたは前記データ構造未操作のいずれの前記データ構造を有する前記データを用いるか判定し、その判定結果に従って、前記データ構造管理情報保持部を参照して該当するデータ構造操作後又はデータ構造未操作のデータが格納されているいずれかの前記データ格納部に格納されているデータに対して分析処理を実行する、情報処理システム。
【請求項４】
請求項１に記載の情報処理システムであって、  いずれかの前記データ格納部に障害が発生したことを検知した場合、前記データ構造管理情報格納部に格納されている前記データ構造管理情報を参照して、障害が発生した前記データ格納部に格納されていたデータとそのデータ構造を取得し、障害が発生した前記データ格納部に格納されていた前記データを、障害が発生した前記データ格納部以外のいずれかの前記データ格納部に格納されている前記データを用いて、当該いずれかのデータ格納部に関連付けられている前記データ冗長化部及び前記データ構造操作部により復元させる、情報処理システム。
【請求項５】
請求項１に記載の情報処理システムであって、  前記外部装置から受け付けた分析要求に基づいて、分析対象である前記データの参照数を、前記データ構造別に記録する統計情報記録部と、  各前記データについて、前記データ構造操作後、及び前記データ未操作の前記データ構造ごとの前記データ保持割合を変更する指示を出す保持割合変更決定部と、を備え、  前記データ構造管理情報保持部は、各前記データごとの前記参照数、及び前記保持割合をさらに記録しており、  前記保持割合変更決定部は、各前記データ格納部が格納する前記データの前記データ構造別の保持割合と、前記統計情報記録部で記録された前記データ構造別の参照数を用いて、各前記データの前記データ構造の保持割合を変更するか判定し、変更すると判定した場合には新たな保持割合を決定し、前記データ冗長部、及び前記データ構造操作部に、前記データ構造の操作又は操作後の前記データ構造の復元を実行させる、情報処理システム。
【請求項６】
請求項５に記載の情報処理システムであって、  前記データ格納部に格納されている前記データの前記データ構造を変更する場合に、当該データの前記データ構造を操作するか、又は他の前記データ格納部に格納されている所望の前記データ構造を有する前記データを取得するかを決定し、該当する前記データ格納部に関連付けられている前記データ冗長化部に指示するデータ構造変更方法決定部と、  それぞれが各前記データ格納部に関連付けられており、前記各データ格納部に関する負荷情報を他の前記データ格納部に通知する負荷情報通知部と、  それぞれが各前記データ格納部に関連付けられており、前記データ格納部に格納された前記データを他の前記データ格納部から受信した前記データに置き換えるデータ置換部と、を備え、  前記保持割合変更決定部は、前記統計情報記録部により、前記データ構造管理情報保持部に記録された前記外部装置からの分析要求対象である前記データの前記データ構造別の参照数及び前記データ構造別の保持割合を用いて、各前記データの前記データ構造の保持割合を変更するか判定し、変更すると判定した場合には前記参照数に基づいて新たな保持割合を決定し、前記データ構造変更方法決定部が前記データに関する前記データ構造の操作、又はいずれかの前記データ格納部に格納されている前記データの複製作成及びデータ置換を実行させるかを決定するため、各前記データ格納部に関する負荷情報を通知するよう指示し、  前記データ構造変更方法決定部は、各前記データ格納部に関して受領した前記負荷情報を用いて、前記データ構造の操作をさせるか、前記データ冗長部および前記データ置換部に前記データの複製作成及びデータ置換を実行させるかを決定し、   前記データ置換部は、他の前記データ冗長部が送信した前記データを受信し、前記データ格納部に格納されたデータと置き換える処理を行う、情報処理システム。
【請求項７】
請求項１から請求項６までのいずれかに記載の情報処理システムであって、  前記データ構造操作部は、一定の規則に従って定義された可逆変換可能な変換元ファイルについて、変換処理を適用した変換済ファイルに変換するデータ構造変換部と、前記一定の規則に従って定義された可逆変換可能な変換済ファイルについて、逆変換処理を適用した変換元ファイルに変換するデータ構造逆変換部とを有する、情報処理システム。
【請求項８】
請求項７に記載の情報処理システムであって、  前記データ構造はカンマ区切り値形式であり、前記データ構造変換部は、前記データの行の値と列の値とを入れ替える転置処理を実行し、前記データ構造逆変換部は、前記転置処理されたデータの行の値と列の値とを入れ替える逆転置処理を実行する、情報処理システム。
【請求項９】
請求項７に記載の情報処理システムであって、  前記データ構造変換部は、前記データを適宜のアルゴリズムを用いて圧縮し、前記データ構造逆変換部は、前記圧縮されたデータについて、前記アルゴリズムにより復元する、情報処理システム。
【請求項１０】
外部装置からの要求に応じてデータの格納及び格納した前記データの分析を実行する情報処理システムの制御方法であって、  前記情報処理システムは、  それぞれが前記データの格納領域を提供している、複数のデータ格納部と、  それぞれが各前記データ格納部に関連付けられて、前記データ格納部に格納されている前記データのデータ構造に対して所定の操作を実行する、複数のデータ構造操作部と、  それぞれが各前記データ格納部に関連付けられて、前記データ格納部に格納されている前記データのいずれかを他の前記データ格納部に送信する、複数のデータ冗長化部と、  前記外部装置から要求された前記データを、複数の前記データ格納部のいずれに格納するかを決定するデータ配置決定部と、  複数の前記データ冗長化部にいずれかの前記データの他の前記データ格納部への送信をさせるデータ冗長化決定部と、  各前記データ構造操作部に前記データ格納部に格納されている前記データの前記データ構造を操作させるデータ構造操作決定部と、  複数の前記データ格納部に格納する前記データ及び前記データのデータ構造に関する情報であるデータ構造管理データを保持しているデータ構造管理情報保持部と、  前記外部装置から前記データ格納部に格納された前記データに対する分析要求を受け付けて、前記分析要求に係る前記データの分析処理を実行する分析処理部と、を備え、  前記データ配置決定部は、前記外部装置から格納要求を受けた前記データについて、あらかじめ設定されている、前記情報処理システム内での格納数とその格納される前記データに関する前記データ構造を取得し、前記データ構造管理情報保持部に格納されている対応データの前記データ構造管理情報を参照して、前記格納要求に係る前記データを格納すべき前記データ格納部を決定して前記外部装置に通知し、  前記データ冗長化決定部は、前記データ構造管理情報保持部を参照して前記格納要求に係る前記データの複製作成及び作成した複製の格納先である前記データ格納部への送信を前記データ冗長化部に指示し、  前記データ構造操作決定部は、前記データ構造管理情報保持部に記録されている前記データ構造管理情報を参照して、いずれかの前記複製が格納された前記データ格納部に格納された前記データについてデータ操作を実行する指示を前記データ構造操作部に送信し、  前記分析処理部は、前記分析要求の内容に応じていずれかの前記データ格納部に格納されている前記データ構造操作後の前記データ又はデータ構造未操作の前記データのいずれかにより前記分析処理を実行する、情報処理システムの制御方法。
【請求項１１】
請求項１０に記載の情報処理システムの制御方法であって、  前記データ構造操作決定部は、前記外部装置からの前記格納要求に係る前記データについて前記データ構造管理情報保持部に記録されている前記データ構造管理情報に応じて、複数の前記データ構造操作部のいずれかに、前記格納要求に係る前記データに対する前記データ構造操作処理を実行させる、情報処理システムの制御方法。
【請求項１２】
請求項１０に記載の情報処理システムの制御方法であって、  前記分析実行場所決定部は、前記外部装置からの前記分析要求の内容に基づいて、分析対象である前記データにつき前記データ構造に対する前記データ操作ごまたは前記データ構造未操作のいずれの前記データ構造を有する前記データを用いるか判定し、その判定結果に従って、前記データ構造管理情報保持部を参照して該当するデータ構造操作後又はデータ構造未操作のデータが格納されているいずれかの前記データ格納部に格納されているデータに対して分析処理を実行する、情報処理システムの制御方法。
【請求項１３】
請求項１０に記載の情報処理システムの制御方法であって、  いずれかの前記データ格納部に障害が発生したことを検知した場合、前記データ構造管理情報格納部に格納されている前記データ構造管理情報を参照して、障害が発生した前記データ格納部に格納されていたデータとそのデータ構造を取得し、障害が発生した前記データ格納部に格納されていた前記データを、障害が発生した前記データ格納部以外のいずれかの前記データ格納部に格納されている前記データを用いて、当該いずれかのデータ格納部に関連付けられている前記データ冗長化部及び前記データ構造操作部により復元させる、情報処理システムの制御方法。
【請求項１４】
請求項１０に記載の情報処理システムの制御方法であって、  前記情報処理システムは、  前記外部装置から受け付けた分析要求に基づいて、分析対象である前記データの参照数を、前記データ構造別に記録する統計情報記録部と、  各前記データについて、前記データ構造操作後、及び前記データ未操作の前記データ構造ごとの前記データ保持割合を変更する指示を出す保持割合変更決定部と、を備え、  前記データ構造管理情報保持部は、各前記データごとの前記参照数、及び前記保持割合をさらに記録しており、  前記保持割合変更決定部は、各前記データ格納部が格納する前記データの前記データ構造別の保持割合と、前記統計情報記録部で記録された前記データ構造別の参照数を用いて、各前記データの前記データ構造の保持割合を変更するか判定し、変更すると判定した場合には新たな保持割合を決定し、前記データ冗長部、及び前記データ構造操作部に、前記データ構造の操作又は操作後の前記データ構造の復元を実行させる、情報処理システムの制御方法。
【請求項１５】
請求項１４に記載の情報処理システムの制御方法であって、  前記情報処理システムは、  前記データ格納部に格納されている前記データの前記データ構造を変更する場合に、当該データの前記データ構造を操作するか、又は他の前記データ格納部に格納されている所望の前記データ構造を有する前記データを取得するかを決定し、該当する前記データ格納部に関連付けられている前記データ冗長化部に指示するデータ構造変更方法決定部と、  それぞれが各前記データ格納部に関連付けられており、前記各データ格納部に関する負荷情報を他の前記データ格納部に通知する負荷情報通知部と、  それぞれが各前記データ格納部に関連付けられており、前記データ格納部に格納された前記データを他の前記データ格納部から受信した前記データに置き換えるデータ置換部と、を備え、  前記保持割合変更決定部は、前記統計情報記録部により、前記データ構造管理情報保持部に記録された前記外部装置からの分析要求対象である前記データの前記データ構造別の参照数及び前記データ構造別の保持割合を用いて、各前記データの前記データ構造の保持割合を変更するか判定し、変更すると判定した場合には前記参照数に基づいて新たな保持割合を決定し、前記データ構造変更方法決定部が前記データに関する前記データ構造の操作、又はいずれかの前記データ格納部に格納されている前記データの複製作成及びデータ置換を実行させるかを決定するため、各前記データ格納部に関する負荷情報を通知するよう指示し、  前記データ構造変更方法決定部は、各前記データ格納部に関して受領した前記負荷情報を用いて、前記データ構造の操作をさせるか、前記データ冗長部および前記データ置換部に前記データの複製作成及びデータ置換を実行させるかを決定し、   前記データ置換部は、他の前記データ冗長部が送信した前記データを受信し、前記データ格納部に格納されたデータと置き換える処理を行う、情報処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、半構造化データの処理に適用することができる情報処理システム及び情報処理システムの制御方法に関する。
【背景技術】
【０００２】  情報処理システムが処理するデータの量は、処理対象とする分野の広がりとともに、年々増加している。また、データの種類も、従来の業務用データから、センサ技術に代表される実世界情報まで、多岐に渡っている。さらに、近年では、情報処理システムの処理過程で発生するログデータを解析することで、これまであまり価値がないものとして捉えられてきたログデータから、ビジネス、社会に対して新たな知見を得ようとする動きが活発である。これらのログデータを含む大量のデータはビッグデータと呼ばれており、大量データ処理を実現する基盤として、情報処理システムにはこれまで以上に高速なデータ処理が求められている。【０００３】  情報処理システムを高速化するには大きく分けて二種類の方法が存在する。一つは、スケールアップと呼ばれる単体の計算機の性能を向上させる方法である。もう一つは、スケールアウトと呼ばれ、計算機を複数台並べることで、情報処理システムの性能を向上させる方法である。最近では、スケールアップによる性能向上が従来に比べ鈍化しており、スケールアウトによる性能向上が主流となっている。さらに、スケールアウト型の分散処理においては、コモディティハードウェアで構成される計算機を複数台並べることで安価に分散処理を実現できるようになり、ユーザが手軽に利用できる分散処理基盤も情報処理システム向けに登場している。【０００４】  前記のように、近年利用されている分散処理基盤は、コモディティハードウェアを利用することを想定しているため、高速に分散処理を行うために、処理対象とするファイルを各計算機に分散配置することで、分散処理のスケールアウト性を実現している。  また、分散処理基盤を高速に実行するため、専用のファイルシステムも用意されている。このファイルシステムにおいては、コモディティハードウェアを利用することを想定しているため、処理対象とするファイルを複数の計算機で冗長的に保持することで、ファイルの耐障害性を実現している。【０００５】  また、大量データ処理が一般的になってきたことで、従来に比べデータの格納構造も変化している。これまでに処理対象としてきたデータは、リレーショナルデータベースに格納できるデータが一般的であった。このようなデータは構造化データと呼ばれている。また、リレーショナルデータベースの場合、データを検索したり、抽出したりする処理に適しているが、検索や抽出を行うために多大な時間とデータベースへのロード作業が必要である。【０００６】  一方、大量データ処理においては、データの量及び種類が増大しているため、従来のリレーショナルデータベースの方式では対応しきれなくなっているという問題がある。まず、画像や音声といった従来の構造化データでは扱えないデータが処理対象となりつつある。このようなデータは従来のリレーショナルデータベースでは処理が難しい。また、ログデータのように構造化されているものの、ファイル形式として存在しているデータは、その量と種類が大量であるため、リレーショナルデータベースにロードするのは現実的ではない。【０００７】  このような問題から、近年の分散処理基盤では、処理対象とするデータをリレーショナルデータベースにロードする���となく、元々のファイル形式のままで分散処理する方式が主流となっている。なお、画像や音声のようなデータは構造化することが難しいため、一般に非構造化データと呼ばれている。また、ログデータのように構造化されているものの、ファイル形式として存在しているデータは、半構造化データと呼ばれる。半構造化データには、CSV（Comma Separated Values）ファイルやXML（eXtended Marked-up Language）ファイルが含まれる。【０００８】  CSVファイルなどの半構造化データは、構造化されずにファイル形式として格納されているため、半構造化データに対するデータアクセスは、半構造化データのデータ構造に依存することが 知られている。この依存関係が問題となる場合を、例を挙げながら次に示す。【０００９】  ここでは、CSVファイルの場合の例を挙げる。CSVファイルをディスクからシーケンシャルに読み取ると、CSVファイル上のデータに対しては、行方向のデータにシーケンシャルにアクセスすることになる。CSVファイルの場合、１つの行には、タイムスタンプ、各レコードを区別するための名称、様々な属性値などの関連する情報を１レコードとして格納することが一般的である。従って、CSVファイルをシーケンシャルに読み取ると、レコード毎のデータをシーケンシャルに読み取ることができる。【００１０】  一方、CSVファイルに格納された情報を用いて分析する場合、同一種類の属性値を抽出したり、抽出した属性値の集計を計算したりする処理が広く一般的に行われている。このような処理では、同一種類の属性値を抽出してそれらを集計する際に、CSVファイルの列方向へのアクセスが発生する。従って、CSVファイルを単純にディスクに格納すると、CSVファイルの列方向へのアクセスは、ディスク上ではランダムアクセスとなってしまい、列方向へのアクセス速度が低下するという問題がある。【００１１】  上記問題に対して、従来の解決方法としては、データベースに格納されているデータを列方向に処理することが可能とされている形式であるカラムストアを利用した方法が存在する。この方法を利用している製品としては、例えば非特許文献１に示されるGoogle BigTable（商標）がある。また、類似する技術を開示している特許文献としては、特許文献１が存在する。【００１２】  カラムストアを利用した方法では、構造化データや半構造化データなどの入力データを情報処理システムにロードする際、入力データをカラムストアに格納することで、列方向アクセスに適したデータ構造に変換する。具体的には、データの行と列とをあらかじめ転置して格納することで、列方向のアクセスがシーケンシャルアクセスになるように変換する。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開平１１−１５４１５５号公報
【非特許文献】
【００１４】
【非特許文献１】F. Chang et al.、 "Bigtable: A distributed storage system for structured data"、 In Proc. OSDI、 2006、pp 205-218.
【発明の概要】
【発明が解決しようとする課題】
【００１５】  近年用いられている分散処理基盤においても、半構造化データの分析が必要とされている。この時、非特許文献１、特許文献１に示したカラムストアを用いた方法を適用した場合、以下のような問題がある。  分散処理基盤を用いた情報処理システムにおいて、カラムストアを利用する場合、カラムストアにデータを改めて格納する分だけ、情報処理システム内にデータを余分に持つ必要がある。一方、分散処理基盤を用いた情報処理システムは、データの耐障害性を高めるため、データを冗長化して格納している。以上の二点から、分散処理基盤を用いた情報処理システムにカラムストアを適用すると、データを余分に持たなければならない問題が発生する。
【課題を解決するための手段】
【００１６】  上記の、及び他の課題を解決するために、本発明の一態様は、外部装置からの要求に応じてデータの格納及び格納した前記データの分析を実行する情報処理システムであって、それぞれが前記データの格納領域を提供している、複数のデータ格納部と、それぞれが各前記データ格納部に関連付けられて、前記データ格納部に格納されている前記データのデータ構造に対して所定の操作を実行する、複数のデータ構造操作部と、それぞれが各前記データ格納部に関連付けられて、前記データ格納部に格納されている前記データのいずれかを他の前記データ格納部に送信する、複数のデータ冗長化部と、前記外部装置から要求された前記データを、複数の前記データ格納部のいずれに格納するかを決定するデータ配置決定部と、複数の前記データ冗長化部にいずれかの前記データの他の前記データ格納部への送信をさせるデータ冗長化決定部と、各前記データ構造操作部に前記データ格納部に格納されている前記データの前記データ構造を操作させるデータ構造操作決定部と、複数の前記データ格納部に格納する前記データ及び前記データのデータ構造に関する情報であるデータ構造管理データを保持しているデータ構造管理情報保持部と、前記外部装置から前記データ格納部に格納された前記データに対する分析要求を受け付けて、前記分析要求に係る前記データの分析処理を実行する分析処理部とを備え、前記データ配置決定部は、前記外部装置から格納要求を受けた前記データについて、あらかじめ設定されている、前記情報処理システム内での格納数とその格納される前記データに関する前記データ構造を取得し、前記データ構造管理情報保持部に格納されている対応データの前記データ構造管理情報を参照して、前記格納要求に係る前記データを格納すべき前記データ格納部を決定して前記外部装置に通知し、前記データ冗長化決定部は、前記データ構造管理情報保持部を参照して前記格納要求に係る前記データの複製作成及び作成した複製の格納先である前記データ格納部への送信を前記データ冗長化部に指示し、前記データ構造操作決定部は、前記データ構造管理情報保持部に記録されている前記データ構造管理情報を参照して、いずれかの前記複製が格納された前記データ格納部に格納された前記データについてデータ操作を実行する指示を前記データ構造操作部に送信し、前記分析処理部は、前記分析要求の内容に応じていずれかの前記データ格納部に格納されている前記データ構造操作後の前記データ又はデータ構造未操作の前記データのいずれかにより前記分析処理を実行する情報処理システムである。  また、本発明の他の態様は、前記情報処理システムの制御方法である。
【発明の効果】
【００１７】  本発明によれば、情報処理システム情報処理システム内に余計なデータを持つことなく、データの耐障害性を保ちながら、半構造化データの分析を高速に実行することができる情報処理システム及び情報処理システムの制御方法が提供される。
【図面の簡単な説明】
【００１８】
【図１】図１は、第一の実施形態における情報処理システム１０の構成例を示す図である。
【図２】図２は、計算機定義ファイル４０の構成例を示す図である。
【図３】図３は、ポリシー定義ファイル５０の構成例を示す図である。
【図４】図４は、分析要求設定画面６１の構成例を示す図である。
【図５】図５は、データ構造管理テーブル７０の構成例を示す図である。
【図６】図６は、本実施形態におけるデータ変換処理例を示す模式図である。
【図７】図７は、情報処理システム１０にファイルがコピーされた場合の処理を説明するシーケンス図の例である。
【図８】図８は、データ配置決定部１００の処理例を説明するフローチャートである。
【図９】図９は、データ冗長化決定部２００の処理例を説明するフローチャートである。
【図１０】図１０は、データ構造変換決定部３００の処理例を説明するフローチャートである。
【図１１】図１１は、データ構造変換部１２００の処理例を説明するフローチャートである。
【図１２】図１２は、データ構造逆変換部１３００の処理例を説明するフローチャートである。
【図１３】図１３は、第一の実施形態において分析要求を受信した場合の処理例を説明するシーケンス図である。
【図１４】図１４は、分析実行場所決定部５００の処理例を説明するフローチャートである。
【図１５】図１５は、処理用計算機２１に障害が発生した場合の処理例を説明するシーケンス図である。
【図１６】図１６は、データ復元決定部６００の処理例を説明するフローチャートである。
【図１７】図１７は、第二の実施形態における情報処理システム情報処理システム１０の構成例を示す図である。
【図１８】図１８は、データ構造・統計情報管理テーブル７０Ａの構成例を示す図である。
【図１９】図１９は、第二の実施形態における分析要求を受信した場合の処理例を説明するシーケンス図である。
【図２０】図２０は、統計情報記録部７００の処理例を説明するフローチャートである。
【図２１】図２１は、第二の実施形態における保持割合の変更を行う場合の処理例を説明するシーケンス図である。
【図２２】図２２は、保持割合変更決定部８００の処理例を説明するフローチャートである。
【図２３】図２３は、第三の実施形態における情報処理システム１０の構成例を示す図である。
【図２４】図２４は、変換ルール定義ファイル９０の構成例を示す図である。
【図２５】図２５は、第三の実施形態における保持割合の変更を行う場合の処理例を説明するシーケンス図である。
【図２６】図２６は、負荷情報通知部１５００の処理例を説明するフローチャートである。
【図２７】図２７は、第三の実施形態における保持割合変更決定部８００の処理例を説明するフローチャートである。
【図２８】図２８は、データ構造変換方法決定部９００の処理例を説明するフローチャートである。
【発明を実施するための形態】
【００１９】  以下、本発明を実施するための形態について、図面を用いて説明する。［第１の実施の形態］  図１は、本発明の第１の実施の形態に係る情報処理システム１０の全体構成を例示した図である。
【００２０】  まず、本発明の第１の実施の形態に係る情報処理システム１０のハードウェア構成例を示す。本システム１０は、管理用計算機２０、及び処理用計算機１〜３（２１−１〜２１−３）を有する。本実施の形態の例である図１では、本システム１０について処理用計算機は３台であるが、４台以上を設けてもよい。また、図１の例では管理用計算機２０は１台であるが、冗長化構成により複数の管理用計算機２０を稼動させてもよい。これらの管理用計算機２０及び処理用計算機３０は、それぞれ内部に中央処理装置３０−０〜３０−３、主記憶装置３１−０〜３１−３、二次記憶装置３２−０〜３２−３、ネットワークインターフェース３３−０〜３３−３、入力装置３４−０〜３４−３、出力装置３５−０〜３５−３を有し、それらの要素はバス３６−０〜３６−３によって相互に接続されている。
【００２１】  また、本システム１０を利用するための計算機として、格納要求計算機２４と、分析要求計算機２５とがあり、それぞれ内部に中央処理装置３０−４〜３０−５、主記憶装置３１−４〜３１−５、二次記憶装置３２−４〜３２−５、ネットワークインターフェース３３−４〜３３−５、入力装置３４−４〜３４−５、及び出力装置３５−４〜３５−５を有し、それらの要素はバス３６−４〜３６−５によって相互に接続されている。
【００２２】  中央処理装置３０−０〜３０−５は例えば中央処理ユニット（CPU）やマイクロプロセシングユニット（MPU）等である。主記憶装置３１−０〜３１−５は例えばランダムアクセスメモリ（RAM）やリードオンリーメモリ（ROM）等である。二次記憶装置３２−０〜３２−５は例えばハードディスクドライブ（HDD）や半導体ディスク（Solid State Disk、SSD)等である。ネットワークインターフェース３３−０〜３３−５は例えばEthernetネットワークインタフェースカード（NIC）等である。また、管理用計算機２０、処理用計算機２１−１〜２１−３、格納要求計算機２４、及び分析要求計算機２５は、各計算機が持つネットワークインターフェース３３−０〜３３−５を介してネットワーク３７によって相互に通信可能に接続されている。また、本システム１０を利用するための入力装置３４−０〜３４−５は、例えばキーボードやマウスなどの装置で構成される。出力装置３５−０〜３５−５は、例えば液晶モニタなどの装置で構成される。
【００２３】  次に、管理用計算機２０のソフトウェア構成例について、図１を参照して説明する。管理用計算機２０の主記憶装置３１−０には、データ配置決定部１００、データ冗長化決定部２００、データ構造変換決定部３００、分析要求受付部４００、分析実行場所決定部５００、及びデータ復元決定部６００が格納されている。これらの処理部は、各処理部の機能に対応するソフトウェアプログラムを中央処理装置３０−０が実行することによって実現されるが、ハードウェアとして実現することもできる。本実施の形態では、中央処理装置３０−０が各処理部を実行することで実現される各処理部を各処理の主体として説明するが、各処理部をハードウェアで実現した場合にはその各処理部が主体となって各処理を行う。また、管理用計算機２０の主記憶装置３１−０には、データ構造管理テーブル７０が格納されている。
【００２４】  次に、管理用計算機２０のソフトウェアの各処理部について説明する。  データ配置決定部１００は、本システム１０にファイルを格納する際、格納要求計算機２４が最初にどの処理用計算機２１にファイルを送信すべきかを決定し、格納要求計算機２４に指示する処理を実行する。以降、格納要求計算機２４が最初に本システム１０に送信するファイルを「元ファイル」と呼ぶ。
【００２５】  データ冗長化決定部２００は、処理用計算機２１に格納されたファイルに対して、ポリシー定義ファイル５０（図３を参照）に従い、ファイルの冗長度を満たすためにファイルの冗長化指示を出す処理を実行する。
【００２６】  データ構造変換決定部３００は、データ冗長化決定部２００により本システム１０の中で冗長化されたファイルに対して、ポリシー定義ファイル５０（詳細は図３を参照）に従い、データ構造の保持割合を満たすために冗長化されたファイルに対してデータ構造変換処理又はデータ構造逆変換処理の指示を出す処理を実行する。データ構造変換処理及びデータ構造逆変換処理の詳細は後述する。
【００２７】  分析要求受付部４００は、分析要求計算機２５から送信される分析要求を受け付け、分析実行場所決定部５００を呼び出す処理を行う。
【００２８】  分析実行場所決定部５００は、分析要求受付部４００が受信した分析要求計算機２５からの分析要求を解析し、分析要求設定画面６１（図４を参照）での設定を用いて、分析要求に対する分析処理を行う処理用計算機２１を決定し、分析処理を指示する。
【００２９】  データ復元決定部６００は、計算機に障害が発生した際に、ポリシー定義ファイル５０（図３参照）に従いファイルの冗長度を保つため、必要に応じてファイルの復元を各処理用計算機２１に指示する処理を実行する。
【００３０】  次に、管理用計算機２０の二次記憶装置３２−０の構成要素について、図１を参照して説明する。管理用計算機２０の二次記憶装置３２−０には、計算機定義ファイル４０（図２を参照）、ポリシー定義ファイル５０（図３を参照）、及び分析要求設定ファイル６０が格納されている。各要素の詳細は後述する。
【００３１】  次に、処理用計算機２１−１〜２１−３のソフトウェア構成例を、図１を参照して説明する。処理用計算機１（２１−１）、処理用計算機２（２１−２）、及び処理用計算機３（２１−３）のソフトウェア構成は同一であるため、ここでは代表として処理用計算機１（２１−１）を例にソフトウェア構成例を示す。主記憶装置３１−１には、データ保存部１０００、データ冗長化部１１００、データ構造変換部１２００、データ構造逆変換部１３００、及び分析処理部１４００が格納されている。これらの処理部は、各処理部の機能に対応するソフトウェアプログラムを中央処理装置３０−１が実行することによって実現されるが、ハードウェアとして実現することもできる。本実施の形態では、中央処理装置３０−１が各処理部を実行することで実現される各処理部を各処理の主体として説明するが、各処理部をハードウェアで実現した場合にはその各処理部が主体となって各処理を行う。
【００３２】  次に、処理用計算機１（２１−１）のソフトウェアの各処理部について、図１を参照して説明する。  データ保存部１０００は、格納要求計算機２４から送信されるファイルを受信し、処理用計算機１（２１−１）の二次記憶装置３２−１に保存する処理を実行する。
【００３３】  データ冗長化部１１００は、管理用計算機２０のデータ冗長化決定部２００が出す指示を受けて、処理用計算機１（２１−１）の二次記憶装置３２−１内に格納したファイルを他の計算機に対して送信する処理を実行する。
【００３４】  データ構造変換部１２００及びデータ構造逆変換部１３００は、処理用計算機１（２１−１）の二次記憶装置３２−１に格納したファイルのデータ構造を変換又は逆変換する処理を実行する。データ構造変換部１２００は、ファイル名を入力として受け付け、ファイルのデータ構造を、変換済ファイルのデータ構造に変換する処理を行う。以降、データ構造変換部１２００によって変換、出力されるファイルを「変換済ファイル」と呼ぶ。また、データ構造逆変換部１３００は変換済ファイルを入力として、データ構造を逆変換して得られる元ファイルを出力する。変換、逆変換の具体的な例は後述する。なお、本実施の形態では元ファイルのデータ構造としてCSV(Comma Separated Values)形式を例に説明するが、XML形式やZIP圧縮形式など、データを一定の規則に従って可逆変換可能であればいずれも本発明を適用可能である。データ構造変換部１２００はCSVファイルにおいて行データから列データへの転置処理を実行し、データ構造逆変換部１３００はCSVファイルの列データから行データへの転置処理を行う。
【００３５】  分析処理部１４００は、管理用計算機２０が実行する分析実行場所決定部５００が出す指示を受けて、分析要求に含まれるクエリを解析し、処理用計算機１（２１−１）の二次記憶装置３２−１に格納されたファイル上のデータに対する分析を実行し、分析結果を分析要求計算機２５に返却する処理を実行する。本実施の形態では、クエリ言語としてSQL(Structured Query Language)に似た言語を用いることとするが、任意のデータ解析言語が本発明に適用可能である。分析処理部１４００は、二次記憶装置３２−１に格納されたCSV形式のファイルに対して、本システム１０で用いるクエリを解析し、結果を返す処理を実行する。
【００３６】  次に、処理用計算機２１−１〜２１−３の二次記憶装置３２−１〜３２−３の構成要素について、図１を参照して説明する。処理用計算機２１−１〜２１−３の二次記憶装置３２−１〜３２−３には、本システム１０で管理されるファイル８０−１〜８０−３が格納されている。本システム１０で管理されるファイル８０−１〜８０−３は、元ファイルと、データ構造を変換した変換済ファイルのどちらかとして格納される。なお、各処理用計算機２１−１〜２１−３が格納するファイルは１つに限定されるものではなく、複数あってもよい。
【００３７】  次に、計算機定義ファイル４０について説明する。図２に、計算機定義ファイル４０の構成例を示している。この計算機定義ファイル４０は、管理用計算機２０の二次記憶装置３２−０に格納される。計算機定義ファイル４０には、管理用計算機２０が管理する処理用計算機４１〜４３が指定される。本実施の形態では、処理用計算機の指定には各処理用計算機２１−１〜２１−３のホスト名（処理用計算機１〜３）を用いているが、ＩＰアドレスなどの各処理用計算機２１−１〜２１−３を一意に特定できる方法も指定可能である。
【００３８】  次に、ポリシー定義ファイル５０について説明する。図３に、ポリシー定義ファイル５０の構成例を示している。このポリシー定義ファイル５０は管理用計算機２０の二次記憶装置３２−０に格納される。ポリシー定義ファイル５０には、一つのファイルに対して、冗長化のためにファイルをシステム内に何多重で保持するかを示すファイルの冗長度５１を定義することができる。また、システム内に多重に保持したファイルのうち、そのデータ構造の保持割合を定義する元ファイル・変換済ファイルの保持割合５２を定義することができる。例えば、ファイルの冗長度を３、元ファイル・変換済ファイルの保持割合を２：１と定義した場合、管理用計算機２０はポリシー定義ファイル５０を参照して、本システム１０に格納された各ファイルについて、変換前の元ファイルを２つ、変換後の変換済ファイルを１つ、計３つのファイルを各処理用計算機２１−１〜２１−３に分散して格納する。
【００３９】  図４に、管理用計算機２０の二次記憶装置３２−０に格納される、分析要求設定ファイル６０を編集するための分析要求設定画面６１の画面例を示している。本画面の入出力は、管理用計算機２０の入力装置３４−０、出力装置３５−０を経由して実行されるが、他の計算機の入力装置、出力装置により入出力処理することも可能である。本システム１０を利用するユーザは、本システム１０に分析要求計算機２５から分析要求を出す際に指定するクエリについて、クエリ毎に変換済ファイルを使用するかどうかを明示的に指定することができる。図４に示している画面の例では、特定の列の値の合計値を計算するクエリ６２、特定の列の平均値を計算するクエリ６３は、任意のファイルに対する分析について、変換済ファイルを使用するように定義されている。また、特定の列の値を取り出すクエリ６４は、任意のファイルに対する分析について、列数指定が１以上４以下の場合に変換済ファイルを使用するように定義されている。なお、本画面で定義されていないクエリに対しては、元ファイルを使用する。また、ユーザは変換済ファイルを使用するクエリを登録するリスト６５に対して、追加ボタン６６又は削除ボタン６７を用いて自由にクエリを追加、又は削除することもできる。なお、画面中に定義したクエリ６２〜６４は一例であり、これらに限定されるものではない。また、本例においてはSQLベースのクエリ言語を用いているが、その他一般のクエリ言語を用いることも可能である。
【００４０】  次に、データ構造管理テーブル７０について説明する。図５は、データ構造管理テーブル７０の構成例を示す図である。このデータ構造管理テーブル７０は管理用計算機２０の主記憶装置３１−０に格納される。データ構造管理テーブル７０の列７１−１〜７１−３は、各処理用計算機２１−１〜２１−３がそれぞれの二次記憶装置３２−１〜３２−３に保持しているファイルとその形式を表している。また、データ構造管理テーブル７０の行７２−Ａ〜７２−Ｃは、あるファイルについて、どの処理用計算機２１−１〜２１−３にどの保存形式で保持しているかを示している。図５に示す例では、処理用計算機２１−１〜２１−３を３台、ファイルを３種類として、各処理用計算機２１−１〜２１−３に配置されたファイルの保持状態を示している。なお、図５では、変換前の元ファイルを保持していることを”０”で表現し、変換後の変換済ファイルを保持していることを”１”で表現している。処理用計算機２１−１〜２１−３がファイルを保持していなければ、”−１”で表現する。
【００４１】  次に、データ構造管理テーブル７０の見方の例を示す。図５のデータ構造管理テーブル７０において、列７１−１は、処理用計算機１がファイルＡ、Ｃについて変換前の元ファイルを、ファイルＢについて変換後の変換済ファイルを二次記憶装置３２−１に格納していることを表している。また、行７２−Ａは、ファイルＡについて、変換前の元ファイルが処理用計算機１、及び処理用計算機２に、変換後の変換済ファイルが処理用計算機３の二次記憶装置３２−１〜３２−３に格納されていることを表している。
【００４２】  最後に、データ構造管理テーブル７０の更新方法の例を示す。データ構造管理テーブル７０は、各処理用計算機２１−１〜２１−３が保持しているファイルとそのデータ構造を表しているので、更新する場合には、全ての処理用計算機２１−１〜２１−３が保持しているファイルの形式を調べることで、データ構造管理テーブル７０の各項目７３−Ａ１〜７３−Ｃ３を更新することができる。
【００４３】  図６は、本実施の形態で処理することを想定するファイルと、その形式の例である。本実施の形態の場合、格納要求計算機２４が本システム１０に送信する元ファイル８１は、一行が一つのレコードとして扱われ各レコードの値は区切り文字のカンマによって分割されたCSV形式のファイルである。本実施の形態におけるデータ構造変換部１２００は、CSVファイルの行と列を転置させて保存する変換処理であるデータ構造変換処理８３を実行する。データ構造変換部１２００により、元ファイルの行と列が転置された変換済ファイル８２もまた、CSV形式のファイルである。本実施の形態におけるデータ構造逆変換部１３００は、データ構造変換部１２００によって行と列を転置させた変換済ファイル８２に対して、再度行と列を転置させて保存する変換処理であるデータ構造逆変換処理８４を実行する。つまり、データ構造変換部１２００が元ファイル８１に対してデータ構造変換処理８３を適用し、変換済ファイル８２を得た後、さらにデータ構造逆変換部１３００がデータ構造逆変換処理８４を適用すると、元ファイル８１が得られる。データ構造変換処理８３、及びデータ構造逆変換処理８４の詳細は後述する。
【００４４】  本実施形態では、元ファイル・変換済ファイルとして、CSV形式のファイルを用い、データ構造変換処理、データ構造逆変換処理として、CSV形式ファイルの行と列とを相互に転置する処理例を元に説明している。ただし、その他の例として、元ファイル・変換済ファイルとして展開済ファイルと圧縮済ファイル、データ構造変換処理として圧縮処理、データ構造逆変換処理として展開処理の組み合わせ、元ファイル・変換済ファイルとして復号化ファイルと暗号化ファイル、データ構造変換処理として暗号化処理、データ構造逆変換処理として復号化処理の組み合わせ等を含む他の変換・逆変換処理を適用することも可能である。
【００４５】  次に、本システム１０におけるファイルコピー処理について説明する。図７は、格納要求計算機２４から本システム１０にファイルがコピーされる場合の処理を説明するシーケンス図の例である。
【００４６】  格納要求計算機２４が本システム１０にファイルをコピーする場合、格納要求計算機２４が管理用計算機２０に対してファイル保存要求を出す（Ｓ２００１）。管理用計算機２０のデータ配置決定部１００は、格納要求計算機２４からのファイル保存要求（Ｓ２００１）を受けてデータ配置決定処理（Ｓ２００２）を実行し、格納要求計算機２４に、ファイルの保存先となる処理用計算機２１のホスト名を通知する（Ｓ２００３）。本シーケンス図の例では、データ配置決定部１００が、ファイルの保存先処理用計算機２１として処理用計算機１（２１−１）を選択している。データ配置決定部１００が実行するデータ配置決定処理（Ｓ２００２）の詳細は後述する。格納要求計算機２４は、管理用計算機２０からの保存先計算機指示（Ｓ２００３）の内容を受けて、処理用計算機１（２１−１）にファイルを送信する（Ｓ２００４）。処理用計算機１（２１−１）では、格納要求計算機２４が送信したファイルを受信し、データ保存部１０００が実行するデータ保存処理（Ｓ２００５）により、図１の処理用計算機１（２１−１）の二次記憶装置３２−１にファイルを格納する。この時格納したファイルを以降「元ファイル」と特定する。元ファイルの格納後、処理用計算機１（２１−１）は管理用計算機２０、及び格納要求計算機２４に対して保存完了通知（Ｓ２００６〜Ｓ２００７）を送信する。
【００４７】  管理用計算機２０では、処理用計算機１（２１−１）からの保存完了通知（Ｓ２００７）を受信後、データ冗長化決定部２００が実行するデータ冗長化決定処理Ｓ２００８により、元ファイルの冗長化を指示する（Ｓ２００９）。データ冗長化決定処理Ｓ２００８の詳細は後述する。データ冗長化決定処理Ｓ２００８により、処理用計算機１（２１−１）に対してデータ冗長化先である処理用計算機２１のホスト名を含むデータ冗長化指示Ｓ２００９が送信され、処理用計算機１（２１−１）はデータ冗長化処理Ｓ２０１０を実行する。データ冗長化処理Ｓ２０１０とは、指示されたファイルを他の処理用計算機２１に複製（コピー）する処理である。データ冗長化処理Ｓ２０１０の結果、元ファイルの送信先の処理用計算機２１が特定される。ここでは例として処理用計算機２（２１−２）、処理用計算機３（２１−３）に対して処理用計算機１（２１−１）の二次記憶装置３２−１に保存された元ファイルを送信している。処理用計算機２（２１−２）、処理用計算機３（２１−３）は、処理用計算機１（２１−１）が送信した元ファイルを受信後、データ保存処理Ｓ２０１３〜Ｓ２０１４により、それぞれの二次記憶装置３２−２〜３２−３に元ファイルを格納する。最後に、処理用計算機２（２１−２）、処理用計算機３（２１−３）は管理用計算機２０に対して保存完了通知Ｓ２０１５〜Ｓ２０１６を送信する。
【００４８】  管理用計算機２０は、処理用計算機２（２１−２）、処理用計算機３（２１−３）からの保存完了通知Ｓ２０１５〜Ｓ２０１６を受信後、データ構造変換決定処理Ｓ２０１７により、データ構造の変換を指示する。データ構造変換決定処理Ｓ２０１７の詳細は後述する。データ構造変換決定処理Ｓ２０１７により、データ構造変換処理を実行する処理用計算機２１が特定される。ここでは例として処理用計算機３（２１−３）に対して、データ構造変換処理すべきファイルのファイル名を含むデータ構造変換指示Ｓ２０１８を送信する。処理用計算機３（２１−３）はデータ構造変換指示Ｓ２０１８を受信後、データ構造変換処理Ｓ２０１９を実行する。データ構造変換処理Ｓ２０１９は、データ構造変換指示Ｓ２０１８に含まれるファイル名を元に、処理用計算機３（２１−３）の二次記憶装置３２−３に保存されているファイルのデータ構造を変換し、元ファイルを変換済ファイルに置き換える処理を行う。データ構造変換処理Ｓ２０１９の詳細は後述する。処理用計算機３（２１−３）は、データ構造を変換した後、変換完了通知Ｓ２０２０を管理用計算機２０に送信する。以上により、格納要求計算機２４が本システム１０にファイルをコピーする場合の処理が完了する。
【００４９】  次に、データ配置決定部１００が実行するデータ配置決定処理Ｓ２００２について説明する。図８はデータ配置決定処理Ｓ２００２の一例を示すフローチャートである。まず、データ配置決定部１００は、Ｓ１００で処理を開始すると、格納要求計算機２４からのファイル保存要求を受信する（Ｓ１０１）。このファイル保存要求は、図７におけるファイル保存要求Ｓ２００１に対応する。次に、図２に示した計算機定義ファイル４０から処理用計算機２１の一覧を読み出す（Ｓ１０２）。次に、読み出した処理用計算機２１の一覧の中から、格納要求計算機２４が最初にファイルを送信するべき計算機をランダムに１台選択する（Ｓ１０３）。ここで選択される計算機は、図７における処理用計算機１（２１−１）に対応する。最後に、データ配置決定部１００は、選択した処理用計算機２１に対してファイルを送信するよう格納要求計算機２４に指示するため、保存先計算機指示を格納要求計算機２４に送信する（Ｓ１０４）。ここでの保存先計算機指示は、図７における保存先計算機指示Ｓ２００３に対応する。以上でデータ配置決定部１００が実行するデータ配置決定処理Ｓ２００２は終了する（Ｓ１０５）。
【００５０】  次に、データ冗長化決定部２００が実行するデータ冗長化決定処理Ｓ２００８について説明する。図９はデータ冗長化決定処理Ｓ２００８の一例を示すフローチャートである。まず、データ冗長化決定部２００は、Ｓ２００で処理を開始すると、データ配置決定部１００において決定した処理用計算機２１から送信される保存完了通知を受信する（Ｓ２０１）。ここでの保存完了通知は、図７における保存完了通知Ｓ２００７に対応する。次に、図３に示したポリシー定義ファイル５０から保存対象であるファイルの冗長度５１を読み出す（Ｓ２０２）。次に、図２に示した計算機定義ファイル４０に記載された処理用計算機２１のうち、図８で示したデータ配置決定処理Ｓ２００２において選択した処理用計算機２１以外の処理用計算機２１の一覧を読み出す（Ｓ２０３）。読み出した処理用計算機２１の一覧から、（ファイルの冗長度−１）台の冗長化先計算機を選択する（Ｓ２０４）。図７に示したシーケンス図の例では、保存対象ファイルの冗長化度は３であり、データ配置決定処理Ｓ２００２において処理用計算機１（２１−１）を選択しているので、このステップで冗長化先計算機として処理用計算機２（２１−２）、処理用計算機３（２１−３）を選択する。最後に、図８で示したデータ配置決定処理Ｓ２００２において選択した処理用計算機２１に対して、Ｓ２０４で選択した全ての冗長化先計算機へデータ冗長化を指示するため、データ冗長化指示を送信して（Ｓ２０５〜Ｓ２０７）、処理を終了する（Ｓ２０８）。ここでのデータ冗長化指示は、図７におけるデータ冗長化指示Ｓ２００９に対応する。
【００５１】  次に、データ構造変換決定部３００が行うデータ構造変換決定処理Ｓ２０１７について説明する。図１０はデータ構造変換決定処理Ｓ２０１７の一例を示すフローチャートである。データ構造変換決定処理Ｓ２０１７では、データ冗長化決定処理Ｓ２００８及びデータ冗長化処理Ｓ２０１０によって冗長化されたファイルのうち、図３で示したポリシー定義ファイル５０の定義に従いデータ構造の変換が必要かどうかを判定、指示する処理を行う。以降図１０を用いてその処理を説明する。
【００５２】  データ構造変換決定部３００は、Ｓ３００で処理を開始すると、データ冗長化決定処理Ｓ２００８、及びデータ冗長化処理Ｓ２０１０により各処理用計算機２１で実行されるデータ保存処理Ｓ２０１３〜Ｓ２０１４が返す保存完了通知を全て受信する（Ｓ３０１）。ここでの保存完了通知は、図７における保存完了通知Ｓ２０１５〜Ｓ２０１６に対応する。次に、データ構造変換決定部３００は、図３で示したポリシー定義ファイル５０からファイルの冗長度５１、元ファイル・変換済ファイルの保持割合５２を読み出す（Ｓ３０２）。次に、データ構造変換決定部３００は、Ｓ３０２で読み出したファイルの冗長度５１と、元ファイル・変換済ファイルの保持割合５２とから、変換済ファイルの目標保持数を計算する（Ｓ３０３）。具体的には、目標保持数は、ファイルの冗長度をａ、保持割合をｂ：ｃとすると、ａ×ｃ／（ｂ＋ｃ）（小数点以下は切り捨て）で計算することができる。
【００５３】  データ構造変換決定部３００は、図５に例示したデータ構造管理テーブル７０を参照し、現在の変換済ファイルの保持数が、Ｓ３０３で計算した目標保持数に一致するまでＳ３０４〜Ｓ３０９を繰り返す。現在の変換済ファイルの保持数が、Ｓ３０３で計算した目標保持数に一致していない場合、さらに両者の比較を行い、現在の変換済ファイルの保持数が目標保持数よりも小さいと判定した場合（Ｓ３０５、現在の方が小さい）には、データ構造変換決定部３００はＳ３０６を実行し、元ファイルを格納している処理用計算機２１を１台選び、データ構造の変換を指示する（Ｓ３０６）。このデータ構造の変換指示には、変換するファイル名を含む。また、現在の変換済ファイルの保持数が目標保持数よりも大きいと判定した場合（Ｓ３０５、現在の方が大きい）には、データ構造変換決定部３００はＳ３０７を実行し、変換済ファイルを格納している処理用計算機を１台選び、データ構造の逆変換を指示する（Ｓ３０７）。このデータ構造の逆変換指示には、変換するファイル名を含む。最後に、データ構造変換決定部３００は、データ構造管理テーブル７０を更新し（Ｓ３０８）、現在の変換済ファイルの保持数とＳ３０３で計算した目標保持数とが一致するまでＳ３０４に戻る。
【００５４】  例えば、ポリシー定義ファイル５０に記録されている保存対象ファイルの冗長化度５１が３、元ファイル・変換済ファイルの保持割合５２が２：１の時には、一回目のＳ３０５の時点では、図７で示したデータ冗長化決定処理Ｓ２００８により、元ファイルの保持数は３であり、変換済ファイルの保持数は０となる。また、Ｓ３０３での目標保持数の計算から、変換済ファイルの目標保持数は１となる。従って、Ｓ３０６を実行し、元ファイルを変換済ファイルに変換することで、現在の変換済ファイルの保持数が１となり、目標保持数と一致するので、処理を終了する（Ｓ３１０）。
【００５５】  次に、データ構造変換部１２００が行うデータ構造変換処理Ｓ２０１９について説明する。図１１はデータ構造変換処理Ｓ２０１９の一例を示すフローチャートである。データ構造変換処理Ｓ２０１９では、図６で示したCSV形式の元ファイルに対して、行と列を転置させた変換済ファイルを作成、保存する処理を行うものである。以降、図１１を用いて処理を説明する。
【００５６】  まず、データ構造変換部１２００は、Ｓ１２００で処理を開始すると、管理用計算機２０からデータ構造変換指示を受信する（Ｓ１２０１）。ここでのデータ構造変換指示は、図７におけるＳ２０１８に対応する。データ構造変換指示には、変換対象となるファイルのファイル名が含まれており、このファイルを元ファイルと呼ぶことにし、データ構造変換処理で生成するファイルを変換済ファイルと呼ぶこととする。
【００５７】  データ構造変換部１２００は、元ファイルをオープンし、空の変換済ファイルを作成する（Ｓ１２０２）。次に、データ構造変換部１２００は、元ファイルの各列の値について、列毎に転置処理を行う処理Ｓ１２０３〜Ｓ１２０５を繰り返す。処理の中では、各列の値を順に読み取り、読み取った順にカンマ区切りの一行のCSV形式に変換した後、変換済ファイルに追記する（Ｓ１２０４）。Ｓ１２０３からＳ１２０５までの処理を実行した後、元ファイル、及び変換済ファイルをクローズし（Ｓ１２０６）、元ファイルを変換済ファイルと置き換えて（Ｓ１２０７）、処理を終了する（Ｓ１２０８）。なお、図６でも説明したように、データ構造変換処理としてのCSV形式の行と列を転置させる処理は本実施の形態における一例であり、これに限定されるものではない。
【００５８】  次に、データ構造逆変換部１３００が行うデータ構造逆変換処理について説明する。図１２はデータ構造逆変換処理の一例を示すフローチャートである。データ構造逆変換処理は、図６で示したCSV形式の変換済ファイルに対して、列と行を転置させた変換済ファイルを作成、保存する処理を行うものである。以降、図１２を用いて処理を説明する。
【００５９】  まず、データ構造逆変換部１３００は、Ｓ１３００で処理を開始すると、管理用計算機２０からデータ構造逆変換指示を受信する（Ｓ１３０１）。データ構造逆変換指示には、逆変換対象となるファイルのファイル名が含まれており、このファイルを変換済ファイルと呼ぶことにし、データ構造逆変換処理で生成するファイルを元ファイルと呼ぶこととする。
【００６０】  データ構造逆変換部１３００は、変換済ファイルをオープンし、空の元ファイルを作成する（Ｓ１３０２）。
【００６１】  次に、データ構造逆変換部１３００は、変換済ファイルの各列の値について、列毎に転置処理を行う処理Ｓ１３０３〜Ｓ１３０５を繰り返す。この転置処理の中では、各列の値を順に読み取り、読み取った順にカンマ区切りの一行のCSV形式に変換した後、元ファイルに追記する（Ｓ１３０４）。データ構造逆変換部１３００は、Ｓ１３０３からＳ１３０５までの処理を実行した後、変換済ファイル、及び元ファイルをクローズし（Ｓ１０６）、変換済ファイルを元ファイルと置き換えて（Ｓ１３０７）、処理を終了する（Ｓ１３０８）。なお、図６でも説明したように、データ構造逆変換処理としてのCSV形式の列と行を転置させる処理は本実施の形態における一例であり、これに限定されるものではない。
【００６２】  次に、本実施形態の情報処理システム１０における分析要求処理について説明する。図１３は本システム１０が分析要求計算機２５から分析要求を受けた場合のシーケンス図の例である。分析要求計算機２５は、クエリを含む分析要求を管理用計算機２０に送信する。管理用計算機２０は、分析要求受付処理Ｓ２１０２により分析要求計算機２５からの分析要求を受信し、分析実行場所決定処理Ｓ２１０３により分析を実行する計算機を決定する。分析実行場所決定処理Ｓ２１０３の詳細は後述する。
【００６３】  分析実行場所決定処理Ｓ２１０３で決定された処理用計算機２１に対して、管理用計算機２０は分析指示Ｓ２１０４を送信する。本シーケンス図の例では、分析実行場所決定処理Ｓ２１０３は処理用計算機３（２１−３）を選択しているが、これに限定されるものではない。分析指示Ｓ２１０４を受信した処理用計算機３（２１−３）では、分析処理Ｓ２１０５により分析を行い、分析結果Ｓ２１０６を分析要求計算機２５に対して送信する。以上の処理により、分析要求計算機２５は、分析要求Ｓ２１０１に対する分析結果Ｓ２１０６を得ることができる。
【００６４】  次に、分析実行場所決定部５００が実行する分析実行場所決定処理Ｓ２１０３について説明する。図１４は、分析実行場所決定処理Ｓ２１０３の一例を示すフローチャートである。まず、分析実行場所決定部５００は、Ｓ５００で処理を開始すると、図４に例示した分析要求設定画面６１で編集することのできる分析要求設定ファイル６０から、変換済ファイルを使用するクエリのリストを読み出す（Ｓ５０１）。次に、分析要求受付処理Ｓ２１０２で受信したクエリが、Ｓ５０１で読み出した変換済ファイルを利用するクエリのリストに含まれているか調べる（Ｓ５０２）。クエリが変換済ファイルを使用するクエリのリストに含まれていると判定した場合（Ｓ５０２、含まれている）、分析実行場所決定部５００はＳ５０３の処理に進む。クエリがリストに含まれていないと判定した場合（Ｓ５０２、含まれていない）、Ｓ５０４に進む。
【００６５】  Ｓ５０３に進んだ場合、分析実行場所決定部５００は、図５に示したデータ構造管理テーブル７０から変換済ファイルが格納されている処理用計算機２１を１台選択する（Ｓ５０３）。一方、Ｓ５０４に進んだ場合、分析実行場所決定部５００は、図５に示したデータ構造管理テーブル７０から元ファイルが格納されている処理用計算機を１台選択する（Ｓ５０４）。Ｓ５０３、Ｓ５０４のいずれかにおいて、候補となる計算機が複数存在する場合には、それらの計算機からランダムに１台選択する。最後に、分析実行場所決定部５００は、Ｓ５０３、Ｓ５０４のいずれかのステップで選択された計算機に対して、分析処理を指示し（Ｓ５０５）、処理を終了する（Ｓ５０６）。ここでの分析指示は、図１３におけるＳ２１０４に対応する。
【００６６】  次に、本システム１０内の処理用計算機２１に障害が発生した場合のファイルの復元処理について説明する。図１５は本システム１０内の処理用計算機２１に障害が発生した場合のファイルの復元処理を示したシーケンス図の例である。本シーケンス図では、処理用計算機２（２１−２）に障害が発生した場合に、ファイルの冗長度を保証するため、処理用計算機２’（２１−２’）にファイルを復元する場合の例を示している。以降、図１５を用いて処理を説明する。
【００６７】  まず、管理用計算機２０は、定期的に障害検出処理Ｓ２２０１を実行して、図２に示した計算機定義ファイル４０に記載された各処理用計算機２１に障害が発生していないかチェックする。本シーケンス図の例では、処理用計算機１（２１−１）、処理用計算機２（２１−２）、処理用計算機３（２１−３）、及び処理用計算機２’（２１−２’）に障害が発生していないかチェックしている。障害検出処理Ｓ２２０１は、以下に示す既存の方法により実現できるため、ここでは説明を省略する。障害検出処理の方法の例としては、各計算機へのネットワーク通信の可否により計算機の死活監視を行う方法、各処理用計算機が収集、通知する管理情報を管理用計算機２０が参照することで計算機の死活監視を行う方法等がある。
【００６８】  管理用計算機２０が障害検出処理Ｓ２２０１によって処理用計算機２１の障害を検出した場合には、本システム１０に格納されたファイルの冗長性が失われている可能性が高いため、データの復元処理を実行する必要がある。復元処理が必要かどうかを決定するため、管理用計算機２０はデータ復元決定処理Ｓ２２０２を実行する。
【００６９】  データ復元決定部６００が実行するデータ復元決定処理Ｓ２２０２では、障害検出処理Ｓ２２０１で検出された障害の発生した処理用計算機２１に格納されていた各ファイルについて、冗長性が失われていないか確認し、冗長性が失われていれば、別の処理用計算機２１に冗長性が失われているファイルを復元する。本シーケンス図の例では、処理用計算機２（２１−２）に障害が発生した場合に、データ復元決定部６００により、障害によって失われたファイルを処理用計算機３（２１−３）が保持していることが特定され、処理用計算機３（２１−３）から処理用計算機２’（２１−２’）にファイルが送信されている。ファイルを復元する具体的な手順は、データ冗長化処理の指示と、データ構造変換の指示もしくはデータ構造逆変換の指示である。詳細は後述する。
【００７０】  次に、データ復元決定部６００が実行するデータ復元決定処理Ｓ２２０２について説明する。図１６は、データ復元決定処理Ｓ２２０２の一例を示すフローチャートである。データ復元決定処理Ｓ２２０２では、障害が発生した処理用計算機２１に保存されていた全てのファイルのうち、図３に示したポリシー定義ファイル５０の中のファイルの冗長度５１を満たさないファイルについて、別の処理用計算機２１間で復元を行うよう指示をする処理を実行する。また、ファイルを復元した後、データ構造の保持割合５２を調整するため、データ構造の変換もしくは逆変換の指示をする処理も実行する。以降、図１６を用いて処理を説明する。
【００７１】  まず、データ復元決定部６００は、Ｓ６００で処理を開始すると、図５で示したデータ構造管理テーブル７０を参照し、障害が発生した処理用計算機２１に保存されていたファイルの情報を全て取得する（Ｓ６０１）。次に、情報を取得した全ファイルについてＳ６０２からＳ６１１までの処理を繰り返す。Ｓ６０２からＳ６１１までのループの中では、各ファイルについて、図３で定義したファイルの冗長度５１を満たしているかを判定する（Ｓ６０３）。冗長度５１を満たしていると判定した場合（Ｓ６０３、満たしている）、データ復元決定部６００は以降の処理は実行せず、Ｓ６０２の処理に戻る。一方、冗長度５１を満たしていないと判定した場合（Ｓ６０３、満たしていない）、データ復元決定部６００はＳ６０４の処理に進む。
【００７２】  データ復元決定部６００は、復元対象となるファイルについて、元ファイル・変換済ファイルのいずれであるかを問わず保持している計算機の中から、復元元の計算機として１台を選択する（Ｓ６０４）。候補となる計算機が複数ある場合には、ランダムに選択する。さらに、復元対象となるファイルについて、元ファイル・変換済ファイルいずれのファイルも保持していない計算機の中から、復元先の計算機として１台を選択する（Ｓ６０５）。こちらも、候補となる計算機が複数ある場合には、それらの計算機からランダムに選択する。データ復元決定部６００は、Ｓ６０４で選択された復元元計算機に対して、Ｓ６０５によって選択された復元先計算機への復元対象ファイルのデータ冗長化処理を指示する（Ｓ６０６）。ここでのデータ冗長化指示は、図１５におけるデータ冗長化指示Ｓ２２０３に対応する。ここまでの処理により、復元対象となるファイルの冗長度５１を障害発生前の状態に復元することができる。
【００７３】  さらに、障害が発生した計算機に格納されていたファイルのデータ構造と、Ｓ６０４からＳ６０６のステップで複製されたファイルのデータ構造を比較する（Ｓ６０７）。比較した結果、データ構造が同じであると判定した場合（Ｓ６０７、同じ）、データ復元決定部６００は、Ｓ６１１の処理に進む。一方、データ構造が異なるものであると判定した場合（Ｓ６０７、異なる）、データ復元決定部６００はＳ６０８の処理に進み、Ｓ６０４で選択した復元元のファイルのデータ構造を確認する（Ｓ６０８）。復元元のファイルのデータ構造が元ファイルであると判定した場合（Ｓ６０８、元ファイル）、データ復元決定部６００はＳ６０９の処理に進み、Ｓ６０５で選択した復元先の計算機に対して、データ構造変換処理の指示を実行する（Ｓ６０９）。一方、変換済ファイルであると判定した場合（Ｓ６０８、変換済ファイル）、データ復元決定部６００は、Ｓ６０５で選択した復元先の計算機に対して、データ構造逆変換処理を指示する（Ｓ６１０）。ここまでの処理により、復元対象となるファイルのデータ構造の保持割合５２を障害発生前の状態に復元することができる。なお、障害が発生した処理用計算機２１に保持されていたデータ構造と同一のデータ構造で復元対象データを格納している処理用計算機２１を復元元計算機として選定すれば、復元先におけるデータ変換処理を省略することも可能である。この場合、管理用計算機２０は、データ構造管理テーブル７０を参照して、障害が発生した処理用計算機２１に格納されていたデータのデータ構造と同一のデータ構造で復元すべき当該データを保持している処理用計算機２１を復元元として選択すればよい。
【００７４】  データ復元決定部６００は、障害が発生した計算機に保存されていたファイル全てについてＳ６０２からＳ６１１を繰り返した後、データ構造管理テーブル７０を最新の情報に更新して（Ｓ６１２）、処理を終了する（Ｓ６１３）。
【００７５】［第２の実施の形態］  次に、本発明について、その第２の実施形態に即して説明する。本実施の形態では、分析要求の統計情報を用いて元ファイル・変換済ファイルの保持割合の動的な変更も行うことができるシステムの例を示している。
【００７６】  第１の実施の形態において、元ファイル・変換済ファイルの保持割合５２は、図３で示したポリシー定義ファイル５０に静的に定義されており、システム稼動中に保持割合５２を動的に変更することはできなかった。このような構成の場合、元ファイル・変換済ファイルのうち、複数の分析要求がどちらか一方に集中した場合、元ファイル・変換済ファイルの保持割合５２の初期定義によっては、分析要求を処理する処理用計算機２１の負荷が特定の処理用計算機２１に偏ってしまい、本システム１０全体の性能向上を図ることが難しいという問題がある。そこで、本実施の形態では、分析要求に関する統計情報を記録しておき、その記録された統計情報に基づいたデータ構造の保持割合の動的な変更を実現する。
【００７７】  図１７に、第２の実施の形態における本システム１０構成例を示している。図１に例示した第１の実施形態の情報処理システム１０の構成に加えて、管理用計算機２０に統計情報記録部７００、及び保持割合変更決定部８００が追加されている。また、データ構造管理テーブル７０を拡張したテーブルであるデータ構造・統計情報管理テーブル７０Ａが追加されている。
【００７８】  図１８に、データ構造・統計情報管理テーブル７０Ａの構成例を示している。図５で示したデータ構造管理テーブル７０とは、各ファイルについて、現在の元ファイル・変換済ファイルの保持割合を記録するフィールド（７４−Ａ〜７４−Ｃ）、及び分析処理でのデータ構造別の参照数を記録するフィールド（７５−Ａ〜７５−Ｃ）が追加されている点が異なる。
【００７９】  次に、データ構造・統計情報管理テーブル７０Ａの見方の例を示す。列７１−１は、処理用計算機１がファイルＡ、Ｃについて変換前の元ファイルを、ファイルＢについて変換後の変換済ファイルを保持していることを示す。また、行７２−Ａは、ファイルＡについて、処理用計算機１、２が変換前の元ファイルとして保持していることを示し、処理用計算機３が変換後の変換済ファイルとして保持していることを示す。
【００８０】  保持割合を記録するフィールド７４−Ａ〜７４−Ｃの列７４は、各ファイルについて、元ファイルと変換済ファイルの保持割合を表している。例えば、行７２−Ａの場合、ファイルＡは元ファイルが２個、変換済ファイルが１個の状態で本システムに格納されているので、セル７４−Ａには２：１と記録される。参照数を記録するフィールド７５−Ａ〜７５−Ｃの列７５は、各ファイルについて、元ファイルへの参照数と、変換済ファイルへの参照数を表している。例えば、行７２−Ａの場合、ファイルＡについて、元ファイルには合計で２回、変換済ファイルには合計で６回参照されたことを示すように、セル７５−Ａには２：６と記録されている。なお、参照数７５は、情報処理システム１０の稼働期間中の参照数を、データ構造別に累積して記録されるが、直近の単位時間あたりの参照数を記録する等の他の記録態様を採用してもよい。
【００８１】  次に、データ構造・統計情報管理テーブル７０Ａの更新方法の例を示す。まず、セル７３−Ａ１〜７３−Ｃ３に示される各項目の更新方法については、図５で示した方法と同様である。次に、保持割合を記録するフィールド７４−Ａ〜７４−Ｃの更新方法については、対応する各行について、元ファイルの個数と変換済ファイルの個数をそれぞれ数え上げ、７４−Ａ〜７４−Ｃの対応するフィールドに（元ファイルの個数）：（変換済ファイルの個数）という形式で記録する。参照数を記録するフィールド７５−Ａ〜７５−Ｃの更新方法については、図２０を参照して後述する。
【００８２】  図１９に、本実施の形態における、分析要求計算機２５が本システム１０に分析要求を送信した場合のシーケンス図の例を示している。第１の実施の形態で示した図１３とは、分析実行場所決定処理Ｓ２３０３の後、管理用計算機２０の処理として、統計情報記録処理Ｓ２３０７が追加されている点が異なる。
【００８３】  具体的な例を元に、本シーケンス図を説明する。本システム１０には処理用計算機が３台登録されており、ファイルＡ、Ｂ、Ｃが図１８に示したデータ構造・統計情報管理テーブル７０Ａに示すように各処理用計算機２１の二次記憶装置３２に格納されている。この時、分析要求計算機２５から分析要求Ｓ２３０１が管理用計算機２０に送信される。すると、管理用計算機２０は分析要求受付処理Ｓ２３０２、分析実行場所決定処理Ｓ２３０３を実行し、分析要求Ｓ２３０４を処理用計算機３（２１−３）で実行することを決定する。分析要求受付処理Ｓ２３０２、分析実行場所決定処理Ｓ２３０３については第１の実施の形態の図１３、図１４と同様であるため、説明を省略する。分析実行場所決定処理Ｓ２３０３の結果、分析処理を処理用計算機３（２１−３）で実行することが決定されたので、処理用計算機３（２１−３）は分析処理Ｓ２３０５を実行する。この時、管理用計算機２０では、統計情報記録処理Ｓ２３０７を実行し、分析要求計算機２５から送信された分析要求が処理用計算機３（２１−３）で実行されたことを図１８に示したデータ構造・統計情報管理テーブル７０Ａに記録する処理を行う。統計情報記録処理Ｓ２３０７の詳細については後述する。
【００８４】  ここで、統計情報記録部７００が実行する統計情報記録処理Ｓ２３０７について説明する。図２０は、統計情報記録処理Ｓ２３０７の一例を示すフローチャートである。統計情報記録部７００は、直前に実行された分析実行場所決定処理Ｓ２３０３で決定した処理用計算機２１と、分析処理Ｓ２３０５で使用したファイルから、データ構造・統計情報管理テーブル７０Ａの参照数フィールドを更新する処理を実行する。統計情報記録部７００は、Ｓ７００で処理を開始すると、まず、図１８で示したデータ構造・統計情報管理テーブル７０Ａから、分析実行場所決定処理Ｓ２３０３で選択された処理用計算機２１の列を選択する（Ｓ７０１）。次に、選択した列から、分析要求で使用したファイルの行を選択する（Ｓ７０２）。次に、選択した列と行が交差するセルの値を確認する（Ｓ７０３）。セルの値が元ファイルを表す０であると判定した場合には、統計情報記録部７００はＳ７０４の処理に進む（Ｓ７０４、０）。一方、セルの値が変換済ファイルを表す１であると判定した場合には、統計情報記録部７００はＳ７０５の処理に進む（Ｓ７０５、１）。Ｓ７０４の処理に進んだ場合、統計情報記録部７００は選択した行の参照数フィールドの左側の値を１増やす（Ｓ７０４）。一方、Ｓ７０５の処理に進んだ場合には、統計情報記録部７００は選択した行の参照数フィールドの右側の値を１増やす（Ｓ７０５）。Ｓ７０６で統計情報記録部７００は処理を終了する。
【００８５】  次に、保持割合変更決定部８００が実行する、保持割合変更決定処理Ｓ２４０１について説明する。図２１に、保持割合変更決定処理Ｓ２４０１で選択されたファイルに対して、データ構造の保持割合を変更する場合のシーケンス図の例を示している。保持割合変更決定処理Ｓ２４０１が行われるタイミングは任意に設定可能である。例えばユーザが手動で保持割合変更決定部８００に実行させることもできるし、管理用計算機２０が保持割合変更決定部８００に定期的に実行させる構成も本発明に適用可能である。保持割合変更決定処理Ｓ２４０１の詳細は後述する。また、シーケンス図中のデータ構造変換指示Ｓ２４０２、データ構造変換処理Ｓ２４０３は、あくまで例であり、保持割合変更決定処理Ｓ２４０１の決定によっては、データ構造逆変換指示、データ構造逆変換処理となる場合も存在する。
【００８６】  具体的な例を元に、本シーケンス図を説明する。本システム１０には処理用計算機２１が３台登録されており、あるファイルＡについて、保持割合変更決定処理Ｓ２４０１が保持割合の変更をすると決定した場合を考える。この時、ファイルＡは、図１８で示したデータ構造・統計情報管理テーブル７０Ａの７２−Ａ行に示したように、処理用計算機１、２、３にそれぞれ格納されている。また、ファイルＡについて、元ファイルと変換済ファイルの保持割合は、７４−Ａに記載されているように２：１であり、元ファイルと変換済ファイルの参照数は７５−Ａに記載されている２：６であるとする。
【００８７】  図２１に示すように、まず管理用計算機２０は、保持割合変更決定処理Ｓ２４０１を実行する。保持割合変更決定処理Ｓ２４０１の詳細は後述するが、本シーケンス図の例では、保持割合変更決定処理Ｓ２４０１を実行した結果、現在の保持割合２：１を、参照数２：６に最も近い新たな保持割合１：２に変更することが決定される。さらに、現在の保持割合２：１を新たな保持割合１：２に変更するため、処理用計算機２（２１−２）に格納されたファイルＡの元ファイルに対して、データ構造の変換を指示することが決定され、データ構造変換指示Ｓ２４０２を処理用計算機２（２１−２）に送信する。データ構造変換指示Ｓ２４０２を受信した処理用計算機２（２１−２）では、データ構造変換指示で指定されたファイルＡの元ファイルに対してデータ構造変換処理Ｓ２４０３を実行し、ファイルＡの変換済ファイルを得る。データ構造変換処理Ｓ２４０３は、図１１で示した処理と同一である。ファイルＡの元ファイルに対するデータ構造変換処理Ｓ２４０３が完了後、処理用計算機２（２１−２）は管理用計算機２０に対して変換完了通知Ｓ２４０４を送信して処理を終了する。以上の処理により、ファイルＡについて元ファイルと変換済ファイルの保持割合が２：１であった状態から、参照数である２：６により近い、新たな保持割合１：２の状態に変更される。
【００８８】  ここで、保持割合変更決定部８００が実行する、保持割合変更決定処理Ｓ２４０１について説明する。図２２は、保持割合変更決定処理Ｓ２４０１の一例を示すフローチャートである。保持割合変更決定部８００は、本システム１０に格納されている全てのファイルについて、元ファイルと変換済ファイルの保持割合の変更が必要かどうかを確認し、必要であれば、新たな保持割合を決定し、データ構造の変換もしくは逆変換を処理用計算機２１に指示することにより、元ファイルと変換済ファイルの保持割合を変更する処理を実行する。以降、図２２を参照して処理を説明する。 
【００８９】  まず、保持割合変更決定部８００は、Ｓ８００で処理を開始すると、図３に示したポリシー定義ファイル５０からファイルの冗長度５１を読み出す（Ｓ８０１）。以降、ファイルの冗長度をｅとする。次に、図１８で示したデータ構造・統計情報管理テーブル７０Ａに登録されている全てのファイルについて、Ｓ８０２からＳ８１５までを繰り返す。次に、データ構造・統計情報管理テーブル７０Ａから各ファイルの保持割合（７４−Ａ〜７４−Ｃ）と参照数（７５−Ａ〜７５−Ｃ）とを読み出す（Ｓ８０３）。以降、読み出した保持割合をａ：ｂ、読み出した参照数をｃ：ｄとする。
【００９０】  保持割合変更決定部８００は、読み出した保持割合と参照数の傾向が同じであるか判定する（Ｓ８０４）。具体的な判定方法の例は以下のようである。すなわち、ａ／（ａ＋ｂ）の値とｃ／（ｃ＋ｄ）の値を比較して、１／（ａ＋ｂ）以上の差があれば、保持割合と参照数の傾向が異なると判定する。一方、差が１／（ａ＋ｂ）未満であれば、保持割合と参照数の傾向は同じであると判定する。上記で示した保持割合と参照数の傾向の判定方法はあくまで一例であり、これに限定されるものではない。
【００９１】  Ｓ８０４において、保持割合と参照数の傾向が同じだと判定した場合には（Ｓ８０４、同じ）、保持割合変更決定部８００は、ループ終端（Ｓ８１５）まで処理をスキップする。一方、保持割合と参照数の傾向が異なると判定した場合には（Ｓ８０４、異なる）、保持割合変更決定部８００はＳ８０５の処理に進む。
【００９２】  保持割合変更決定部８００は、参照数ｃ：ｄに近い新たな保持割合を決定する（Ｓ８０５、Ｓ８０６）。ここでは、新たな保持割合の決定方法の例を挙げる。すなわち、これから決定する新たな保持割合をａ’：ｂ’（ａ’、ｂ’は負でない整数）と置く。この時、ａ’／ｅとｃ／（ｃ＋ｄ）の差の絶対値が最小となる負でない整数値ａ’を求める。次にｂ’＝ｅ−ａ’を計算する。以上から、新たな保持割合ａ’：ｂ’を決定することができる。なお、上記で挙げた決定方法はあくまで一例であり、これに限定されるものではない。
【００９３】  上記の決定方法の例に従うと、例えば、ファイルの冗長度（ｅ）が３、元ファイル・変換済ファイルの保持割合（ａ：ｂ）が２：１、参照数（ｃ：ｄ）が１：２だった場合には、新たな保持割合ａ’：ｂ’は１：２となる。
【００９４】  次に、保持割合変更決定部８００は、変換済ファイルの目標保持数を計算する（Ｓ８０７）。ここでの目標保持数は、Ｓ８０６で計算したｂ’と同一である。次に、保持割合変更決定部８００は、図１８に示したデータ構造・統計情報管理テーブル７０Ａを参照して、現在の変換済ファイルの保持数と、Ｓ８０７で計算した目標保持数が一致するまでＳ８０８からＳ８１４までの処理を繰り返す。現在の変換済ファイルの保持数と、Ｓ８０７で計算した目標保持数が一致しないと判定した場合、引き続き現在の変換済ファイルの保持数と、目標保持数を比較する（Ｓ８０９）。Ｓ８０９での比較の結果、現在の変換済ファイルの保持数の方が小さいと判定した場合（Ｓ８０９、現在の方が小さい）、保持割合変更決定部８００は、元ファイルから変換済ファイルへのデータ構造変換処理を行う（Ｓ８１０）。具体的には、新たに決定した保持割合になるように、元ファイルを格納した処理用計算機２１の中からランダムに対象計算機を選び、データ構造変換指示を送信する。その後、データ構造・統計情報管理テーブル７０Ａを最新の情報に更新し（Ｓ８１１）、現在の変換済ファイルの保持数と目標保持数が一致するまで、Ｓ８０８の処理に戻る。
【００９５】  一方、Ｓ８０９の比較の結果、現在の変換済ファイルの保持数の方が大きいと判定した場合（Ｓ８０９、現在の方が大きい）、保持割合変更決定部８００は、変換済ファイルから元ファイルへのデータ構造逆変換処理を行う（Ｓ８１２）。具体的には、新たに決定した保持割合になるように、変換済ファイルを格納した処理用計算機２１の中からランダムに対象計算機を選び、データ構造の逆変換指示を送信する。その後、データ構造・統計情報管理テーブル７０Ａを最新の情報に更新し（Ｓ８１３）、現在の変換済ファイルの保持数と目標保持数が一致するまで、Ｓ８０８の処理に戻る。現在の変換済ファイルの保持数と目標保持数が一致した場合、処理を終了する（Ｓ８１６）。
【００９６】［第３の実施の形態］  次に、本発明の第３実施形態について説明する。本実施の形態では、分析要求の統計情報と、各処理用計算機の負荷情報とを用いて元ファイル・変換済ファイルの保持割合の効率の良い動的な変更も行えるシステムの例を示している。
【００９７】  第２の実施の形態では、統計情報記録部７００、保持割合変更決定部８００、データ構造・統計情報管理テーブル７０Ａにより統計情報に基づいた元ファイル・変換済ファイルの保持割合の動的な変更を実現する構成を提案している。本実施の形態では、第２の実施の形態における動的な保持割合の変更を行う際に、各計算機の負荷情報を用いて動的な保持割合の変更を行うことで、より効率の良い保持割合の変更を実現する。また、データ構造の変換、及び逆変換処理の新たな方法として、変換後の形式のファイルをすでに保持している処理用計算機２１からコピーする方式を採用している。
【００９８】  図２３は、第３の実施の形態における本システム１０の構成例を示す図である。本実施の形態では、図１７に例示した第２の実施形態の構成と比較して、管理用計算機２０の主記憶装置３１−０に第３の実施の形態における保持割合変更決定部８００Ａと、データ構造変換方法決定部９００とが追加されている点が異なる。また、管理用計算機２０の二次記憶装置３２−０に変換ルール定義ファイル９０が追加されている。加えて、各処理用計算機（２１−１〜２１−３）には、負荷情報通知部１５００、及びデータ置換部１６００が追加されている。
【００９９】  図２４は、図２３で示した変換ルール定義ファイル９０の例である。変換ルール定義ファイル９０は、処理用計算機２１のＣＰＵ使用率、ネットワーク使用率等の負荷情報の閾値の条件と、全ての条件を満たす場合の処理を定義するファイルである。本実施の形態における定義例では、CPU使用率、ネットワーク使用率について、閾値の条件を定義し、両方を満たす場合に行うべき処理（９１〜９４）が記述されている。図２４の例では、処理用計算機２１のＣＰＵ使用率が５０％以上と高い場合には、各処理用計算機２１の負荷を軽減させるために各処理用計算機２１でのデータ変換処理に代えてすでに該当ファイルを保持している処理用計算機２１からのコピー処理を行う設定としている。なお、定義例として示した値はあくまで例であり、より細かく定義することも可能である。また、CPU使用率、ネットワーク使用率を条件として定義しているが、条件はこれらに限定されるものではなく、これ以外の処理用計算機２１の負荷情報についても定義可能である。
【０１００】  図２５は、本実施の形態における、保持割合変更決定部８００Ａ、及びデータ構造変換方法決定部９００がそれぞれ保持割合変更決定処理Ｓ２５０１、データ構造変換方法決定処理Ｓ２５０８を実行し、データ構造変換処理Ｓ２５１２の実行を指示する場合（Ｓ２５１０）と、データ置換処理Ｓ２５２７の実行を指示する場合（Ｓ２５２０）のシーケンス図の例である。データ構造変換処理Ｓ２５１２の実行と、データ置換処理Ｓ２５２７の実行のどちらを指示するかは、データ構造変換方法決定処理Ｓ２５０８で決定されるが、詳細は後述する。シーケンス図中のデータ構造変換指示Ｓ２５１１、データ構造変換処理Ｓ２５１２は、あくまで例であり、保持割合変更決定処理Ｓ２５０１、データ構造変換方法決定処理Ｓ２５０８の決定によっては、データ構造逆変換指示、データ構造逆変換処理となる場合も存在する。保持割合変更決定処理Ｓ２５０１、データ構造変換方法決定処理Ｓ２５０８、及び負荷情報通知処理Ｓ２５０４〜Ｓ２５０５の詳細は後述する。また、データ構造変換処理Ｓ２５１２は図１１と同一の処理であるため、説明を省略する。
【０１０１】  具体的な例を元に、図２５のシーケンス図に例示される処理を説明する。本システム１０には処理用計算機２１が３台登録されており、あるファイルＡについて、保持割合変更決定処理Ｓ２５０１が保持割合の変更をすると決定した場合を想定する。この時、図１８で示したデータ構造・統計情報管理テーブル７０Ａの７２−Ａ行に示したように、ファイルＡの元ファイルは処理用計算機１、２に、変換済ファイルは処理用計算機３に、それぞれ格納されている。また、ファイルＡについて、元ファイルと変換済ファイルの保持割合は、図１８のセル７４−Ａに記載されている２：１であり、元ファイルと変換済ファイルの参照数は図１８のセル７５−Ａに記載されている２：６であるとする。
【０１０２】  まず、管理用計算機２０は、保持割合変更決定処理Ｓ２５０１を実行する。本実施の形態に係る保持割合変更決定処理Ｓ２５０１の詳細は後述するが、図２３のシーケンス図の例では、保持割合変更決定処理Ｓ２５０１を実行した結果、現在の保持割合２：１を、参照数２：６に最も近い新たな保持割合１：２に変更することが決定される。さらに、現在の保持割合２：１を新たな保持割合１：２に変更するため、管理用計算機２０が処理用計算機１（２１−１）、処理用計算機２（２１−２）に対して負荷情報通知指示Ｓ２５０２〜Ｓ２５０３を送信する。この時、保持割合変更決定処理Ｓ２５０１で処理対象とするファイルを、今後対象ファイルと呼ぶ。負荷情報通知指示Ｓ２５０２〜Ｓ２５０３を受信した処理用計算機１（２１−１）、処理用計算機２（２１−２）は、負荷情報通知処理Ｓ２５０４〜Ｓ２５０５を実行し、管理用計算機２０に負荷情報Ｓ２５０６〜Ｓ２５０７を送信する。負荷情報としては、例えば先に記したCPU使用率、ネットワーク使用率等の情報を含めることができる。
【０１０３】  管理用計算機２０は、処理用計算機１（２１−１）、処理用計算機２（２１−２）の負荷情報Ｓ２５０６〜Ｓ２５０７を受信後、データ構造変換方法決定処理Ｓ２５０８を実行する。データ構造変換方法決定処理Ｓ２５０８の詳細は後述するが、データ構造変換方法決定処理Ｓ２５０８は、データ構造変換処理を選択する場合（Ｓ２５１０）と、データ置換処理を選択する場合（Ｓ２５２０）の二つのパターンに分けられる。ここからはそれぞれのパターンについて、場合を分けて説明する。
【０１０４】  まず、データ構造変換方法決定処理Ｓ２５０８で、データ構造変換処理が選択された場合（Ｓ２５１０）について説明する。データ構造変換方法決定処理Ｓ２５０８の結果、処理用計算機２（２１−２）でデータ構造変換処理の実行が決定され、保持割合変更決定部８００は、処理用計算機２（２１−２）に、対象ファイルの元ファイルに対するデータ構造変換指示Ｓ２５１１を送信する。処理用計算機２（２１−２）は、データ構造変換指示Ｓ２５１１を受信後、対象ファイルの元ファイルに対してデータ構造変換処理Ｓ２５１２を実行し、対象ファイルの元ファイルを変換済ファイルに変換する。変換後、処理用計算機２（２１−２）は、管理用計算機２０に変換完了通知Ｓ２５１３を送信して処理を終了する。以上の処理により、元ファイルＡと変換済ファイルａの保持割合が２：１であった状態から、参照数である２：６により近い、新たな保持割合１：２の状態に変更される。
【０１０５】  次に、データ構造変換方法決定処理（Ｓ２５０８）で、データ置換処理が選択された場合（Ｓ２５２０）について説明する。データ構造変換方法決定処理Ｓ２５０８の結果、処理用計算機３（２１−３）と処理用計算機２（２１−２）の間でデータ置換処理を実行することが決定され、管理用計算機２０は、処理用計算機３（２１−３）に対して、対象ファイルを処理用計算機２（２１−２）に対して冗長化するようにデータ冗長化指示Ｓ２５２１を送信する。処理用計算機３（２１−３）は、対象ファイルのデータ冗長化指示Ｓ２５２１を受信後、格納している対象ファイルに対してデータ冗長化処理Ｓ２５２２を実行し、処理用計算機２（２１−２）に対して対象ファイルの変換済ファイルを送信する（Ｓ２５２３）。処理用計算機３（２１−３）から変換済ファイルを受信した処理用計算機２（２１−２）では、データ保存処理Ｓ２５２４を実行し、受信した変換済ファイルを二次記憶装置（３２−２）に保存し、管理用計算機２０に保存完了通知Ｓ２５２５を送信する。
【０１０６】  管理用計算機２０は、保存完了通知Ｓ２５２５を受信後、処理用計算機２（２１−２）に対して、処理用計算機３（２１−３）から受信した変換済ファイルと元々処理用計算機２（２１−２）が保持していた元ファイルについて、データ置換指示Ｓ２５２６を送信する。データ置換指示Ｓ２５２６を受信した処理用計算機２（２１−２）は、変換済ファイルと元ファイルに対してデータ置換処理Ｓ２５２７を実行し、処理用計算機２（２１−２）の二次記憶装置（３２−２）に元々保持していた置換対象の元ファイルを、処理用計算機３（２１−３）から受信した変換済ファイルで上書きコピーし、管理用計算機２０に対して置換完了通知Ｓ２５２８を送信する。以上の処理により、元ファイルと変換済ファイルの保持割合が２：１であった状態から、参照数である２：６により近い、新たな保持割合１：２の状態に変更される。
【０１０７】  次に、負荷情報通知部１５００が実行する負荷情報通知処理について説明する。図２６は、負荷情報通知処理の一例を示すフローチャートである。負荷情報通知処理では、処理用計算機２１が、管理用計算機２０からの要求を受けて、負荷情報通知部１５００が実行されている処理用計算機２１の負荷情報を管理用計算機２０に通知する。
【０１０８】  負荷情報通知部１５００は、Ｓ１５００で処理を開始すると、管理用計算機２０から負荷情報通知指示を受信し（Ｓ１５０１）、処理用計算機２１の負荷情報を取得する（Ｓ１５０２）。処理用計算機２１の負荷情報には、例えば、前記したCPU使用率、ネットワーク使用率のほか、ディスク使用率等が含まれ得るが、これらに限定されるものではない。負荷情報通知部１５００は、処理用計算機２１の負荷情報を取得後、取得した負荷情報を管理用計算機に通知して（Ｓ１５０３）、処理を終了する（Ｓ１５０４）。
【０１０９】  次に、保持割合変更決定部８００Ａが実行する保持割合変更決定処理Ｓ２５０４〜Ｓ２５０５について説明する。図２７は、保持割合変更決定処理Ｓ２５０４〜Ｓ２５０５の一例を示すフローチャートである。本実施の形態における保持割合変更決定部８００Ａは、第２の実施の形態における保持割合変更決定部８００と比較して、処理用計算機２１に対して負荷情報通知指示を送信する点が異なる。図２２で示した第２の実施の形態における保持割合変更決定処理Ｓ２４０１のフローチャートと比較すると、変換済ファイルの目標保持数を計算するＳ８０７の後、データ構造変換処理の対象となる元ファイルを格納する処理用計算機２１、又はデータ構造逆変換処理の対象となる変換済ファイルを格納する処理用計算機２１に対して、負荷情報通知指示を送信するＳ８５０〜Ｓ８５３の処理が異なる。以降、図２２と異なる部分に関してのみ説明する。
【０１１０】  保持割合変更決定部８００Ａは、変換済ファイルの目標保持数を計算した後（Ｓ８０７）、現在の変換済ファイルの保持数と目標保持数の差の絶対値ｆを計算する（Ｓ８５０）。図１８で示したデータ構造・統計情報管理テーブル７０Ａの７２−Ａ行のファイルＡを例にすると、現在の変換済ファイルの保持数は１、目標保持数はＳ８０５〜Ｓ８０７までの結果から２となるので、Ｓ８５０で計算されるｆは１である。次に、現在の変換済ファイルの保持数と、目標保持数とを比較する（Ｓ８５１）。現在の変換済ファイルの保持数と、目標保持数と一致していると判定した場合は、保持割合変更決定部８００Ａは、Ｓ８１５の処理へ進む（Ｓ８５１、一致）。現在の変換済ファイルの保持数の方が小さいと判定した場合には（Ｓ８５１、現在の方が小さい）、保持割合変更決定部８００Ａは、図１８で示したデータ構造・統計情報管理テーブル７０Ａを参照し、元ファイルを格納した処理用計算機２１全てに対して、負荷情報通知指示を送信する（Ｓ８５２）。現在の変換済ファイルの保持数の方が大きいと判定した場合には（Ｓ８５１、現在の方が大きい）、保持割合変更決定部８００Ａは、図１８で示したデータ構造・統計情報管理テーブル７０Ａを参照し、変換済ファイルを格納した処理用計算機２１全てに対して、負荷情報通知指示を送信する（Ｓ８５３）。ここで送信した負荷情報通知指示を受けて返される各処理用計算機２１の負荷情報と、Ｓ８５０で計算した現在の変換済ファイルの保持数と目標保持数の差の絶対値ｆは、図２８のデータ構造変換方法決定処理において利用される。
【０１１１】  次に、データ構造変換方法決定部９００が実行するデータ構造変換方法決定処理Ｓ２５０８について説明する。図２８は、データ構造変換方法決定処理Ｓ２５０８の一例を示すフローチャートである。データ構造変換方法決定部９００は、図２７で示した本実施の形態における保持割合変更決定部８００Ａにおいて、Ｓ８０２〜Ｓ８１５で決定した全てのファイルに対して、Ｓ８５２、Ｓ８５３のいずれかで負荷情報の通知を指示した処理用計算機２１の中から、ファイルのデータ構造の保持割合の変更を効率良く行う方法を選択、決定し、指示する。以降、図２８を用いて処理を説明する。
【０１１２】  データ構造変換方法決定部９００は、図２７で示した本実施の形態における保持割合変更決定部８００Ａが決定した保持割合の変更を行う全ファイルに対して、Ｓ９０１〜Ｓ９１５のステップを繰り返す。まず、データ構造変換方法決定部９００は、Ｓ９００で処理を開始すると、保持割合の変更を行うファイルに対して、保持割合変更決定部８００Ａが各処理用計算機２１に指示した負荷情報を全て受信する（Ｓ９０２）。Ｓ９０２で受信する負荷情報は、図２５における負荷情報Ｓ２５０６〜Ｓ２５０７に対応する。
【０１１３】  次に、 図２７に示した保持割合変更処理のＳ８５０において決定したｆの値と、Ｓ９０２で受信した処理用計算機２１の負荷情報に含まれるCPU使用率の情報を用いて、CPU使用率の低い順に処理用計算機２１をｆ台選択する（Ｓ９０３）。ここで選択した計算機を指示対象計算機と呼び、その中に格納されている変換対象となる元ファイル又は変換済ファイルを変換対象ファイルと呼ぶ。さらに、変換対象ファイルに対して、データ構造変換処理、データ構造逆変換処理を適用したファイルを変換後ファイルと呼ぶ。具体的には、変換対象ファイルが元ファイルであれば、変換後ファイルは変換済ファイルであり、変換対象ファイルが変換済ファイルであれば、変換後ファイルは元ファイルである。
【０１１４】  データ構造変換方法決定部９００は、全ての指示対象計算機に対して、Ｓ９０４〜Ｓ９１４を繰り返す。まず、指示対象計算機に格納されている変換対象ファイルに対して、変換後ファイルが他の計算機に格納されているかをチェックする（Ｓ９０５）。Ｓ９０５でのチェックは、図１８に示したデータ構造・統計情報管理テーブル７０Ａを参照して行うことができる。指示対象計算機以外の計算機に変換後ファイルが格納されていると判定した場合、データ構造変換方法決定部９００はＳ９０６の処理に進む（Ｓ９０５、存在する）。一方、指示対象計算機以外に変換後ファイルが格納されていないと判定した場合は、データ構造変換方法決定部９００はＳ９１０の処理に進む（Ｓ９０５、存在しない）。
【０１１５】  データ構造変換方法決定部９００は、Ｓ９０６において、Ｓ９０２で取得した指示対象計算機の負荷情報と図２４に示す変換ルール定義ファイル９０とから、処理９１〜９４を導出する。導出した処理が“変換”であった場合には、データ構造変換方法決定部９００はＳ９１０の処理に進む（Ｓ９０６、変換）。一方、導出した処理が“コピー”であった場合には、データ構造変換方法決定部９００はＳ９０７の処理に進む（Ｓ９０６、コピー）。
【０１１６】  初めに、Ｓ９０６での判定で導出した処理が“変換”であった場合に実行される処理Ｓ９１０〜Ｓ９１２を説明する。なお、ここでの処理の流れは、図２５でのＳ２５１０〜Ｓ２５１３に対応する。まず、データ構造変換方法決定部９００は変換対象ファイルのデータ構造を確認する（Ｓ９１０）。変換対象ファイルのデータ構造が元ファイルであると判定した場合には（Ｓ９１０、元ファイル）、データ構造変換方法決定部９００は変換対象ファイルのデータ構造を元ファイルから変換済ファイルに変換するため、指示対象計算機に対して、データ構造の変換を指示する（Ｓ９１１）。一方、変換対象ファイルのデータ構造が変換済ファイルであると判定した場合には（Ｓ９１０、変換済ファイル）、データ構造変換方法決定部９００は変換対象ファイルのデータ構造を変換済ファイルから元ファイルに変換するため、指示対象計算機に対して、データ構造の逆変換を指示する（Ｓ９１２）。図２５では、データ構造の変換指示を出した場合の処理を例示しており、Ｓ９１１でのデータ構造変換指示が、図２５でのＳ２５１１に対応する。Ｓ９１１、Ｓ９１２でいずれかの指示を出した後、データ構造変換方法決定部９００はＳ９１３の処理へ進む。 
【０１１７】  次に、Ｓ９０６での判定で導出した処理が“コピー”であった場合に実行される処理Ｓ９０７〜Ｓ９０９を説明する。なお、ここでの処理の流れは、図２５でのＳ２５２０〜Ｓ２５２８に対応する。まず、データ構造変換方法決定部９００は、Ｓ９０５でチェックした変換対象ファイルの変換後ファイルを格納している計算機を１台選択する（Ｓ９０７）。次いで、データ構造変換方法決定部９００は、選択した計算機に対して、指示対象計算機に向けてデータ冗長化を指示する（Ｓ９０８）。ここでのデータ冗長化指示は、図２５でのＳ２５２１に対応する。データ冗長化指示を受信した処理用計算機は、変換対象ファイルの変換後ファイルを指示対象計算機に向けて送信する。変換対象ファイルの変換後ファイルを受信した指示対象計算機では、データ保存処理を行い、管理用計算機に保存完了通知を送信する。管理用計算機は、保存完了通知を受信後、指示対象計算機に対してデータ置換処理を指示する（Ｓ９０９）。ここでのデータ置換指示は、図２５でのＳ２５２６に対応する。その後、Ｓ９１３に進む。
【０１１８】  データ構造変換方法決定部９００は、Ｓ９０７〜Ｓ９０９、又はＳ９１０〜Ｓ９１２での処理を終えた後、データ構造・統計情報管理テーブル７０Ａの記録内容を最新の情報で更新する（Ｓ９１３）。その後、Ｓ９０４、Ｓ９０１に戻り、所定の条件で処理ループを繰り返した後（Ｓ９１４、Ｓ９１５）、処理を終了する（Ｓ９１６）。
【０１１９】  以上説明した本発明の第３実施形態によれば、分析要求の統計情報と、各処理用計算機の負荷情報とを用いて、本システム１０のデータ処理効率をより向上させるべく、元ファイル・変換済ファイルの保持割合を動的に変更することができる。
【０１２０】  以上その実施形態に即して説明した本発明によれば、情報処理システム内に余計なデータを持つことなく、データの耐障害性を保ちながら、半構造化データの分析を高速に実行することができる情報処理システム及び情報処理方法が提供される。
【０１２１】  なお、本実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【０１２２】１０      情報処理システム２０      管理用計算機２１      処理用計算機２４      格納要求計算機２５      分析要求計算機４０      計算機定義ファイル５０      ポリシー定義ファイル６０      分析要求設定ファイル７０      データ構造管理テーブル７０Ａ    データ構造・統計情報管理テーブル８０      ファイル９０      変換ルール定義ファイル１００    データ配置決定部２００    データ冗長化決定部３００    データ構造変換決定部４００    分析要求受付部５００    分析実行場所決定部６００    データ復元決定部７００    統計情報記録部８００    保持割合変更決定部８００Ａ  保持割合変更決定部９００    データ構造変換方法決定部１０００  データ保存部１１００  データ冗長化部１２００  データ構造変換部１３００  データ構造逆変換部１４００  分析処理部１５００  負荷情報通知部１６００  データ置換部
【図１】
2013136520.tif 000003
【図２】
2013136520.tif 000004
【図３】
2013136520.tif 000005
【図４】
2013136520.tif 000006
【図５】
2013136520.tif 000007
【図６】
2013136520.tif 000008
【図７】
2013136520.tif 000009
【図８】
2013136520.tif 000010
【図９】
2013136520.tif 000011
【図１０】
2013136520.tif 000012
【図１１】
2013136520.tif 000013
【図１２】
2013136520.tif 000014
【図１３】
2013136520.tif 000015
【図１４】
2013136520.tif 000016
【図１５】
2013136520.tif 000017
【図１６】
2013136520.tif 000018
【図１７】
2013136520.tif 000019
【図１８】
2013136520.tif 000020
【図１９】
2013136520.tif 000021
【図２０】
2013136520.tif 000022
【図２１】
2013136520.tif 000023
【図２２】
2013136520.tif 000024
【図２３】
2013136520.tif 000025
【図２４】
2013136520.tif 000026
【図２５】
2013136520.tif 000027
【図２６】
2013136520.tif 000028
【図２７】
2013136520.tif 000029
【図２８】
2013136520.tif 000030
【手続補正書】
【提出日】平成27年3月2日(2015.3.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
外部装置からの要求に応じてデータの格納及び格納した前記データの分析を実行する情報処理システムであって、
それぞれが前記データの格納領域を提供している、複数のデータ格納部と、
それぞれが各前記データ格納部に関連付けられて、前記データ格納部に格納されている前記データのデータ構造に対して所定の操作を実行する、複数のデータ構造操作部と、
それぞれが各前記データ格納部に関連付けられて、前記データ格納部に格納されている前記データのいずれかを他の前記データ格納部に送信する、複数のデータ冗長化部と、
前記外部装置から要求された前記データを、複数の前記データ格納部のいずれに格納するかを決定するデータ配置決定部と、
複数の前記データ冗長化部にいずれかの前記データの他の前記データ格納部への送信をさせるデータ冗長化決定部と、
各前記データ構造操作部に前記データ格納部に格納されている前記データの前記データ構造を操作させるデータ構造操作決定部と、
複数の前記データ格納部に格納する前記データ及び前記データのデータ構造に関する情報であるデータ構造管理情報を保持しているデータ構造管理情報保持部と、
前記外部装置から前記データ格納部に格納された前記データに対する分析要求を受け付けて、前記分析要求に係る前記データの分析処理を実行する分析処理部と、を備え、
前記データ配置決定部は、前記外部装置から格納要求を受けた前記データについて、あらかじめ設定されている、前記情報処理システム内での格納数とその格納される前記データに関する前記データ構造を取得し、前記データ構造管理情報保持部に格納されている対応データの前記データ構造管理情報を参照して、前記格納要求に係る前記データを格納すべき前記データ格納部を決定して前記外部装置に通知し、
前記データ冗長化決定部は、前記データ構造管理情報保持部を参照して前記格納要求に係る前記データの複製作成及び作成した複製の格納先である前記データ格納部への送信を前記データ冗長化部に指示し、
前記データ構造操作決定部は、前記データ構造管理情報保持部に記録されている前記データ構造管理情報を参照して、いずれかの前記複製が格納された前記データ格納部に格納された前記データについてデータ操作を実行する指示を前記データ構造操作部に送信し、
前記分析処理部は、前記分析要求の内容に応じていずれかの前記データ格納部に格納されている前記データ構造操作後の前記データ又はデータ構造未操作の前記データのいずれかにより前記分析処理を実行する、
情報処理システム。
【請求項２】
請求項１に記載の情報処理システムであって、
前記データ構造操作決定部は、前記外部装置からの前記格納要求に係る前記データについて前記データ構造管理情報保持部に記録されている前記データ構造管理情報に応じて、複数の前記データ構造操作部のいずれかに、前記格納要求に係る前記データに対する前記データ構造操作処理を実行させる、情報処理システム。
【請求項３】
請求項１に記載の情報処理システムであって、
前記外部装置からの前記分析要求の内容に基づいて、分析対象である前記データにつき前記データ構造に対する前記データ操作後または前記データ構造未操作のいずれの前記データ構造を有する前記データを用いるか判定し、その判定結果に従って、前記データ構造管理情報保持部を参照して該当するデータ構造操作後又はデータ構造未操作のデータが格納されているいずれかの前記データ格納部に格納されているデータに対して分析処理を実行する、分析実行場所決定部を備える、
情報処理システム。
【請求項４】
請求項１に記載の情報処理システムであって、
いずれかの前記データ格納部に障害が発生したことを検知した場合、前記データ構造管理情報保持部に格納されている前記データ構造管理情報を参照して、障害が発生した前記データ格納部に格納されていたデータとそのデータ構造を取得し、障害が発生した前記データ格納部に格納されていた前記データを、障害が発生した前記データ格納部以外のいずれかの前記データ格納部に格納されている前記データを用いて、当該いずれかのデータ格納部に関連付けられている前記データ冗長化部及び前記データ構造操作部により復元させる、
情報処理システム。
【請求項５】
請求項１に記載の情報処理システムであって、
前記外部装置から受け付けた分析要求に基づいて、分析対象である前記データの参照数を、前記データ構造別に記録する統計情報記録部と、
各前記データについて、前記データ構造操作後、及び前記データ構造未操作の前記データ構造ごとの保持割合を変更する指示を出す保持割合変更決定部と、を備え、
前記データ構造管理情報保持部は、各前記データ構造別の前記参照数、及び前記データ構造ごとの保持割合をさらに記録しており、
前記保持割合変更決定部は、各前記データ格納部が格納する前記データの前記データ構造ごとの保持割合と、前記統計情報記録部で記録された前記データ構造別の前記参照数を用いて、各前記データの前記データ構造ごとの保持割合を変更するか判定し、変更すると判定した場合には新たな前記データ構造ごとの保持割合を決定し、前記データ冗長化部、及び前記データ構造操作部に、前記データ構造の操作又は操作後の前記データ構造の復元を実行させる、
情報処理システム。
【請求項６】
請求項５に記載の情報処理システムであって、
前記データ格納部に格納されている前記データの前記データ構造を変更する場合に、当該データの前記データ構造を操作するか、又は他の前記データ格納部に格納されている所望の前記データ構造を有する前記データを取得するかを決定し、該当する前記データ格納部に関連付けられている前記データ冗長化部に指示するデータ構造変更方法決定部と、
それぞれが各前記データ格納部に関連付けられており、前記各データ格納部に関する負荷情報を他の前記データ格納部に通知する負荷情報通知部と、
それぞれが各前記データ格納部に関連付けられており、前記データ格納部に格納された前記データを他の前記データ格納部から受信した前記データに置き換えるデータ置換部と、
を備え、
前記保持割合変更決定部は、前記統計情報記録部により、前記データ構造管理情報保持部に記録された前記外部装置からの分析要求対象である前記データの前記データ構造別の前記参照数及び前記データ構造ごとの保持割合を用いて、各前記データの前記データ構造ごとの保持割合を変更するか判定し、変更すると判定した場合には前記参照数に基づいて新たな前記データ構造ごとの保持割合を決定し、前記データ構造変更方法決定部が前記データに関する前記データ構造の操作、又はいずれかの前記データ格納部に格納されている前記データの複製作成及びデータ置換を実行させるかを決定するため、各前記データ格納部に関する負荷情報を通知するよう指示し、
前記データ構造変更方法決定部は、各前記データ格納部に関して受領した前記負荷情報を用いて、前記データ構造の操作をさせるか、前記データ冗長化部および前記データ置換部に前記データの複製作成及びデータ置換を実行させるかを決定し、
前記データ置換部は、他の前記データ冗長化部が送信した前記データを受信し、前記データ格納部に格納されたデータと置き換える処理を行う、
情報処理システム。
【請求項７】
請求項１から請求項６までのいずれかに記載の情報処理システムであって、
前記データ構造操作部は、一定の規則に従って定義された可逆変換可能な変換元ファイルについて、変換処理を適用した変換済ファイルに変換するデータ構造変換部と、前記一定の規則に従って定義された可逆変換可能な変換済ファイルについて、逆変換処理を適用した変換元ファイルに変換するデータ構造逆変換部とを有する、
情報処理システム。
【請求項８】
請求項７に記載の情報処理システムであって、
前記データ構造はカンマ区切り値形式であり、前記データ構造変換部は、前記データの行の値と列の値とを入れ替える転置処理を実行し、前記データ構造逆変換部は、前記転置処理されたデータの行の値と列の値とを入れ替える逆転置処理を実行する、
情報処理システム。
【請求項９】
請求項７に記載の情報処理システムであって、
前記データ構造変換部は、前記データを適宜のアルゴリズムを用いて圧縮し、前記データ構造逆変換部は、前記圧縮されたデータについて、前記アルゴリズムにより復元する、
情報処理システム。
【請求項１０】
外部装置からの要求に応じてデータの格納及び格納した前記データの分析を実行する情報処理システムの制御方法であって、
前記情報処理システムは、
それぞれが前記データの格納領域を提供している、複数のデータ格納部と、
それぞれが各前記データ格納部に関連付けられて、前記データ格納部に格納されている前記データのデータ構造に対して所定の操作を実行する、複数のデータ構造操作部と、
それぞれが各前記データ格納部に関連付けられて、前記データ格納部に格納されている前記データのいずれかを他の前記データ格納部に送信する、複数のデータ冗長化部と、
前記外部装置から要求された前記データを、複数の前記データ格納部のいずれに格納するかを決定するデータ配置決定部と、
複数の前記データ冗長化部にいずれかの前記データの他の前記データ格納部への送信をさせるデータ冗長化決定部と、
各前記データ構造操作部に前記データ格納部に格納されている前記データの前記データ構造を操作させるデータ構造操作決定部と、
複数の前記データ格納部に格納する前記データ及び前記データのデータ構造に関する情報であるデータ構造管理情報を保持しているデータ構造管理情報保持部と、
前記外部装置から前記データ格納部に格納された前記データに対する分析要求を受け付けて、前記分析要求に係る前記データの分析処理を実行する分析処理部と、を備え、
前記データ配置決定部は、前記外部装置から格納要求を受けた前記データについて、あらかじめ設定されている、前記情報処理システム内での格納数とその格納される前記データに関する前記データ構造を取得し、前記データ構造管理情報保持部に格納されている対応データの前記データ構造管理情報を参照して、前記格納要求に係る前記データを格納すべき前記データ格納部を決定して前記外部装置に通知し、
前記データ冗長化決定部は、前記データ構造管理情報保持部を参照して前記格納要求に係る前記データの複製作成及び作成した複製の格納先である前記データ格納部への送信を前記データ冗長化部に指示し、
前記データ構造操作決定部は、前記データ構造管理情報保持部に記録されている前記データ構造管理情報を参照して、いずれかの前記複製が格納された前記データ格納部に格納された前記データについてデータ操作を実行する指示を前記データ構造操作部に送信し、
前記分析処理部は、前記分析要求の内容に応じていずれかの前記データ格納部に格納されている前記データ構造操作後の前記データ又はデータ構造未操作の前記データのいずれかにより前記分析処理を実行する、
情報処理システムの制御方法。
【請求項１１】
請求項１０に記載の情報処理システムの制御方法であって、
前記データ構造操作決定部は、前記外部装置からの前記格納要求に係る前記データについて前記データ構造管理情報保持部に記録されている前記データ構造管理情報に応じて、複数の前記データ構造操作部のいずれかに、前記格納要求に係る前記データに対する前記データ構造操作処理を実行させる、情報処理システムの制御方法。
【請求項１２】
請求項１０に記載の情報処理システムの制御方法であって、
前記外部装置からの前記分析要求の内容に基づいて、分析対象である前記データにつき前記データ構造に対する前記データ操作後または前記データ構造未操作のいずれの前記データ構造を有する前記データを用いるか判定し、その判定結果に従って、前記データ構造管理情報保持部を参照して該当するデータ構造操作後又はデータ構造未操作のデータが格納されているいずれかの前記データ格納部に格納されているデータに対して分析処理を実行する、
情報処理システムの制御方法。
【請求項１３】
請求項１０に記載の情報処理システムの制御方法であって、
いずれかの前記データ格納部に障害が発生したことを検知した場合、前記データ構造管理情報保持部に格納されている前記データ構造管理情報を参照して、障害が発生した前記データ格納部に格納されていたデータとそのデータ構造を取得し、障害が発生した前記データ格納部に格納されていた前記データを、障害が発生した前記データ格納部以外のいずれかの前記データ格納部に格納されている前記データを用いて、当該いずれかのデータ格納部に関連付けられている前記データ冗長化部及び前記データ構造操作部により復元させる、
情報処理システムの制御方法。
【請求項１４】
請求項１０に記載の情報処理システムの制御方法であって、
前記情報処理システムは、
前記外部装置から受け付けた分析要求に基づいて、分析対象である前記データの参照数を、前記データ構造別に記録する統計情報記録部と、
各前記データについて、前記データ構造操作後、及び前記データ構造未操作の前記データ構造ごとの保持割合を変更する指示を出す保持割合変更決定部と、を備え、
前記データ構造管理情報保持部は、各前記データ構造別の前記参照数、及び前記データ構造ごとの保持割合をさらに記録しており、
前記保持割合変更決定部は、各前記データ格納部が格納する前記データの前記データ構造ごとの保持割合と、前記統計情報記録部で記録された前記データ構造別の前記参照数を用いて、各前記データの前記データ構造ごとの保持割合を変更するか判定し、変更すると判定した場合には新たな前記データ構造ごとの保持割合を決定し、前記データ冗長化部、及び前記データ構造操作部に、前記データ構造の操作又は操作後の前記データ構造の復元を実行させる、
情報処理システムの制御方法。
【請求項１５】
請求項１４に記載の情報処理システムの制御方法であって、
前記情報処理システムは、
前記データ格納部に格納されている前記データの前記データ構造を変更する場合に、当該データの前記データ構造を操作するか、又は他の前記データ格納部に格納されている所望の前記データ構造を有する前記データを取得するかを決定し、該当する前記データ格納部に関連付けられている前記データ冗長化部に指示するデータ構造変更方法決定部と、
それぞれが各前記データ格納部に関連付けられており、前記各データ格納部に関する負荷情報を他の前記データ格納部に通知する負荷情報通知部と、
それぞれが各前記データ格納部に関連付けられており、前記データ格納部に格納された前記データを他の前記データ格納部から受信した前記データに置き換えるデータ置換部と、
を備え、
前記保持割合変更決定部は、前記統計情報記録部により、前記データ構造管理情報保持部に記録された前記外部装置からの分析要求対象である前記データの前記データ構造別の前記参照数及び前記データ構造ごとの保持割合を用いて、各前記データの前記データ構造ごとの保持割合を変更するか判定し、変更すると判定した場合には前記参照数に基づいて新たな前記データ構造ごとの保持割合を決定し、前記データ構造変更方法決定部が前記データに関する前記データ構造の操作、又はいずれかの前記データ格納部に格納されている前記データの複製作成及びデータ置換を実行させるかを決定するため、各前記データ格納部に関する負荷情報を通知するよう指示し、
前記データ構造変更方法決定部は、各前記データ格納部に関して受領した前記負荷情報を用いて、前記データ構造の操作をさせるか、前記データ冗長化部および前記データ置換部に前記データの複製作成及びデータ置換を実行させるかを決定し、
前記データ置換部は、他の前記データ冗長化部が送信した前記データを受信し、前記データ格納部に格納されたデータと置き換える処理を行う、
情報処理システムの制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
上記の、及び他の課題を解決するために、本発明の一態様は、外部装置からの要求に応じてデータの格納及び格納した前記データの分析を実行する情報処理システムであって、それぞれが前記データの格納領域を提供している、複数のデータ格納部と、それぞれが各前記データ格納部に関連付けられて、前記データ格納部に格納されている前記データのデータ構造に対して所定の操作を実行する、複数のデータ構造操作部と、それぞれが各前記データ格納部に関連付けられて、前記データ格納部に格納されている前記データのいずれかを他の前記データ格納部に送信する、複数のデータ冗長化部と、前記外部装置から要求された前記データを、複数の前記データ格納部のいずれに格納するかを決定するデータ配置決定部と、複数の前記データ冗長化部にいずれかの前記データの他の前記データ格納部への送信をさせるデータ冗長化決定部と、各前記データ構造操作部に前記データ格納部に格納されている前記データの前記データ構造を操作させるデータ構造操作決定部と、複数の前記データ格納部に格納する前記データ及び前記データのデータ構造に関する情報であるデータ構造管理情報を保持しているデータ構造管理情報保持部と、前記外部装置から前記データ格納部に格納された前記データに対する分析要求を受け付けて、前記分析要求に係る前記データの分析処理を実行する分析処理部と、を備え、前記データ配置決定部は、前記外部装置から格納要求を受けた前記データについて、あらかじめ設定されている、前記情報処理システム内での格納数とその格納される前記データに関する前記データ構造を取得し、前記データ構造管理情報保持部に格納されている対応データの前記データ構造管理情報を参照して、前記格納要求に係る前記データを格納すべき前記データ格納部を決定して前記外部装置に通知し、前記データ冗長化決定部は、前記データ構造管理情報保持部を参照して前記格納要求に係る前記データの複製作成及び作成した複製の格納先である前記データ格納部への送信を前記データ冗長化部に指示し、前記データ構造操作決定部は、前記データ構造管理情報保持部に記録されている前記データ構造管理情報を参照して、いずれかの前記複製が格納された前記データ格納部に格納された前記データについてデータ操作を実行する指示を前記データ構造操作部に送信し、前記分析処理部は、前記分析要求の内容に応じていずれかの前記データ格納部に格納されている前記データ構造操作後の前記データ又はデータ構造未操作の前記データのいずれかにより前記分析処理を実行する、情報処理システムである。
また、本発明の他の態様は、前記情報処理システムの制御方法である。
【国際調査報告】
2013136520.tif 000031
2013136520.tif 000032