(57)【要約】  データ転送装置は、算出部と圧縮処理部とを備える。算出部は、複数の圧縮手法に関する圧縮性能パラメータおよび転送処理に関する転送性能パラメータに少なくとも基づき、前記複数の圧縮手法から、実効スループットを最適にする、転送処理の速度に比べて圧縮処理の速度がデータ転送における制約となる第１の圧縮手法と、圧縮処理の速度に比べて転送処理の速度がデータ転送における制約となる第２の圧縮手法とを組み合わせを決定する。圧縮処理部は、前記第１の圧縮手法と前記第２の圧縮手法との少なくとも一方を用いて対象データを圧縮する。
2014168025.tif 000002
【特許請求の範囲】
【請求項１】
複数の圧縮手法に関する圧縮性能パラメータおよび転送処理に関する転送性能パラメータに少なくとも基づき、前記複数の圧縮手法から、実効スループットを最適にする、転送処理の速度に比べて圧縮処理の速度がデータ転送における制約となる第１の圧縮手法と、圧縮処理の速度に比べて転送処理の速度がデータ転送における制約となる第２の圧縮手法とを組み合わせを決定する算出部と、
前記第１の圧縮手法と前記第２の圧縮手法との少なくとも一方を用いて対象データを圧縮する圧縮処理部と、
を備えるデータ転送装置。
【請求項２】
前記第１の圧縮手法の圧縮率は、前記第２の圧縮手法の圧縮率よりも高い請求項１に記載のデータ転送装置。
【請求項３】
前記圧縮処理部は、
前記複数の圧縮手法の一つである実行圧縮手法を用いてデータを圧縮するとともに定期的に前記実行圧縮手法に関する圧縮性能パラメータを取得し、取得した前記圧縮測定パラメータをパラメータ保持部に格納する第１圧縮処理部を備える請求項１または２に記載のデータ転送装置。
【請求項４】
前記第１圧縮処理部は、
前記実行圧縮手法を用いた圧縮前および圧縮後のデータの量を測定し、前記圧縮前および圧縮後のデータの量に基づき、前記実行圧縮手法に関する前記圧縮性能パラメータを算出する請求項３に記載のデータ転送装置。
【請求項５】
前記第１圧縮処理部は、
前記複数の圧縮手法の全てを定期的に実行して、前記複数の圧縮手法ごとに前記圧縮性能パラメータを取得する請求項３又は４に記載のデータ転送装置。
【請求項６】
圧縮データを一時的に保持する一時保持部をさらに備え、
前記圧縮処理部は、
前記一時保持部が保持する前記圧縮データの量が閾値未満であると判断した場合、前記第１圧縮処理部により前記対象データを圧縮し、
前記一時保持部が保持する前記圧縮データの量が前記閾値以上であると判断した場合、前記第１圧縮手法を用いて前記対象データを圧縮し、
前記対象データの圧縮データを前記一時保持部に格納する
第２圧縮処理部をさらに備える請求項３〜５のうちいずれか一項に記載のデータ転送装置。
【請求項７】
前記圧縮データを前記一時保持部から読み出して、前記圧縮データを転送先に転送する転送部をさらに備える請求項６に記載のデータ転送装置。
【請求項８】
前記圧縮処理部は、
定期的に、前記第１圧縮処理部による圧縮処理と、前記第２圧縮処理部による圧縮処理とを切り替える請求項７に記載のデータ転送装置。
【請求項９】
前記転送処理中における単位時間当たりのデータ転送量を定期的に測定し、前記データ転送量に基づき前記転送性能パラメータを算出する測定部をさらに備える請求項１〜８のうちいずれか一項に記載のデータ転送装置。
【請求項１０】
請求項１から９のうちいずれか一項に記載されたデータ転送装置と、
前記データ転送装置とネットワークを介して接続され、前記データ転送装置から前記対象データを受信する外部装置と
を備えるデータ転送システム。
【請求項１１】
複数の圧縮手法に関する圧縮性能パラメータおよび転送処理に関する転送性能パラメータに少なくとも基づき、前記複数の圧縮手法から、実効スループットを最適にする、転送処理の速度に比べて圧縮処理の速度がデータ転送における制約となる第１の圧縮手法と、圧縮処理の速度に比べて転送処理の速度がデータ転送における制約となる第２の圧縮手法とを組み合わせを決定し、
前記第１の圧縮手法と前記第２の圧縮手法との少なくとも一方を用いて対象データを圧縮する
ことを含むデータ圧縮転送方法。
【請求項１２】
コンピュータに、
複数の圧縮手法に関する圧縮性能パラメータおよび転送処理に関する転送性能パラメータに少なくとも基づき、前記複数の圧縮手法から、実効スループットを最適にする、転送処理の速度に比べて圧縮処理の速度がデータ転送における制約となる第１の圧縮手法と、圧縮処理の速度に比べて転送処理の速度がデータ転送における制約となる第２の圧縮手法とを組み合わせを決定し、
前記第１の圧縮手法と前記第２の圧縮手法との少なくとも一方を用いて対象データを圧縮する
ことを実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ転送装置、データ転送システム、データ圧縮転送方法、およびプログラムに関する。
【背景技術】
【０００２】
ネットワークを介して接続される複数のプロセッサを備える並列計算機において、プロセッサ間における転送データを圧縮するシステムがある（例えば、特許文献１参照）。
特許文献１に記載されているように、圧縮データを転送することによって、実際の転送データ量が減少するため、結果的に実効スループットを向上させることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】日本国特開平０８−１４７２５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
転送データを圧縮することによってさらに実効スループットを向上させることができる。すなわち、圧縮率を高くすることによって実際の転送データ量をさらに減少させることができる。しかし、圧縮率を高くすると、圧縮処理が転送処理に追いつかなくなる。このため、ネットワーク帯域に無駄が発生する問題があった。【０００５】
本発明は、上記の事情を考慮してなされた。本発明の目的の一例は、上記の課題を解決することができるデータ転送装置、データ転送システム、データ圧縮転送方法、およびプログラムを提供することである。
【課題を解決するための手段】
【０００６】
本発明の第１の実施態様に係るデータ転送装置は、複数の圧縮手法に関する圧縮性能パラメータおよび転送処理に関する転送性能パラメータに少なくとも基づき、前記複数の圧縮手法から、実効スループットを最適にする、転送処理の速度に比べて圧縮処理の速度がデータ転送における制約となる第１の圧縮手法と、圧縮処理の速度に比べて転送処理の速度がデータ転送における制約となる第２の圧縮手法とを組み合わせを決定する算出部と、前記第１の圧縮手法と前記第２の圧縮手法との少なくとも一方を用いて対象データを圧縮する圧縮処理部とを備える。【０００７】
本発明の第２の実施態様に係るデータ転送システムは、上記のデータ転送装置と、前記データ転送装置とネットワークを介して接続され、前記データ転送装置から前記対象データを受信する外部装置とを備える。【０００８】
本発明の第３の実施態様に係る圧縮転送方法は、複数の圧縮手法に関する圧縮性能パラメータおよび転送処理に関する転送性能パラメータに少なくとも基づき、前記複数の圧縮手法から、実効スループットを最適にする、転送処理の速度に比べて圧縮処理の速度がデータ転送における制約となる第１の圧縮手法と、圧縮処理の速度に比べて転送処理の速度がデータ転送における制約となる第２の圧縮手法とを組み合わせを決定し、前記第１の圧縮手法と前記第２の圧縮手法との少なくとも一方を用いて対象データを圧縮することを含む。【０００９】
本発明の第４の実施態様に係るプログラムは、コンピュータに、複数の圧縮手法に関する圧縮性能パラメータおよび転送処理に関する転送性能パラメータに少なくとも基づき、前記複数の圧縮手法から、実効スループットを最適にする、転送処理の速度に比べて圧縮処理の速度がデータ転送における制約となる第１の圧縮手法と、圧縮処理の速度に比べて転送処理の速度がデータ転送における制約となる第２の圧縮手法とを組み合わせを決定し、前記第１の圧縮手法と前記第２の圧縮手法との少なくとも一方を用いて対象データを圧縮することを実行させる。
【発明の効果】
【００１０】
本発明によれば、簡単に、無駄なくＮＷ（ネットワーク）帯域幅を利用する処理を実行することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態に係るデータ転送システムの構成の一例を示す図である。
【図２】本発明の第１の実施形態に係る圧縮処理方法の一例を説明するためのフローチャートである。
【図３】本発明の第１の実施形態に係る圧縮処理方法に含まれる一部処理の一例を説明するためのフローチャートである。
【図４】本発明の第１の実施形態に係る転送処理設定方法の一例を説明するためのフローチャートである。
【図５】本発明の第１の実施形態に係る最適圧縮手法の算出処理方法の一例を説明するためのフローチャートである。
【図６】本発明の第１の実施形態に係る圧縮アルゴリズムを利用して圧縮転送する処理の概念図である。
【図７】本発明の第１の実施形態に係るデータ転送装置の実例を示す表である。
【図８】本発明に係る背景技術を説明するための図である。
【図９】本発明の第２の実施形態に係るデータ転送装置の構成の一例を示す図である。
【発明を実施するための形態】
【００１２】
［第１実施形態］
本発明の第１実施形態について図面を参照して説明する。
図１に示すように、本発明の第１実施形態にかかるデータ転送システムは、ネットワーク２０で互いに接続された接続データ転送装置１０と分析装置（外部装置）３０とを有する。図１に示す例では、データ転送装置１０と分析装置３０の数が１である。しかしながら、データ転送装置１０と分析装置３０の数は２以上であってもよい。
【００１３】
データ転送装置１０は、分析が行わる前の生の状態のデータを格納する。データは、サービスのクライアントからのデータや、センサーからのデータであってもよい。
分析装置３０は、転送されてきたデータに対して分析処理をおこなう。
【００１４】
データ転送装置１０は、データ蓄積部１００と、取得部１０１と、圧縮前データ一時保持部１０２と、圧縮処理部１０３と、転送処理部１０４と、ＮＷ帯域幅制約型処理用一時保持部１０５と、ＣＰＵ制約型処理用一時保持部１０６と、性能測定パラメータ保持部１０７と、最適圧縮手法算出部１０８と、タイマー１０９とを備える。圧縮前データ一時保持部１０２は、第１保持部１０２と称する場合がある。ＮＷ帯域幅制約型処理用一時保持部１０５は、第２保持部１０５と称する場合がある。ＣＰＵ制約型処理用一時保持部１０６は、第３保持部１０６と称する場合がある。性能測定パラメータ保持部１０７は、パラメータ保持部１０７と称する場合がある。最適圧縮手法算出部１０８は、算出部１０８と称する場合がある。
【００１５】
データ蓄積部１００は、データを保持するように構成されている。データ蓄積部１００は、例えばデータベースや、ファイルシステム、メッセージキューであってもよい。
取得部１０１は、データ蓄積部１００からデータをある一定サイズのブロック単位で読み出す。ブロックサイズの制約はない。
第１保持部１０２は、圧縮処理部１０３による圧縮処理の対象であるデータを一時的に保持する。この第１保持部１０２は、取得部１０１にて取得されたデータをバッファリングし、取得部１０１と圧縮処理部１０３の処理速度差を吸収する。
【００１６】
図１においては、圧縮処理部１０３が３個である場合を示しているが、圧縮処理部１０２の数は３個に限られない。圧縮処理部１０３の数は１つのみであってもよい。以下においては、圧縮処理部１０３が一つの場合について説明する。圧縮処理部１０３は、圧縮処理として第１保持部１０２から読みだした圧縮対象データを圧縮する。圧縮処理部１０３は、圧縮したデータを第２保持部１０５又は第３保持部１０６に出力する。圧縮処理は、未圧縮である、圧縮率＝１の圧縮手法を含んでもよい。この圧縮処理部１０３は並列に処理をおこなう。例えば、圧縮処理部１０３が複数のＣＰＵコアからなり、複数のＣＰＵコアが並列に処理を実行してもよい。
【００１７】
この圧縮処理部１０３は、タイミング判定部１３１と、圧縮情報保持部１３２と、圧縮性能測定圧縮処理部１３３と、最適圧縮手法圧縮処理部１３４とを備える。圧縮情報保持部１３２は、情報保持部１３２と称する場合がある。圧縮性能測定圧縮処理部１３３は、第１圧縮処理部１３３と称する場合がある。最適圧縮手法圧縮処理部１３４は、第２圧縮処理部１３４と称する場合がある。
【００１８】
タイミング判定部１３１は、第１圧縮処理部１３３によって圧縮性能パラメータを取得する取得タイミングと、圧縮性能パラメータを登録する登録タイミングとを判定する。本実施形態において、圧縮処理部１０３は、圧縮処理中に、圧縮性能パラメータを定期的に取得及び登録する。取得タイミング及び登録タイミングは、予め決められた時間間隔ごとに到来するタイミングである。
【００１９】
本実施形態において、タイミング判定部１３１は、圧縮処理中に、圧縮性能パラメータの取得タイミング条件を満たすか否かの判定、及び、圧縮性能パラメータの登録タイミング条件を満たすか否かの判定を実行している。
タイミング判定部１３１が、圧縮性能パラメータの取得タイミング条件を満たすと判定した場合、例えば、前回の圧縮性能パラメータの取得タイミングから予め決められた時間が経過したことを判定した場合について説明する。この場合、タイミング判定部１３１は、圧縮性能パラメータの取得タイミングであると判定する。
タイミング判定部１３１が、圧縮性能パラメータの登録タイミング条件を満たすと判定した場合、例えば、前回の圧縮性能パラメータの登録タイミングから予め決められた時間が経過したことを判定した場合について説明する。この場合、タイミング判定部１３１は、圧縮性能パラメータの登録タイミングであると判定する。
【００２０】
タイミング判定部１３１によるタイミングの判定方法には制限はない。判定方法の一例は、タイミングを判定するフラグを用意し、タイマー１０９をかけて、予め決められた時間が経過した場合にフラグをｏｎにする方法である。
具体的に説明すると、初期状態において、圧縮性能パラメータの取得タイミング条件を判定するための取得フラグ、及び、圧縮性能パラメータの登録タイミング条件を判定するための登録フラグは、それぞれｏｎとなっている。
タイミング判定部１３１は、選択された一の圧縮処理の手法による圧縮処理を実行することにより圧縮性能パラメータが取得された場合、取得フラグをｏｆｆにする。さらに、タイミング判定部１３１は、タイマー１０９による計時結果に基づき、取得フラグをｏｆｆにした時から予め決められた時間が経過したか否かを判定する。取得フラグをｏｆｆにした時から予め決められた時間が経過したことを判定した場合、タイミング判定部１３１は、取得フラグをｏｎにする。タイミング判定部１３１は、取得フラグがｏｎの場合、圧縮性能パラメータの取得タイミング条件を満たしていること、つまり、圧縮性能パラメータの取得タイミングであることを判定する。
【００２１】
タイミング判定部１３１は、圧縮処理部１０３によって実行可能な全ての圧縮処理の手法による圧縮性能パラメータが登録された場合、登録フラグをｏｆｆにするとともに、タイマー１０９による計時結果に基づき、登録フラグをｏｆｆにした時から予め決められた時間が経過したか否かを判定する。登録フラグをｏｆｆにした時から予め決められた時間が経過したことを判定した場合、タイミング判定部１３１は、登録フラグをｏｎにする。タイミング判定部１３１は、登録フラグがｏｎの場合、圧縮性能パラメータの登録タイミング条件を満たしていること、つまり、圧縮性能パラメータの登録タイミングであることを判定する。
情報保持部１３２は、取得フラグおよび登録フラグを格納している。また、情報保持部１３２は、取得フラグ／登録フラグのｏｆｆからｏｎまでの間隔を示す予め決められた時間を示す情報を格納している。
【００２２】
情報保持部１３２は、タイミング判定部１３１による判定処理で利用される情報、および圧縮処理の手法である圧縮アルゴリズムのプログラムデータを保持している。また、情報保持部１３２は、算出部１０８によって決定された最適圧縮手法を示す情報、第２保持部１０５に保持される圧縮データの圧縮処理の手法を示す情報、及び、第３保持部１０６に保持される圧縮データの圧縮処理の手法を示す情報を保持している。
【００２３】
タイミング判定部１３１が圧縮性能パラメータの取得タイミング条件を満たすことを判定した場合について説明する。この場合、第１圧縮処理部１３３は、圧縮性能を測定しながら、圧縮処理部１０３によって実行可能な全圧縮処理の手法のうち一つの手法で圧縮処理を行う。
タイミング判定部１３１が圧縮性能パラメータの登録タイミング条件を満たすことを判定した場合について説明する。この場合、第１圧縮処理部１３３は、圧縮性能測定により得られた測定情報に基づき、圧縮性能パラメータを、圧縮処理の手法ごとに算出する。さらに、第１圧縮処理部１３３は、算出した圧縮性能パラメータをパラメータ保持部１０７に書き込む。
本実施形態において、第１圧縮処理部１３３は、圧縮性能パラメータとして、予め決められ時間内における圧縮処理速度及び圧縮率のそれぞれの平均値を算出する。
【００２４】
具体的に説明すると、タイミング判定部１３１が圧縮性能パラメータの取得タイミング条件を満たすことを判定した場合、第１圧縮処理部１３３は、インターバル時間（予め決められた時間、例えば１秒）内における圧縮処理の対象となった圧縮前データのデータ量の合計サイズＳｏｒｇと、インターバル時間内における圧縮後データのデータ量の合計サイズＳｃｏｍｐとを取得して、内蔵するメモリ領域に保存する。
その後、タイミング判定部１３１が圧縮性能パラメータの登録タイミング条件を満たすこと判定した場合、第１圧縮処理部１３３は、インターバル時間内において圧縮処理したデータの合計サイズＳｏｒｇの総和を、インターバル時間で除算した商を求める。この商を圧縮処理速度の平均値として用いる。第１圧縮処理部１３３は、圧縮後のデータのデータ量の合計サイズＳｃｏｍｐの総和を、圧縮前のデータ量の合計サイズＳｏｒｇの総和で除算した商を求める。この商を圧縮率の平均値として用いる。
第１圧縮処理部１３３は、算出した圧縮処理速度の平均値と、圧縮率の平均値を、実行した圧縮処理の手法の圧縮性能パラメータとして、パラメータ保持部１０７に書き込む。
【００２５】
第２圧縮処理部１３４は、第１の圧縮処理の手法（第１の圧縮手法）と第２の圧縮処理の手法（第２の圧縮手法）とのいずれかを実行する。第１の圧縮処理の手法とは、ＮＷ帯域幅がボトルネックになりうる圧縮処理（以下、ＮＷ帯域幅制約処理またはＮＷ制約型の（圧縮）処理という）を実行する最適圧縮手法として算出部１０８により設定された圧縮処理の手法である。第２の圧縮処理の手法とは、ＣＰＵ処理がボトルネックになりうる圧縮処理（以下、ＣＰＵ制約処理またはＣＰＵ制約型の（圧縮）処理という）を実行する最適圧縮手法として算出部１０８により設定された圧縮処理の手法である。この第２圧縮処理部１３４は、後段の一時保持部（第２保持部１０５及び第３保持部１０６）が保持する圧縮データのデータ量に応じて、実行する圧縮処理の手法を、ＣＰＵ制約処理型の圧縮処理の手法、又は、ＮＷ制約処理型の圧縮処理の手法に切り替える。
【００２６】
ＮＷ制約型の処理を用いた場合、圧縮処理の処理速度に比べて転送処理の処理速度が制約となりうる。ＣＰＵ制約型の処理を用いた場合、転送処理の処理速度に比べて圧縮処理の処理速度が制約となりうる。つまり、ＣＰＵ制約型の処理の圧縮率は、ＮＷ制約型の処理に比べて高い。
第２圧縮処理部１３４は、後段の一時保持部が保持する圧縮データのデータ量が予め決められた値よりも少ない場合、ＮＷ制約型の圧縮処理により対象データを圧縮して、圧縮データを後段の一時保持部に格納する。第２圧縮処理部１３４は、後段の一時保持部が保持する圧縮データの量が予め決められた値（閾値）よりも大きい場合、ＣＰＵ制約型の圧縮処理により対象データを圧縮して、圧縮データを後段の一時保持部に格納する。
本実施形態において、ＮＷ制約型の圧縮処理は、単位時間当たりの圧縮データ量がネットワーク帯域幅よりも大きい処理である。ＣＰＵ制約圧縮処理は、単位時間当たりの圧縮データ量がネットワーク帯域幅よりも小さい処理である。ネットワーク帯域幅とは、ネットワーク２０のネットワーク帯域幅として利用可能なネットワーク帯域幅である。
【００２７】
第２圧縮処理部１３４は、算出部１０８によって決定された最適圧縮手法に従って、ＣＰＵ制約型の処理あるいはＮＷ制約型の処理を実行する。
本実施形態において、第２圧縮処理部１３４が、第２保持部１０５の保持しているデータ量に基づき、第２保持部１０５にデータを格納できると判定した場合について説明する。この場合、第２圧縮処理部１３４は、ＮＷ制約型の最適圧縮手法として決められている圧縮アルゴリズムに従って入力されたデータを圧縮し、圧縮データを第２保持部１０５に格納する。
第２圧縮処理部１３４が、第２保持部１０５及び第３保持部１０６の保持しているデータ量に基づき、第２保持部１０５にデータを格納できず、且つ、第３保持部１０６にデータを格納できると判定した場合について説明する。この場合、第２圧縮処理部１３４は、ＣＰＵ制約型の最適圧縮手法として決定された圧縮アルゴリズムに従って入力されたデータを圧縮し、圧縮データを第３保持部１０６に格納する。
【００２８】
転送処理部１０４は、ＮＷ帯域幅測定部１４１と、転送部１４２とを備える。ＮＷ帯域幅測定部１４１は、測定部１４１と称する場合がある。転送処理部１０４は、転送性能を測定しながら、圧縮データを転送先に転送する。
測定部１４１は、転送処理中に、転送性能を測定する。転送性能パラメータの登録タイミング条件を満たすことを判定した場合、測定部１４１は、転送性能測定により得られた測定情報に基づき、転送性能パラメータを算出し、パラメータ保持部１０７に書き込む。
本実施形態において、測定部１４１は、転送性能パラメータとして、予め決められた一定時間におけるネットワーク帯域幅、つまり、単位時間当たりの転送データ量（単位時間当たりの転送データ量の総和であってもよい）を算出する。
具体的に説明すると、測定部１４１は、予め決められた時間Ｔ１間隔ごとに、転送先に転送したデータ量の転送サイズＳｔｒａｎを測定する。測定部１４１は、予め決められた時間Ｔ２（Ｔ２＞Ｔ１）が経過した場合、転送性能パラメータの登録タイミング条件を満たすと判定する。この場合、測定部１４１は、時間Ｔ２の間に転送されたデータの転送サイズＳｔｒａｎの総和を時間Ｔ２で除算した商を求める。さらに、測定部１４１は、求めた商（つまり、ネットワーク帯域幅）を、転送性能パラメータとして、パラメータ保持部１０７に書き込む。
【００２９】
転送部１４２は、前段の一時保持部（第２保持部１０５および第３保持部１０６）からデータを取得し、分析装置３０にそのデータを転送する。転送部１４２は、一時保持部１０５、１０６に格納されている圧縮データのうち、ＣＰＵ制約型の処理によって圧縮されたデータを優先的に転送する。
本実施形態において、転送部１４２は、第３保持部１０６に格納されている圧縮データを優先して分析装置３０（転送先）に転送する。転送部１４２は、第３保持部１０６に圧縮データがない場合、第２保持部１０５に格納されている圧縮データを分析装置３０に転送する。
【００３０】
第２保持部１０５と第３保持部１０６は、圧縮されたデータを一時的に保持する一時保持部の例である。本実施形態においては、第２保持部１０５と第３保持部１０６とが別個である場合について説明するが、これに限られない。第２保持部１０５と第３保持部１０６とが一体であってもよい。
第２保持部１０５は、第２圧縮処理部１３４がＮＷ制約型の最適圧縮手法により圧縮したデータを格納するバッファである。
第３保持部１０６は、第２圧縮処理部１３４がＣＰＵ制約型の最適圧縮手法により圧縮した圧縮データを格納するバッファである。
【００３１】
算出部１０８は、実効スループットを最適にする圧縮処理の手法（最適圧縮手法）を選択して、選択した手法を圧縮処理部１０３の情報保持部１３２に設定する。
本実施形態において、算出部１０８は、圧縮処理部１０３の第２圧縮処理部１３４において実行される最適な圧縮アルゴリズムを少なくとも一つ選択する。さらに、算出部１０８は、選択した圧縮アルゴリズム各々が、ＮＷ制約型あるいはＣＰＵ制約型のいずれに対応する処理であるかを判定する。
つまり、算出部１０８は、圧縮処理部１０３が実行可能な複数の異なる圧縮処理の手法（例えば、圧縮アルゴリズムあるいは非圧縮アルゴリズム）の全ての中から、ＣＰＵ制約型に対応する最適圧縮手法およびＮＷ制約型に対応する最適圧縮手法を決定する。
【００３２】
算出部１０８は、パラメータ保持部１０７を参照して、圧縮処理部１０３の圧縮処理による圧縮性能パラメータと転送処理部１０４の転送処理による転送性能パラメータに基づき、ＣＰＵ制約型に対応する最適圧縮手法およびＮＷ制約型に対応する最適圧縮手法を決定する。算出部１０８は、圧縮処理部１０３が処理対象データを圧縮処理（非圧縮処理も含む）した場合に、実効スループットが最大となる圧縮処理の手法を、最適圧縮手法と決定する。
【００３３】
タイマー１０９は、時間を計る。このタイマー１０９は、例えば、開始時点から決められた時間をカウントダウンすることにより時間を計ってもよい。
【００３４】
次に、図２，３を参照して、本実施形態における圧縮処理方法の一例について説明する。図２は、本実施形態における圧縮処理方法の一例について説明するためのフローチャートである。また、図３は、図２に示すフローチャートに含まれる一部の処理の一例について説明するためのフローチャートである。
（ステップＳＴ１００）
圧縮処理部１０３は、複数の圧縮処理の手法を利用してデータを圧縮する。圧縮処理部１０３は、処理が停止されるまで、例えば、第１保持部１０２に格納されている圧縮対象データがなくなるまで、圧縮処理を繰り返す。本実施形態において、圧縮処理部１０３は、圧縮性能パラメータの取得タイミング条件を満たさないと判定した場合、第２圧縮処理部１３４に対して圧縮処理を実行させる。一方、圧縮性能パラメータの取得タイミング条件を満たすと判定した場合、圧縮処理部１０３は、第１圧縮処理部１３３に対して圧縮処理を実行させる。
【００３５】
（ステップＳＴ１０１）
圧縮処理部１０３は、第１保持部１０２からデータを、一定サイズのブロック単位で取得する。
（ステップＳＴ１０２）
圧縮処理部１０３のタイミング判定部１３１は、圧縮性能パラメータの取得タイミングであるか否かを判定する。つまり、タイミング判定部１３１は、情報保持部１３２を参照して、圧縮性能パラメータの取得タイミング条件を満たすか否かを判定する。本実施形態において、タイミング判定部１３１は、取得フラグがｏｎである場合、圧縮性能パラメータの取得タイミング条件を満たすと判定する。
【００３６】
（ステップＳＴ１０３）
取得フラグがｏｎであって、圧縮性能パラメータの取得タイミング条件を満たすと判定した場合、タイミング判定部１３１は、第１圧縮処理部１３３に対して圧縮処理を実行するよう指示する。
これにより、第１圧縮処理部１３３は、情報保持部１３２を参照して、圧縮性能を測定しながら、全ての圧縮処理の手法のうちの一つの手法で圧縮処理を実行する。本実施形態では、情報保持部１３２に登録されている全ての圧縮処理の手法（例えば、圧縮アルゴリズム１，２，３，４，５）のリストが、情報保持部１３２に保持されている。第１圧縮処理部１３３は、このリストを参照して、例えば、リストの上段に記載されている圧縮アルゴリズムから順番に実行する圧縮アルゴリズムを選択する。本実施形態では、圧縮アルゴリズム１がリストの最上段に記載されており、この圧縮アルゴリズム１の下に、圧縮アルゴリズム２，３，４，５が順番に記載されている。第１圧縮処理部１３３は、圧縮性能を測定しながら、圧縮アルゴリズム１で圧縮処理を実行する。第１圧縮処理部１３３は、圧縮性能の測定情報を、内蔵する記憶領域に書き込み、一時的に保持する。
【００３７】
（ステップＳＴ１０４）
タイミング判定部１３１は、情報保持部１３２を参照して、圧縮性能パラメータの登録タイミングであるか否かを判定する。つまり、タイミング判定部１３１は、圧縮性能パラメータの登録タイミングの条件を満たすか否かを判定する。本実施形態において、タイミング判定部１３１は、登録フラグがｏｎである場合、圧縮性能パラメータの登録タイミング条件を満たすと判定する（ステップＳＴ１０４においてＹＥＳ）。
登録フラグがｏｆｆである場合、圧縮処理部１０３は、ステップＳＴ１１０の処理に進む（ステップＳＴ１０４においてＮＯ）。
【００３８】
（ステップＳＴ１０５）
登録フラグがｏｎであって、圧縮性能パラメータの登録タイミング条件を満たすと判定した場合、タイミング判定部１３１は、第１圧縮処理部１３３に対して圧縮性能パラメータの登録を指示する。これにより、第１圧縮処理部１３３は、測定情報に基づき、圧縮性能パラメータを求める。さらに、第１圧縮処理部１３３は、求めた圧縮性能パラメータを、パラメータ保持部１０７に書き込む。これにより、圧縮アルゴリズム１の圧縮性能パラメータである圧縮処理速度及び圧縮率が、パラメータ保持部１０７に登録される。
【００３９】
（ステップＳＴ１０６）
第１圧縮処理部１３３は、全ての圧縮処理の手法について圧縮性能パラメータを取得したか否かを判定する。例えば、第１圧縮処理部１３３は、情報保持部１３２に保持されている圧縮アルゴリズムのリストを参照して、一番下の圧縮アルゴリズム５にフラグが立っているか否かを判定する。
【００４０】
（ステップＳＴ１０７）
リストの一番下の圧縮アルゴリズム５にフラグが立っていないと判定した場合、第１圧縮処理部１３３は、全ての圧縮処理の手法について圧縮性能パラメータを取得していないと判定する（ステップＳＴ１０６においてＮＯ）。この場合、第１圧縮処理部１３３は、まだ圧縮性能測定をしていない圧縮手法を、次の性能測定用の圧縮処理の手法に設定する。
ここでは、例えば、第１圧縮処理部１３３は、圧縮アルゴリズム１の圧縮処理を実行したことを示すフラグを、圧縮アルゴリズムのリストに立てる。つまり、第１圧縮処理部１３３は、実行した圧縮アルゴリズムに対応するフラグを立てることにより、リストにフラグが立っている圧縮アルゴリズムの下の段の圧縮アルゴリズム（ここでの例では圧縮アルゴリズム２）が、次の性能測定用の圧縮処理の手法であることを示す情報を情報保持部１３２に書き込む。
（ステップＳＴ１０８）
第１圧縮処理部１３３は、次の圧縮性能パラメータの登録タイミングを設定する。本実施形態において、第１圧縮処理部１３３は、登録フラグをｏｆｆに設定し、予め決められた時間の経過をカウントするようにタイマー１０９を設定する。
【００４１】
（ステップＳＴ１０９）
一方、ステップＳＴ１０６の判定処理において、リストの一番下の圧縮アルゴリズム５にフラグが立っていると判定した場合、第１圧縮処理部１３３は、全ての圧縮処理の手法について圧縮性能パラメータを取得したと判定する（ステップＳＴ１０６においてＹＥＳ）。この場合、第１圧縮処理部１３３は、次の圧縮性能パラメータの取得タイミングを設定する。本実施形態において、第１圧縮処理部１３３は、取得フラグをｏｆｆに設定し、予め決められた時間の経過をカウントするようにタイマー１０９を設定する。また、第１圧縮処理部１３３は、圧縮アルゴリズムのリストのフラグを削除する。
【００４２】
（ステップＳＴ１１０）
第１圧縮処理部１３３は、ステップＳＴ１０３において、圧縮アルゴリズム１により圧縮したデータを、後段の一時保持部に送出する。本実施形態において、第１圧縮処理部１３３は、例えば、第３保持部１０６のデータ量が予め決められた閾値以上であるか否かを判定する。第１圧縮処理部１３３は、第３保持部１０６のデータ量が予め決められた閾値未満である場合、優先的に第３保持部１０６に圧縮データを送出する。一方、第１圧縮処理部１３３は、第３保持部１０６のデータ量が予め決められた閾値以上である場合、圧縮データを第２保持部１０５に送出する。
【００４３】
（ステップＳＴ１１１）
ステップＳＴ１０２の判定処理において、取得フラグがｏｆｆであって、圧縮性能パラメータの取得タイミング条件を満たさないと判定した場合（ステップＳＴ１０２においてＮＯ）、タイミング判定部１３１は、第２圧縮処理部１３４に対して圧縮処理を実行するよう指示する。
これにより、第２圧縮処理部１３４は、情報保持部１３２を参照して、算出部１０８によって決定された最適圧縮手法の圧縮アルゴリズムにより、ステップＳＴ１０１の処理において取得したデータに対して圧縮処理を実行する。第２圧縮処理部１３４による圧縮処理の詳細については、図３を参照して後述する。
（ステップＳＴ１１２）
圧縮処理が停止した場合、例えば、第１保持部１０２に格納されている圧縮対象データがなくなった場合、圧縮処理部１０３は、ステップＳＴ１０１〜１１１の処理を終了する。
【００４４】
このように、圧縮処理部１０３は、圧縮性能を測定しながら圧縮処理を実行し、各圧縮処理の手法についての圧縮性能パラメータを算出し、パラメータ保持部１０７に登録することができる。よって、算出部１０８による最適圧縮手法の決定に用いるパラメータを、事前にテストデータ等から収集する必要がなくなる。その結果、事前設定に必要な労力を削減することができる。
また、圧縮処理部１０３は、定期的に、圧縮性能パラメータを登録することができる。これにより、各圧縮処理の手法の圧縮性能パラメータが変化した場合であっても、その変化に追従して、圧縮性能パラメータを更新することができる。圧縮性能はデータの内容によって変化するため、例えば、途中で内容が異なるデータを転送する場合に有効である。
さらに、圧縮処理部１０３は、第２圧縮処理部１３４によって最適圧縮手法による圧縮処理を実行しながら、定期的に、第１圧縮処理部１３３による圧縮処理に切りかえることができる。これにより、以下に説明するような第２圧縮処理部１３４による圧縮処理の効果とともに、最適圧縮手法の決定に用いるパラメータの設定を簡単にして、パラメータの変化に伴う追従性も備えことができるという利点が得られる。
【００４５】
次に、図３を参照して、第２圧縮処理部１３４による圧縮処理の一例について詳細に説明する。
（ステップＳＴ２０１）
第２圧縮処理部１３４は、第２保持部１０５が保持するデータの量を参照して、第２保持部１０５に空きがあり、データを格納できるか否かを判定する。例えば、第２圧縮処理部１３４は、第２保持部１０５が保持しているデータの量が予め決められた閾値未満である場合、空きがある（データを格納できる）と判定する。
（ステップＳＴ２０２）
第２保持部１０５にデータを格納できると判定した場合（ステップＳＴ２０２においてＹＥＳ）、第２圧縮処理部１３４は、ＮＷ制約型の最適圧縮手法により、ステップＳＴ１０１において取得したデータを圧縮する。つまり、第２圧縮処理部１３４は、ＮＷ制約型の最適圧縮手法として決められている圧縮アルゴリズムに従って、第１保持部１０２から取得したデータを圧縮する。
（ステップＳＴ２０３）
第２圧縮処理部１３４は、圧縮した圧縮データを、第２保持部１０５に格納する。
【００４６】
（ステップＳＴ２０４）
第２保持部１０５にデータを格納できないと判定した場合（ステップＳＴ２０１においてＮＯ）、第２圧縮処理部１３４は、第３保持部１０６が保持するデータの量を参照して、第３保持部１０６に空きがあり、データを格納できるか否かを判定する。例えば、第２圧縮処理部１３４は、第３保持部１０６が保持しているデータの量が予め決められた閾値未満である場合、空きがある（データを格納できる）と判定する。
（ステップＳＴ２０５）
第３保持部１０６にデータを格納できないと判定した場合（ステップＳＴ２０４においてＮＯ）、第２圧縮処理部１３４は、第３保持部１０６に空きができるまで、つまり、第３保持部１０６が保持しているデータ量が予め決められた閾値未満となるまで待つ。
（ステップＳＴ２０６）
第３保持部１０６に空きがあり、データを格納できると判定した場合（ステップＳＴ２０４においてＹＥＳ）、第２圧縮処理部１３４は、ＣＰＵ制約型の最適圧縮手法により、ステップＳＴ１０１において取得したデータを圧縮する。つまり、第２圧縮処理部１３４は、ＣＰＵ制約型の最適圧縮手法として決められている圧縮アルゴリズムに従って、第１保持部１０２から取得したデータを圧縮する。
（ステップＳＴ２０７）
第２圧縮処理部１３４は、圧縮データを、第３保持部１０６に格納する。
【００４７】
以上のように、圧縮処理部１０３は、第２保持部１０５へのデータ格納を優先的におこなう。その結果、転送処理部１０４がＮＷ帯域幅を有効利用するために送信するデータを供給しつつ、圧縮率が高い処理をおこなうことができる。
【００４８】
次に、図４を参照して本実施形態における転送処理方法の一例について説明する。図４は、本実施形態における転送処理方法の一例について説明するためのフローチャートである。
（ステップＳＴ３００）
例えば、データ転送装置１０の電源がＯＮされると、転送処理部１０４は、データ転送処理が停止するまで（例えば、第１保持部１０２に格納されている圧縮対象データがなくなるまで）、前段バッファからデータを取得して転送する処理を繰り返す。
【００４９】
（ステップＳＴ３０１）
転送処理部１０４は、第３保持部１０６に圧縮データが格納されているか否かを確認する。
（ステップＳＴ３０２）
第３保持部１０６に圧縮データが格納されている場合（ステップＳＴ３０１においてＹＥＳ）、転送処理部１０４は、第３保持部１０６から圧縮データを取得する。
（ステップＳＴ３０３）
第３保持部１０６に圧縮データが格納されていない場合（ステップＳＴ３０１においてＮＯ）、転送処理部１０４は、第２保持部１０５から圧縮データを取得する。
【００５０】
（ステップＳＴ３０４）
転送処理部１０４は、転送性能パラメータの登録タイミングであるか否かを判定する。つまり、転送処理部１０４は、転送性能パラメータの登録タイミング条件を満たすか否かを判定する。
（ステップＳＴ３０５）
転送性能パラメータの登録タイミング条件を満たすと判定した場合（ステップＳＴ３０４においてＹＥＳ）、転送処理部１０４は、転送性能を測定しながら、第２保持部１０５又は第３保持部１０６から取得した圧縮データを、ネットワーク２０を介して分析装置３０に転送する。
（ステップＳＴ３０６）
転送処理部１０４は、ステップＳＴ３０５において測定した測定情報に基づき、ネットワーク帯域幅Ｎを求める。さらに、転送処理部１０４は、求めたネットワーク帯域幅Ｎを、パラメータ保持部１０７に書き込む。これにより、転送性能パラメータであるネットワーク帯域幅Ｎが、パラメータ保持部１０７に登録される。
【００５１】
（ステップＳＴ３０７）
転送性能パラメータの登録タイミング条件を満たさないと判定した場合（ステップＳＴ３０４においてＮＯ）、転送処理部１０４は、第２保持部１０５又は第３保持部１０６から取得した圧縮データを、ネットワーク２０を介して分析装置３０に転送する。つまり、転送性能パラメータの登録タイミング条件を満たさないと判定した場合、転送処理部１０４は、測定情報を測定することなく圧縮データを転送する。
（ステップＳＴ３０８）
転送処理部１０４によるデータ転送処理が停止した場合、例えば、第１保持部１０２に格納されている圧縮対象データがなくなった場合、転送処理部１０４は、ステップＳＴ３０１〜３０７の処理を終了する。
【００５２】
このように、転送処理部１０４は、転送性能を測定しながら転送処理を実行し、転送性能パラメータを算出し、パラメータ保持部１０７に登録することができる。よって、算出部１０８による最適圧縮手法の決定に用いるパラメータを、事前にテストデータ等から収集する必要がなくなる。その結果、事前設定に必要な労力を削減することができる。また、転送性能に影響するパラメータが変化する環境でも、その変化に追従して、転送性能パラメータを更新することができる。
また、このように動作することにより、第３保持部１０６のデータが優先的に送信される。第３保持部１０６のデータはより高効率な圧縮によりデータサイズが小さくなっていることが期待できる。よって、このデータを多く送信することは実効スループット向上に繋がる。しかし、ＣＰＵ制約型の処理によって圧縮されたデータのスループットはＮＷ帯域を使いきるほどではないため、そのデータだけではＮＷ帯域に無駄が発生する。この無駄を発生させないようにＮＷ制約型の処理によって圧縮されたデータを送信している。よって、本実施形態においては、無駄なくＮＷ帯域幅を利用できる。
【００５３】
次に、図５を参照して、本実施形態における最適圧縮手法の算出方法の一例について説明する。図５は、本実施形態における最適圧縮手法の算出方法の一例について説明するためのフローチャートである。
本実施形態に係るデータ転送装置１０は、数理モデルを用いて最適な圧縮処理手法の組合せの算出を行う。さらに、データ転送装置１０は、算出結果に基づき、ＮＷ制約型の最適圧縮手法である圧縮アルゴリズム、及び、ＣＰＵ制約型の最適圧縮手法である圧縮アルゴリズムの設定を行う。詳細な数理モデルについては後で述べる。ここでは、算出部１０８が、数理モデルによる算出結果に基づき最適な圧縮処理手法が選択されるという前提において、全体のシーケンスを述べる。
（ステップＳＴ４００）
算出部１０８は、全体のインポート処理が終了するまで、例えば、図２，３に示す圧縮処理、及び、図４に示す転送処理が終了するまで、最適圧縮手法の算出処理を繰り返す。
【００５４】
（ステップＳＴ４０１）
算出部１０８は、最適圧縮手法算出タイミングであるか否かを判定する。つまり、算出部１０８は、最適圧縮手法の算出タイミング条件を満たすか否かを判定する。算出部１０８は、前回の最適圧縮手法の算出処理から予め決められた時間が経過したことを判定した場合、最適圧縮手法の算出タイミング条件を満たすと判定してもよい。算出部１０８は、タイマー１０９による計時結果や、上述したようなフラグを用いて、最適圧縮手法の算出タイミング条件を満たすか否かを判定してもよい。
【００５５】
（ステップＳＴ４０２）
最適圧縮手法の算出タイミング条件を満たすと判定した場合（ステップＳＴ４０１においてＹＥＳ）、算出部１０８は、パラメータ保持部１０７に保持されている圧縮性能パラメータ及び転送性能パラメータを読み出す。
本実施形態において、算出部１０８は、圧縮性能パラメータとして、各圧縮アルゴリズムｉ（“ｉ”はアルゴリズムの識別番号を示す）の圧縮処理速度Ｃｉと圧縮率Ｒｉをパラメータ保持部１０７から読みだす。また、算出部１０８は、転送性能パラメータとして利用可能なネットワーク帯域幅Ｎを、パラメータ保持部１０７から読みだす。
算出部１０８は、最適な圧縮処理の手法を算出するために必要なその他のパラメータ、例えば並列度Ｐ等の情報も、パラメータ保持部１０７から読み出す。並列度Ｐとは、並列処理を実行する、圧縮処理部１０３が有するＣＰＵのコアの数である。
（ステップＳＴ４０３）
算出部１０８は、パラメータ保持部１０７から読み出したパラメータを数理モデルに代入して算出した算出結果に基づき、実効スループットを最適にする圧縮アルゴリズム（最適圧縮手法）を少なくとも一つ決定する。さらに、算出部１０８は、決定した最適圧縮手法を、ＣＰＵ制約型およびＮＷ制約型のいずれかの種別に分類する。算出部１０８は、２以上の最適圧縮手法を決定し、ＣＰＵ制約型及びＮＷ制約型の最適圧縮手法をそれぞれ一以上設定することが好ましい。
【００５６】
（ステップＳＴ４０４）
算出部１０８は、決定された最適圧縮手法それぞれに関して、最適圧縮手法の圧縮アルゴリズムの種別の設定と、最適圧縮手法による圧縮データの出力先の一時保持部の設定を、圧縮処理部１０３の第２圧縮処理部１３４に対しておこなう。
（ステップＳＴ４０５）
算出部１０８は、決定された最適圧縮手法の種別を判定する。つまり、算出部１０８は、実効スループットを最適にする圧縮アルゴリズムの種別を判定する。種別の判定処理も数理モデルを利用するため、詳細は後で述べる。
【００５７】
（ステップＳＴ４０６）
算出部１０８は、実効スループットを最適にする圧縮処理であると判定した圧縮アルゴリズム（最適圧縮手法）が、それぞれ、ＣＰＵ制約型の圧縮アルゴリズムであるか、又は、ＮＷ制約型の圧縮アルゴリズムであるかを判定する。詳細については後述するが、算出部１０８は、各圧縮アルゴリズムｉの圧縮処理速度Ｃｉおよび圧縮率Ｒｉと、並列度Ｐとの積が、利用可能なネットワーク帯域幅Ｎより大きいか否かに応じて、ＣＰＵ制約型の圧縮アルゴリズムであるか、又は、ＮＷ制約型の圧縮アルゴリズムであるかを判定する。
【００５８】
（ステップＳＴ４０７）
例えば、実効スループットを最適にする圧縮処理であると判定された圧縮アルゴリズム（最適圧縮手法）の１つがＮＷ制約型であると判定した場合、算出部１０８は、その圧縮アルゴリズムをＮＷ制約型の圧縮アルゴリズムとして第２圧縮処理部１３４に設定する。
（ステップＳＴ４０８）
また、この場合、算出部１０８は、この最適圧縮手法によって生成された圧縮データの出力先（一時保存先）を、第２保持部１０５に設定する。
例えば、算出部１０８は、実効スループットを最適にする圧縮処理であると判定された圧縮アルゴリズム（最適圧縮手法）のうち、ＮＷ制約型であると判定した圧縮アルゴリズムが、ＮＷ制約型の圧縮処理手法であることを示す情報を情報保持部１３２に登録する。また、算出部１０８は、第２保持部１０５に保存する圧縮データを生成する圧縮アルゴリズムが、最適圧縮手法であることを示す情報を、情報保持部１３２に登録する。
【００５９】
（ステップＳＴ４０９）
実効スループットを最適にする圧縮処理であると判定された圧縮アルゴリズム（最適圧縮手法）の１つがＣＰＵ制約型の処理であると判定した場合、算出部１０８は、その圧縮アルゴリズムをＣＰＵ制約型の圧縮アルゴリズムとして第２圧縮処理部１３４に設定する。
（ステップＳＴ４１０）
また、この場合、算出部１０８は、この最適圧縮手法によって生成された圧縮データの出力先（一時保存先）を、第３保持部１０６に設定する。
例えば、算出部１０８は、実効スループットを最適にする圧縮処理であると判定された圧縮アルゴリズム（最適圧縮手法）のうち、ＣＰＵ制約型であると判定した圧縮アルゴリズムが、ＣＰＵ制約型の圧縮処理手法であることを示す情報を情報保持部１３２に登録する。また、算出部１０８は、第３保持部１０６に保存する圧縮データを生成する圧縮アルゴリズムが、最適圧縮手法であることを示す情報を、情報保持部１３２に登録する。
【００６０】
（ステップＳＴ４１１）
算出部１０８は、決定された最適圧縮手法の全てについて判定処理が終了したか否かを判定する。全ての判定処理が終了していない場合、処理がステップＳＴ４０４に戻る。
（ステップＳＴ４１２）
算出部１０８は、一定時間待機する。
（ステップＳＴ４１３）
算出部１０８は、全体のインポート処理が終了した場合、例えば、図２，３に示す圧縮処理、及び、図４に示す転送処理が終了した場合、ステップＳＴ４０１〜４１２の処理を終了する。全体のインポート処理が終了していない場合、ステップＳＴ４０１に戻って処理を繰り返す。
【００６１】
算出部１０８による実効スループットを最適にする圧縮処理手法の設定は、データを転送する前（つまり、転送処理の前）に実行されることが好ましい。
本実施形態では、算出部１０８が、データ転送装置１０内に搭載されている例について説明したが、このような構成に限られない。算出部１０８はデータ転送装置１０と別装置であってもよい。
本実施形態では、第２保持部１０５と第３保持部１０６とはそれぞれ別構成として説明したが、このような構成に限られない。１つの記憶装置によって第２保持部１０５と第３保持部１０６とを構成してもよい。この場合、第２圧縮処理部１３４は、第２保持部１０５の最大記憶容量に応じたデータ量を閾値として、記憶装置に記憶されているデータ量がこの閾値よりも少ないか否かを判定する。この圧縮処理部１０３は、記憶装置に記憶されているデータに付与されている付属情報を参照して、ＮＷ制約型の圧縮処理によって処理されたデータが閾値よりも少ないか否かを判定してもよい。
つまり、本実施形態で説明した、第２保持部１０５に空きがあるか否かを判定する処理は、転送処理部１０４が転送する予定のデータの量が予め決められた値よりも少ないか否かを判定する処理の一例であって、また、転送処理部１０４が転送する予定のデータのうちＮＷ制約型の圧縮処理によって処理されたデータの量が予め決められた値よりも少ないか否かを判定する処理の一例である。
【００６２】
上記構成により、第３保持部１０６が保持する圧縮データのサイズは、より高効率な圧縮処理（本実施形態において、ＮＷ制約型の圧縮処理に比べてＣＰＵ制約型の圧縮処理の効率が高くなりうる）により、小さくなっていることが期待できる。このため、第３保持部１０６が保持する圧縮データをより多く転送することにより、実効スループットが向上する。
ここで、ＣＰＵ制約型の処理によって生成された圧縮データのスループットは、ＮＷ帯域を使いきるほどではないため、その圧縮データだけではＮＷ帯域に無駄が発生する。
このように、実効スループットの向上とＮＷ帯域の有効利用とは、トレードオフの関係となっている。
【００６３】
この無駄を発生させないようにするため、データ転送装置１０は第３保持部１０６が保持する圧縮データを優先的に転送し、第２保持部１０５は一定量の圧縮データを保持する。これにより、データ転送装置１０は、転送するための圧縮データとして、一定量の圧縮データを保持しておくことができる。
よって、転送処理部１０４は、継続して第３保持部１０６あるいは第２保持部１０５が保持する圧縮データを転送し続けることができる。その結果、無駄なくＮＷ帯域幅を利用することができる。
また、実効スループットを向上させるため、データ転送装置１０は、第２保持部１０５に一定量の圧縮データを保持している状態では、ＣＰＵ制約型の処理により圧縮データを生成し、この圧縮データを優先的に転送する。これにより、より高効率な圧縮処理により圧縮されたデータをより多く転送することができるため、実効スループットが向上する。
したがって、本実施形態に係るデータ転送装置１０は、上記のように構成することによって、実効スループットの向上を図りつつ、ＮＷ帯域を有効に利用することができる。
【００６４】
データ転送装置１０は、第２保持部１０５が一定量の圧縮データを保持していない場合、圧縮処理の処理速度に比べて転送処理の処理速度が制約となりうるＮＷ制約型の処理を優先的に実行する。また、データ転送装置１０は、第２保持部１０５が一定量の圧縮データを保持している場合、転送処理の処理速度に比べて圧縮処理の処理速度が制約となりうるＣＰＵ制約型の処理によって生成される圧縮データを、優先的に転送する。この構成により、データ転送装置１０は、高効率に圧縮処理部１０３のリソースを利用することができるとともに、実効スループットを向上させることができる。また、データ転送装置１０は、第２保持部１０５に一定量の圧縮データを格納するまでに要する時間を短縮することができる。
【００６５】
次に、図６を参照して、最適な圧縮処理手法を算出するとともに、出力先の一時保持部の決定するための数理モデルの一例について説明する。図６は、２種類の圧縮アルゴリズムを利用して圧縮転送する処理の概念図である。
【００６６】
図６に基づいて、実効スループットを最大にする数理モデルを構築する。最大化すべき実効スループットを“Ｅ”と表記する。圧縮アルゴリズム１に従って１つのＣＰＵコアを最大限に使用した際の処理スループット（圧縮処理速度ともいう）を“Ｃ１”と表記する。圧縮アルゴリズム２に従って１つのＣＰＵコアを最大限に使用した際の処理スループットを“Ｃ２”と表記する。圧縮アルゴリズム１，２での圧縮率をそれぞれ“Ｒ１”、“Ｒ２”と表記する。なお、もとのデータサイズに対する圧縮後データサイズの割合を示す値が小さいほど圧縮効率が高い。
「非圧縮処理の圧縮率＝１」であるため、本実施形態において、非圧縮処理も圧縮処理の一つに含める。非圧縮アルゴリズム３に従って１つＣＰＵコアを最大限に使用した際の処理スループットを“Ｃ３”と表記する。この非圧縮アルゴリズム３での圧縮率を“Ｒ３”と表記する。
利用可能なネットワーク帯域幅は“Ｎ”と表記する。ネットワーク２０にデータを送出するためのＣＰＵコストは無視する。
処理スループットＣ１，Ｃ２，Ｃ３および圧縮率Ｒ１，Ｒ２，Ｒ３は、第１圧縮処理部１３３によって定期的に測定される圧縮性能パラメータであって、パラメータ保持部１０７に保持されている情報である。
【００６７】
以下の状況を仮定する。第２圧縮処理部１３４が、並列度Ｐが「１」である処理で、設定されたデータの割合で圧縮アルゴリズム１，２および非圧縮アルゴリズム３を動作させる。言い換えると、第２圧縮処理部１３４が、１つのＣＰＵコアを最大限に使用して、設定された割合のデータに対して、圧縮アルゴリズム１，２および非圧縮アルゴリズム３をそれぞれ独立に実行する。なお、設定されたデータの割合が０％であった場合、その圧縮アルゴリズムは実行されないことを意味している。
また、第２圧縮処理部１３４は、ｘ１（０≦ｘ１≦１）の割合のデータを圧縮アルゴリズム１で、ｘ２（０≦ｘ２≦１）の割合のデータを圧縮アルゴリズム２で圧縮する。さらに、第２圧縮処理部１３４は、ｘ３（０≦ｘ３≦１）の割合のデータは圧縮せずにそのまま転送する。
上記の状況の場合、並列度Ｐが「１」におけるＣＰＵリソースで第２圧縮処理部１３４が圧縮処理できるスループットは、「Ｃ１ｘ１＋Ｃ２ｘ２＋Ｃ３ｘ３」で示される。また、圧縮処理部１０３による圧縮処理後のデータスループットは、「Ｃ１ｘ１Ｒ１＋Ｃ２ｘ２Ｒ２＋Ｃ３ｘ３Ｒ３」で示される。
【００６８】
なお、この処理を並列度ＰのＣＰＵで並列処理すると圧縮処理できるスループットは「Ｐ×（Ｃ１ｘ１＋Ｃ２ｘ２＋Ｃ３ｘ３）」であらわされる。また、圧縮処理後のデータスループットは、「Ｐ×（Ｃ１ｘ１Ｒ１＋Ｃ２ｘ２Ｒ２＋Ｃ３ｘ３Ｒ３）」であらわされる。圧縮処理部１０３が３個のＣＰＵコアにより並列に圧縮処理（非圧縮処理を含む）を実行する場合、並列度Ｐは「３」である。
【００６９】
この圧縮処理後のスループット「Ｐ×（Ｃ１ｘ１Ｒ１＋Ｃ２ｘ２Ｒ２＋Ｃ３ｘ３Ｒ３）」は、ネットワーク帯域幅Ｎを超えることはない。よって、算出部１０８は、以下の線形計画問題を解くことで、最適な実効スループットＥを求めることができる。
【００７０】
Maximize:
Ｅ＝Ｐ×（Ｃ１ｘ１＋Ｃ２ｘ２＋Ｃ３ｘ３）    ・・・式（１）
Subject  to:  
Ｐ×（Ｃ１ｘ１Ｒ１＋Ｃ２ｘ２Ｒ２＋Ｃ３ｘ３Ｒ３）≦Ｎ
０≦ｘ１≦１
０≦ｘ２≦１
０≦ｘ３≦１
ｘ１＋ｘ２＋ｘ３≦１
【００７１】
算出部１０８は、この線形計画問題を、シンプレックス法で解くことにより、実効スループットＥを最大にするデータの割合（ｘ１,ｘ２,ｘ３）の組み合わせを求めることができる。算出部１０８は、データの割合ｘｉ（ｉは圧縮アルゴリズムあるいは非圧縮アルゴリズムを識別するための番号）が、０より大きい圧縮アルゴリズムあるいは非圧縮アルゴリズムの組み合わせを、最適な圧縮処理の組み合わせとして選択する。つまり、データの割合「ｘｉ≦０」である場合、このアルゴリズムｉによる処理対象のデータがないことを意味している。すなわち、最適な圧縮処理として、このアルゴリズムｉが含まれないことを意味している。
【００７２】
算出部１０８は、最適な圧縮処理の組み合わせに含まれる圧縮アルゴリズムあるいは非圧縮アルゴリズムそれぞれが、ＣＰＵ制約型のアルゴリズムとＮＷ制約型のアルゴリズムとのいずれに分類されるかについて判定する。本実施形態において、算出部１０８は、最適な圧縮処理の組み合わせとして選択された圧縮処理（圧縮アルゴリズムあるいは非圧縮アルゴリズム）の「ＰＲｉＣｉ」の値（すなわち、並列度と圧縮率と処理スループットの積）を、アルゴリズムごとに算出する。算出部１０８は、算出した「ＰＲｉＣｉ」の値がネットワーク帯域幅Ｎを超えるかどうか判定する。
つまり、「ＰＲｉＣｉ＜Ｎ」である場合、算出部１０８は、アルゴリズムｉがＣＰＵ制約型のアルゴリズムであると決定する。この処理は、図５のステップＳＴ４０９に相当する。
一方、「ＰＲｉＣｉ≧Ｎ」である場合、算出部１０８は、アルゴリズムｉがＮＷ制約型のアルゴリズムであると決定する。この処理は、図５のステップＳＴ４０７に相当する。
【００７３】
以下、算出部１０８による最適な圧縮処理を算出するための処理（図５のステップＳ４０３に相当する処理）の具体例を説明する。
具体例として、以下の状況を仮定する。
圧縮アルゴリズム１のパラメータが、「Ｃ１＝１０８．８９ＭＢ／ｓ」、「Ｒ１＝０．６８」である。圧縮アルゴリズム２のパラメータが、「Ｃ２＝１７．８８ＭＢ／ｓ」、「Ｒ１＝０．３８」である。非圧縮アルゴリズム３のパラメータが、「Ｃ３＝５１２９５０ＭＢ／ｓ」、「Ｒ３＝１」である。図７は、これらパラメータを示している。圧縮処理部１０３の第２圧縮処理部１３４が５個のＣＰＵコアを利用して、圧縮処理を並列度「Ｐ＝５」で行う。ネットワーク２０で利用可能なネットワーク帯域幅「Ｎ＝１１０ＭＢ／Ｓ」である。
上記の仮定において、算出部１０８は、これらパラメータをパラメータ保持部１０７から読み出し、式（１）に代入して、この代入した式（１）をシンプレックス法で解く。解として、実効スループットＥを最大にするデータの割合（ｘ１,ｘ２,ｘ３）の組み合わせを求める。圧縮処理のデータの割合が、「（ｘ１，ｘ２，ｘ３）＝（０．２２，０．７７，０．０）」である場合、算出部１０８は、最大実効スループットＥが１９２．５２ＭＢ／ｓであると導出する。
【００７４】
このような結果が得られる場合、算出部１０８は、実効スループットＥを最適にする圧縮処理の組み合わせ、つまり、導出されるデータの割合Ｘｉが０より大きい圧縮処理の組み合わせ、最適な圧縮処理の組み合わせとして選択する。よって、算出部１０８は、圧縮アルゴリズム１および２を、最適な圧縮処理の組み合わせとして選択する。
【００７５】
算出部１０８は、これらパラメータを代入して、「ＰＲ１Ｃ１＝３７０．２２ＭＢ／ｓ」、「ＰＲ２Ｃ２＝３３．９７２ＭＢ／ｓ」を算出する。圧縮アルゴリズム１に関して、算出結果から「ＰＲ１Ｃ１≧Ｎ」である。このため、算出部１０８は、圧縮アルゴリズム１がＮＷ制約型の圧縮処理の手法であると判定し、ＮＷ制約型の圧縮処理の手法として圧縮アルゴリズム１を設定する。この処理は、図５のステップＳＴ４０７に相当する。
また、算出部１０８は、圧縮アルゴリズム１によって生成された圧縮データの出力先（一時保存先）を、第２保持部１０５に設定する。この処理は、図５のステップＳＴ４０８に相当する。
【００７６】
一方、圧縮アルゴリズム２に関して、算出結果から「ＰＲ２Ｃ２＜Ｎ」である。このため、算出部１０８は、圧縮アルゴリズム２がＣＰＵ制約型の圧縮処理の手法であると判定し、ＣＰＵ制約型の圧縮処理の手法として圧縮アルゴリズム２を設定する。この処理は、図５のステップＳＴ４０９に相当する。
また、算出部１０８は、圧縮アルゴリズム２によって生成された圧縮データの出力先（一時保存先）を、第３保持部１０６に設定する。この処理は、図５のステップＳＴ４１０に相当する。
【００７７】
転送先でのデータの処理、つまり、分析装置３０による処理は、例えば、日本国特開平０１−１０８６３１号公報（以下、特許文献Ａ）で開示されて技術を適用してもよい。この技術を用いることにより、分析装置３０は、受信したデータが圧縮データおよび非圧縮データのいずれであるかを判定して、判定結果に応じて受信したデータを一時記憶部に振り分ける。分析装置３０は、圧縮されているデータのみを復元することで、性能を落とすことなく受信することが可能である。
本実施形態に係るデータシステムにおいて、圧縮データの判別方法は特に限定されない。判別方法として、転送時に圧縮種別をデータに格納する、種別ごとに論理的な転送経路を用意する、などの方法を適用してもよい。
【００７８】
次に、本発明の第１実施形態によるデータ転送装置１０の利点について説明する。
第１の利点は以下のとおりである。圧縮処理部１０３が、圧縮性能を測定しながら圧縮処理を実行し、各圧縮処理の手法についての圧縮性能パラメータを算出し、パラメータ保持部１０７に登録する。このため、算出部１０８による最適圧縮手法の算出のためのパラメータを、事前にテストデータ等から収集する必要がなくなる。その結果、事前設定に必要な労力を削減することができる。
第２の利点は以下のとおりである。圧縮処理部１０３が、定期的に、圧縮性能パラメータを登録する。よって、各圧縮処理の手法の圧縮性能パラメータが変化した場合であっても、その変化に追従して、圧縮性能パラメータを更新することができる。
第３の利点は以下のとおりである。圧縮処理部１０３が、第２圧縮処理部１３４によって最適圧縮手法による圧縮処理を実行しながら、定期的に、第１圧縮処理部１３３による圧縮処理に切りかえることができる。これにより、以下に説明するような第２圧縮処理部１３４による圧縮処理の利点とともに、最適圧縮手法の算出に用いるパラメータの設定を簡単にして、パラメータの変化に追従することができる。
【００７９】
第４の利点は、圧縮処理部１０３において圧縮処理で高効率にＣＰＵリソースを利用することが可能になり、実効スループットが向上できることである。
この理由は、２つある。第１の理由は、データ転送装置１０が、第１保持部１０２と、第２保持部１０５および第３保持部１０６とを備えていることである。このように、圧縮処理用と転送用の一時保持部が別に用意されているため、圧縮処理部１０３が、既に圧縮されたデータを取得する無駄な処理が発生しない。
第２の理由は、データ転送装置１０が、第２保持部１０５と第３保持部１０６とを備えていることである。これにより、ＮＷ制約型処理用の一時保持部とＣＰＵ制約型処理用の一時保持部をそれぞれ別に用意し、ＣＰＵ制約型の処理によって生成された、実効スループット向上に寄与する高効率に圧縮されたデータをより多く送信しながらも、ＮＷの帯域幅を無駄にしないように送信できる。
第５の利点は、利用可能なＣＰＵリソースを無駄にすることなく利用して実効スループットを向上できることである。その理由は、利用可能なＣＰＵリソースとＮＷ帯域幅に応じて、算出部１０８が、複数の圧縮処理のアルゴリズムの中から、ＣＰＵリソースを最大限活用して実効スループットを最適にする圧縮処理のアルゴリズムを数理モデルで算出して使用するためである。
【００８０】
以下、本実施形態に係るデータ転送装置１０の背景技術について説明する。
並列処理での高速分析が可能な並列処理基盤の台頭により、それを組み入れて大量データを高速分析し傾向や知見導出を生かすという動きが活発化している。例えば、並列処理基盤としてよく知られているＨａｄｏｏｐの活用事例では、顧客情報や行動履歴のマイニングや大量ログ情報からの傾向分析などがある。並列処理基盤を活用するシステムの一構成としては従来のシステムからのデータを並列処理基盤にインポートして分析するという形態が考えられる。最近ではクラウド上で並列処理基盤を容易に構築できるサービスも出てきており、並列処理基盤がリモートサイトにあるケースも考えられる。
【００８１】
蓄積された大量データを並列処理基盤で高速に処理する場合、並列処理基盤へのデータインポート速度が重要である。従来では、週次および日次で蓄積されたデータをＥｘｔｒａｃｔ-Ｔｒａｎｓｆｏｒｍ-Ｌｏａｄ(ＥＴＬ)ツールや自前ツールでインポートしていた。
しかし、データ量の増加により並列処理基盤へのデータインポート自体に時間がかかってしまい、全体のバッチ処理に時間がかかることが考えられる。また、継続的に生成される大量データをいち早く分析したい要望も高まっている。関連技術分野としてはニアリアルタイムＥＴＬがある。従来の日次でのオフラインバッチ処理からより短間隔でのオンラインバッチ処理を繰り返すことで、大量データ分析のリアルタイム化が目指されている。
【００８２】
データインポートの際にボトルネックになる原因として、ＮＷ帯域幅ボトルネックがひとつとして考えられる。近年のストレージ技術（Ｄｉｓｋ  Ａｒｒａｙによるｄｉｓｋの並列化、フラッシュなどの高速なメモリをベースにしたストレージ、など）により広帯域なＩ／Ｏが実現できる。このようなストレージシステムが採用され、相対的にＮＷ帯域幅が狭くなる場合に起こりえる。また、並列処理基盤がリモートサイトにあり、そこまでのＮＷ帯域幅が狭い場合などでも起こると考えられる。
【００８３】
ＮＷ帯域幅ボトルネックを解消するための技術の一つとして、転送データを圧縮し、実効スループットを向上させる手法がある。
例えば、特許文献１は、転送データをネットワークアダプタ部分で圧縮することでネットワーク転送スループット向上を図っている。また、日本国特許３３２９３９０（以下、特許文献Ａ）は、低速なディスクからのファイル転送を前提にしたデータ圧縮方式が提案されている。
また、日本国特開平０１−１０８６３１（以下、特許文献Ｂ）では、圧縮と非圧縮用のバッファを用意し、圧縮効率が低いデータはそのまま転送することで圧縮処理による転送処理性能低下を防ぐ技術が提案されている。
しかし、これらの技術では余剰計算リソース、例えばマルチコア演算器の空きコアを使った圧縮によって転送の実効スループットを向上することが実現できない。ここで、実効転送スループットを転送すべきデータ形式での転送スループットと定義する。
【００８４】
特許文献１および特許文献Ａでは、圧縮処理と転送処理が直列に依存している。このため、圧縮処理の性能がそのまま転送性能に影響を与えてしまう。そのため、圧縮アルゴリズムの処理性能や利用できる計算リソース変動による性能変動による実効転送スループットの悪化が考えられる。
特許文献Ｂでは、圧縮処理と転送処理を並列に実行できる構成を開示している。しかしながら、どの程度の割合を圧縮すれば実効転送スループットが上げられるかを制御する手段が存在しないため、実現が困難である。
【００８５】
関連論文１ではＣＰＵバウンドな圧縮処理とＩ／Ｏバウンドな転送処理を並列におこなうことで実効スループットを向上させる方法を提案している。転送および圧縮処理が共通のバッファを介しており、圧縮処理はバッファからデータを取り出して圧縮し、再びそれをバッファに戻す。一方の転送処理はバッファから圧縮および非圧縮のデータを混合して転送する。このような方法で、ＣＰＵおよびＮＷ帯域幅を無駄なく利用して実効スループットを向上させている。関連論文1では圧縮処理は1並列の場合でしか評価されていない。近年のサーバの大半は複数のコアを有しているため、圧縮処理の並列度をより上げることでさらに実効スループットを向上できることは容易に想像できる（図８参照）。
関連論文１とは、「ＣＰＵ and L. Singaravelu, “Fine-grain adaptive compression in dynamically variable networks,” in International Conference on Distributed Computing Systems, 2005, pp. 685-694」である。
【００８６】
しかし、関連論文１の構成をベースに圧縮処理の並列度を上げる方法では、ＣＰＵリソースを有効に活用できない問題がある。これを引き起こしている原因は２つある。
第１の原因は、転送処理と圧縮処理が同じバッファを共有していることである。バッファを共有していることで非効率なＣＰＵリソース利用を引き起こす２つの現象が発生する。
第１の現象は、転送処理が一般的には圧縮処理より高速であるために、実際には圧縮できるＣＰＵリソースがあるにもかかわらず、転送処理が圧縮せずにデータを送ってしまうことである。
第２の現象は、圧縮処理が圧縮済みのデータを再び取得してしまい、余計なオーバヘッドがかかることである。
【００８７】
第２の原因は、１種類の圧縮アルゴリズムを利用している手法の限界による。関連論文１では圧縮後のデータスループットがＮＷ帯域幅を超えない前提での手法を提案している。しかし、近年では圧縮率を犠牲にして圧縮処理速度を高速にする圧縮アルゴリズムが提案されている。これに加え圧縮処理の並列度を上げようとする場合、圧縮処理後のデータスループットがＮＷ帯域幅を超えることが考えられる。この状態になった場合、これ以上圧縮処理にＣＰＵリソースを割り当てても、実効スループットを向上させることができなくなり、利用可能なＣＰＵリソースがある場合でも有効に活用できない状況となる。
【００８８】
このような背景技術において、第１の問題点は、圧縮処理がＣＰＵリソースを有効に利用して実効スループットを向上できないということである。
その理由は、圧縮処理と転送処理が処理対象のデータを共通のバッファで共有するため、ＣＰＵリソースの非効率な利用に繋がる２つの現象が発生するためである。第１の現象は、転送処理が一般的には圧縮処理より高速であるために、実際には圧縮できるＣＰＵリソースがあるにもかかわらず、転送処理が圧縮せずにデータを送ってしまうことである。第２の現象は圧縮処理が圧縮済みのデータを再び取得してしまい、余計なオーバヘッドがかかることである。
第２の問題点は、利用可能なＣＰＵリソースがあるにも関わらず、実効スループットを向上できなくなるということである。
その理由は、１種類の圧縮アルゴリズムを利用した場合、圧縮処理後のデータスループットがＮＷ帯域幅を超えると、それ以上ＣＰＵリソースを利用できなくなるためである。
【００８９】
本実施形態に係るデータ転送装置１０によれば、圧縮処理の並列度を上げて実効スループットを向上させ、データ転送時間を短縮することができる。また、本実施形態に係るデータ転送装置１０は、大量データの高速転送といった用途に適用できる。
【００９０】
［第２実施形態］
次に、本発明の第２の実施形態に係るデータ転送装置の構成の一例について説明する。
図９は、本発明の第２の実施形態に係るデータ転送装置の構成の一例を示す図である。
図９に示す通り、本発明の第２の実施形態に係るデータ転送装置１０００は、算出部１００１と、縮処理部１００２とを少なくとも備える。算出部１００１は、入力するデータを圧縮する圧縮処理中、及び、圧縮処理によって圧縮された圧縮データを転送先に転送する転送処理中における性能測定により得られる性能測定パラメータに基づき、実効スループットを最適にする最適圧縮手法を算出する。
圧縮処理部１００２は、算出部１００１によって算出された最適圧縮手法により、転送処理の処理速度に比べて圧縮処理の処理速度が制約となるＣＰＵ制約型の処理と、圧縮処理の処理速度に比べて転送処理の処理速度が制約となるＮＷ制約型の処理とを組み合わせて対象データを圧縮する。
【００９１】
本実施の形態に係るデータ転送装置１０は、内部にコンピュータシステムを有していてもよい。動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われてもよい。「コンピュータシステム」は、ＣＰＵ及び各種メモリやＯＳ、周辺機器等のハードウェアを含む。
「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含む。
【００９２】
各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、また、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する処理を行ってもよい。
「コンピュータ読み取り可能な記録媒体」は、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置を含む。
【００９３】
「コンピュータ読み取り可能な記録媒体」は、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含む。
上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体を含む。
上記プログラムは、前述した機能の一部を実現するためのものであっても良い。
さらに、上記プログラムは、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００９４】
その他、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
【００９５】
この出願は、２０１３年４月１２日に出願された日本国特願２０１３−０８３７８６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【００９６】
本発明は、データ転送装置、データ転送システム、データ圧縮転送方法、およびプログラムに適用し得る。
【符号の説明】
【００９７】
１０  データ転送装置
２０  ネットワーク
３０  分析装置（外部装置）
１００  データ蓄積部
１０１  取得部
１０２  圧縮前データ一時保持部（第１保持部）
１０３  圧縮処理部
１０４  転送処理部
１０５  ＮＷ帯域幅制約型処理用一時保持部（第２保持部）
１０６  ＣＰＵ制約型処理用一時保持部（第３保持部）
１０７  性能測定パラメータ保持部（パラメータ保持部）
１０８  最適圧縮手法算出部（算出部）
１０９  タイマー
１３１  タイミング判定部
１３２  圧縮情報保持部（情報保持部）
１３３  圧縮性能測定圧縮処理部（第１圧縮処理部）
１３４  最適圧縮手法圧縮処理部（第２圧縮処理部）
１４１  ＮＷ帯域幅測定部（測定部）
１４２  転送部
【図１】
2014168025.tif 000003
【図２】
2014168025.tif 000004
【図３】
2014168025.tif 000005
【図４】
2014168025.tif 000006
【図５】
2014168025.tif 000007
【図６】
2014168025.tif 000008
【図７】
2014168025.tif 000009
【図８】
2014168025.tif 000010
【図９】
2014168025.tif 000011
【手続補正書】
【提出日】平成27年10月9日(2015.10.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の圧縮手法に関する圧縮性能パラメータおよび転送処理に関する転送性能パラメータに少なくとも基づき、前記複数の圧縮手法から、実効スループットを最適にする、転送処理の速度に比べて圧縮処理の速度がデータ転送における制約となる第１の圧縮手法と、圧縮処理の速度に比べて転送処理の速度がデータ転送における制約となる第２の圧縮手法とを組み合わせを決定する算出部と、
前記第１の圧縮手法と前記第２の圧縮手法との少なくとも一方を用いて対象データを圧縮する圧縮処理部と、
を備えるデータ転送装置。
【請求項２】
前記第１の圧縮手法の圧縮率は、前記第２の圧縮手法の圧縮率よりも高い請求項１に記載のデータ転送装置。
【請求項３】
前記圧縮処理部は、
前記複数の圧縮手法の一つである実行圧縮手法を用いてデータを圧縮するとともに定期的に前記実行圧縮手法に関する圧縮性能パラメータを取得し、取得した前記圧縮性能パラメータをパラメータ保持部に格納する第１圧縮処理部を備える請求項１または２に記載のデータ転送装置。
【請求項４】
前記第１圧縮処理部は、
前記実行圧縮手法を用いた圧縮前および圧縮後のデータの量を測定し、前記圧縮前および圧縮後のデータの量に基づき、前記実行圧縮手法に関する前記圧縮性能パラメータを算出する請求項３に記載のデータ転送装置。
【請求項５】
前記第１圧縮処理部は、
前記複数の圧縮手法の全てを定期的に実行して、前記複数の圧縮手法ごとに前記圧縮性能パラメータを取得する請求項３又は４に記載のデータ転送装置。
【請求項６】
圧縮データを一時的に保持する一時保持部をさらに備え、
前記圧縮処理部は、
前記一時保持部が保持する前記圧縮データの量が閾値未満であると判断した場合、前記第１圧縮処理部により前記対象データを圧縮し、
前記一時保持部が保持する前記圧縮データの量が前記閾値以上であると判断した場合、前記第１の圧縮手法を用いて前記対象データを圧縮し、
前記対象データの圧縮データを前記一時保持部に格納する
第２圧縮処理部をさらに備える請求項３〜５のうちいずれか一項に記載のデータ転送装置。
【請求項７】
前記転送処理中における単位時間当たりのデータ転送量を定期的に測定し、前記データ転送量に基づき前記転送性能パラメータを算出する測定部をさらに備える請求項１〜６のうちいずれか一項に記載のデータ転送装置。
【請求項８】
請求項１から７のうちいずれか一項に記載されたデータ転送装置と、
前記データ転送装置とネットワークを介して接続され、前記データ転送装置から前記対象データを受信する外部装置と
を備えるデータ転送システム。
【請求項９】
複数の圧縮手法に関する圧縮性能パラメータおよび転送処理に関する転送性能パラメータに少なくとも基づき、前記複数の圧縮手法から、実効スループットを最適にする、転送処理の速度に比べて圧縮処理の速度がデータ転送における制約となる第１の圧縮手法と、圧縮処理の速度に比べて転送処理の速度がデータ転送における制約となる第２の圧縮手法とを組み合わせを決定し、
前記第１の圧縮手法と前記第２の圧縮手法との少なくとも一方を用いて対象データを圧縮する
ことを含むデータ圧縮転送方法。
【請求項１０】
コンピュータに、
複数の圧縮手法に関する圧縮性能パラメータおよび転送処理に関する転送性能パラメータに少なくとも基づき、前記複数の圧縮手法から、実効スループットを最適にする、転送処理の速度に比べて圧縮処理の速度がデータ転送における制約となる第１の圧縮手法と、圧縮処理の速度に比べて転送処理の速度がデータ転送における制約となる第２の圧縮手法とを組み合わせを決定し、
前記第１の圧縮手法と前記第２の圧縮手法との少なくとも一方を用いて対象データを圧縮する
ことを実行させるプログラム。
【国際調査報告】
2014168025.tif 000012
2014168025.tif 000013
2014168025.tif 000014
2014168025.tif 000015