JP2016517066A - 記憶されたデータユニットに対する操作の管理 - Google Patents

記憶されたデータユニットに対する操作の管理 Download PDF

Info

Publication number
JP2016517066A
JP2016517066A JP2015561375A JP2015561375A JP2016517066A JP 2016517066 A JP2016517066 A JP 2016517066A JP 2015561375 A JP2015561375 A JP 2015561375A JP 2015561375 A JP2015561375 A JP 2015561375A JP 2016517066 A JP2016517066 A JP 2016517066A
Authority
JP
Japan
Prior art keywords
data
data block
block
compressed
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015561375A
Other languages
English (en)
Other versions
JP6457406B2 (ja
Inventor
エフライム メリウェザー ヴィシュニアック
エフライム メリウェザー ヴィシュニアック
ステフェン ジェイ. シュミット
ステフェン ジェイ. シュミット
Original Assignee
アビニシオ テクノロジー エルエルシー
アビニシオ テクノロジー エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アビニシオ テクノロジー エルエルシー, アビニシオ テクノロジー エルエルシー filed Critical アビニシオ テクノロジー エルエルシー
Publication of JP2016517066A publication Critical patent/JP2016517066A/ja
Application granted granted Critical
Publication of JP6457406B2 publication Critical patent/JP6457406B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

データユニットの記憶を管理するためのシステムが、複数のデータブロック(202A〜202C)を記憶するように構成されたデータ記憶システム(106)であって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接して記憶され、それによって、グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作(340)をサポートする、データ記憶システムを含む。システムは、データユニットに関連する1又は2以上の操作を実行するように構成され、操作は、第2のデータブロックが第1のデータブロックと同じサイズを有するようにして、削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作(300)を含む。

Description

関連出願の相互参照
本出願は、2013年3月6日に出願した米国特許出願第13/787,203号の優先権を主張するものである。
この説明は、記憶されたデータユニットに対する操作を管理することに関する。
データ記憶システムは、データユニットを記憶するか、取り出すか、又は削除するためのさまざまな操作を提供する。「データユニット」は、取り出され得る記憶されたデータによって表される情報の任意の単位である(例えば、データユニットは、個々のレコードを表す可能性がある)。異なるシステムは、異なる記憶フォーマット、及び操作を実行するための異なる技術を使用する可能性がある。例えば、一部のシステムに関して、データユニットを削除することは、データユニットの位置を特定するためのポインタ若しくはインデックスのエントリを削除することをともなう可能性があり、又はデータユニットを上書きすることをともなう可能性がある。データユニットは、個々に記憶されるか、或いは(同じ又は異なる表現の)複数のデータユニットを含む「データブロック」(又は「データのブロック」若しくは「圧縮されたブロック」)内に記憶される可能性がある。一部のシステムは、操作の実施形態に影響を与えるか、又はどの操作がサポートされるかにさえも影響を与える可能性があるデータ圧縮又はデータ符号化などの特徴を提供する。例えば、データの単一のブロックに圧縮された複数のデータユニットを含む記憶フォーマットは、圧縮されたブロック(例えば、古い又は期限切れのブロック)のグループの削除をサポートする可能性があるが、それらのブロック内の個々のデータユニットの削除をサポートしない可能性がある。
一態様においては、概して、データユニットの記憶を管理するためのシステムが、複数のデータブロックを記憶するように構成されたデータ記憶システムであって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接(contiguously)して記憶され、それによって、グループの少なくとも2つの隣接(adjacent)するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする(例えば、第1の読み取り操作は、ストレージインターフェースモジュール104、又はデータ記憶システムへの別のインターフェースが実行するように構成されるある種の機能又はプログラムである可能性がある)、データ記憶システムを含む。システムは、データ記憶システムに接続され、データユニットに関連する1又は2以上の操作を実行するように構成された、少なくとも1つのプロセッサを含むインターフェースであって、操作が、第2のデータブロックが第1のデータブロックと同じサイズを有するようにして、削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作を含む、インターフェースも含む。
態様は、以下の特徴のうちの1又は2以上を含み得る。
第2のデータブロックは、データ記憶システム内で第1のデータブロックに隣接していたデータブロックに隣接している。
第2のデータブロックは、第1のデータブロックと同じ記憶空間に記憶される。
削除操作は、第1のデータブロック以外のデータブロックを、削除操作が実行される前にそれらのデータブロックが記憶されていたデータ記憶システム内の同じ記憶位置に維持する。
データ記憶システムは、データブロックの少なくとも一部に関して、そのデータブロックからの1又は2以上のデータユニットの以前の削除についての対応する履歴情報を記憶するように構成され、削除は、そのデータブロックのデータユニットの少なくとも一部のアドレスに影響を与える。
操作は、特定のデータブロックに対応する任意の記憶された履歴情報に基づいて解釈されたアドレス情報に従って特定のデータブロックに記憶された少なくとも第1のデータユニットにアクセスする、第1の読み取り操作とは異なる第2の読み取り操作を含む。
削除操作は、第2のデータブロックに対応する履歴情報に削除されたデータユニットについての情報を記憶する。
履歴情報の少なくとも一部は、データ記憶システムに記憶される。
履歴情報の少なくとも一部は、異なるデータブロックの間にインターリーブされる。
特定のデータブロックに対応する履歴情報の少なくとも一部は、その特定のデータブロックの所定の部分に記憶される。
データブロックの少なくとも一部は、圧縮されたデータブロックである。
第2の読み取り操作は、特定の圧縮されたデータブロックを解凍して1組の解凍されたデータユニットを復元し、その特定の圧縮されたデータブロックに対応する履歴情報に少なくとも部分的に基づいて基準位置から特定のオフセットにある読み取られるデータユニットを取り出す。
第1の読み取り操作は、複数の圧縮されたデータブロックを解凍し、複数の解凍されたデータユニットを順次読み取る。
削除操作は、第2の圧縮されたデータブロックと第1の圧縮されたデータブロックとの間のサイズの差を補償するために第2の圧縮されたデータブロックの記憶されるサイズを拡張する。
第2の圧縮されたデータブロックの記憶されるサイズは、第2の圧縮されたデータブロックに対応する履歴情報に加えて第2の圧縮されたデータブロックに関連するオーバーヘッド情報を記憶することによって拡張される。
削除操作は、第2の圧縮されたデータブロックに関連する新しい誤り検出符号を記憶して、第1の圧縮されたデータブロックに関連する誤り検出符号を置き換える。
操作は、1組の最近追加されたデータユニットに関連して追加されるデータユニットを記憶する追加操作を含む。
プロセッサは、1組の最近追加されたデータユニットを記憶媒体に記憶される圧縮されたデータブロックとして圧縮するようにさらに構成される。
データ記憶システムは、グループのデータブロックを所定の記憶フォーマットに準拠するものとして特定するオーバーヘッド情報を記憶するように構成される。
オーバーヘッド情報は、所定の記憶フォーマットを特定するグループの各データブロックのヘッダに識別子を含む。
第1の読み取り操作は、所定の記憶フォーマットと親和性がある。
別の態様においては、概して、データユニットの記憶を管理するためのシステムが、複数のデータブロックを記憶するための手段であって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接して記憶され、それによって、グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする、手段を含む。システムは、データユニットに関連する1又は2以上の操作を実行するための手段であって、操作が、第2のデータブロックが第1のデータブロックと同じサイズを有するようにして、削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作を含む、手段も含む。
別の態様においては、概して、データユニットの記憶を管理するための方法が、データ記憶システムに複数のデータブロックを記憶するステップであって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接して記憶され、それによって、グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする、ステップを含む。方法は、少なくとも1つのプロセッサを用いて、データユニットに関連する1又は2以上の操作を実行するステップであって、操作が、第2のデータブロックが第1のデータブロックと同じサイズを有するようにして、削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作を含む、ステップも含む。
別の態様においては、概して、ソフトウェアが、データユニットの記憶を管理するためにコンピュータ可読媒体に記憶される。ソフトウェアは、コンピューティングシステムに、データ記憶システムに複数のデータブロックを記憶することであって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接して記憶され、それによって、グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする、記憶することと、データユニットに関連する1又は2以上の操作を実行することであって、操作が、第2のデータブロックが第1のデータブロックと同じサイズを有するようにして、削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作を含む、実行することとを行わせる命令を含む。
別の態様においては、概して、データユニットの記憶を管理するためのシステムが、複数のデータブロックを記憶するように構成されたデータ記憶システムであって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接して記憶され、それによって、グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする(例えば、第1の読み取り操作は、ストレージインターフェースモジュール104、又はデータ記憶システムへの別のインターフェースが実行するように構成されるある種の機能又はプログラムである可能性がある)、データ記憶システムを含む。システムは、データ記憶システムに接続され、データユニットに関連する2又は3以上の操作を実行するように構成された、少なくとも1つのプロセッサを含むインターフェースも含む。操作は、読み取られるデータユニットを含むデータブロックのアドレスに少なくとも部分的に基づいて読み取られるデータユニットを取り出す、第1の読み取り操作とは異なる第2の読み取り操作、及び削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作を含む。
態様は、以下の特徴のうちの1又は2以上を含み得る。
データ記憶システムは、データブロックの少なくとも一部に関して、そのデータブロックからの1又は2以上のデータユニットの以前の削除についての対応する履歴情報を記憶するように構成され、削除は、そのデータブロックのデータユニットの少なくとも一部のアドレスに影響を与える。
第2の読み取り操作は、特定のデータブロックに対応する任意の記憶された履歴情報に基づいて解釈されたアドレス情報に従って特定のデータブロックに記憶された少なくとも第1のデータユニットにアクセスする。
削除操作は、新しいデータブロックに対応する履歴情報に削除されたデータユニットについての情報を記憶する。
履歴情報の少なくとも一部は、データ記憶システムに記憶される。
履歴情報の少なくとも一部は、異なるデータブロックの間にインターリーブされる。
特定のデータブロックに対応する履歴情報の少なくとも一部は、その特定のデータブロックの所定の部分に記憶される。
データブロックの少なくとも一部は、圧縮されたデータブロックである。
第2の読み取り操作は、特定の圧縮されたデータブロックを解凍して1組の解凍されたデータユニットを復元し、その特定の圧縮されたデータブロックに対応する履歴情報に少なくとも部分的に基づいて基準位置から特定のオフセットにある読み取られるデータユニットを取り出す。
第1の読み取り操作は、複数の圧縮されたデータブロックを解凍し、複数の解凍されたデータユニットを順次読み取る。
削除操作は、第2の圧縮されたデータブロックと第1の圧縮されたデータブロックとの間のサイズの差を補償するために第2の圧縮されたデータブロックの記憶されるサイズを拡張する。
第2の圧縮されたデータブロックの記憶されるサイズは、第2の圧縮されたデータブロックに対応する履歴情報に加えて第2の圧縮されたデータブロックに関連するオーバーヘッド情報を記憶することによって拡張される。
削除操作は、第2の圧縮されたデータブロックに関連する新しい誤り検出符号を記憶して、第1の圧縮されたデータブロックに関連する誤り検出符号を置き換える。
操作は、1組の最近追加されたデータユニットに関連して追加されるデータユニットを記憶する追加操作を含む。
プロセッサは、1組の最近追加されたデータユニットを記憶媒体に記憶される圧縮されたデータブロックとして圧縮するようにさらに構成される。
第2の読み取り操作は、1組の解凍されたデータユニットを復元するために、特定の識別子を有するデータユニットを含むものとしてデータブロックを示すインデックスに基づいて読み取られるデータユニットを含むデータブロックの位置を特定し、解凍されたデータユニット内で読み取られるデータユニットを検索する。
データ記憶システムは、グループのデータブロックを所定の記憶フォーマットに準拠するものとして特定するオーバーヘッド情報を記憶するように構成される。
オーバーヘッド情報は、所定の記憶フォーマットを特定するグループの各データブロックのヘッダに識別子を含む。
第1の読み取り操作は、所定の記憶フォーマットと親和性がある。
別の態様においては、概して、データユニットの記憶を管理するためのシステムが、複数のデータブロックを記憶するための手段であって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接して記憶され、それによって、グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする、手段を含む。システムは、データユニットに関連する2又は3以上の操作を実行するための手段も含む。操作は、読み取られるデータユニットを含むデータブロックのアドレスに少なくとも部分的に基づいて読み取られるデータユニットを取り出す、第1の読み取り操作とは異なる第2の読み取り操作、及び削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作を含む。
別の態様においては、概して、データユニットの記憶を管理するための方法が、データ記憶システムに複数のデータブロックを記憶するステップであって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接して記憶され、それによって、グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする、ステップを含む。方法は、少なくとも1つのプロセッサを用いて、データユニットに関連する2又は3以上の操作を実行するステップも含む。操作は、読み取られるデータユニットを含むデータブロックのアドレスに少なくとも部分的に基づいて読み取られるデータユニットを取り出す、第1の読み取り操作とは異なる第2の読み取り操作、及び削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作を含む。
別の態様においては、概して、ソフトウェアが、データユニットの記憶を管理するためにコンピュータ可読媒体に記憶される。ソフトウェアは、コンピューティングシステムに、データ記憶システムに複数のデータブロックを記憶することであって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接して記憶され、それによって、グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする、記憶することと、データユニットに関連する2又は3以上の操作を実行することとを行わせるための命令を含む。操作は、読み取られるデータユニットを含むデータブロックのアドレスに少なくとも部分的に基づいて読み取られるデータユニットを取り出す、第1の読み取り操作とは異なる第2の読み取り操作、及び削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作を含む。
別の態様においては、概して、データユニットの記憶を管理するためのシステムが、複数のデータブロックを記憶するように構成され、データブロックの少なくとも一部が複数のデータユニットを含むデータ記憶システムであって、データブロックの少なくとも一部に関して、そのデータブロックからの1又は2以上のデータユニットの以前の削除についての対応する履歴情報を記憶するように構成され、削除が、そのデータブロックのデータユニットの少なくとも一部のアドレスに影響を与える、データ記憶システムを含む。システムは、データ記憶システムに接続され、第1のデータブロックに対応する任意の記憶された履歴情報に基づいて解釈されたアドレス情報に従って第1のデータブロックに記憶された少なくとも第1のデータユニットにアクセスする少なくとも1つの操作を実行するように構成された、少なくとも1つのプロセッサを含むインターフェースも含む。
態様は、以下の特徴のうちの1又は2以上を含み得る。
第1のデータブロックに対応する履歴情報は、第1のデータブロックから解凍されたデータユニットの相対的なオフセットに影響を与える第1のデータブロックからの1又は2以上のデータユニットの以前の削除についての情報を含む。
データブロックの少なくとも一部は、圧縮されたデータブロックである。
インターフェースは、データユニットに関連する2又は3以上の操作を実行するように構成され、操作は、基準アドレスに対してデータユニットの位置を特定するアドレス情報に少なくとも部分的に基づいて読み取られるデータユニットを取り出す読み取り操作と、削除されるデータユニットを削除し、削除されるデータユニットの削除が原因である基準アドレスに対するあらゆるシフトを考慮に入れるためにその他のデータユニットに関するアドレス情報を解釈するための削除されたデータユニットについての履歴情報を記憶する削除操作とを含む。
インターフェースは、データユニットに関連する2又は3以上の操作を実行するように構成され、操作は、圧縮されたデータブロックに対応する履歴情報に少なくとも部分的に基づいて読み取られるデータユニットを取り出す第1の読み取り操作と、削除されるデータユニットを含む第1の圧縮されたデータブロックを、削除されたデータユニットを含まない第2の圧縮されたデータブロックで置き換え、第2の圧縮されたデータブロックに対応する履歴情報に削除されたデータユニットについての情報を記憶する削除操作とを含む。
第1の読み取り操作は、特定の圧縮されたデータブロックを解凍して1組の解凍されたデータユニットを復元し、その特定の圧縮されたデータブロックに対応する履歴情報に少なくとも部分的に基づいて基準位置から特定のオフセットにある読み取られるデータユニットを取り出す。
第1の読み取り操作は、履歴情報が1又は2以上の既に削除されたデータユニットについての情報を含むか否かを判定する。
履歴情報が1又は2以上の既に削除されたデータユニットについての情報を含む場合、第1の読み取り操作は、既に削除されたデータユニットのうちの少なくとも1つのオフセットを示す履歴情報内の値と特定のオフセットを比較することに基づいて特定のオフセットを調整すべきか否かを判定する。
特定のオフセットが調整されるべきである場合、第1の読み取り操作は、1又は2以上の既に削除されたデータユニットのオフセット及びサイズに基づいて特定のオフセットを調整する。
削除操作は、第2の圧縮されたデータブロックと第1の圧縮されたデータブロックとの間のサイズの差を補償するために第2の圧縮されたデータブロックの記憶されるサイズを拡張する。
第2の圧縮されたデータブロックの記憶されるサイズは、第2の圧縮されたデータブロックに対応する履歴情報に加えて第2の圧縮されたデータブロックに関連するオーバーヘッド情報を記憶することによって拡張される。
削除操作は、第2の圧縮されたデータブロックに関連する新しい誤り検出符号を記憶して、第1の圧縮されたデータブロックに関連する誤り検出符号を置き換える。
操作は、1組の最近追加されたデータユニットに関連して追加されるデータユニットを記憶する追加操作を含む。
プロセッサは、1組の最近追加されたデータユニットを記憶媒体に記憶される圧縮されたデータブロックとして圧縮するようにさらに構成される。
操作は、1又は2以上の圧縮されたデータブロックを解凍し、複数の解凍されたデータユニットを順次読み取る、第1の読み取り操作とは異なる第2の読み取り操作を含む。
操作は、1組の解凍されたデータユニットを復元するために、特定の識別子を有するデータユニットを含むものとしてインデックスによって示される特定の圧縮されたデータブロックを解凍し、解凍されたデータユニット内で特定の識別子を有するデータユニットを検索する、第1の及び第2の読み取り操作とは異なる第3の読み取り操作を含む。
履歴情報の少なくとも一部は、データ記憶システムに記憶される。
履歴情報の少なくとも一部は、異なるデータブロックの間にインターリーブされる。
特定のデータブロックに対応する履歴情報の少なくとも一部は、その特定のデータブロックの所定の部分に記憶される。
別の態様においては、概して、データユニットの記憶を管理するためのシステムが、複数のデータブロックを記憶するための、データブロックの少なくとも一部が複数のデータユニットを含む手段であって、データブロックの少なくとも一部に関して、そのデータブロックからの1又は2以上のデータユニットの以前の削除についての対応する履歴情報を記憶するように構成され、削除が、そのデータブロックのデータユニットの少なくとも一部のアドレスに影響を与える、手段を含む。システムは、第1のデータブロックに対応する任意の記憶された履歴情報に基づいて解釈されたアドレス情報に従って第1のデータブロックに記憶された少なくとも第1のデータユニットにアクセスする少なくとも1つの操作を実行するための手段も含む。
別の態様においては、概して、データユニットの記憶を管理するための方法が、データ記憶システムに複数のデータブロックを記憶するステップであって、データブロックの少なくとも一部が複数のデータユニットを含み、データ記憶システムが、データブロックの少なくとも一部に関して、そのデータブロックからの1又は2以上のデータユニットの以前の削除についての対応する履歴情報を記憶するように構成され、削除が、そのデータブロックのデータユニットの少なくとも一部のアドレスに影響を与える、ステップを含む。方法は、第1のデータブロックに対応する任意の記憶された履歴情報に基づいて解釈されたアドレス情報に従って第1のデータブロックに記憶された少なくとも第1のデータユニットにアクセスする少なくとも1つの操作を、少なくとも1つのプロセッサを用いて実行するステップも含む。
別の態様においては、概して、ソフトウェアが、データユニットの記憶を管理するためにコンピュータ可読媒体に記憶される。ソフトウェアは、コンピューティングシステムに、データ記憶システムに複数のデータブロックを記憶することであって、データブロックの少なくとも一部が複数のデータユニットを含み、データ記憶システムが、データブロックの少なくとも一部に関して、そのデータブロックからの1又は2以上のデータユニットの以前の削除についての対応する履歴情報を記憶するように構成され、削除が、そのデータブロックのデータユニットの少なくとも一部のアドレスに影響を与える、記憶することと、第1のデータブロックに対応する任意の記憶された履歴情報に基づいて解釈されたアドレス情報に従って第1のデータブロックに記憶された少なくとも第1のデータユニットにアクセスする少なくとも1つの操作を実行することとを行わせるための命令を含む。
態様は、以下の利点のうちの1又は2以上を含む可能性がある。
例えば、データが顧客の要求に応じて削除されることを必要とするプライバシーに関する法律を遵守するために有用である可能性がある、圧縮されたデータストアからデータユニットを完全に削除する削除操作が、提供される。特定のアドレスのデータユニットの位置を特定するポインタ、又は基準アドレスからの相対的なオフセットは、削除されたデータユニットの削除によって影響を受ける可能性がある。しかし、それらのポインタは、削除操作が実行される時に変更される必要がないか、又は位置を特定される必要さえない。その代わりに、ポインタは、それらのデータユニットが常に実際にアクセスされる場合、必要に応じて後で補正され得る。データストアの多くの使用に関して、そのような要求に応じたポインタの補正は、削除時にポインタの位置を特定し、補正するよりも効率的である。また、多ブロックの圧縮されたデータストアの圧縮されたブロックからの削除されたデータユニットの削除は、1又は2以上の圧縮されたデータブロックから復元された複数のデータユニットをスキャンすることによってデータユニットを読み取る操作との削除操作の親和性を保つようにして実行される。例えば、削除操作は、知られている圧縮フォーマット(例えば、gzip)で記憶されたファイルに標準的な解凍機能(例えば、gzcat)を適用し、(例えば、レコードフォーマットに従って)解凍されたデータを解釈して、インデックス又はその他のアドレス情報に頼ることなく個々のレコードをデータユニットとして順次復元するスキャン読み取り操作と親和性がある可能性がある。削除操作の後にファイルが、圧縮されたデータブロックの間にいかなる間隙も持たないことを保証することによって、スキャン読み取り操作は、ファイル全体が移動されるか又は書き直される必要なしに圧縮フォーマットを引き続き正しく解析することができる。加えて、履歴情報を用いて、削除操作は、いずれかのデータユニットが、圧縮されたデータストアから既に削除されたか否かに関わりなく、アドレス情報に確かに依存する読み取り操作が適切に機能し続けるように実装され得る。
本発明のその他の特徴及び利点は、以下の説明及び請求項から明らかになるであろう。
データ記憶システムのブロック図である。 データ記憶フォーマットの概略図である。 データ操作の流れ図である。
図1は、データ記憶技術が使用され得るデータ処理システム100の例を示す。実行環境102が、データ記憶システム106に記憶されたデータユニットに関連するデータ操作を実行するように構成されたストレージインターフェースモジュール104を含む。実行環境102は、例えば、あるバージョンのUNIXオペレーティングシステムなどの好適なオペレーティングシステムの制御下の1又は2以上の汎用コンピュータでホストされる可能性がある。例えば、実行環境102は、ローカルの(例えば、対称型マルチプロセッシング(SMP,symmetric multi-processing)コンピュータなどのマルチプロセッサシステム)又はローカルに分散された(例えば、クラスタ若しくは超並列処理(MPP,massively parallel processing)システムとして接続された複数のプロセッサ)か、或いは遠隔の又は遠隔に分散された(例えば、ローカルエリアネットワーク(LAN,local area network)及び/若しくは広域ネットワーク(WAN,wide-area network)を介して接続された複数のプロセッサ)か、或いはこれらの任意の組合せかのいずれかの複数の中央演算処理装置(CPU,central processing unit)或いはプロセッサコアを用いるコンピュータシステムの構成を含むマルチノード並列コンピューティング環境を含む可能性もある。データ記憶システム106は、実行環境102のローカルにあり、例えば、実行環境102をホストするコンピュータに接続される可能性があり、又は実行環境102の遠隔にあり、例えば、リモート接続を介して実行環境102をホストするコンピュータと通信する可能性がある1又は2以上のストレージデバイスを含む。1又は2以上のストレージデバイスは、例えば、ランダムアクセスメモリ(RAM,random access memory)などの揮発性メモリ、及び磁気又はソリッドステートドライブなどの不揮発性メモリを含み得る。データ処理システム100は、ネットワーク110に接続された通信インターフェース108を介してその他のシステムからデータを受信するか又はその他のシステムにデータを提供するために使用され得る。
データ記憶システム106に記憶するためにさまざまなソースから受信された個々のアクセス可能なデータユニットは、あり得るヌル値を含む、それぞれのフィールド(「属性」又は「カラム」とも呼ばれる)の値を有するレコードとして編成される可能性がある。例えば、クレジットカード会社は、さまざまな小売り企業から個々の取引を表すデータを受信する可能性がある。それぞれの取引は、顧客名、日付、購入量などの属性を表す値に関連付けられる。ストレージインターフェースモジュール104は、取引に関連する値がレコードに記憶されるようにデータが所定のレコードフォーマットに従って書式設定されることを保証し得る。場合によっては、これは、ソースからのデータをレコードフォーマットに従って変換することを含む可能性がある。その他の場合、1又は2以上のソースが、レコードフォーマットに従って既に書式設定されたデータを提供する可能性がある。場合によっては、レコードフォーマットは、最初は知られていない可能性があり、その代わりに、ソース又はデータの分析後に決定される可能性がある。
ストレージインターフェースモジュール104は、データ記憶システム106に記憶されたデータを管理するための1組のデータ操作を提供する。例えば、プロセッサは、特定のデータ操作を実行する要求に応じてその特定のデータ操作のための記憶された命令を実行するように構成される。データ操作は、新しいデータユニットを追加するための追加操作、記憶されたデータユニットを削除するための削除操作、及び以下でより詳細に説明されるように異なる読み取りモードで記憶されたデータユニットを取り出し、読み取られるように要求された取り出されたデータユニットを返すための複数の読み取り操作を含む。データ操作は、ユーザから入力を受け取るユーザインターフェースを含むデータ処理システム100の別の部分に応答して開始される可能性がある。
一部の実施形態において、データ記憶システム106は、複数のデータユニットを圧縮することによって圧縮されたデータブロックがそれぞれ形成される記憶フォーマットでデータを記憶する圧縮されたデータストア112を含む。この圧縮の結果得られるデータブロックは、概して、それらの複数のデータユニットを圧縮された形式で表す圧縮されたデータと、圧縮されたデータの前に現れる場合は「ヘッダ」と呼ばれる可能性があり、又は圧縮されたデータの後に現れる場合は「フッタ」と呼ばれる可能性がある、データブロックの一部であるが、圧縮されたデータ自体ではない任意のその他の情報であるオーバーヘッド情報との両方を含む。一部の実施形態において、データ記憶システム106は、必ずしも圧縮されないが、共通の基準位置に対して指定されるオフセットに記憶されるなど互いに関連付けられるデータユニットの組を記憶する。ストレージインターフェースモジュール104は、一部の実施形態においては、レコードを何らかの方法で組み合わせるさまざまな技術のいずれかを用いて(つまり、ブロックが単にレコードの連結された組ではないように)データブロックを生じさせるためにデータユニットを処理することができる。それから、複数のデータユニットを含むデータブロックは、個々のデータユニットを復元するために相補的な機能(例えば、解凍)を用いて処理され得る。データブロックに含まれるデータユニットは、そのデータユニットの元の形式で記憶されない可能性があり(例えば、そのデータユニットは、異なるビットによって表される可能性がある)、各データユニットとデータブロックの記憶されたビットとの間の1対1の対応によって個々に表されない可能性がある(例えば、圧縮されたデータブロック内の任意の特定のビットは、複数のデータユニットの関数である可能性がある)。圧縮は、使用される場合、所望の機能の実行の一部である可能性がある。例えば、一部の実施形態においては、モジュール104が、1組のレコードを処理して暗号化されたデータのブロックを生じさせる。異なるデータブロックの圧縮比(すなわち、圧縮されたサイズを未圧縮のサイズで割ったもの)は概して変化し、場合によっては、一部のデータブロックの圧縮比は1を超える可能性がある。
そのような記憶フォーマットの1つの例は、参照により本明細書に組み込まれている米国特許第7,885,932号に詳細に説明されている、個々の記憶されたデータユニットの位置を特定するための任意のインデックスを用いる圧縮されたレコードファイルである。例えば、圧縮されたレコードファイルを生じさせるために、ストレージインターフェースモジュール104は、各レコードを特定する主キー値(例えば、単一のレコードを特定する一意キー、又はレコードの複数の更新されたバージョンを特定するキーのどちらか)によって、受信されたレコードをソートし、レコードを主キー値の重ならない範囲に対応するレコードの組にグループ化する。レコードの各組は、所定の数のレコード(例えば、100個のレコード)に対応する可能性がある。モジュール104は、レコードの各組をデータの圧縮されたブロックへと圧縮する。これらの圧縮されたブロックは、(例えば、ファイルの末尾に連続するブロックを追加することによって)圧縮されたレコードファイルを形成するために一緒に収集され、圧縮されたレコードファイルは、(例えば、1又は2以上のハードディスクドライブなどの不揮発性記憶媒体でホストされる)圧縮されたデータストア112に記憶される。任意の数の圧縮されたレコードファイルが、複合的な圧縮されたレコードファイルを形成するために組み合わされる可能性もある。一部の実施形態において、ストレージインターフェースモジュール104は、ブロックのそれぞれに関するエントリを含むインデックスを管理する。インデックスは、米国特許第7,885,932号に詳細に説明されているように、ブロックに含まれる可能性があるレコードの主キーの範囲を列挙することによって、所与のレコードを含む可能性があるそのブロックの位置を特定するために使用され得る。インデックスは、圧縮されたレコードファイルと同じ記憶媒体に記憶され得るが、概して、圧縮されたレコードファイルよりもずっと小さいので、比較的高速なメモリ(例えば、ダイナミックランダムアクセスメモリなどの揮発性記憶媒体)に記憶されることが好ましい可能性がある。
(追加操作によって)新しいデータユニットがデータ記憶システム106に記憶するために受信されるとき、データユニットは、最初、入力バッファ114に圧縮されていない形式で記憶される可能性がある。所定の閾値の後、例えば、特定の数のデータユニットが入力バッファ114に記憶された後、又は入力バッファ114が特定のサイズに達した後、又は特定の時間間隔の後、複数のデータユニットが、さまざまな圧縮フォーマットのいずれか(例えば、gzipフォーマット)を用いて単一の圧縮されたデータブロックへとまとめて圧縮される。そして、圧縮されたデータブロックが、圧縮されたデータストア112の圧縮されたレコードファイルのうちの1つの末尾に追加される可能性がある。
一部の実施形態においては、データが取り出され得るようにして柔軟性を提供するために、異なる読み取りモードのための異なる読み取り操作が存在する。読み取りモードのそれぞれに関して、読み取り操作によって特定される1又は2以上の圧縮されたデータブロックが解凍され、1組のデータユニットを生じる。しかし、異なる読み取りモードは、データブロックから復元された1組のデータユニットから、読み取り操作に応じて返されるデータユニットのうちの1又は2以上を取り出すために異なる技術を用いる。例えば、(「直接アドレス指定モード」と呼ばれる)第1の読み取りモードでは、(1又は2以上の)特定のデータユニットが、データユニットを含むデータブロック、データユニットの始まりの(復元された組の始まりに対する)オフセット、及びデータユニットの長さを指定するアドレス情報に基づいて取り出される。場合によっては、オフセットは、以下でより詳細に説明されるように、以前の削除が原因である潜在的な変更を補正するのに十分な、そのデータブロックからの1又は2以上のデータユニットのその以前の削除についての情報を含む履歴情報に基づいて更新される必要がある可能性がある。データユニットの長さの指定は、可変長及び/又は未指定の長さを有するデータユニットをサポートする。代替的に、一部の実施形態においては、すべてのデータユニットが同じ指定された固定長を有する場合、長さが直接アドレスに含まれる必要はない。一部の実施形態において、直接アドレスは、補足情報に基づいてデータユニットの相対的なオフセットを暗黙的に指定する可能性がある。例えば、直接アドレスは、データユニットを含むデータブロック、及び(例えば、データブロックに関連して記憶されたマッピングに基づいて)データユニットの始まりのオフセットにマッピングされるレコード識別子を指定する可能性がある。
(「スキャンモード」と呼ばれる)第2の読み取りモードでは、データユニットは、復元された組から連続するストリームとして順次読み取られる。複数の圧縮されたデータブロックを含む圧縮されたレコードファイルに関して、ファイルの終わりに到達するまで、1つの圧縮されたデータブロックの終わりに到達すると、次の圧縮されたデータブロックからのデータユニットが解凍され、読み取られる。スキャンモードでは、読み取られたデータユニットのすべてが、読み取り操作に応じて返される可能性があり、又は読み取られたデータユニットの任意のサブセットが、(例えば、選択されたフィルタに基づいて)返される可能性がある。システム100の一部の実施形態において、スキャンモードの読み取り操作は、(例えば、実行環境102で実行されるサードパーティプログラムによって、又は実行環境102の外部からデータ記憶システム106にアクセス可能なシステムによって)ストレージインターフェースモジュール104とは別のデータ記憶システム106へのインターフェースによって実行されるように構成される。
(「キー探索モード」と呼ばれる)第3の読み取りモードでは、(1又は2以上の)特定のキーを有する(1又は2以上の)レコードが、各データブロックに対応するあり得るキーの範囲を特定するインデックスにアクセスすることによって取り出される。読み取り操作で指定されるキーは、主キー、又は取り出されるデータユニットの1若しくは2以上の主キーにマッピングされる副キーである可能性がある。指定された主キーを含む範囲に対応するものとしてインデックスによって列挙されるデータブロックが解凍され、データユニットの復元された組がその主キーに関して検索される。その他の読み取り操作も、サポートされる可能性がある。例えば、読み取り操作が、主又は副キーを指定する可能性があり、そのキーが、主キー−直接アドレスルックアップテーブル(primary key-to-direct address lookup table)を用いて特定のデータユニットに関するアドレス情報にマッピングされる可能性がある。
削除操作は、圧縮されたデータストア112の任意のその他の部分が修正されることを必要とせずに、指定されたデータユニットを含む圧縮されたデータストア112の圧縮されたデータブロックからそのデータユニットが削除されることを可能にする。例えば、一部の実施形態は、圧縮されたレコードファイルの2つ以上のデータブロックが修正されることを必要とせず、データブロック又はファイルに関するいかなるインデックスが修正されることも必要としない。これは、例えば、特定のデータユニットが、除去される必要がある情報(例えば、プライバシーに関する法律によって、顧客の要求に応じて削除される必要がある顧客情報)を含むが、同じブロック又は同じ圧縮されたレコードファイルのその他のデータユニットは引き続き保有される必要がある場合に有用である。削除操作は、削除されるデータユニットを含む圧縮されたデータブロックを削除されたデータユニットを含まない新しい圧縮されたデータブロックで置き換え、新しい圧縮されたデータブロックに関連する履歴情報に削除されたデータユニットについての情報を記憶する。履歴情報は、圧縮されたデータストア112に(例えば、ヘッダ若しくはフッタなどの圧縮されたデータブロックの所定の部分、又は異なる圧縮されたデータブロックの間にインターリーブされたその他のオーバーヘッド情報若しくは利用可能な空間に)圧縮されたデータブロックと一緒に記憶され得る。履歴情報は、例えば、削除されたデータユニットのオフセット及びそれらのデータユニットの長さのリストを含み得る。
この履歴情報を用いて、新しい圧縮されたデータブロックに残るその他のデータユニットは、任意の削除されたデータユニットが原因である任意のシフトを考慮に入れるために履歴情報に従って解釈された既存のアドレス情報を使用して引き続き後でアクセスされ得る。特に、削除されたデータユニットの後のデータブロックから復元された組に配置されたデータユニットに関するすべての既存の直接アドレスのオフセットは、削除操作の時に更新される必要がなく、このことは、効率に寄与し得る。比較的少ない数の記憶されたデータユニットが直接アドレス指定モードで読み取り操作を用いて読み取られると予想される場合に関しては、要求に応じてオフセットを調整するために履歴情報を書き込むことが、読み取られない可能性があるデータユニットに関する(例えば、インデックスに記憶された)潜在的に多数の記憶された直接アドレスのオフセットを更新することよりも効率的である可能性がある。さらに、一部の実施形態においては、ストレージインターフェースモジュール104が、直接アドレスのオフセットが記憶され得る位置のすべてにアクセスできるわけではない可能性があり、したがって、オフセットのすべてを更新することは必ずしもできないことになる。
図2を参照すると、圧縮されたデータストア112に関するデータ記憶フォーマットの例が、データブロック202A〜202Cを含むいくつかの圧縮されたデータブロックを含む圧縮されたレコードファイル200を含む。この例において、データブロック202Bは、ヘッダ204及びフッタ206を含む。ヘッダ204は、データブロック202Bの圧縮及び解凍についての情報並びにその他の関連する情報を記憶するフィールドを含む。フッタ206は、圧縮及び解凍プロセスで誤りを検出及び/又は訂正するための巡回冗長検査(CRC,cyclic redundancy check)又はその他のチェックサムなどの誤り検出符号を含む。データブロック202B内の圧縮されたデータ208のセクションは、圧縮されたレコードファイル200に記憶されたレコードの組210を復元するために解凍され得る。一部の圧縮フォーマットに関して、ヘッダ204は、可変長であり、したがって、ヘッダ204がどこで終わるか及び圧縮されたデータ208がどこで始まるかを示す情報を含む。
例えば、gzip圧縮フォーマットでは、ヘッダ204は、初めの10バイトの6つの必須フィールドと、可変長のフィールドを含む最大6つの任意のフィールドとを含む、以下のテーブルに列挙されたフィールドを有する。
Figure 2016517066
gzip圧縮フォーマットは、4バイトのCRCコードと、圧縮された元のデータの未圧縮のサイズのモジュロ232を与える4バイトの値とを含む8バイトのフッタも有する。それぞれがそれ自体のgzipヘッダ及びフッタを有し、互いに隣接して(つまり、次のヘッダが前のフッタの直後に始まるように)記憶された2又は3以上の圧縮されたデータブロックが、単一の有効なgzipファイルとして認識され得る。
(例えば、インデックスによって)削除される1又は2以上のレコード(例えば、レコードC及びレコードE)がデータブロック202Bに含まれるものとして示される削除操作をストレージインターフェースモジュール104が実行するとき、モジュール104は、圧縮されたデータ208を解凍してレコードの組210を復元し、削除されるレコードを除くレコードの新しい組212を生じさせ、レコードの新しい組212を修正された圧縮されたデータ208’へと圧縮する。レコードの新しい組212がレコードの元の組210よりも少ない情報の内容を含むので、(削除される可能性がある任意の所与のレコードの特定の最小の情報の内容を仮定して)修正された圧縮されたデータ208’は元の圧縮されたデータ208よりも小さいサイズを有する。それから、圧縮されたデータ208を記憶したデータブロック202Bのセクションが、修正された圧縮されたデータ208’によって置き換えられ、元のヘッダ204及びフッタ206が、修正されたデータブロック202B’に一緒に対応する修正されたヘッダ204’及びフッタ206’によって置き換えられる。修正されたデータ208’が元のデータ208よりも少ない記憶空間を占有するので、修正されたヘッダ204’が元のヘッダ204よりも多くの記憶空間を占有するのに利用可能な記憶空間が存在する。この余分な記憶空間が、利用可能な可変長フィールド(例えば、gzip圧縮フォーマットの余分なフィールド(Extra Field))に履歴情報214を記憶するために使用される。
ほとんどのレコードフォーマットに関して、修正されたヘッダ204’に履歴情報214を収容するために必要とされる記憶空間は、単一のレコードが削除された後でさえも、修正されたデータ208’の予測されるサイズの減少よりも小さい可能性が高い。サイズが履歴情報214を完全に収容するのに十分なだけ削減されないという起こりそうにない出来事では、関連する削除操作が取り消される可能性があり、誤りメッセージが返される可能性がある。修正されたデータブロック202B’が元のデータブロック202Bと同じ合計サイズを有することを保証するために、ヘッダは、同じ又は別の可変長フィールド(例えば、gzip圧縮フォーマットのコメントフィールド)に反復されるバイトパターン(例えば、0xffを含む任意の数のバイト)又はその他のオーバーヘッド情報などのパディング218を書き込むことによって、必要に応じて伸ばされる可能性もある。レコードの削除が履歴情報のための十分な空間を提供しない可能性がある実施形態に関しては(例えば、特にぎっしり詰まったレコード構造に関しては)、圧縮されたデータブロックが初めに生じさせられるときに、パディングをヘッダに含めることができていてもよい。そして、この初期パディングが、履歴情報のためのヘッダ内の追加の空間を提供するために必要に応じて削減される可能性がある。
上述のように、履歴情報214は、新しいより小さい組212の残りのレコードの直接アドレスのオフセットが共通の基準記憶位置(例えば、復元されたレコードの新しい組212にレコードを順次記憶するアドレス空間の開始アドレス)に対して必要に応じて補正されるのに十分な情報で、レコードの組210から削除されたレコードを要約する。履歴情報214を符号化するために使用され得るデータ構造215の例は、レコードの元の組の第1のレコードの始まりに対する削除されたレコードのオフセット(その第1のレコードが現在存在しているかどうか)と、そのレコードの対応する長さとをそれぞれが有する要素216のリストである。図2に示された例においては、削除されたレコードC及びレコードEのそれぞれに関する2つの要素216が存在する。レコードの長さの符号化は、可変長及び/又は未指定の長さを有するレコードをサポートする。代替的に、その他の例においては、すべてのレコードが同じ指定された固定長を有する場合、長さは、要素216に記憶される必要がない。要素216は、それらの要素のオフセット値の順序でソートされたリストに現れる。さらなるレコードを削除するためにさらなる削除操作が実行されるとき、さらなる要素216が、リストの末尾に追加されるか又はリストに挿入される。
さまざまな符号化技術が、効率的にこのデータ構造215を記憶するために使用され得る。例えば、2又は3以上の隣接した削除されたレコードの任意のシーケンスが、シーケンスの第1のレコードのオフセットと、シーケンスのレコードの長さの合計に等しい長さとを含む単一の要素216へと縮められる可能性がある。したがって、各要素216は、既に削除された任意の数のレコードを記憶した既に削除された領域を表す可能性がある。場合によっては、隣接した削除されたレコードは、異なる削除操作で削除された可能性がある。各要素216は、オフセットを記憶するための所定の数のビットと長さを記憶するための所定の数のビットとを用いてヘッダ204’の可変長フィールドのビットの隣接するスロットに記憶される可能性がある。オフセットの値を記憶するために使用される記憶空間の量は、あり得ると予想される最大のあり得るオフセットを記憶するのに十分な比較的少ない数のビットに制限され得る。長さの値を記憶するために使用される記憶空間の量も、(例えば、縮められた要素を可能にするために、オフセットを記憶するために使用される同じ数のビットに)制限され得る。オフセット及び長さの値は、どの値があり得るのかについての仮定に基づいてやはり圧縮され得る。例えば、レコードが常に偶数個のビットを占有することが知られている場合、オフセット及び長さの値は、特定の数のビットのペアを符号化するものと解釈され得る。したがって、8ビットが、最大で255x2=510ビットまでの値を符号化する可能性がある。同様に、レコードが常に、何らかの数にある乗数をかけた数のビットである記憶空間を占有することが知られている場合、オフセット及び長さの値は、実際のビット数とは対照的に、ある数にその乗数をかけた数を符号化するものと解釈され得る。このデータ構造215は、(例えば、ランレングス符号化を用いて)さらに圧縮されてもよい可能性がある。
図3Aは、それぞれが三つ組み(BLOCK,OFFSET,LENGTH)に対応する直接アドレスを有する1又は2以上のレコードを削除するために実行される削除操作の例に関する流れ図300を示す。(この例においては、単一のブロックの1又は2以上のレコードが削除されているが、その他の例においては、任意の数のブロックからのレコードが削除操作で削除される可能性がある。)ストレージインターフェースモジュール104が、識別子BLOCKを有する圧縮されたデータストア112のデータブロックをアドレスSTARTで始まるアドレス空間に解凍する(302)。モジュール104は、(長さLENGTHの)アドレスSTART+OFFSETのレコードを削除する(304)。モジュール104は、値OFFSET及びLENGTHを符号化する履歴情報を計算する(306)。モジュール104は、このブロックから削除するさらなるレコードが存在するかどうかを判定し(308)、存在する場合、削除(304)ステップ及び計算(306)ステップを繰り返す。レコードが削除された後、モジュール104は、(1又は2以上の)省かれたレコードがあった場所のいかなる間隙もないように、残りのレコードが隣接するメモリ空間の部分に(例えば、一時ファイルに)レコードの新しい組を書き込み、レコードの新しい組を圧縮する(310)。モジュール104は、計算された履歴情報のデータ構造及び任意の必要なパディングをブロックBLOCKのヘッダに書き込む(312)。モジュール104は、結果として得られる圧縮されたデータを、そのデータがブロックBLOCKで元の圧縮されたデータと同じ位置で終わるように、圧縮されたデータストア112のブロックBLOCKに書き込む(314)。モジュール104は、新しい圧縮されたデータに関する誤り検出符号を有する(前のフッタを置き換える)新しいフッタを書き込む(316)。
削除されているレコードの情報を実際に削除するそのような「抹消する」削除操作に加えて、ストレージインターフェースモジュール104は、レコードの情報を実際には削除せずに、削除されるべきレコードを単に隠すか又はこれにフラグを立てるその他の削除操作を提供するように構成される可能性もある。これらの削除操作は、履歴情報の書き込み、又はブロックの解凍さえ必要としない可能性があり、このことは、より速いが安全性の劣る削除の形式を提供するのに有用である可能性がある。しかし、例えば、何らかのプライバシーに関する法律によって要求されるように、情報が復元され得ないように情報を除去するためのより厳しい要件を満たすために、完全に抹消する削除操作も利用可能である可能性がある。
図3Bは、それぞれが三つ組み(BLOCK,OFFSET,LENGTH)に対応する直接アドレスを有する1又は2以上のレコードを読み取るために実行される第1の(直接アドレス指定)読み取り操作の例に関する流れ図320を示す。(この例においては、単一のブロックの1又は2以上のレコードが読み取られているが、その他の例においては、任意の数のブロックからのレコードが読み取り操作で読み取られる可能性がある。)ストレージインターフェースモジュール104が、識別子BLOCKを有する圧縮されたデータストア112のデータブロックをアドレスSTARTで始まるアドレス空間に解凍する(322)。モジュール104は、読み取られるレコードのアドレスをSTART+OFFSET−CORRECTIONとして計算し(324)、ここで、CORRECTIONは、ブロックBLOCKに関する任意の既存の履歴情報に基づいて計算される。例えば、モジュール104は、OFFSET未満のオフセット値を有し、OFFSETの前で終わる既に削除された領域がいくつあるかを判定する。ない場合、補正は不要であり、CORRECTION=0である。そうでない場合、CORRECTIONは、OFFSET未満のオフセット値を有するそれぞれの既に削除された領域の長さの合計に等しい。したがって、既に削除された領域を補償するための補正は、読み取られる特定のレコードとレコードの組の始まりとの間に既に削除されたレコードが元々いくつ存在したかに依存する。アドレスを計算した後、モジュール104は、計算されたアドレスのレコードを読み取る(326)。既に削除された領域がOFFSET以下のオフセット値を有するが、OFFSETの前で終わらない場合、計算されたアドレスは、その既に削除された領域に入り、モジュール104は、読み取りステップ326を飛ばし、その代わりに、読み取られるレコードが既に削除されたことを報告する。モジュール104は、読み取られるさらなるレコードが存在するかどうかを判定し(328)、存在する場合、計算ステップ(324)及び読み取りステップ(326)を繰り返す。ブロックに読み取られるさらなるレコードが存在しないとき、操作が戻る(330)。
第1の(直接アドレス指定)読み取り操作のその他の実施形態も、あり得る。例えば、読み取られるそれぞれのレコードに関する補正されたアドレスを計算する代わりに、圧縮されたデータブロックを解凍した後に復元されたレコードが、削除されたレコードがあった場所の適切な間隙とともにアドレス空間に書き込まれる可能性がある。それらの間隙があるべき場所を判定するために必要な情報が、上述の同じ履歴情報から導出され得る。そして、読み取り操作は、その補正されていないアドレスSTART+OFFSETの各レコードの読み取りに進む可能性がある。
図3Cは、レコードが読み取られるべきである圧縮されたレコードファイル内の1又は2以上のブロックをスキャンする第2の(スキャン)読み取り操作の例に関する流れ図340を示す。ストレージインターフェースモジュール104が、圧縮されたデータストア112の第1のデータブロックをアドレス空間に解凍する(342)。モジュール104は、(例えば、各レコードの始まり及び/又は各レコードの終わりを認識することによって)それぞれの個々のレコードを読み取るためにアドレス空間をスキャンする(344)。モジュール104は、(例えば、別のgzipのマジックヘッダを検出することによって)ファイル内に別のデータブロックが存在するかどうかを判定し(346)、存在する場合、さらなるレコードを読み取るために次のデータブロックを解凍する(342)。(例えば、ファイルの終わりを検出することによって)ファイルに読み取られるさらなるデータブロックが存在しないとき、操作が戻る(348)。
(例えば、削除されたレコードを、すべて1又は0ビットなどの所定のパターンで間隙が埋められるようにしてインプレースで上書きすることによって)履歴情報を記憶する必要なしにレコードを完全に抹消する方法で抹消削除操作を実装することが可能であるが、そのような削除操作は、これらの削除されたレコードを認識し、無視するためにスキャンモード読み取り操作を必要とする。削除されたレコードがあった場所の間隙を削除し、その情報を代わりに履歴情報に残すことによって、スキャンモード読み取り操作は、(例えば、サードパーティソフトウェアを用いる)ストレージインターフェースモジュール104以外のモジュールによることを含め、圧縮されたデータストア112の情報を読み取るために使用され得るさまざまな技術のいずれかと親和性がある柔軟な方法で実装され得る。さらに、(例えば、修正されたヘッダ204’のフィールドを埋めることによって)より小さな修正された圧縮されたデータ208’がより大きな元の圧縮されたデータ208を置き換えた後に残る余分な空間を埋めることによって、圧縮されたレコードファイルに予期しない間隙が存在せず、第2の(スキャン)読み取り操作がそれぞれの圧縮されたデータブロックを正常に認識することを可能にする。例えば、gzipフォーマットを用いる実施形態においては、フッタの後に、モジュール104は、圧縮されたデータブロックの別の始まり(すなわち、別のgzipのマジックヘッダ)か、又は圧縮されたレコードファイルの終わりのインジケータかのどちらかを予想する。このようにして削除操作によって修正されている圧縮されたデータブロックのサイズを大きくすることは、修正されている圧縮されたデータブロックの後に現れる圧縮されたレコードファイルの圧縮されたデータブロックのいずれかの記憶位置をシフトする必要なしに、このスキャンモードの親和性が維持されることを可能にする。
図3Dは、それぞれが特定するキー値を有する1又は2以上のレコードを読み取るために実行される第3の(キー探索)読み取り操作の例に関する流れ図360を示す。ストレージインターフェースモジュール104が、識別子BLOCKを有する圧縮されたデータストア112のデータブロックをアドレス空間に解凍する(362)。モジュール104は、与えられたキー値を有する任意のレコードの位置を特定するためにアドレス空間内のレコードを検索する(364)。
複数の同時のデータ操作が実行されることを可能にするために、ストレージインターフェースモジュール104、又は圧縮されたデータストア112にアクセスするその他のモジュール若しくはシステムによって、2つのデータ操作の間の衝突を回避するための技術が使用され得る。削除操作が比較的頻繁でないと予想される場合、圧縮されたデータブロックのフッタの誤り検出符号が、圧縮されたデータを削除操作中に更新させるプロセス中にある、データブロックを検出するために解凍後のデータ操作によって使用され得る。例えば、無効なチェックサムの後、データ操作は、エラーメッセージを出力するか、又は削除操作を完了することができるように遅延の後に再び試みるかのどちらかを行う可能性がある。削除操作が比較的頻繁であると予想される場合、そのような衝突を防止するためにロックメカニズムが使用される可能性がある。
上述のデータ記憶技術は、好適なソフトウェアを実行するコンピューティングシステムを用いて実装され得る。例えば、ソフトウェアは、それぞれが少なくとも1つのプロセッサ、(揮発性及び/又は不揮発性メモリ及び/又はストレージ要素を含む)少なくとも1つのデータ記憶システム、(少なくとも1つの入力デバイス又はポートを用いて入力を受け取るため、及び少なくとも1つの出力デバイス又はポートを用いて出力を与えるための)少なくとも1つのユーザインターフェースを含む(分散型、クライアント/サーバ、又はグリッドなどのさまざまなアーキテクチャである可能性がある)1又は2以上のプログラミングされた又はプログラミング可能なコンピュータシステムで実行される1又は2以上のコンピュータプログラムの手順を含み得る。ソフトウェアは、例えば、データフローグラフの設計、構成、及び実行に関連するサービスを提供するより大きなプログラムの1又は2以上のモジュールを含む可能性がある。プログラムのモジュール(例えば、データフローグラフの要素)は、データリポジトリに記憶されたデータモデルに準拠するデータ構造又はその他の編成されたデータとして実装され得る。
ソフトウェアは、CD−ROM又は(例えば、汎用若しくは専用のコンピューティングシステム若しくはデバイスによって読み取り可能な)その他のコンピュータ可読媒体などの有形の非一時的媒体で提供されるか、或いはそのソフトウェアが実行されるコンピューティングシステムの有形の非一時的媒体にネットワークの通信媒体を介して配信される(例えば、伝播信号で符号化される)可能性がある。処理の一部又はすべては、専用のコンピュータで、又はコプロセッサ若しくはフィールドプログラマブルゲートアレイ(FPGA:field-programmable gate array)若しくは専用の特定用途向け集積回路(ASIC:application-specific integrated circuit)などの専用のハードウェアを用いて実行される可能性がある。処理は、ソフトウェアによって指定された計算の異なる部分が異なる計算要素によって実行される分散された方法で実装される可能性がある。それぞれのそのようなコンピュータプログラムは、本明細書において説明された処理を実行するためにストレージデバイスの媒体がコンピュータによって読み取られるときにコンピュータを構成し、動作させるために、汎用又は専用のプログラミング可能なコンピュータによってアクセス可能なストレージデバイスのコンピュータ可読記憶媒体(例えば、ソリッドステートメモリ若しくは媒体、又は磁気式若しくは光学式媒体)に記憶されるか又はダウンロードされることが好ましい。本発明のシステムは、コンピュータプログラムで構成された有形の非一時的媒体として実装されると考えられる可能性もあり、そのように構成された媒体は、本明細書において説明された処理ステップのうちの1又は2以上を実行するために特定の予め定義された方法でコンピュータを動作させる。
本発明のいくつかの実施形態が、説明された。しかしながら、上述の説明は、以下の請求項の範囲によって画定される本発明の範囲を例示するように意図されており、限定するように意図されていないことを理解されたい。したがって、その他の実施形態も、以下の請求項の範囲内にある。例えば、本発明の範囲を逸脱することなくさまざまな修正がなされ得る。さらに、上述のステップの一部は、順番に依存しない可能性があり、したがって、説明された順番とは異なる順番で実行され得る。

Claims (24)

  1. データユニットの記憶を管理するためのシステムであって、
    複数のデータブロックを記憶するように構成されたデータ記憶システムであって、前記データブロックの少なくとも一部が、複数のデータユニットを含み、前記データブロックの少なくとも1グループが隣接して記憶され、それによって、前記グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする、データ記憶システムと、
    前記データ記憶システムに接続され、データユニットに関連する1又は2以上の操作を実行するように構成された、少なくとも1つのプロセッサを含むインターフェースであって、前記操作が、第2のデータブロックが第1のデータブロックと同じサイズを有するように、削除されるデータユニットを含む前記第1のデータブロックを、前記削除されたデータユニットを含まない前記第2のデータブロックで置き換え、前記第2のデータブロックに関連するオーバーヘッド情報を記憶する削除操作を含む、インターフェースとを含む、システム。
  2. 第2のデータブロックが、データ記憶システム内で第1のデータブロックに隣接していたデータブロックに隣接している請求項1に記載のシステム。
  3. 第2のデータブロックが、第1のデータブロックと同じ記憶空間に記憶される請求項1又は2に記載のシステム。
  4. 削除操作が、第1のデータブロック以外のデータブロックを、前記削除操作が実行される前に前記データブロックが記憶されていたデータ記憶システム内の同じ記憶位置に維持する請求項1、2、及び3のいずれかに記載のシステム。
  5. データ記憶システムが、データブロックの少なくとも一部に関して、前記データブロックからの1又は2以上のデータユニットの以前の削除についての対応する履歴情報を記憶するように構成され、前記削除が、前記データブロックのデータユニットの少なくとも一部のアドレスに影響を与える請求項1〜4のいずれかに記載のシステム。
  6. 操作が、特定のデータブロックに対応する任意の記憶された履歴情報に基づいて解釈されたアドレス情報に従って前記特定のデータブロックに記憶された少なくとも第1のデータユニットにアクセスする、第1の読み取り操作とは異なる第2の読み取り操作を含む請求項5に記載のシステム。
  7. 削除操作が、第2のデータブロックに対応する履歴情報に削除されたデータユニットについての情報を記憶する請求項5又は6に記載のシステム。
  8. 履歴情報の少なくとも一部が、データ記憶システムに記憶される請求項5、6、及び7のいずれかに記載のシステム。
  9. 履歴情報の少なくとも一部が、異なるデータブロックの間にインターリーブされる請求項8に記載のシステム。
  10. 特定のデータブロックに対応する履歴情報の少なくとも一部が、前記特定のデータブロックの所定の部分に記憶される請求項8又は9に記載のシステム。
  11. データブロックの少なくとも一部が、圧縮されたデータブロックである請求項1〜10のいずれかに記載のシステム。
  12. 第2の読み取り操作が、特定の圧縮されたデータブロックを解凍して1組の解凍されたデータユニットを復元し、前記特定の圧縮されたデータブロックに対応する履歴情報に少なくとも部分的に基づいて基準位置から特定のオフセットにある読み取られるデータユニットを取り出す請求項11に記載のシステム。
  13. 第1の読み取り操作が、複数の圧縮されたデータブロックを解凍し、複数の解凍されたデータユニットを順次読み取る請求項11又は12に記載のシステム。
  14. 削除操作が、第2の圧縮されたデータブロックと第1の圧縮されたデータブロックとの間のサイズの差を補償するために前記第2の圧縮されたデータブロックの記憶されるサイズを拡張する請求項11〜13のいずれかに記載のシステム。
  15. 第2の圧縮されたデータブロックの記憶されるサイズが、前記第2の圧縮されたデータブロックに対応する履歴情報に加えて前記第2の圧縮されたデータブロックに関連するオーバーヘッド情報を記憶することによって拡張される請求項14に記載のシステム。
  16. 削除操作が、第2の圧縮されたデータブロックに関連する新しい誤り検出符号を記憶して、第1の圧縮されたデータブロックに関連する誤り検出符号を置き換える請求項11〜15のいずれかに記載のシステム。
  17. 操作が、1組の最近追加されたデータユニットに関連して追加されるデータユニットを記憶する追加操作を含む請求項11〜16のいずれかに記載のシステム。
  18. プロセッサが、1組の最近追加されたデータユニットを記憶媒体に記憶される圧縮されたデータブロックとして圧縮するようにさらに構成される請求項17に記載のシステム。
  19. データ記憶システムが、グループのデータブロックを所定の記憶フォーマットに準拠するものとして特定するオーバーヘッド情報を記憶するように構成される請求項1〜18のいずれかに記載のシステム。
  20. オーバーヘッド情報が、所定の記憶フォーマットを特定するグループの各データブロックのヘッダに識別子を含む請求項19又は20に記載のシステム。
  21. 第1の読み取り操作が、所定の記憶フォーマットと親和性がある請求項19に記載のシステム。
  22. データユニットの記憶を管理するためのシステムであって、
    複数のデータブロックを記憶するための手段であって、前記データブロックの少なくとも一部が、複数のデータユニットを含み、前記データブロックの少なくとも1グループが隣接して記憶され、それによって、前記グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする、手段と、
    データユニットに関連する1又は2以上の操作を実行するための手段であって、前記操作が、第2のデータブロックが第1のデータブロックと同じサイズを有するようにして、削除されるデータユニットを含む前記第1のデータブロックを、前記削除されたデータユニットを含まない前記第2のデータブロックで置き換え、前記第2のデータブロックに関連するオーバーヘッド情報を記憶する削除操作を含む、手段とを含む、システム。
  23. データユニットの記憶を管理するための方法であって、
    データ記憶システムに複数のデータブロックを記憶するステップであって、前記データブロックの少なくとも一部が、複数のデータユニットを含み、前記データブロックの少なくとも1グループが隣接して記憶され、それによって、前記グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする、ステップと、
    少なくとも1つのプロセッサを用いて、データユニットに関連する1又は2以上の操作を実行するステップであって、前記操作が、第2のデータブロックが第1のデータブロックと同じサイズを有するようにして、削除されるデータユニットを含む前記第1のデータブロックを、前記削除されたデータユニットを含まない前記第2のデータブロックで置き換え、前記第2のデータブロックに関連するオーバーヘッド情報を記憶する削除操作を含む、ステップとを含む、方法。
  24. データユニットの記憶を管理するための、コンピュータ可読媒体に記憶されたソフトウェアであって、コンピューティングシステムに、
    データ記憶システムに複数のデータブロックを記憶することであって、前記データブロックの少なくとも一部が、複数のデータユニットを含み、前記データブロックの少なくとも1グループが隣接して記憶され、それによって、前記グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする、記憶することと、
    データユニットに関連する1又は2以上の操作を実行することであって、前記操作が、第2のデータブロックが第1のデータブロックと同じサイズを有するようにして、削除されるデータユニットを含む前記第1のデータブロックを、前記削除されたデータユニットを含まない前記第2のデータブロックで置き換え、前記第2のデータブロックに関連するオーバーヘッド情報を記憶する削除操作を含む、実行することとを行わせるための命令を含む、ソフトウェア。
JP2015561375A 2013-03-06 2014-02-18 記憶されたデータユニットに対する操作の管理 Active JP6457406B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/787,203 2013-03-06
US13/787,203 US9875054B2 (en) 2013-03-06 2013-03-06 Managing operations on stored data units
PCT/US2014/016858 WO2014137587A1 (en) 2013-03-06 2014-02-18 Managing operations on stored data units

Publications (2)

Publication Number Publication Date
JP2016517066A true JP2016517066A (ja) 2016-06-09
JP6457406B2 JP6457406B2 (ja) 2019-01-23

Family

ID=50280468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015561375A Active JP6457406B2 (ja) 2013-03-06 2014-02-18 記憶されたデータユニットに対する操作の管理

Country Status (9)

Country Link
US (1) US9875054B2 (ja)
EP (1) EP2965189B1 (ja)
JP (1) JP6457406B2 (ja)
KR (1) KR102319657B1 (ja)
CN (1) CN105009067B (ja)
AU (2) AU2014226448A1 (ja)
CA (1) CA2902873C (ja)
HK (1) HK1215974A1 (ja)
WO (1) WO2014137587A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013186327A1 (en) * 2012-06-13 2013-12-19 Telefonaktiebolaget L M Ericsson (Publ) Data compression in a communications network
US10133500B2 (en) 2013-03-06 2018-11-20 Ab Initio Technology Llc Managing operations on stored data units
US9959070B2 (en) 2013-03-06 2018-05-01 Ab Initio Technology Llc Managing operations on stored data units
US9286336B2 (en) 2013-03-12 2016-03-15 Sap Se Unified architecture for hybrid database storage using fragments
US9277234B1 (en) * 2014-08-27 2016-03-01 Adobe Systems Incorporated Common copy compression
US10146820B2 (en) * 2015-09-24 2018-12-04 Nxp Usa, Inc. Systems and methods to access memory locations in exact match keyed lookup tables using auxiliary keys
US10210236B2 (en) 2015-11-23 2019-02-19 Ab Initio Technology Llc Storing and retrieving data of a data cube
KR101780652B1 (ko) * 2016-03-11 2017-09-21 주식회사 이디엄 열-지향 레이아웃 파일 생성 방법
US10853364B2 (en) * 2016-09-28 2020-12-01 Microsoft Technology Licensing, Llc Direct table association in in-memory databases
US10942914B2 (en) 2017-10-19 2021-03-09 Adobe Inc. Latency optimization for digital asset compression
US11120363B2 (en) 2017-10-19 2021-09-14 Adobe Inc. Latency mitigation for encoding data
US11086843B2 (en) 2017-10-19 2021-08-10 Adobe Inc. Embedding codebooks for resource optimization
CN108965295B (zh) * 2018-07-17 2021-09-17 郑州云海信息技术有限公司 一种文件压缩合并方法及相关装置
US10915503B2 (en) 2018-11-29 2021-02-09 International Business Machines Corporation Efficient detection of available space in a file system space map
US11704035B2 (en) 2020-03-30 2023-07-18 Pure Storage, Inc. Unified storage on block containers
US11740820B1 (en) * 2022-05-11 2023-08-29 Netapp, Inc. Block allocation methods and systems in a networked storage environment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160439A (ja) * 1993-12-03 1995-06-23 Matsushita Electric Ind Co Ltd データ記憶装置及び主制御装置
JP2000339207A (ja) * 1999-05-25 2000-12-08 Sony Corp 記録媒体、データ処理装置
JP2004258865A (ja) * 2003-02-25 2004-09-16 Canon Inc 情報処理方法
US20100278446A1 (en) * 2009-04-30 2010-11-04 Oracle International Corporation Structure of hierarchical compressed data structure for tabular data

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10500520A (ja) 1994-03-03 1998-01-13 シーラス ロジック, インコーポレイテッド Idフィールドなしの自動トラック処理のための欠陥マネジメント
US6604236B1 (en) 1998-06-30 2003-08-05 Iora, Ltd. System and method for generating file updates for files stored on read-only media
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US7882081B2 (en) * 2002-08-30 2011-02-01 Netapp, Inc. Optimized disk repository for the storage and retrieval of mostly sequential data
US7890469B1 (en) 2002-12-30 2011-02-15 Symantec Operating Corporation File change log
US7472254B2 (en) 2003-10-10 2008-12-30 Iora, Ltd. Systems and methods for modifying a set of data objects
US20050198062A1 (en) 2004-03-05 2005-09-08 Shapiro Richard B. Method and apparatus for accelerating data access operations in a database system
US7386663B2 (en) 2004-05-13 2008-06-10 Cousins Robert E Transaction-based storage system and method that uses variable sized objects to store data
US8090691B2 (en) 2004-08-13 2012-01-03 Computer Associates Think, Inc. System and method for variable block logging with log-ahead buffers
US20060184563A1 (en) 2005-02-14 2006-08-17 Potter David H Method and apparatus for temporal database
US9501492B2 (en) 2006-10-24 2016-11-22 Marvell World Trade Ltd. Combination journaling/non-journaling file system
US7885932B2 (en) 2006-11-01 2011-02-08 Ab Initio Technology Llc Managing storage of individually accessible data units
US8229902B2 (en) 2006-11-01 2012-07-24 Ab Initio Technology Llc Managing storage of individually accessible data units
US8156241B1 (en) * 2007-05-17 2012-04-10 Netapp, Inc. System and method for compressing data transferred over a network for storage purposes
US7836099B2 (en) 2007-07-31 2010-11-16 Yahoo! Inc. Mail compression scheme with individual message decompressability
TW200910187A (en) 2007-08-21 2009-03-01 Sunplus Mmobile Inc Logged FAT file system and method of accessing the same
KR100926631B1 (ko) 2007-09-14 2009-11-11 (주)밀레니엄 포스 데이터 보안장치
US8045285B1 (en) 2008-03-25 2011-10-25 Marvell International Ltd. Data synchronization for bit insertion or deletion
US20090287986A1 (en) 2008-05-14 2009-11-19 Ab Initio Software Corporation Managing storage of individually accessible data units
CN101582067A (zh) 2008-05-15 2009-11-18 国际商业机器公司 解压压缩文件时减小存储需求的方法和系统
CN101320372B (zh) * 2008-05-22 2012-07-04 上海爱数软件有限公司 一种重复数据的压缩方法
JP2010015197A (ja) * 2008-06-30 2010-01-21 Toshiba Corp ストレージ制御装置、データ復元装置およびストレージシステム
US8555053B1 (en) * 2008-08-29 2013-10-08 Crossroads Systems, Inc. System and method for adjusting to drive specific criteria
US7987162B2 (en) 2009-03-06 2011-07-26 Bluearc Uk Limited Data compression in a file storage system
WO2010125574A1 (en) 2009-04-27 2010-11-04 Kamlesh Gandhi Description
US8645337B2 (en) 2009-04-30 2014-02-04 Oracle International Corporation Storing compression units in relational tables
US8166258B2 (en) 2009-07-24 2012-04-24 Lsi Corporation Skip operations for solid state disks
US8990476B2 (en) 2009-10-01 2015-03-24 Micron Technology, Inc. Power interrupt management
CN102043651B (zh) 2009-10-22 2013-07-03 鸿富锦精密工业(深圳)有限公司 Nand闪存及其数据更新管理方法
CN102929884B (zh) * 2011-08-10 2016-05-04 阿里巴巴集团控股有限公司 一种收缩虚拟磁盘镜像文件的方法及装置
US8806160B2 (en) 2011-08-16 2014-08-12 Pure Storage, Inc. Mapping in a storage system
WO2013124896A1 (en) * 2012-02-23 2013-08-29 Hitachi, Ltd. Chunk- based deduplication system and method thereof
US8732403B1 (en) 2012-03-14 2014-05-20 Netapp, Inc. Deduplication of data blocks on storage devices
US8615500B1 (en) * 2012-03-29 2013-12-24 Emc Corporation Partial block allocation for file system block compression using virtual block metadata
US9075710B2 (en) 2012-04-17 2015-07-07 SanDisk Technologies, Inc. Non-volatile key-value store
US10133500B2 (en) 2013-03-06 2018-11-20 Ab Initio Technology Llc Managing operations on stored data units
US9959070B2 (en) 2013-03-06 2018-05-01 Ab Initio Technology Llc Managing operations on stored data units

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160439A (ja) * 1993-12-03 1995-06-23 Matsushita Electric Ind Co Ltd データ記憶装置及び主制御装置
JP2000339207A (ja) * 1999-05-25 2000-12-08 Sony Corp 記録媒体、データ処理装置
JP2004258865A (ja) * 2003-02-25 2004-09-16 Canon Inc 情報処理方法
US20100278446A1 (en) * 2009-04-30 2010-11-04 Oracle International Corporation Structure of hierarchical compressed data structure for tabular data

Also Published As

Publication number Publication date
CA2902873A1 (en) 2014-09-12
JP6457406B2 (ja) 2019-01-23
EP2965189A1 (en) 2016-01-13
AU2019257524B2 (en) 2021-02-25
CN105009067A (zh) 2015-10-28
EP2965189B1 (en) 2019-04-10
KR102319657B1 (ko) 2021-10-29
US20140258652A1 (en) 2014-09-11
US9875054B2 (en) 2018-01-23
KR20150125012A (ko) 2015-11-06
AU2014226448A1 (en) 2015-09-17
CN105009067B (zh) 2019-12-24
CA2902873C (en) 2021-04-06
AU2019257524A1 (en) 2019-11-28
WO2014137587A1 (en) 2014-09-12
HK1215974A1 (zh) 2016-09-30

Similar Documents

Publication Publication Date Title
JP6457406B2 (ja) 記憶されたデータユニットに対する操作の管理
JP6491605B2 (ja) 記憶されたデータユニットに対する操作の管理
US7496586B1 (en) Method and apparatus for compressing data in a file system
JP6632380B2 (ja) 記憶されたデータユニットに対する操作の管理
JP2010238107A (ja) データ記憶プログラム、方法、及び情報処理装置
US11500590B2 (en) Method, device and computer program product for data writing
JP2004341841A (ja) 復元方法及びそのシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180208

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180705

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181220

R150 Certificate of patent or registration of utility model

Ref document number: 6457406

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250