(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-01
(45)【発行日】2022-11-10
(54)【発明の名称】ストレージドライブ、及びその圧縮システム並びにそのデータ圧縮方法
(51)【国際特許分類】
G06F 16/17 20190101AFI20221102BHJP
G06F 16/14 20190101ALI20221102BHJP
G06F 3/06 20060101ALI20221102BHJP
【FI】
G06F16/17 100
G06F16/14 200
G06F3/06 301W
(21)【出願番号】P 2018115907
(22)【出願日】2018-06-19
【審査請求日】2021-06-08
(32)【優先日】2017-06-20
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2017-08-28
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】110000051
【氏名又は名称】弁理士法人共生国際特許事務所
(72)【発明者】
【氏名】奇 亮 ソク
(72)【発明者】
【氏名】李 勇 錫
(72)【発明者】
【氏名】ジェイソン マルティノ
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】国際公開第2014/155490(WO,A1)
【文献】特開2011-215986(JP,A)
【文献】米国特許出願公開第2016/0173125(US,A1)
【文献】特開2016-170453(JP,A)
【文献】特開平08-191427(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/10-16/188
G06F 3/06
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
ストレージドライブ
上の圧縮システム
であって、
一つ
以上の圧縮性入力(compressibility inputs)と、
前記一つ
以上の圧縮性入力に基づいてデータの圧縮性(圧縮率)を予測するように構成された圧縮予測機と、
前記データを圧縮するように構成された圧縮機と、
一つ
以上の圧縮入力と、を有し、
前記圧縮予測機又は前記圧縮機の
中の少なくとも一つは、前記一つ
以上の圧縮入力に基づいて前記データを圧縮する方法を決定するように構成され
、
前記一つ以上の圧縮性入力は、少なくともオブジェクト署名辞書を含むことを特徴とする圧縮システム。
【請求項2】
前記一つ以上の圧縮性入力は、オブジェクト拡張子辞書
及びエントロピー推定アルゴリズムライブラリーの中の少なくとも一つを
更に含むことを特徴とする請求項1に記載の圧縮システム。
【請求項3】
前記一つ
以上の
圧縮入力は、QoSプロファイル(quality of service profile)、装置性能プロファイル、及び圧縮アルゴリズム性能
チャートの
中の少なくとも一つを含むことを特徴とする請求項1に記載の圧縮システム。
【請求項4】
前記一つ
以上の圧縮入力は、少なくともQoSプロファイル(quality of service profile)を含むことを特徴とする請求項1に記載の圧縮システム。
【請求項5】
前記圧縮予測機は、二つ
以上の圧縮性入力に基づいて前記データの前記圧縮性(圧縮率)を予測するように構成され、
前記二つ
以上の圧縮性入力は、前記オブジェクト拡張子辞書、前記オブジェクト署名辞書、前記エントロピー推定アルゴリズムライブラリー
の中の少なくとも二つを含むことを特徴とする請求項2に記載の圧縮システム。
【請求項6】
前記圧縮機は、二つ
以上の圧縮入力に基づいて前記データを圧縮する方法を決定するように構成され、
前記二つ
以上の圧縮入力は、前記QoSプロファイル、前記装置性能プロファイル、及び圧縮アルゴリズム性能チャートの
中の少なくとも二つを含むことを特徴とする請求項3に記載の圧縮システム。
【請求項7】
ストレージドライブ
上のデータを圧縮する方法
であって、
一つ
以上の圧縮性入力に基づいて、前記ストレージドライブ
上のデータの圧縮性(圧縮率)を予測するステップと、
一つ以上の圧縮入力に基づいて前記データを圧縮する方法を決定するステップと、
前記データを圧縮する方法
の決定に基づいて前記データを圧縮するステップと、を有
し、
前記一つ以上の圧縮性入力は、少なくともオブジェクト署名辞書を含むことを特徴とするデータ圧縮方法。
【請求項8】
前記ストレージドライブは、キー(key)及びバリュー(value)を
有するキーバリューストレージドライブであることを特徴とする請求項7に記載のデータ圧縮方法。
【請求項9】
前記一つ以上の圧縮性入力は、オブジェクト拡張子辞書
及びエントロピー推定アルゴリズムライブラリーの中の少なくとも一つを
更に含むことを特徴とする請求項8に記載のデータ圧縮方法。
【請求項10】
前記一つ
以上の圧縮性入力は、少なくともオブジェクト署名辞書を含むことを特徴とする請求項8に記載のデータ圧縮方法。
【請求項11】
前記データの圧縮性(圧縮率)を予測するステップは、ファイル拡張子又はファイル署名
に対するキーを検索するステップを
更に含むことを特徴とする請求項9に記載のデータ圧縮方法。
【請求項12】
前記データの圧縮性(圧縮率)を予測するステップは、前記ファイル拡張子又は前記ファイル署名を見つける(locating)ステップと、
前記ファイル拡張子又は前記ファイル署名を、前記オブジェクト拡張子辞書又は前記オブジェクト署名辞書
によって提供された情報と
それぞれ比較し
て分析するステップと、を更に含むことを特徴とする請求項11に記載のデータ圧縮方法。
【請求項13】
圧縮情報を符号化したヒドゥンキー(hidden key)を元(original)の前記キーに追加し、前記データの圧縮に
関する情報を、
前記ヒドゥンキー
に格納するステップを更に有することを特徴とする請求項
8に記載のデータ圧縮方法。
【請求項14】
前記データの再圧縮を開始するコマンドを、前記ヒドゥンキーに格納するステップを更に有することを特徴とする請求項13に記載のデータ圧縮方法。
【請求項15】
圧縮システムを含むストレージドライブ
であって、
前記ストレージドライブ
上の前記圧縮システムは、
一つ
以上の圧縮性入力(compressibility inputs)と、
前記一つ
以上の圧縮性入力に基づいてデータの圧縮性(圧縮率)を予測するように構成された圧縮予測機と、
前記データを圧縮するように構成された圧縮機と、
一つ
以上の圧縮入力と、を有し、
前記圧縮予測機又は前記圧縮機の
中の少なくとも一つは、前記一つ
以上の圧縮入力に基づいて前記データ
を圧縮
する方
法を決定するように構成され
、
前記一つ以上の圧縮性入力は、少なくともオブジェクト署名辞書を含むことを特徴とするストレージドライブ。
【請求項16】
前記一つ以上の圧縮性入力は、オブジェクト拡張子辞書
及びエントロピー推定アルゴリズムライブラリーの中の少なくとも1つを
更に含むことを特徴とする請求項15に記載のストレージドライブ。
【請求項17】
前記ストレージドライブは、キーバリューストレージドライブ(key value storage drive)であることを特徴とする請求項15に記載のストレージドライブ。
【請求項18】
前記圧縮予測機は、二つ
以上の圧縮性入力に基づいて前記データの前記圧縮性(圧縮率)を予測するように構成され、
前記二つ
以上の圧縮性入力は、前記オブジェクト拡張子辞書、前記オブジェクト署名辞書、前記エントロピー推定アルゴリズムライブラリー
の中の少なくとも二つを含むことを特徴とする請求項16に記載のストレージドライブ。
【請求項19】
前記一つ
以上の圧縮入力は、QoSプロファイル、装置性能プロファイル、及び圧縮アルゴリズム性能チャートの
中の少なくとも一つを含むことを特徴とする請求項
17に記載のストレージドライブ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ装置に関し、より詳細にはストレージドライブ、及びその圧縮システム並びにストレージ装置のデータの圧縮方法に関する。
【背景技術】
【0002】
データの圧縮は、データ格納容量の効率的な使用を増加させる有用な方法である。
しかしながら、全ての圧縮アルゴリズムが同一のものではない。
一部の圧縮アルゴリズムは、他のものよりデータの特定タイプにおいてもっと効率的に作動する。
一般的に圧縮アルゴリズムは、時間/処理努力と引き換えに圧縮率を手に入れる。
【0003】
ストレージ装置が、単純に受信された全てのデータに対する圧縮を試み、格納する場合、不必要なレイテンシ(latency)、処理量の低下、及びプロセス寿命の浪費が発生する可能性がある。
これは、全ての入力データが圧縮に容易に応じるのではないためである。
別の本質的又は明示的な圧縮特徴の一部として、又は多くのマルチメディアファイルタイプの場合のように、一部のデータは、既にホストで圧縮されている。
このようなファイルは、追加的な圧縮が容易ではなく、処理量の低下及びレイテンシを誘発する。
平均圧縮率(average compression ratio)が良い場合(即ち、実質的な空間使用の減少がある場合)、このような低下は許容され得る。
しかしながら、平均圧縮率が悪い場合、データ圧縮の目的が達成されず、ただ性能の損失だけをもたらすはずである。
【0004】
ファイルを同一の大きさの論理ブロックに格納する一般的なブロックストレージシステム(block storage system)は、個別的な論理ブロックを圧縮して格納容量を増加させることができる。
しかし、ブロックシステムの格納構造は、ファイルタイプ及びフォーマットに基づいて格納されたデータの圧縮を改善することを困難にする。
これは、特定のタイプ又はフォーマットの個別的なファイルをブロック内又はブロック間で見つける(locating)ことが困難なためである。
ブロックストレージシステムにおいて、各論理ブロックは、複数の異なるファイル(又は、複数のファイルの内の一部)を含む場合がある。
【0005】
又は、逆に、単一のデータファイルを複数の論理ブロックに分散させることができ、これは特定タイプのデータを圧縮するのに最も適合したアルゴリズムを使用して、個別の及び特定の圧縮のために、特定のファイルタイプを分離することを難しくする。
なお、論理ブロックは、各個別データファイルの開始点及び終了点に対する情報又は入力データフォーマットに対する情報を必ずしも含むものではない。
【0006】
同様に、一つ又はそれ以上のブロックを占めるファイルの識別に対する重要なメタデータが、特定のブロックレベルにはない可能性がある。
即ち、従来のブロックシステムは、ブロックの潜在的な圧縮性(圧縮率)(compressibility)を測定するため、ブロックのデータをサンプリングし、複雑な数学的演算を遂行するのを必要とするはずである。
これは、追加的な性能損失を発生させる。
なお、ブロックベースのドライブに対する情報を圧縮するのは、目標ファイルの各ブロックの位置を追跡し、新しいブロックでそれらを圧縮して組み立て、マッピングテーブルを更新して、圧縮工程において実質的に変更することができ、圧縮されて格納された情報の新しい位置を示すために実質的なバックグラウンド活動(background activities)を必要とする。
【0007】
キーバリューストレージシステム(key value storage systems)は、同一の大きさの論理ブロックを含まず、しかしながら、代わりにデータ又はファイルの特定部分を示す可変の大きさのバリューとしてデータを格納するという点において、一般的なブロックストレージシステムと異なる。
キーバリューストレージは、その中に格納された特定バリューを示すキーを使用する。
キーは、格納されたデータに対する論理アドレス、データから派生されたハッシュ値、データフォーマットなどのような有用な情報を含むことができる。
【0008】
従って、以下のようなことがストレージドライブの圧縮に関する課題点となっている。
全体ストレージ圧縮を向上させる可変圧縮を具現するため、キーバリューストレージシステムの構成の利点を利用する向上した圧縮ドライブが必要である。
例えば、圧縮以前に良い圧縮率が予想されるかを判別し、不必要な圧縮及び性能損失を防止できるドライブが必要である。
なお、単純にホストデータに対する圧縮を遂行するだけでなく、データの属性、ドライブ能力、及び/又は最終ユーザのQoS要求に基づいて、このようなデータをいつ、かつどのように最適に圧縮できるかを判別できるドライブが必要である。
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明は上記従来のストレージ装置における課題点に鑑みてなされたものであって、本発明の目的は、向上した性能を有するストレージドライブ、及びその圧縮システム並びにデータの圧縮方法を提供することにある。
【課題を解決するための手段】
【0010】
上記目的を達成するためになされた本発明による圧縮システムは、ストレージドライブの圧縮システムにおいて、一つ又はそれ以上の圧縮性入力(compressibility inputs)と、前記一つ又はそれ以上の圧縮性入力に基づいてデータの圧縮性(圧縮率)を予測するように構成された圧縮予測機と、前記データを圧縮するように構成された圧縮機と、一つ又はそれ以上の圧縮入力と、を有し、前記圧縮予測機又は前記圧縮機の内の少なくとも一つは、前記一つ又はそれ以上の圧縮入力に基づいて前記データを圧縮する方法を決定するように構成されることを特徴とする。
【0011】
上記目的を達成するためになされた本発明によるデータ圧縮方法は、ストレージドライブでデータを圧縮する方法において、一つ又はそれ以上の圧縮性入力に基づいて、前記ストレージドライブでのデータの圧縮性(圧縮率)を予測するステップと、一つを含む一つ又はそれ以上の圧縮入力に基づいて前記データを圧縮する方法を決定するステップと、前記データを圧縮する方法に対する決定に基づいて前記データを圧縮するステップと、を有することを特徴とする。
【0012】
上記目的を達成するためになされた本発明によるストレージドライブは、圧縮システムを含むストレージドライブにおいて、前記ストレージドライブの前記圧縮システムは、一つ又はそれ以上の圧縮性入力(compressibility inputs)と、前記一つ又はそれ以上の圧縮性入力に基づいてデータの圧縮性(圧縮率)を予測するように構成された圧縮予測機と、前記データを圧縮するように構成された圧縮機と、一つ又はそれ以上の圧縮入力と、を有し、前記圧縮予測機又は前記圧縮機の内の少なくとも一つは、前記一つ又はそれ以上の圧縮入力に基づいて前記データの圧縮方式を決定するように構成されることを特徴とする。
【発明の効果】
【0013】
本発明に係るストレージドライブ、及びその圧縮システム並びにそのデータ圧縮方法ブによれば、ドライブに格納されたファイルの特性を分析し、各ファイルが圧縮されることができる程度を予測し、圧縮性(圧縮率)に対する予測が行われると、データを圧縮するかに対する決定が行われ、これはデータの予測された圧縮性(圧縮率)だけでなく、QoS要求及び現在装置能力のような他の因子に基づくことができ、圧縮することで決定が行われた場合、全体性能が最適化されるように、どのアルゴリズムが現在の条件下で最適に使用され得るか判別するためにデータ及び装置の特性及びQoS要求のような因子を考慮してデータ圧縮方法に対する決定が行われるという効果があり、向上した性能を有するストレージドライブ、及びその圧縮システム並びにそのデータ圧縮方法を提供することができる。
【図面の簡単な説明】
【0014】
【
図1】本発明の例示的な実施形態による圧縮ドライブの概略的な構成及び動作を説明するためのブロック図である。
【
図2】特定の処理量(スループット)における特定の圧縮アルゴリズムの相対的な圧縮率を示すグラフである。
【
図3】本発明の実施形態による、
図1の圧縮ドライブを使用して、データを圧縮し予測する方法を説明するためのフローチャートである。
【発明を実施するための形態】
【0015】
本明細書において説明する本発明の実施形態による電子又は電気装置及び/又は他の関連した装置又は構成は、適切なハードウェア、ファームウェア(firmware)(例えば、アプリケーション特定の集積回路)、ソフトウェア、又はソフトウェア、ファームウェア、及びハードウェアの組み合わせを活用して具現することができる。
例えば、このような装置の多様な構成は、一つの集積回路(IC)チップ又は別のICチップに形成することができる。
なお、このような装置の多様な構成は、フレキシブル印刷回路基板、TCP(tape carrier package)、PCB(printed circuit board)で具現することができたり、又は一つの基板上に形成したりすることができる。
【0016】
なお、このような装置の多様な構成は、本明細書において説明する多様な機能を遂行するための他のシステム構成と通信し、コンピュータプログラム命令語を実行する一つ又はそれ以上のコンピューティング装置で、一つ又はそれ以上のプロセッサー上に駆動するプロセス又はスレッドであり得る。
コンピュータプログラム命令語は、メモリーに格納することができる。メモリーは、例えば、ランダムアクセスメモリー(RAM)のような標準メモリー装置を使用してコンピューティング装置内に具現することができる。
コンピュータプログラム命令語は、CD-ROM、フラッシュドライブのような他の非一時的なコンピュータ読取可能な媒体に格納することができる。
なお、当業者は、本発明の例示的な実施形態の思想及び範囲から逸脱することなく、多様なコンピューティング装置の機能が、単一のコンピューティング装置に集積又は組み合わせることができるか、又は特定のコンピューティング装置の機能が、一つ又はそれ以上の他のコンピューティング装置に分散されるかが認識できる。
【0017】
本発明の実施形態は、向上した圧縮性(圧縮率)(compressibility)を有するソリッドステートドライブ(solid state drive)に関する。
初期に、ドライブに格納されたファイルの特性(characteristics)を分析し、各ファイルが圧縮することができる程度(即ち、ファイルの圧縮性(圧縮率)(the compressibility of the file))を予測する。
圧縮性(圧縮率)に対する予測が行われると、データを圧縮するかに対する決定が行われる。
このような決定は、データの予測された圧縮性(圧縮率)だけでなく、QoS(Quality of Service)要求及び現在装置能力のような他の因子(factor)に基づくことができる。
圧縮することで決定が行われた場合、全体性能が最適化されるように、どのアルゴリズムが現在の条件下で最適に使用され得るか判別するために、データ及び装置の特性及びQoS要求のような因子を考慮してデータ圧縮方法に対する決定が行われる。
【0018】
図1は、本発明の例示的な実施形態による圧縮ドライブの概略的な構成及び動作を説明するためのブロック図である。
本実施形態において、ドライブ10は、キーバリューストレージドライブであり、ドライブ10に格納されたデータのバリュー及びキーに格納された情報に容易にアクセスできるように活用するために使用される。
【0019】
図1には、キー1及びバリュー2を含むドライブ10の例示的なデータセットを示す。
キー1及びバリュー2に含まれた情報は、圧縮予測機3(compression predictor)によって分析されてバリュー2の圧縮性(圧縮率)(compressibility)を判別する。
圧縮予測機3は、オブジェクト拡張子辞書4(object extension dictionary)、オブジェクト署名辞書5(object signature dictionary)、及び/又はエントロピー推定アルゴリズムライブラリー6(entropy estimation algorithm library)に含まれた情報を使用してバリュー2の圧縮性(圧縮率)を判断したり、又は判断に役立てることができる。
【0020】
オブジェクト拡張子辞書4は、既知のオブジェクト拡張子(即ち、ファイル拡張子)のリス
トを含み、そのようなオブジェクトのタイプが多様な圧縮技術のそれぞれに対しどのくらい圧縮可能なのかに対する評価を含む。
このような情報は、オブジェクト拡張子辞書4によって圧縮予測機3に提供されて圧縮予測を可能にし、バリュー2に含まれた多くの量のデータを直接にサンプリングせずに、圧縮性(圧縮率)予測の一部の形態が遂行され得る。
例えば、キー1は、データファイルがPPTX、PDF、MP3、JPGなどであることを示すファイル拡張子を含むことができ、ファイル拡張子は、ファイルの圧縮性(圧縮率)に対する手がかりを提供することができる。
キー1が、ファイルが既に本質的に圧縮されたMP3ファイルを含むことを示す場合、ドライブ10は、バリュー2からデータをサンプリングせずに、バリュー2がさらに圧縮される可能性が低いことが分かる。
一方、キー1が、BMP(black and white bitmap)イメージを格納することを示す場合、ドライブ10は、バリュー2をサンプリングすることなく、バリュー2が圧縮のための良好な候補であるのが分かる。
【0021】
キー1は、ファイル署名(即ち、オブジェクト署名)を含む圧縮性(圧縮率)に対する他の手がかりを含むことができる。
ファイル署名は、バリュー2に格納されたファイルのタイプに対する情報を提供するコード行(line of code)である。
データタイプに対して既知の署名のリスト及び圧縮可能な程度の評価はオブジェクト署名辞書5で維持することができる。
即ち、ファイル拡張子がキー1に含まれない場合、ファイル署名は、バリュー2に格納されたファイルのタイプに対する情報であったり、又は情報を提供したりすることができる。
オブジェクト署名辞書5からの情報は、圧縮予測機3に提供されて圧縮予測を可能にする。
【0022】
圧縮率の予測を助けることができるキー1に格納されたメタデータのタイプを示すために、このような実施形態においてファイル拡張子及びファイル署名が例として使用されるが、圧縮率を予測するのにファイル拡張子及び/又はファイル署名の代わりに、又は追加的に使用され得る他のメタデータも含むことができる。
このような他のメタデータをファイルタイプ及び圧縮効率と関連させる情報は、辞書(dictionaries)に格納することができ、圧縮予測機にて利用可能にすることができる。
【0023】
キー1がメタデータヒントを含まない場合。バリュー2に含まれたデータをサンプリングするのが必要となる。
しかしながら、ドライブ10がキーバリュードライブであるから、データセットの開始及び終了は、一般的なブロックベース(block-based)のドライブと比較して容易に位置決め(located)することができる。
これは2つのことを意味する。
第一に、取得したサンプルは、関心のあるデータのみから得られることが保証され、圧縮予測をもっと正確にする。
第二に、データの開始を知ることにより、バリュー2のヘッダーの位置を容易に探すことができ、それは、バリュー2のヘッダーはもっと複雑な演算を必要とせずに、また、バリュー2の追加的なサンプリングを必要とせずに、圧縮性能を予測するのに使用され得る手がかり(例えば、キー1に含まれないメタデータ又は署名)を含むことができる。
【0024】
ファイル拡張子及び/又はファイル署名がキーに含まれない場合、それはバリュー2内に特定の既知の位置又はヘッダーに含めることができる。
例えば、一部のファイル署名は、ファイルの先頭から特定のオフセットに位置している。
以下に示す表1は、いくつかの共通ファイルタイプのリスト及びそれらの関連した署名及びオフセットを示す。
【表1】
【0025】
表1に示したように、多数のファイルタイプは、「0」のオフセット、即ち、ファイルヘッダーの先頭に位置しているので、バリュー2のサンプリングがファイル署名を相対的に探しやすくする。
たとえ、ファイル署名がヘッダーの開始にないとしても、特定のオフセットがサンプリングされて共通的に使用されたファイル形態の署名を検索することができる。
そのため、キー1がファイルタイプに対する情報を含まない場合、ファイル署名を迅速且つ効率的に検索するために、バリュー2の特定の位置がサンプリングされ得る。
【0026】
圧縮性(圧縮率)を予測するのに助けることができるヘッダー(header)に格納されたメタデータの形態を示すために、ファイル署名がこのような実施形態において、例として使用されるが、圧縮性(圧縮率)を予測するためにファイル署名の代わりに又はそれに追加的に使用され得る他のメタデータを、バリュー内の予測可能なオフセット又はヘッダーに含めることもできる。
例えば、ヘッダーは、バリューのファイルフォーマットが何であるかを示す他のメータデータを含むことができる。
他のメタデータをファイルタイプ及び圧縮性能と関連させる情報は、辞書(dictionaries)に格納することができ、圧縮予測機に提供することができる。
【0027】
圧縮と関連したメタデータがキー1になく、サンプリングされたファイルヘッダー及びオフセットにない場合、数学的にもっと複雑な圧縮性アルゴリズム(例えば、エントロピー演算ベースの測定(entropy calculation based measurement))が要求され得る。
【0028】
エントロピー推定アルゴリズムライブラリー6は、サンプリングされたデータのエントロピーをテストするためのコードを含み、それにより、それを圧縮することができる方式を判別できる。
エントロピーベースの演算は、バリュー2の部分を検索してファイルが圧縮可能なのかを予測するのに使用され得る。
エントロピーベースの演算は、エントロピー又はランダムデータを圧縮するのが難しいという原則に基づいて機能する。
一般的に、既に圧縮されたファイルは、より高いエントロピー特性を有する。
圧縮されていないファイルは、より圧縮しやすい整列されたデータを有する可能性が多い。
例えば、圧縮アルゴリズムは、一列に100個の「1」を含む反復されたコードの領域を含む圧縮されていないファイルを圧縮して、その領域に(本質的に)「1×100」を有するようにコードの列をより短く整列されたものにすることができる。
【0029】
データセットのスタート及び終了がキーバリューシステムで知られているため、エントロピーベースの演算は、バリューのサンプル部分に対して全体のバリューの圧縮性(圧縮率)を正確に予測するのに使用され得る。
高いエントロピーを示す結果は、バリューが圧縮される可能性がないのを示すはずであり、低いエントロピーを示す結果は、バリューが圧縮可能性であるのを示すはずである。
エントロピー推定アルゴリズムライブラリー6からの情報は、予測を手助けするために圧縮予測機3に提供され得る。
【0030】
バリュー2のサンプルに対してエントロピーベースの演算を遂行することに加えて、又は代わりに、サンプル圧縮をバリュー2の部分に対して実行して圧縮性(圧縮率)を推定できる。
例えば、バリュー2の領域(例えば、既知の比較的小さな領域)はテストアルゴリズムを使用して圧縮することができる。
空間節約(space saving)が(圧縮性(圧縮率)が合理的であるのを示す)ある特定の閾値を超える場合、それは圧縮性の肯定的な指示(positive indication)であり、テスト圧縮の結果は、ドライブ10の圧縮機7に伝送されてバリュー2の圧縮を手助けすることができる。
一部の実施形態において、圧縮がもっと最適化されるように、複数のアルゴリズムがバリュー2の同一の領域において同一に使用され得る。
しかしながら、このようなアプローチは、より多い時間及びリソース(resources)を消費するので、ユーザは、QoS要求が低い場合にだけで、このようなプロセスを実行するだけでよい。
【0031】
まとめると、圧縮性(圧縮率)を予測するために、キーバリュー装置内に、検査可能な多様な位置と、実行できる分析が存在し、これらはさまざまな速度において、さまざまな程度の正確度を提供するために、組み合わされ、マッチングすることができる。
一般的に、予測の正確度と予測を達成することの速度とは逆比例して関連される。
例えば、キー1及びバリュー2のヘッダーを検索して、(例えば、ファイル拡張子又はファイル署名からの)圧縮性(圧縮率)に対するメタデータの手がかりを検討するのは、バリュー2のサンプル部分をスキャニングし、エントロピーベースの演算を実行するのと比較して相対的に速い。
しかしながら、メタデータの手がかりは、理論的にはエントロピーベースの演算よりはるかに正確ではない。
【0032】
上述したメタデータ情報及び分析に加えて、圧縮予測機3は、ドライブ10の性能能力(performance capabilities)及びQoS要求(QoS requirements)を含む多様な他の因子を考慮して、圧縮性(圧縮率)を予測することができる。
QoS要求及び情報は、QoSプロファイル14に含めることができる。
QoSプロファイル14は、駆動中のあるアルゴリズムがユーザの性能要求に悪影響を及ぼさないように、ユーザの現在の性能要求及び必要性のような考慮事項を含むことができる。
QoS情報は、性能管理作業を管理するドライブ10のオンボード(onboard)コントローラーに、最終ユーザに収容することができるように維持される必要がある性能のパラメーターを知らせることができる。
QoS情報は、圧縮予測機3によって使用されて予測された圧縮率がQoS要求を満たすかを判別できる。
【0033】
追加的に、QoS情報は、メカニズムを設定するのに使用され得るし、それによって、圧縮予測機3によって圧縮性(圧縮率)を予測することができる。
例えば、QoS要求は、圧縮に利用可能な帯域幅及び処理量のレベル(スループットレベル)に制限を設ける可能性があり、圧縮によって引き起こされる許容可能なレイテンシの量を、ユーザの要求に悪影響を及ぼさない限度で制限する可能性がある。
さらに、ユーザのQoS要求は、ユーザによって使用されるアプリケーション、プロセッサーなどを駆動するプロセッサー電力の特定量を必要とする。
このような要求は、帯域幅、処理量、レイテンシ、プロセッサー、又はその時点のユーザの他の要求を超えないアルゴリズムに使用され得る圧縮アルゴリズム(及び潜在的に再圧縮動作中の圧縮解除アルゴリズム)を制限する。
【0034】
ドライブ10の性能能力は、装置性能プロファイル15に格納することができる。
装置性能プロファイル15は、ドライブ10の性能の静的かつ動的な側面を追跡する。
このような情報は、圧縮予測機3によって使用されてバリューが充分に圧縮され、QoSプロファイル14及びドライブ10全ての要求を満たすか(もし、そうであれば、どのように圧縮するか)を判別する。
【0035】
上述したメタデータ情報、エントロピーベースの演算、サンプル圧縮、QoS要求、及び装置情報の一部又は全部は、圧縮予測機3によって分析されてバリュー2を圧縮するのが有用な圧縮率をもたらすか、及び/又はQoSに悪影響を及ぼすかを予測することができる。
最終的の予測は、これらの因子の一部又は全部を考慮した閾値ベース(threshold-based)であり得る。
例えば、一部の実施形態において、予測された圧縮性(圧縮率)が、所定の閾値(圧縮性(圧縮率)を予測するものと関連した上述された因子の一部又は全部を考慮してユーザによって入力され、入力され得る閾値)以上の場合、圧縮予測機3は、圧縮が進行すべきであると判断する。
予測された圧縮性(圧縮率)が、所定の閾値より低い場合、圧縮予測機3は、バリュー2を圧縮すべきではないと判断する。
【0036】
他の実施形態において、決定(decision)は、複数の閾値チェックポイントの結果であり得る。
例えば、QoS要求、エントロピーベースの演算、サンプル圧縮などのような他の因子は、圧縮が進行すべきかどうかを判断するために考慮されうる他の閾値又は複数の閾値を含むことができる。
このような閾値のうち、いずれかの一つ又は一部の実施形態においてこのような閾値のうち、いずれかの組み合わせが満たされない場合、圧縮は進行しないであろう。
このような閾値に対する情報は、決定テーブル(decision table)に維持することができる。
決定テーブルは、以下でさらに詳細に説明する予想された圧縮率、現在のシステム性能特性、及び多様なQoS要求のような因子に追加して、上述した因子のような因子を含むことができる。
このような多様な因子の分析は、圧縮を進行することができるかを判断するのに使用され得る。
【0037】
結局、予測方法が何であっても、圧縮可能な値がどのようになるかについての予測が行われる。
このような決定は、速度又は圧縮性(圧縮率)閾値、決定テーブル、などのような閾値又は複数の閾値セットに基づくことができる。
【0038】
圧縮予測機3によってバリュー2を圧縮するかに対する判断が行われた場合、このような結果は、受信スイッチ11(receiving switch)に提供される。
受信スイッチ11は、バリュー2を受信し、圧縮予測機3からの結果に基づき、バリュー2を圧縮機7に出力すること、又は圧縮機7を回避してバリュー2の出力13のために出口スイッチ12に直接伝送すること、の間をスイッチングする。
よって、圧縮予測機3が、圧縮が行われるべきであると判断した場合、受信スイッチ11は、バリュー2を圧縮機7に伝送し、圧縮予測機3が、圧縮が発生しないと判断した場合、受信スイッチ11は、出力13のために出口スイッチ12にバリュー2を伝送する。
【0039】
バリュー2が、圧縮を保証すると判断され、圧縮機7に伝送された場合、圧縮機7は、ドライブ10を圧縮する方法を決定する。
又は、圧縮予測機3は、バリュー2が圧縮機7に伝送される前に、ドライブ10を圧縮する方法を決定する。
ファイルを圧縮する方法を決定するのは、全ての圧縮アルゴリズムが同一でないため、多様な因子の考慮を必要とする。
【0040】
一部のアルゴリズムは、他のものよりデータの一部の形式をもっと良く圧縮するように動作し、一部のアルゴリズムは、他のものよりもっと多くのプロセッサー又はメモリー能力を必要とし、一部のアルゴリズムは、他のものよりもっと多くの処理量を有し、一部のアルゴリズムは、他のものよりもっと優れた圧縮率を提供する。
バリュー2を圧縮する方法を決定することにおいて、圧縮機7(又は圧縮予測機3)は、QoSプロファイル14、装置性能プロファイル15、及び圧縮アルゴリズム性能チャート16を含む多様な入力からの情報を考慮して、どのような圧縮アルゴリズムをデータに適用するかを判定する。
【0041】
QoSプロファイル14からのQoS情報は、与えられた圧縮アルゴリズムの性能特性が最終ユーザの要求に合うかどうかを判断するのに使用され得る。
装置性能プロファイル15からの情報は、どのような圧縮アルゴリズムが圧縮されるバリュー2に対し、装置リソースを最も効率的に使用するかを判断するのに使用され得る。
【0042】
圧縮アルゴリズム性能チャート16は、各アルゴリズム(単独又はファイルタイプによって)に対する平均圧縮率、各アルゴリズムに対する処理量、及び各アルゴリズムに対するコンピューティング、及びメモリーリソース要求を含む複数の圧縮アルゴリズムに対する情報を含む。
圧縮アルゴリズム性能チャート16は、ファイルタイプ、QoSプロファイル14からのQoS要求によって決定することができる利用可能な処理量、及び装置性能プロファイル15に基づいた装置能力に基づいて特定のアルゴリズムを選択することができる。
上述したように、特定の圧縮アルゴリズムは、特定のデータフォーマットに対してより優れた圧縮率を提供することができ、それによって、他の圧縮アルゴリズムより、より選好され得る。
【0043】
図2は、特定の処理量(スループット)における特定の圧縮アルゴリズムの相対的な圧縮率を示すグラフである。
図2は、様々な共通の最新の圧縮アルゴリズム(およびアルゴリズム設定)の比較を単に示し、各アルゴリズム/設定には、スループットと圧縮ファイルサイズ(一定のターゲットファイル用)の特徴的な組み合わせがある。
一般的に、ファイルが圧縮されるほど(圧縮ファイルのサイズが小さくなるほど)、処理量(スループット)が低くなることが分かる。
従って、本発明では、ストレージシステムの様々な属性を考慮して、その時点でシステムの処理量と圧縮されたサイズの最良のバランスをとる。
追加的に、
図2に示したように、特定の圧縮アルゴリズムは、他の圧縮アルゴリズムに比して特定の利用可能な処理量においてより優れた圧縮率を有する。
図2に示したような情報を考慮するのは、処理量に対する現在のQoS及び装置要求を考慮した圧縮率を最適化する圧縮アルゴリズムの選択を可能にする。
【0044】
従って、QoSプロファイル14によって提供されるような現在のQoS要求、及び装置性能プロファイル15によって提供されるようなドライブ10の性能能力によって、特定のアルゴリズムが他のものよりより選好され得る。
このような全ての因子を考慮することにより、ドライブ10は、現在の条件下で、どの圧縮アルゴリズムをバリュー2に適用するかを決定することができる。
周辺環境によって、一つの圧縮技法が他のものより状況にもっと適合することができる。
【0045】
このような実施形態は、SSDの全体性能を最適化するために、圧縮されるデータのタイプ、ドライブで利用可能なリソース、圧縮されるデータに圧縮アルゴリズムを動的に割り当てるためのユーザQoS要求を考慮する。
このような決定は、現在の条件及びQoS要求に従って、異なる圧縮アルゴリズムが特定のバリューに適用される可能性がある。
例えば、装置において他の活動からの現在の性能要求が高い場合、ユーザの全体性能要求が悪影響を受けないように、相対的に低い圧縮率を有する圧縮アルゴリズムを選択することができる。
【0046】
このような実施形態において、QoSプロファイル14、装置性能プロファイル15、、及び圧縮アルゴリズム性能チャート16からの情報が考慮される反面、他の実施形態において、上述された因子のうち、ただ一部のみが使用される圧縮アルゴリズムを決定するのに考慮されてもよい。
さらに、特定のバリューに対する好ましい圧縮アルゴリズムに影響を及ぼす可能性がある追加的な情報も考慮され得る。
【0047】
圧縮アルゴリズムが選択された場合、圧縮アルゴリズムライブラリー17は、コードを圧縮機7に提供して与えられたバリュー2の圧縮を開始する。
圧縮アルゴリズムライブラリー17は、圧縮アルゴリズムを実行するためのコードを含む。
圧縮が完了した場合、圧縮されたバリューは、出口スイッチ12を介して出力13に出力される。
【0048】
一部のモード(特に、データが停止状態の代わりに、インライン(in-line)で圧縮される場合、又は即時のQoS要求が最小限の処理を考慮した場合)において、一度の書き込みで達成される実際の圧縮率は、最適の圧縮率ではないことが有り得る。
これは、例えば、入力データに対して割り当てられた書き込みバッファーのために制限された空間(データが全て一度に分析されて圧縮されることのできない空間)、又はドライブが必要とされる他の高価値作業(high-value tasks)で占有されるために低い強度の圧縮が引き起こされる可能性がある。
【0049】
例えば、一度に、QoS要求は、ユーザが必要とするドライブ10の性能能力を維持するために、データが速く圧縮されるが、必ずしも最適の圧縮にならない、簡易圧縮(quick and dirty compression)を要求することがある。
このような状況においては、後でドライブがデータをもっと効率的に再圧縮することが可能である。
例えば、ディスクがアイドル(idle)状態であるか、さもなければ、サブジェクト情報(IE、ガベージコレクション/ウェアレベリング(garbage collection/wear leveling))を読み書きする必要がある、後の時間に、より最適の圧縮を達成することができるかどうかを判断するために、圧縮されたバリューは圧縮解除され(上述された方法を使用して)再び分析されてもよい。
このような方式において、例えば、もともとインライン(in-line)で圧縮されたデータのストリームは、休止(停止)状態(at rest)において、後でもう少し十分に圧縮することができる。
【0050】
このような再圧縮を容易にするために、圧縮情報を符号化(encode)したヒドゥン(hidden)キーを元(original)のキーに追加することができる。
このようなヒドゥンキーは、インデックス構成、検索などのような通常のキー処理に対しては無視されるが、QoS要求が低い場合など、圧縮が関連するアクティビティ(activities)と関連した場合、アクセスされる。
ヒドゥンキーは、現在使用している圧縮のタイプに対する情報及び再圧縮を始めるためのコマンドを含むことができる。
ヒドゥンキーは、新しい圧縮方式がバリューに適用されるたびに更新される。
【0051】
図3は、本発明の実施形態による、
図1の圧縮ドライブを使用して、データを圧縮し予測する方法を説明するためのフローチャートである。
図3を参照すると、使用において、圧縮ドライブ10は、圧縮予測機3を使用して特定キーバリューデータセットの圧縮性(圧縮率)を先に予測する(ステップS21)。
複数のデータセットの圧縮性(圧縮率)を予測するのは、ハードウェア処理能力まで、又はQoS要求による限界まで、独立的に又は並列に遂行することができる。
予測は、
図1を参照して説明したように、ファイル拡張子、ファイル署名、エントロピー基盤の演算、サンプル圧縮、QoS情報、及び/又は装置性能情報からの情報に基づくことができる。
【0052】
例えば、ドライブ10のオンボードコントローラー又はドライブ10のプロセッサーは、キー1において圧縮性(圧縮率)に対する手がかりを提供できるファイル拡張子又は署名を検索する。
ファイル拡張子又はファイル署名がある場合、それはオブジェクト拡張子辞書4及びオブジェクト署名辞書5によって、それぞれ圧縮予測機3に提供された情報と比較され分析されて、バリュー2の圧縮性(圧縮率)の予測を助ける。
【0053】
他の実施形態において、又はファイル署名及びファイル拡張子がキー1にない場合、ドライブ10は、バリュー2のヘッダー又は特定のオフセットでファイル署名を検索する。
ファイル署名がある場合、それはオブジェクト署名辞書5によって圧縮予測機3に提供された情報と比較され分析されて、バリュー2の圧縮性(圧縮率)の予測を助ける。
ファイル拡張子及びファイル署名がキー1及びバリュー2に全てない場合、ドライブ10は、エントロピー推定アルゴリズムライブラリー6によって提供された情報を使用して、エントロピーベースの演算を実行することができ、又はドライブ10は、上述したようなサンプル圧縮を遂行することができる。
一部の実施形態において、圧縮予測機3は、QoSプロファイル14及び/又は装置性能プロファイル15によって提供された情報を分析して圧縮性(圧縮率)の推定を助ける。
【0054】
予測は、ユーザによって設定された特定の閾値又は複数の閾値セットを満たす場合、バリュー2が圧縮されることができる閾値ベース(threshold-based)である。
複数の閾値セットは、圧縮性(圧縮率)を予測するものと関連した上述した因子の一部又は全体を考慮し、ユーザによって入力され指定することができ、又は決定テーブルの一部として入力することができる。
例えば、予測された圧縮性(圧縮率)が所定の閾値以上の場合、圧縮予測機3は、圧縮が進行するであろうと判断する。
予測された圧縮性(圧縮率)が所定の臨界値以下の場合、圧縮予測機3は、バリュー2を圧縮すべきでないと判断する。
【0055】
圧縮予測機3が、バリュー2は圧縮すべきであると判断した場合(ステップS21「はい」)、データは、受信スイッチ11を介して圧縮機7に伝送される。
次に、圧縮機7は、バリュー2を圧縮する方法を判別する(ステップS22)。
バリュー2を圧縮する方法を判別することにおいて、圧縮機7は、QoSプロファイル14、装置性能プロファイル15、及び圧縮アルゴリズム性能チャート16を含む多様な入力からの情報を考慮して、どの圧縮アルゴリズムがバリュー2に適用されるかを判別する。
【0056】
いったん圧縮アルゴリズムが選択されると、バリュー2は、圧縮アルゴリズムライブラリー17によって提供されるコードを使用して圧縮され、所与のバリュー2の圧縮を開始する(ステップS23)。
圧縮の後、圧縮されたバリューは、圧縮機7から出口スイッチ12を介して出力される(ステップS24)。
圧縮予測機3が、バリュー2は圧縮すべきでないと判断した場合(ステップS21「いいえ」)、データは、出口スイッチ12を介して出力される(ステップS24)。
【0057】
圧縮機7からの出力(ステップS24)以降、圧縮のタイプに対する情報及びバリュー2を再圧縮するコマンドが、キー1のヒドゥン領域(即ち、ヒドゥンキー)に格納される(ステップS25)。
このような情報は、例えば、QoS要求が低いか、及び/又はドライブ10が休止状態の間、以降にアクセスして圧縮を最適化するためにバリュー2を再圧縮できるかどうかを判断できる。
【0058】
なお、圧縮のない出力(ステップS24)以降、バリュー2を後で圧縮しようと試みるかに対する情報(例えば、QoS要求が以前の試みで圧縮を妨害した場合)を含むことができる。
このような情報は、圧縮を試みるためのコマンドを含むことができる。
このような圧縮は、QoS要求が低くなるか、又はドライブ10が休止状態の間、試みられ得る(矢印ステップS26)。
【0059】
上述した実施形態は、圧縮機7が、バリュー2を圧縮する方法を決定するものとして説明したが、このような手順は、圧縮予測機3によっても遂行することができる。
バリュー2を圧縮する方法を決定することにおいて、圧縮予測機3は、例えば、QoSプロファイル14、装置性能プロファイル15、及び圧縮アルゴリズム性能チャート16を含む多様な入力からの情報を同様に考慮して、どの圧縮アルゴリズムをバリュー2に適用するかを決定できる。
圧縮予測機3が適用する圧縮アルゴリズムを決定した場合、圧縮予測機3は、圧縮のために圧縮機7に情報を出力する。
【0060】
上述した実施形態を、キーバリュードライブを参照して説明したが、上述したように、圧縮性(圧縮率)を予測する手順及びデータをどのように圧縮するかを決定するのは、典型的なブロックベースのドライブにおいて使用され得る。
ブロックベースのドライブがキーバリュードライブに含まれたメタデータの大部分を含まないので、手順は、キーバリュードライブより、もう少し多くの時間及びプロセッシング電力を要求するはずである。
【0061】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【0062】
1 キー
2 バリュー
3 圧縮予測機
4 オブジェクト拡張子辞書
5 オブジェクト署名辞書
6 エントロピー推定アルゴリズムライブラリー
7 圧縮機
10 ドライブ
11 受信スイッチ
12 出口スイッチ
13 出力(バリュー)
14 QoSプロファイル
15 装置性能プロファイル
16 圧縮アルゴリズム性能チャート
17 圧縮アルゴリズムライブラリー