(57)【要約】【課題】向上した性能を有するストレージドライブ、及びその圧縮システム及びデータの圧縮方法を提供する。【解決手段】ストレージドライブの圧縮システムにおいて、一つ又はそれ以上の圧縮性入力と、一つ又はそれ以上の圧縮性入力に基づいてデータの圧縮性（圧縮率）を予測するように構成された圧縮予測機と、データを圧縮するように構成された圧縮機と、一つ又はそれ以上の圧縮入力と、を有し、圧縮予測機又は圧縮機の内の少なくとも一つは、一つ又はそれ以上の圧縮入力に基づいてデータを圧縮する方法を決定するように構成され、一つ又はそれ以上の圧縮性入力は、オブジェクト拡張子辞書、オブジェクト署名辞書、及びエントロピー推定アルゴリズムライブラリーの内の少なくとも一つを含み、一つ又はそれ以上の圧縮入力は、ＱｏＳプロファイル、装置性能プロファイル、及び圧縮アルゴリズム性能チャートの内の少なくとも一つを含む。【選択図】  図１
2019008792.tif 000002
【特許請求の範囲】
【請求項１】
ストレージドライブの圧縮システムにおいて、
一つ又はそれ以上の圧縮性入力（ｃｏｍｐｒｅｓｓｉｂｉｌｉｔｙ  ｉｎｐｕｔｓ）と、
前記一つ又はそれ以上の圧縮性入力に基づいてデータの圧縮性（圧縮率）を予測するように構成された圧縮予測機と、
前記データを圧縮するように構成された圧縮機と、
一つ又はそれ以上の圧縮入力と、を有し、
前記圧縮予測機又は前記圧縮機の内の少なくとも一つは、前記一つ又はそれ以上の圧縮入力に基づいて前記データを圧縮する方法を決定するように構成され、
前記一つ又はそれ以上の圧縮性入力は、オブジェクト拡張子辞書（ｏｂｊｅｃｔ  ｅｘｔｅｎｓｉｏｎ  ｄｉｃｔｉｏｎａｒｙ）、オブジェクト署名辞書（ｏｂｊｅｃｔ  ｓｉｇｎａｔｕｒｅ  ｄｉｃｔｉｏｎａｒｙ）、及びエントロピー推定アルゴリズムライブラリーの内の少なくとも一つを含み、
前記一つ又はそれ以上の圧縮入力は、ＱｏＳ（ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）プロファイル、装置性能プロファイル、及び圧縮アルゴリズム性能チャートの内の少なくとも一つを含むことを特徴とする圧縮システム。
【請求項２】
前記一つ又はそれ以上の圧縮性入力は、少なくとも前記オブジェクト拡張子辞書を含むことを特徴とする請求項１に記載の圧縮システム。
【請求項３】
前記一つ又はそれ以上の圧縮性入力は、少なくとも前記オブジェクト署名辞書を含むことを特徴とする請求項１に記載の圧縮システム。
【請求項４】
前記一つ又はそれ以上の圧縮入力は、少なくとも前記ＱｏＳプロファイルを含むことを特徴とする請求項１に記載の圧縮システム。
【請求項５】
前記圧縮予測機は、二つ又はそれ以上の圧縮性入力に基づいて前記データの前記圧縮性（圧縮率）を予測するように構成され、
前記二つ又はそれ以上の圧縮性入力は、前記オブジェクト拡張子辞書、前記オブジェクト署名辞書、前記エントロピー推定アルゴリズムライブラリー、前記ＱｏＳプロファイル、及び前記装置性能プロファイルの内の少なくとも二つを含むことを特徴とする請求項１に記載の圧縮システム。
【請求項６】
前記圧縮機は、二つ又はそれ以上の圧縮入力に基づいて前記データを圧縮する方法を決定するように構成され、
前記二つ又はそれ以上の圧縮入力は、前記ＱｏＳプロファイル、前記装置性能プロファイル、及び前記圧縮アルゴリズム性能チャートの内の少なくとも二つを含むことを特徴とする請求項１に記載の圧縮システム。
【請求項７】
ストレージドライブでデータを圧縮する方法において、
オブジェクト拡張子辞書、オブジェクト署名辞書、及びエントロピー推定アルゴリズムライブラリーの内の少なくとも一つを含む一つ又はそれ以上の圧縮性入力に基づいて、前記ストレージドライブでデータの圧縮性（圧縮率）を予測するステップと、
ＱｏＳ（ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）プロファイル、装置性能プロファイル、及び圧縮アルゴリズム性能チャートの内の少なくとも一つを含む一つ又はそれ以上の圧縮入力に基づいて前記データを圧縮する方法を決定するステップと、
前記データを圧縮する方法に対する決定に基づいて前記データを圧縮するステップと、を有することを特徴とするデータ圧縮方法。
【請求項８】
前記ストレージドライブは、キー（ｋｅｙ）及びバリュー（ｖａｌｕｅ）を含むキーバリューストレージドライブであることを特徴とする請求項７に記載のデータ圧縮方法。
【請求項９】
前記一つ又はそれ以上の圧縮性入力は、少なくとも前記オブジェクト拡張子辞書を含むことを特徴とする請求項８に記載のデータ圧縮方法。
【請求項１０】
前記一つ又はそれ以上の圧縮性入力は、少なくとも前記オブジェクト署名辞書を含むことを特徴とする請求項８に記載のデータ圧縮方法。
【請求項１１】
前記データの圧縮性（圧縮率）を予測するステップは、前記キーからファイル拡張子又はファイル署名のためのキーを検索するステップを含むことを特徴とする請求項８に記載のデータ圧縮方法。
【請求項１２】
前記データの圧縮性（圧縮率）を予測するステップは、前記ファイル拡張子又は前記ファイル署名を見つける（ｌｏｃａｔｉｎｇ）ステップと、
前記ファイル拡張子又は前記ファイル署名を、前記オブジェクト拡張子辞書又は前記オブジェクト署名辞書のそれぞれによって提供された情報と比較し、分析するステップと、をさらに含むことを特徴とする請求項１１に記載のデータ圧縮方法。
【請求項１３】
前記データの圧縮に対する情報を、ヒドゥンキー（ｈｉｄｄｅｎ  ｋｅｙ）に格納するステップをさらに有することを特徴とする請求項７に記載のデータ圧縮方法。
【請求項１４】
前記データの再圧縮を開始するコマンドを、前記ヒドゥンキーに格納するステップをさらに有することを特徴とする請求項１３に記載のデータ圧縮方法。
【請求項１５】
圧縮システムを含むストレージドライブにおいて、
前記ストレージドライブの前記圧縮システムは、
一つ又はそれ以上の圧縮性入力（ｃｏｍｐｒｅｓｓｉｂｉｌｉｔｙ  ｉｎｐｕｔｓ）と、
前記一つ又はそれ以上の圧縮性入力に基づいてデータの前記圧縮性（圧縮率）を予測するように構成された圧縮予測機と、
前記データを圧縮するように構成された圧縮機と、
一つ又はそれ以上の圧縮入力と、を有し、
前記圧縮予測機又は前記圧縮機の内の少なくとも一つは、前記一つ又はそれ以上の圧縮入力に基づいて前記データの圧縮方式を決定するように構成され、
前記一つ又はそれ以上の圧縮性入力は、オブジェクト拡張子辞書（ｏｂｊｅｃｔ  ｅｘｔｅｎｓｉｏｎ  ｄｉｃｔｉｏｎａｒｙ）、オブジェクト署名辞書（ｏｂｊｅｃｔ  ｓｉｇｎａｔｕｒｅ  ｄｉｃｔｉｏｎａｒｙ）、及びエントロピー推定アルゴリズムライブラリーの内の少なくとも一つを含み、
前記一つ又はそれ以上の圧縮入力は、ＱｏＳ（ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）プロファイル、装置性能プロファイル、及び圧縮アルゴリズム性能チャートの内の少なくとも一つを含むことを特徴とするストレージドライブ。
【請求項１６】
前記一つ又はそれ以上の圧縮性入力は、少なくとも前記オブジェクト拡張子辞書を含むことを特徴とする請求項１５に記載のストレージドライブ。
【請求項１７】
前記一つ又はそれ以上の圧縮性入力は、少なくとも前記オブジェクト署名辞書を含むことを特徴とする請求項１５に記載のストレージドライブ。
【請求項１８】
前記ドライブは、キーバリューストレージドライブ（ｋｅｙ  ｖａｌｕｅ  ｓｔｏｒａｇｅ  ｄｒｉｖｅ）であることを特徴とする請求項１５に記載のストレージドライブ。
【請求項１９】
前記圧縮予測機は、二つ又はそれ以上の圧縮性入力に基づいて前記データの前記圧縮性（圧縮率）を予測するように構成され、
前記二つ又はそれ以上の圧縮性入力は、前記オブジェクト拡張子辞書、前記オブジェクト署名辞書、前記エントロピー推定アルゴリズムライブラリー、前記ＱｏＳプロファイル、及び前記装置性能プロファイルの内の少なくとも二つを含むことを特徴とする請求項１８に記載のストレージドライブ。
【請求項２０】
前記圧縮機は、二つ又はそれ以上の圧縮入力に基づいて前記データを圧縮する方法を決定するように構成され、
前記二つ又はそれ以上の圧縮入力は、前記ＱｏＳプロファイル、前記装置性能プロファイル、及び前記圧縮アルゴリズム性能チャートの内の少なくとも二つを含むことを特徴とする請求項１８に記載のストレージドライブ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置に関し、より詳細にはストレージドライブ、及びその圧縮システム並びにストレージ装置のデータの圧縮方法に関する。
【背景技術】
【０００２】
データの圧縮は、データ格納容量の効率的な使用を増加させる有用な方法である。
しかしながら、全ての圧縮アルゴリズムが同一のものではない。
一部の圧縮アルゴリズムは、他のものよりデータの特定タイプにおいてもっと効率的に作動する。
一般的に圧縮アルゴリズムは、時間／処理努力と引き換えに圧縮率を手に入れる。
【０００３】
ストレージ装置が、単純に受信された全てのデータに対する圧縮を試み、格納する場合、不必要なレイテンシ（ｌａｔｅｎｃｙ）、処理量の低下、及びプロセス寿命の浪費が発生する可能性がある。
これは、全ての入力データが圧縮に容易に応じるのではないためである。
別の本質的又は明示的な圧縮特徴の一部として、又は多くのマルチメディアファイルタイプの場合のように、一部のデータは、既にホストで圧縮されている。
このようなファイルは、追加的な圧縮が容易ではなく、処理量の低下及びレイテンシを誘発する。
平均圧縮率（ａｖｅｒａｇｅ  ｃｏｍｐｒｅｓｓｉｏｎ  ｒａｔｉｏ）が良い場合（即ち、実質的な空間使用の減少がある場合）、このような低下は許容され得る。
しかしながら、平均圧縮率が悪い場合、データ圧縮の目的が達成されず、ただ性能の損失だけをもたらすはずである。
【０００４】
ファイルを同一の大きさの論理ブロックに格納する一般的なブロックストレージシステム（ｂｌｏｃｋ  ｓｔｏｒａｇｅ  ｓｙｓｔｅｍ）は、個別的な論理ブロックを圧縮して格納容量を増加させることができる。
しかし、ブロックシステムの格納構造は、ファイルタイプ及びフォーマットに基づいて格納されたデータの圧縮を改善することを困難にする。
これは、特定のタイプ又はフォーマットの個別的なファイルをブロック内又はブロック間で見つける（ｌｏｃａｔｉｎｇ）ことが困難なためである。
ブロックストレージシステムにおいて、各論理ブロックは、複数の異なるファイル（又は、複数のファイルの内の一部）を含む場合がある。
【０００５】
又は、逆に、単一のデータファイルを複数の論理ブロックに分散させることができ、これは特定タイプのデータを圧縮するのに最も適合したアルゴリズムを使用して、個別の及び特定の圧縮のために、特定のファイルタイプを分離することを難しくする。
なお、論理ブロックは、各個別データファイルの開始点及び終了点に対する情報又は入力データフォーマットに対する情報を必ずしも含むものではない。
【０００６】
同様に、一つ又はそれ以上のブロックを占めるファイルの識別に対する重要なメタデータが、特定のブロックレベルにはない可能性がある。
即ち、従来のブロックシステムは、ブロックの潜在的な圧縮性（圧縮率）（ｃｏｍｐｒｅｓｓｉｂｉｌｉｔｙ）を測定するため、ブロックのデータをサンプリングし、複雑な数学的演算を遂行するのを必要とするはずである。
これは、追加的な性能損失を発生させる。
なお、ブロックベースのドライブに対する情報を圧縮するのは、目標ファイルの各ブロックの位置を追跡し、新しいブロックでそれらを圧縮して組み立て、マッピングテーブルを更新して、圧縮工程において実質的に変更することができ、圧縮されて格納された情報の新しい位置を示すために実質的なバックグラウンド活動（ｂａｃｋｇｒｏｕｎｄ  ａｃｔｉｖｉｔｉｅｓ）を必要とする。
【０００７】
キーバリューストレージシステム（ｋｅｙ  ｖａｌｕｅ  ｓｔｏｒａｇｅ  ｓｙｓｔｅｍｓ）は、同一の大きさの論理ブロックを含まず、しかしながら、代わりにデータ又はファイルの特定部分を示す可変の大きさのバリューとしてデータを格納するという点において、一般的なブロックストレージシステムと異なる。
キーバリューストレージは、その中に格納された特定バリューを示すキーを使用する。
キーは、格納されたデータに対する論理アドレス、データから派生されたハッシュ値、データフォーマットなどのような有用な情報を含むことができる。
【０００８】
従って、以下のようなことがストレージドライブの圧縮に関する課題点となっている。
全体ストレージ圧縮を向上させる可変圧縮を具現するため、キーバリューストレージシステムの構成の利点を利用する向上した圧縮ドライブが必要である。
例えば、圧縮以前に良い圧縮率が予想されるかを判別し、不必要な圧縮及び性能損失を防止できるドライブが必要である。
なお、単純にホストデータに対する圧縮を遂行するだけでなく、データの属性、ドライブ能力、及び／又は最終ユーザのＱｏＳ要求に基づいて、このようなデータをいつ、かつどのように最適に圧縮できるかを判別できるドライブが必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は上記従来のストレージ装置における課題点に鑑みてなされたものであって、本発明の目的は、向上した性能を有するストレージドライブ、及びその圧縮システム並びにデータの圧縮方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するためになされた本発明による圧縮システムは、ストレージドライブの圧縮システムにおいて、一つ又はそれ以上の圧縮性入力（ｃｏｍｐｒｅｓｓｉｂｉｌｉｔｙ  ｉｎｐｕｔｓ）と、前記一つ又はそれ以上の圧縮性入力に基づいてデータの圧縮性（圧縮率）を予測するように構成された圧縮予測機と、前記データを圧縮するように構成された圧縮機と、一つ又はそれ以上の圧縮入力と、を有し、前記圧縮予測機又は前記圧縮機の内の少なくとも一つは、前記一つ又はそれ以上の圧縮入力に基づいて前記データを圧縮する方法を決定するように構成され、前記一つ又はそれ以上の圧縮性入力は、オブジェクト拡張子辞書（ｏｂｊｅｃｔ  ｅｘｔｅｎｓｉｏｎ  ｄｉｃｔｉｏｎａｒｙ）、オブジェクト署名辞書（ｏｂｊｅｃｔ  ｓｉｇｎａｔｕｒｅ  ｄｉｃｔｉｏｎａｒｙ）、及びエントロピー推定アルゴリズムライブラリーの内の少なくとも一つを含み、前記一つ又はそれ以上の圧縮入力は、ＱｏＳ（ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）プロファイル、装置性能プロファイル、及び圧縮アルゴリズム性能チャートの内の少なくとも一つを含むことを特徴とする。
【００１１】
上記目的を達成するためになされた本発明によるデータ圧縮方法は、ストレージドライブでデータを圧縮する方法において、オブジェクト拡張子辞書、オブジェクト署名辞書、及びエントロピー推定アルゴリズムライブラリーの内の少なくとも一つを含む一つ又はそれ以上の圧縮性入力に基づいて、前記ストレージドライブでデータの圧縮性（圧縮率）を予測するステップと、ＱｏＳ（ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）プロファイル、装置性能プロファイル、及び圧縮アルゴリズム性能チャートの内の少なくとも一つを含む一つ又はそれ以上の圧縮入力に基づいて前記データを圧縮する方法を決定するステップと、前記データを圧縮する方法に対する決定に基づいて前記データを圧縮するステップと、を有することを特徴とする。
【００１２】
上記目的を達成するためになされた本発明によるストレージドライブは、圧縮システムを含むストレージドライブにおいて、前記ストレージドライブの前記圧縮システムは、一つ又はそれ以上の圧縮性入力（ｃｏｍｐｒｅｓｓｉｂｉｌｉｔｙ  ｉｎｐｕｔｓ）と、前記一つ又はそれ以上の圧縮性入力に基づいてデータの前記圧縮性（圧縮率）を予測するように構成された圧縮予測機と、前記データを圧縮するように構成された圧縮機と、一つ又はそれ以上の圧縮入力と、を有し、前記圧縮予測機又は前記圧縮機の内の少なくとも一つは、前記一つ又はそれ以上の圧縮入力に基づいて前記データの圧縮方式を決定するように構成され、前記一つ又はそれ以上の圧縮性入力は、オブジェクト拡張子辞書（ｏｂｊｅｃｔ  ｅｘｔｅｎｓｉｏｎ  ｄｉｃｔｉｏｎａｒｙ）、オブジェクト署名辞書（ｏｂｊｅｃｔ  ｓｉｇｎａｔｕｒｅ  ｄｉｃｔｉｏｎａｒｙ）、及びエントロピー推定アルゴリズムライブラリーの内の少なくとも一つを含み、前記一つ又はそれ以上の圧縮入力は、ＱｏＳ（ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）プロファイル、装置性能プロファイル、及び圧縮アルゴリズム性能チャートの内の少なくとも一つを含むことを特徴とする。
【発明の効果】
【００１３】
本発明に係るストレージドライブ、及びその圧縮システム並びにそのデータ圧縮方法ブによれば、ドライブに格納されたファイルの特性を分析し、各ファイルが圧縮されることができる程度を予測し、圧縮性（圧縮率）に対する予測が行われると、データを圧縮するかに対する決定が行われ、これはデータの予測された圧縮性（圧縮率）だけでなく、ＱｏＳ要求及び現在装置能力のような他の因子に基づくことができ、圧縮することで決定が行われた場合、全体性能が最適化されるように、どのアルゴリズムが現在の条件下で最適に使用され得るか判別するためにデータ及び装置の特性及びＱｏＳ要求のような因子を考慮してデータ圧縮方法に対する決定が行われるという効果があり、向上した性能を有するストレージドライブ、及びその圧縮システム並びにそのデータ圧縮方法を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の例示的な実施形態による圧縮ドライブの概略的な構成及び動作を説明するためのブロック図である。
【図２】特定の処理量（スループット）における特定の圧縮アルゴリズムの相対的な圧縮率を示すグラフである。
【図３】本発明の実施形態による、図１の圧縮ドライブを使用して、データを圧縮し予測する方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００１５】
本明細書において説明する本発明の実施形態による電子又は電気装置及び／又は他の関連した装置又は構成は、適切なハードウェア、ファームウェア（ｆｉｒｍｗａｒｅ）（例えば、アプリケーション特定の集積回路）、ソフトウェア、又はソフトウェア、ファームウェア、及びハードウェアの組み合わせを活用して具現することができる。
例えば、このような装置の多様な構成は、一つの集積回路（ＩＣ）チップ又は別のＩＣチップに形成することができる。
なお、このような装置の多様な構成は、フレキシブル印刷回路基板、ＴＣＰ（ｔａｐｅ  ｃａｒｒｉｅｒ  ｐａｃｋａｇｅ）、ＰＣＢ（ｐｒｉｎｔｅｄ  ｃｉｒｃｕｉｔ  ｂｏａｒｄ）で具現することができたり、又は一つの基板上に形成したりすることができる。
【００１６】
なお、このような装置の多様な構成は、本明細書において説明する多様な機能を遂行するための他のシステム構成と通信し、コンピュータプログラム命令語を実行する一つ又はそれ以上のコンピューティング装置で、一つ又はそれ以上のプロセッサー上に駆動するプロセス又はスレッドであり得る。
コンピュータプログラム命令語は、メモリーに格納することができる。メモリーは、例えば、ランダムアクセスメモリー（ＲＡＭ）のような標準メモリー装置を使用してコンピューティング装置内に具現することができる。
コンピュータプログラム命令語は、ＣＤ−ＲＯＭ、フラッシュドライブのような他の非一時的なコンピュータ読取可能な媒体に格納することができる。
なお、当業者は、本発明の例示的な実施形態の思想及び範囲から逸脱することなく、多様なコンピューティング装置の機能が、単一のコンピューティング装置に集積又は組み合わせることができるか、又は特定のコンピューティング装置の機能が、一つ又はそれ以上の他のコンピューティング装置に分散されるかが認識できる。
【００１７】
本発明の実施形態は、向上した圧縮性（圧縮率）（ｃｏｍｐｒｅｓｓｉｂｉｌｉｔｙ）を有するソリッドステートドライブ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）に関する。
初期に、ドライブに格納されたファイルの特性（ｃｈａｒａｃｔｅｒｉｓｔｉｃｓ）を分析し、各ファイルが圧縮することができる程度（即ち、ファイルの圧縮性（圧縮率）（ｔｈｅ  ｃｏｍｐｒｅｓｓｉｂｉｌｉｔｙ  ｏｆ  ｔｈｅ  ｆｉｌｅ））を予測する。
圧縮性（圧縮率）に対する予測が行われると、データを圧縮するかに対する決定が行われる。
このような決定は、データの予測された圧縮性（圧縮率）だけでなく、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）要求及び現在装置能力のような他の因子（ｆａｃｔｏｒ）に基づくことができる。
圧縮することで決定が行われた場合、全体性能が最適化されるように、どのアルゴリズムが現在の条件下で最適に使用され得るか判別するために、データ及び装置の特性及びＱｏＳ要求のような因子を考慮してデータ圧縮方法に対する決定が行われる。
【００１８】
図１は、本発明の例示的な実施形態による圧縮ドライブの概略的な構成及び動作を説明するためのブロック図である。
本実施形態において、ドライブ１０は、キーバリューストレージドライブであり、ドライブ１０に格納されたデータのバリュー及びキーに格納された情報に容易にアクセスできるように活用するために使用される。
【００１９】
図１には、キー１及びバリュー２を含むドライブ１０の例示的なデータセットを示す。
キー１及びバリュー２に含まれた情報は、圧縮予測機３（ｃｏｍｐｒｅｓｓｉｏｎ  ｐｒｅｄｉｃｔｏｒ）によって分析されてバリュー２の圧縮性（圧縮率）（ｃｏｍｐｒｅｓｓｉｂｉｌｉｔｙ）を判別する。
圧縮予測機３は、オブジェクト拡張子辞書４（ｏｂｊｅｃｔ  ｅｘｔｅｎｓｉｏｎ  ｄｉｃｔｉｏｎａｒｙ）、オブジェクト署名辞書５（ｏｂｊｅｃｔ  ｓｉｇｎａｔｕｒｅ  ｄｉｃｔｉｏｎａｒｙ）、及び／又はエントロピー推定アルゴリズムライブラリー６（ｅｎｔｒｏｐｙ  ｅｓｔｉｍａｔｉｏｎ  ａｌｇｏｒｉｔｈｍ  ｌｉｂｒａｒｙ）に含まれた情報を使用してバリュー２の圧縮性（圧縮率）を判断したり、又は判断に役立てることができる。
【００２０】
オブジェクト拡張子辞書４は、既知のオブジェクト拡張子（即ち、ファイル拡張子）のリス
トを含み、そのようなオブジェクトのタイプが多様な圧縮技術のそれぞれに対しどのくらい圧縮可能なのかに対する評価を含む。
このような情報は、オブジェクト拡張子辞書４によって圧縮予測機３に提供されて圧縮予測を可能にし、バリュー２に含まれた多くの量のデータを直接にサンプリングせずに、圧縮性（圧縮率）予測の一部の形態が遂行され得る。
例えば、キー１は、データファイルがＰＰＴＸ、ＰＤＦ、ＭＰ３、ＪＰＧなどであることを示すファイル拡張子を含むことができ、ファイル拡張子は、ファイルの圧縮性（圧縮率）に対する手がかりを提供することができる。
キー１が、ファイルが既に本質的に圧縮されたＭＰ３ファイルを含むことを示す場合、ドライブ１０は、バリュー２からデータをサンプリングせずに、バリュー２がさらに圧縮される可能性が低いことが分かる。
一方、キー１が、ＢＭＰ（ｂｌａｃｋ  ａｎｄ  ｗｈｉｔｅ  ｂｉｔｍａｐ）イメージを格納することを示す場合、ドライブ１０は、バリュー２をサンプリングすることなく、バリュー２が圧縮のための良好な候補であるのが分かる。
【００２１】
キー１は、ファイル署名（即ち、オブジェクト署名）を含む圧縮性（圧縮率）に対する他の手がかりを含むことができる。
ファイル署名は、バリュー２に格納されたファイルのタイプに対する情報を提供するコード行（ｌｉｎｅ  ｏｆ  ｃｏｄｅ）である。
データタイプに対して既知の署名のリスト及び圧縮可能な程度の評価はオブジェクト署名辞書５で維持することができる。
即ち、ファイル拡張子がキー１に含まれない場合、ファイル署名は、バリュー２に格納されたファイルのタイプに対する情報であったり、又は情報を提供したりすることができる。
オブジェクト署名辞書５からの情報は、圧縮予測機３に提供されて圧縮予測を可能にする。
【００２２】
圧縮率の予測を助けることができるキー１に格納されたメタデータのタイプを示すために、このような実施形態においてファイル拡張子及びファイル署名が例として使用されるが、圧縮率を予測するのにファイル拡張子及び／又はファイル署名の代わりに、又は追加的に使用され得る他のメタデータも含むことができる。
このような他のメタデータをファイルタイプ及び圧縮効率と関連させる情報は、辞書（ｄｉｃｔｉｏｎａｒｉｅｓ）に格納することができ、圧縮予測機にて利用可能にすることができる。
【００２３】
キー１がメタデータヒントを含まない場合。バリュー２に含まれたデータをサンプリングするのが必要となる。
しかしながら、ドライブ１０がキーバリュードライブであるから、データセットの開始及び終了は、一般的なブロックベース（ｂｌｏｃｋ−ｂａｓｅｄ）のドライブと比較して容易に位置決め（ｌｏｃａｔｅｄ）することができる。
これは２つのことを意味する。
第一に、取得したサンプルは、関心のあるデータのみから得られることが保証され、圧縮予測をもっと正確にする。
第二に、データの開始を知ることにより、バリュー２のヘッダーの位置を容易に探すことができ、それは、バリュー２のヘッダーはもっと複雑な演算を必要とせずに、また、バリュー２の追加的なサンプリングを必要とせずに、圧縮性能を予測するのに使用され得る手がかり（例えば、キー１に含まれないメタデータ又は署名）を含むことができる。
【００２４】
ファイル拡張子及び／又はファイル署名がキーに含まれない場合、それはバリュー２内に特定の既知の位置又はヘッダーに含めることができる。
例えば、一部のファイル署名は、ファイルの先頭から特定のオフセットに位置している。
以下に示す表１は、いくつかの共通ファイルタイプのリスト及びそれらの関連した署名及びオフセットを示す。
【表１】
2019008792.tif 000003
【００２５】
表１に示したように、多数のファイルタイプは、「０」のオフセット、即ち、ファイルヘッダーの先頭に位置しているので、バリュー２のサンプリングがファイル署名を相対的に探しやすくする。
たとえ、ファイル署名がヘッダーの開始にないとしても、特定のオフセットがサンプリングされて共通的に使用されたファイル形態の署名を検索することができる。
そのため、キー１がファイルタイプに対する情報を含まない場合、ファイル署名を迅速且つ効率的に検索するために、バリュー２の特定の位置がサンプリングされ得る。
【００２６】
圧縮性（圧縮率）を予測するのに助けることができるヘッダー（ｈｅａｄｅｒ）に格納されたメタデータの形態を示すために、ファイル署名がこのような実施形態において、例として使用されるが、圧縮性（圧縮率）を予測するためにファイル署名の代わりに又はそれに追加的に使用され得る他のメタデータを、バリュー内の予測可能なオフセット又はヘッダーに含めることもできる。
例えば、ヘッダーは、バリューのファイルフォーマットが何であるかを示す他のメータデータを含むことができる。
他のメタデータをファイルタイプ及び圧縮性能と関連させる情報は、辞書（ｄｉｃｔｉｏｎａｒｉｅｓ）に格納することができ、圧縮予測機に提供することができる。
【００２７】
圧縮と関連したメタデータがキー１になく、サンプリングされたファイルヘッダー及びオフセットにない場合、数学的にもっと複雑な圧縮性アルゴリズム（例えば、エントロピー演算ベースの測定（ｅｎｔｒｏｐｙ  ｃａｌｃｕｌａｔｉｏｎ  ｂａｓｅｄ  ｍｅａｓｕｒｅｍｅｎｔ））が要求され得る。
【００２８】
エントロピー推定アルゴリズムライブラリー６は、サンプリングされたデータのエントロピーをテストするためのコードを含み、それにより、それを圧縮することができる方式を判別できる。
エントロピーベースの演算は、バリュー２の部分を検索してファイルが圧縮可能なのかを予測するのに使用され得る。
エントロピーベースの演算は、エントロピー又はランダムデータを圧縮するのが難しいという原則に基づいて機能する。
一般的に、既に圧縮されたファイルは、より高いエントロピー特性を有する。
圧縮されていないファイルは、より圧縮しやすい整列されたデータを有する可能性が多い。
例えば、圧縮アルゴリズムは、一列に１００個の「１」を含む反復されたコードの領域を含む圧縮されていないファイルを圧縮して、その領域に（本質的に）「１×１００」を有するようにコードの列をより短く整列されたものにすることができる。
【００２９】
データセットのスタート及び終了がキーバリューシステムで知られているため、エントロピーベースの演算は、バリューのサンプル部分に対して全体のバリューの圧縮性（圧縮率）を正確に予測するのに使用され得る。
高いエントロピーを示す結果は、バリューが圧縮される可能性がないのを示すはずであり、低いエントロピーを示す結果は、バリューが圧縮可能性であるのを示すはずである。
エントロピー推定アルゴリズムライブラリー６からの情報は、予測を手助けするために圧縮予測機３に提供され得る。
【００３０】
バリュー２のサンプルに対してエントロピーベースの演算を遂行することに加えて、又は代わりに、サンプル圧縮をバリュー２の部分に対して実行して圧縮性（圧縮率）を推定できる。
例えば、バリュー２の領域（例えば、既知の比較的小さな領域）はテストアルゴリズムを使用して圧縮することができる。
空間節約（ｓｐａｃｅ  ｓａｖｉｎｇ）が（圧縮性（圧縮率）が合理的であるのを示す）ある特定の閾値を超える場合、それは圧縮性の肯定的な指示（ｐｏｓｉｔｉｖｅ  ｉｎｄｉｃａｔｉｏｎ）であり、テスト圧縮の結果は、ドライブ１０の圧縮機７に伝送されてバリュー２の圧縮を手助けすることができる。
一部の実施形態において、圧縮がもっと最適化されるように、複数のアルゴリズムがバリュー２の同一の領域において同一に使用され得る。
しかしながら、このようなアプローチは、より多い時間及びリソース（ｒｅｓｏｕｒｃｅｓ）を消費するので、ユーザは、ＱｏＳ要求が低い場合にだけで、このようなプロセスを実行するだけでよい。
【００３１】
まとめると、圧縮性（圧縮率）を予測するために、キーバリュー装置内に、検査可能な多様な位置と、実行できる分析が存在し、これらはさまざまな速度において、さまざまな程度の正確度を提供するために、組み合わされ、マッチングすることができる。
一般的に、予測の正確度と予測を達成することの速度とは逆比例して関連される。
例えば、キー１及びバリュー２のヘッダーを検索して、（例えば、ファイル拡張子又はファイル署名からの）圧縮性（圧縮率）に対するメタデータの手がかりを検討するのは、バリュー２のサンプル部分をスキャニングし、エントロピーベースの演算を実行するのと比較して相対的に速い。
しかしながら、メタデータの手がかりは、理論的にはエントロピーベースの演算よりはるかに正確ではない。
【００３２】
上述したメタデータ情報及び分析に加えて、圧縮予測機３は、ドライブ１０の性能能力（ｐｅｒｆｏｒｍａｎｃｅ  ｃａｐａｂｉｌｉｔｉｅｓ）及びＱｏＳ要求（ＱｏＳ  ｒｅｑｕｉｒｅｍｅｎｔｓ）を含む多様な他の因子を考慮して、圧縮性（圧縮率）を予測することができる。
ＱｏＳ要求及び情報は、ＱｏＳプロファイル１４に含めることができる。
ＱｏＳプロファイル１４は、駆動中のあるアルゴリズムがユーザの性能要求に悪影響を及ぼさないように、ユーザの現在の性能要求及び必要性のような考慮事項を含むことができる。
ＱｏＳ情報は、性能管理作業を管理するドライブ１０のオンボード（ｏｎｂｏａｒｄ）コントローラーに、最終ユーザに収容することができるように維持される必要がある性能のパラメーターを知らせることができる。
ＱｏＳ情報は、圧縮予測機３によって使用されて予測された圧縮率がＱｏＳ要求を満たすかを判別できる。
【００３３】
追加的に、ＱｏＳ情報は、メカニズムを設定するのに使用され得るし、それによって、圧縮予測機３によって圧縮性（圧縮率）を予測することができる。
例えば、ＱｏＳ要求は、圧縮に利用可能な帯域幅及び処理量のレベル（スループットレベル）に制限を設ける可能性があり、圧縮によって引き起こされる許容可能なレイテンシの量を、ユーザの要求に悪影響を及ぼさない限度で制限する可能性がある。
さらに、ユーザのＱｏＳ要求は、ユーザによって使用されるアプリケーション、プロセッサーなどを駆動するプロセッサー電力の特定量を必要とする。
このような要求は、帯域幅、処理量、レイテンシ、プロセッサー、又はその時点のユーザの他の要求を超えないアルゴリズムに使用され得る圧縮アルゴリズム（及び潜在的に再圧縮動作中の圧縮解除アルゴリズム）を制限する。
【００３４】
ドライブ１０の性能能力は、装置性能プロファイル１５に格納することができる。
装置性能プロファイル１５は、ドライブ１０の性能の静的かつ動的な側面を追跡する。
このような情報は、圧縮予測機３によって使用されてバリューが充分に圧縮され、ＱｏＳプロファイル１４及びドライブ１０全ての要求を満たすか（もし、そうであれば、どのように圧縮するか）を判別する。
【００３５】
上述したメタデータ情報、エントロピーベースの演算、サンプル圧縮、ＱｏＳ要求、及び装置情報の一部又は全部は、圧縮予測機３によって分析されてバリュー２を圧縮するのが有用な圧縮率をもたらすか、及び／又はＱｏＳに悪影響を及ぼすかを予測することができる。
最終的の予測は、これらの因子の一部又は全部を考慮した閾値ベース（ｔｈｒｅｓｈｏｌｄ−ｂａｓｅｄ）であり得る。
例えば、一部の実施形態において、予測された圧縮性（圧縮率）が、所定の閾値（圧縮性（圧縮率）を予測するものと関連した上述された因子の一部又は全部を考慮してユーザによって入力され、入力され得る閾値）以上の場合、圧縮予測機３は、圧縮が進行すべきであると判断する。
予測された圧縮性（圧縮率）が、所定の閾値より低い場合、圧縮予測機３は、バリュー２を圧縮すべきではないと判断する。
【００３６】
他の実施形態において、決定（ｄｅｃｉｓｉｏｎ）は、複数の閾値チェックポイントの結果であり得る。
例えば、ＱｏＳ要求、エントロピーベースの演算、サンプル圧縮などのような他の因子は、圧縮が進行すべきかどうかを判断するために考慮されうる他の閾値又は複数の閾値を含むことができる。
このような閾値のうち、いずれかの一つ又は一部の実施形態においてこのような閾値のうち、いずれかの組み合わせが満たされない場合、圧縮は進行しないであろう。
このような閾値に対する情報は、決定テーブル（ｄｅｃｉｓｉｏｎ  ｔａｂｌｅ）に維持することができる。
決定テーブルは、以下でさらに詳細に説明する予想された圧縮率、現在のシステム性能特性、及び多様なＱｏＳ要求のような因子に追加して、上述した因子のような因子を含むことができる。
このような多様な因子の分析は、圧縮を進行することができるかを判断するのに使用され得る。
【００３７】
結局、予測方法が何であっても、圧縮可能な値がどのようになるかについての予測が行われる。
このような決定は、速度又は圧縮性（圧縮率）閾値、決定テーブル、などのような閾値又は複数の閾値セットに基づくことができる。
【００３８】
圧縮予測機３によってバリュー２を圧縮するかに対する判断が行われた場合、このような結果は、受信スイッチ１１（ｒｅｃｅｉｖｉｎｇ  ｓｗｉｔｃｈ）に提供される。
受信スイッチ１１は、バリュー２を受信し、圧縮予測機３からの結果に基づき、バリュー２を圧縮機７に出力すること、又は圧縮機７を回避してバリュー２の出力１３のために出口スイッチ１２に直接伝送すること、の間をスイッチングする。
よって、圧縮予測機３が、圧縮が行われるべきであると判断した場合、受信スイッチ１１は、バリュー２を圧縮機７に伝送し、圧縮予測機３が、圧縮が発生しないと判断した場合、受信スイッチ１１は、出力１３のために出口スイッチ１２にバリュー２を伝送する。
【００３９】
バリュー２が、圧縮を保証すると判断され、圧縮機７に伝送された場合、圧縮機７は、ドライブ１０を圧縮する方法を決定する。
又は、圧縮予測機３は、バリュー２が圧縮機７に伝送される前に、ドライブ１０を圧縮する方法を決定する。
ファイルを圧縮する方法を決定するのは、全ての圧縮アルゴリズムが同一でないため、多様な因子の考慮を必要とする。
【００４０】
一部のアルゴリズムは、他のものよりデータの一部の形式をもっと良く圧縮するように動作し、一部のアルゴリズムは、他のものよりもっと多くのプロセッサー又はメモリー能力を必要とし、一部のアルゴリズムは、他のものよりもっと多くの処理量を有し、一部のアルゴリズムは、他のものよりもっと優れた圧縮率を提供する。
バリュー２を圧縮する方法を決定することにおいて、圧縮機７（又は圧縮予測機３）は、ＱｏＳプロファイル１４、装置性能プロファイル１５、及び圧縮アルゴリズム性能チャート１６を含む多様な入力からの情報を考慮して、どのような圧縮アルゴリズムをデータに適用するかを判定する。
【００４１】
ＱｏＳプロファイル１４からのＱｏＳ情報は、与えられた圧縮アルゴリズムの性能特性が最終ユーザの要求に合うかどうかを判断するのに使用され得る。
装置性能プロファイル１５からの情報は、どのような圧縮アルゴリズムが圧縮されるバリュー２に対し、装置リソースを最も効率的に使用するかを判断するのに使用され得る。
【００４２】
圧縮アルゴリズム性能チャート１６は、各アルゴリズム（単独又はファイルタイプによって）に対する平均圧縮率、各アルゴリズムに対する処理量、及び各アルゴリズムに対するコンピューティング、及びメモリーリソース要求を含む複数の圧縮アルゴリズムに対する情報を含む。
圧縮アルゴリズム性能チャート１６は、ファイルタイプ、ＱｏＳプロファイル１４からのＱｏＳ要求によって決定することができる利用可能な処理量、及び装置性能プロファイル１５に基づいた装置能力に基づいて特定のアルゴリズムを選択することができる。
上述したように、特定の圧縮アルゴリズムは、特定のデータフォーマットに対してより優れた圧縮率を提供することができ、それによって、他の圧縮アルゴリズムより、より選好され得る。
【００４３】
図２は、特定の処理量（スループット）における特定の圧縮アルゴリズムの相対的な圧縮率を示すグラフである。
図２は、様々な共通の最新の圧縮アルゴリズム（およびアルゴリズム設定）の比較を単に示し、各アルゴリズム／設定には、スループットと圧縮ファイルサイズ（一定のターゲットファイル用）の特徴的な組み合わせがある。
一般的に、ファイルが圧縮されるほど（圧縮ファイルのサイズが小さくなるほど）、処理量（スループット）が低くなることが分かる。
従って、本発明では、ストレージシステムの様々な属性を考慮して、その時点でシステムの処理量と圧縮されたサイズの最良のバランスをとる。
追加的に、図２に示したように、特定の圧縮アルゴリズムは、他の圧縮アルゴリズムに比して特定の利用可能な処理量においてより優れた圧縮率を有する。
図２に示したような情報を考慮するのは、処理量に対する現在のＱｏＳ及び装置要求を考慮した圧縮率を最適化する圧縮アルゴリズムの選択を可能にする。
【００４４】
従って、ＱｏＳプロファイル１４によって提供されるような現在のＱｏＳ要求、及び装置性能プロファイル１５によって提供されるようなドライブ１０の性能能力によって、特定のアルゴリズムが他のものよりより選好され得る。
このような全ての因子を考慮することにより、ドライブ１０は、現在の条件下で、どの圧縮アルゴリズムをバリュー２に適用するかを決定することができる。
周辺環境によって、一つの圧縮技法が他のものより状況にもっと適合することができる。
【００４５】
このような実施形態は、ＳＳＤの全体性能を最適化するために、圧縮されるデータのタイプ、ドライブで利用可能なリソース、圧縮されるデータに圧縮アルゴリズムを動的に割り当てるためのユーザＱｏＳ要求を考慮する。
このような決定は、現在の条件及びＱｏＳ要求に従って、異なる圧縮アルゴリズムが特定のバリューに適用される可能性がある。
例えば、装置において他の活動からの現在の性能要求が高い場合、ユーザの全体性能要求が悪影響を受けないように、相対的に低い圧縮率を有する圧縮アルゴリズムを選択することができる。
【００４６】
このような実施形態において、ＱｏＳプロファイル１４、装置性能プロファイル１５、、及び圧縮アルゴリズム性能チャート１６からの情報が考慮される反面、他の実施形態において、上述された因子のうち、ただ一部のみが使用される圧縮アルゴリズムを決定するのに考慮されてもよい。
さらに、特定のバリューに対する好ましい圧縮アルゴリズムに影響を及ぼす可能性がある追加的な情報も考慮され得る。
【００４７】
圧縮アルゴリズムが選択された場合、圧縮アルゴリズムライブラリー１７は、コードを圧縮機７に提供して与えられたバリュー２の圧縮を開始する。
圧縮アルゴリズムライブラリー１７は、圧縮アルゴリズムを実行するためのコードを含む。
圧縮が完了した場合、圧縮されたバリューは、出口スイッチ１２を介して出力１３に出力される。
【００４８】
一部のモード（特に、データが停止状態の代わりに、インライン（ｉｎ−ｌｉｎｅ）で圧縮される場合、又は即時のＱｏＳ要求が最小限の処理を考慮した場合）において、一度の書き込みで達成される実際の圧縮率は、最適の圧縮率ではないことが有り得る。
これは、例えば、入力データに対して割り当てられた書き込みバッファーのために制限された空間（データが全て一度に分析されて圧縮されることのできない空間）、又はドライブが必要とされる他の高価値作業（ｈｉｇｈ−ｖａｌｕｅ  ｔａｓｋｓ）で占有されるために低い強度の圧縮が引き起こされる可能性がある。
【００４９】
例えば、一度に、ＱｏＳ要求は、ユーザが必要とするドライブ１０の性能能力を維持するために、データが速く圧縮されるが、必ずしも最適の圧縮にならない、簡易圧縮（ｑｕｉｃｋ  ａｎｄ  ｄｉｒｔｙ  ｃｏｍｐｒｅｓｓｉｏｎ）を要求することがある。
このような状況においては、後でドライブがデータをもっと効率的に再圧縮することが可能である。
例えば、ディスクがアイドル（ｉｄｌｅ）状態であるか、さもなければ、サブジェクト情報（ＩＥ、ガベージコレクション／ウェアレベリング（ｇａｒｂａｇｅ  ｃｏｌｌｅｃｔｉｏｎ／ｗｅａｒ  ｌｅｖｅｌｉｎｇ））を読み書きする必要がある、後の時間に、より最適の圧縮を達成することができるかどうかを判断するために、圧縮されたバリューは圧縮解除され（上述された方法を使用して）再び分析されてもよい。
このような方式において、例えば、もともとインライン（ｉｎ−ｌｉｎｅ）で圧縮されたデータのストリームは、休止（停止）状態（ａｔ  ｒｅｓｔ）において、後でもう少し十分に圧縮することができる。
【００５０】
このような再圧縮を容易にするために、圧縮情報を符号化（ｅｎｃｏｄｅ）したヒドゥン（ｈｉｄｄｅｎ）キーを元（ｏｒｉｇｉｎａｌ）のキーに追加することができる。
このようなヒドゥンキーは、インデックス構成、検索などのような通常のキー処理に対しては無視されるが、ＱｏＳ要求が低い場合など、圧縮が関連するアクティビティ（ａｃｔｉｖｉｔｉｅｓ）と関連した場合、アクセスされる。
ヒドゥンキーは、現在使用している圧縮のタイプに対する情報及び再圧縮を始めるためのコマンドを含むことができる。
ヒドゥンキーは、新しい圧縮方式がバリューに適用されるたびに更新される。
【００５１】
図３は、本発明の実施形態による、図１の圧縮ドライブを使用して、データを圧縮し予測する方法を説明するためのフローチャートである。
図３を参照すると、使用において、圧縮ドライブ１０は、圧縮予測機３を使用して特定キーバリューデータセットの圧縮性（圧縮率）を先に予測する（ステップＳ２１）。
複数のデータセットの圧縮性（圧縮率）を予測するのは、ハードウェア処理能力まで、又はＱｏＳ要求による限界まで、独立的に又は並列に遂行することができる。
予測は、図１を参照して説明したように、ファイル拡張子、ファイル署名、エントロピー基盤の演算、サンプル圧縮、ＱｏＳ情報、及び／又は装置性能情報からの情報に基づくことができる。
【００５２】
例えば、ドライブ１０のオンボードコントローラー又はドライブ１０のプロセッサーは、キー１において圧縮性（圧縮率）に対する手がかりを提供できるファイル拡張子又は署名を検索する。
ファイル拡張子又はファイル署名がある場合、それはオブジェクト拡張子辞書４及びオブジェクト署名辞書５によって、それぞれ圧縮予測機３に提供された情報と比較され分析されて、バリュー２の圧縮性（圧縮率）の予測を助ける。
【００５３】
他の実施形態において、又はファイル署名及びファイル拡張子がキー１にない場合、ドライブ１０は、バリュー２のヘッダー又は特定のオフセットでファイル署名を検索する。
ファイル署名がある場合、それはオブジェクト署名辞書５によって圧縮予測機３に提供された情報と比較され分析されて、バリュー２の圧縮性（圧縮率）の予測を助ける。
ファイル拡張子及びファイル署名がキー１及びバリュー２に全てない場合、ドライブ１０は、エントロピー推定アルゴリズムライブラリー６によって提供された情報を使用して、エントロピーベースの演算を実行することができ、又はドライブ１０は、上述したようなサンプル圧縮を遂行することができる。
一部の実施形態において、圧縮予測機３は、ＱｏＳプロファイル１４及び／又は装置性能プロファイル１５によって提供された情報を分析して圧縮性（圧縮率）の推定を助ける。
【００５４】
予測は、ユーザによって設定された特定の閾値又は複数の閾値セットを満たす場合、バリュー２が圧縮されることができる閾値ベース（ｔｈｒｅｓｈｏｌｄ−ｂａｓｅｄ）である。
複数の閾値セットは、圧縮性（圧縮率）を予測するものと関連した上述した因子の一部又は全体を考慮し、ユーザによって入力され指定することができ、又は決定テーブルの一部として入力することができる。
例えば、予測された圧縮性（圧縮率）が所定の閾値以上の場合、圧縮予測機３は、圧縮が進行するであろうと判断する。
予測された圧縮性（圧縮率）が所定の臨界値以下の場合、圧縮予測機３は、バリュー２を圧縮すべきでないと判断する。
【００５５】
圧縮予測機３が、バリュー２は圧縮すべきであると判断した場合（ステップＳ２１「はい」）、データは、受信スイッチ１１を介して圧縮機７に伝送される。
次に、圧縮機７は、バリュー２を圧縮する方法を判別する（ステップＳ２２）。
バリュー２を圧縮する方法を判別することにおいて、圧縮機７は、ＱｏＳプロファイル１４、装置性能プロファイル１５、及び圧縮アルゴリズム性能チャート１６を含む多様な入力からの情報を考慮して、どの圧縮アルゴリズムがバリュー２に適用されるかを判別する。
【００５６】
いったん圧縮アルゴリズムが選択されると、バリュー２は、圧縮アルゴリズムライブラリー１７によって提供されるコードを使用して圧縮され、所与のバリュー２の圧縮を開始する（ステップＳ２３）。
圧縮の後、圧縮されたバリューは、圧縮機７から出口スイッチ１２を介して出力される（ステップＳ２４）。
圧縮予測機３が、バリュー２は圧縮すべきでないと判断した場合（ステップＳ２１「いいえ」）、データは、出口スイッチ１２を介して出力される（ステップＳ２４）。
【００５７】
圧縮機７からの出力（ステップＳ２４）以降、圧縮のタイプに対する情報及びバリュー２を再圧縮するコマンドが、キー１のヒドゥン領域（即ち、ヒドゥンキー）に格納される（ステップＳ２５）。
このような情報は、例えば、ＱｏＳ要求が低いか、及び／又はドライブ１０が休止状態の間、以降にアクセスして圧縮を最適化するためにバリュー２を再圧縮できるかどうかを判断できる。
【００５８】
なお、圧縮のない出力（ステップＳ２４）以降、バリュー２を後で圧縮しようと試みるかに対する情報（例えば、ＱｏＳ要求が以前の試みで圧縮を妨害した場合）を含むことができる。
このような情報は、圧縮を試みるためのコマンドを含むことができる。
このような圧縮は、ＱｏＳ要求が低くなるか、又はドライブ１０が休止状態の間、試みられ得る（矢印ステップＳ２６）。
【００５９】
上述した実施形態は、圧縮機７が、バリュー２を圧縮する方法を決定するものとして説明したが、このような手順は、圧縮予測機３によっても遂行することができる。
バリュー２を圧縮する方法を決定することにおいて、圧縮予測機３は、例えば、ＱｏＳプロファイル１４、装置性能プロファイル１５、及び圧縮アルゴリズム性能チャート１６を含む多様な入力からの情報を同様に考慮して、どの圧縮アルゴリズムをバリュー２に適用するかを決定できる。
圧縮予測機３が適用する圧縮アルゴリズムを決定した場合、圧縮予測機３は、圧縮のために圧縮機７に情報を出力する。
【００６０】
上述した実施形態を、キーバリュードライブを参照して説明したが、上述したように、圧縮性（圧縮率）を予測する手順及びデータをどのように圧縮するかを決定するのは、典型的なブロックベースのドライブにおいて使用され得る。
ブロックベースのドライブがキーバリュードライブに含まれたメタデータの大部分を含まないので、手順は、キーバリュードライブより、もう少し多くの時間及びプロセッシング電力を要求するはずである。
【００６１】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【００６２】
１    キー
２    バリュー
３    圧縮予測機
４    オブジェクト拡張子辞書
５    オブジェクト署名辞書
６    エントロピー推定アルゴリズムライブラリー
７    圧縮機
１０    ドライブ
１１    受信スイッチ
１２    出口スイッチ
１３    出力（バリュー）
１４    ＱｏＳプロファイル
１５    装置性能プロファイル
１６    圧縮アルゴリズム性能チャート
１７    圧縮アルゴリズムライブラリー
【図１】
2019008792.tif 000004
【図２】
2019008792.tif 000005
【図３】
2019008792.tif 000006