【課題を解決するための手段】
【0004】
一態様においては、概して、データユニットの記憶を管理するためのシステムが、複数のデータブロックを記憶するように構成されたデータ記憶システムであって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接(contiguously)して記憶され、それによって、グループの少なくとも2つの隣接(adjacent)するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする(例えば、第1の読み取り操作は、ストレージインターフェースモジュール104、又はデータ記憶システムへの別のインターフェースが実行するように構成されるある種の機能又はプログラムである可能性がある)、データ記憶システムを含む。システムは、データ記憶システムに接続され、データユニットに関連する2又は3以上の操作を実行するように構成された、少なくとも1つのプロセッサを含むインターフェースも含む。操作は、読み取られるデータユニットを含むデータブロックのアドレスに少なくとも部分的に基づいて読み取られるデータユニットを取り出す、第1の読み取り操作とは異なる第2の読み取り操作、及び削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作を含む。
【0005】
態様は、以下の特徴のうちの1又は2以上を含み得る。
【0006】
データ記憶システムは、データブロックの少なくとも一部に関して、そのデータブロックからの1又は2以上のデータユニットの以前の削除についての対応する履歴情報を記憶するように構成され、削除は、そのデータブロックのデータユニットの少なくとも一部のアドレスに影響を与える。
【0007】
第2の読み取り操作は、特定のデータブロックに対応する任意の記憶された履歴情報に基づいて解釈されたアドレス情報に従って特定のデータブロックに記憶された少なくとも第1のデータユニットにアクセスする。
【0008】
削除操作は、新しいデータブロックに対応する履歴情報に削除されたデータユニットについての情報を記憶する。
【0009】
履歴情報の少なくとも一部は、データ記憶システムに記憶される。
【0010】
履歴情報の少なくとも一部は、異なるデータブロックの間にインターリーブされる。
【0011】
特定のデータブロックに対応する履歴情報の少なくとも一部は、その特定のデータブロックの所定の部分に記憶される。
【0012】
データブロックの少なくとも一部は、圧縮されたデータブロックである。
【0013】
第2の読み取り操作は、特定の圧縮されたデータブロックを解凍して1組の解凍されたデータユニットを復元し、その特定の圧縮されたデータブロックに対応する履歴情報に少なくとも部分的に基づいて基準位置から特定のオフセットにある読み取られるデータユニットを取り出す。
【0014】
第1の読み取り操作は、複数の圧縮されたデータブロックを解凍し、複数の解凍されたデータユニットを順次読み取る。
【0015】
削除操作は、第2の圧縮されたデータブロックと第1の圧縮されたデータブロックとの間のサイズの差を補償するために第2の圧縮されたデータブロックの記憶されるサイズを拡張する。
【0016】
第2の圧縮されたデータブロックの記憶されるサイズは、第2の圧縮されたデータブロックに対応する履歴情報に加えて第2の圧縮されたデータブロックに関連するオーバーヘッド情報を記憶することによって拡張される。
【0017】
削除操作は、第2の圧縮されたデータブロックに関連する新しい誤り検出符号を記憶して、第1の圧縮されたデータブロックに関連する誤り検出符号を置き換える。
【0018】
操作は、1組の最近追加されたデータユニットに関連して追加されるデータユニットを記憶する追加操作を含む。
【0019】
プロセッサは、1組の最近追加されたデータユニットを記憶媒体に記憶される圧縮されたデータブロックとして圧縮するようにさらに構成される。
【0020】
第2の読み取り操作は、1組の解凍されたデータユニットを復元するために、特定の識別子を有するデータユニットを含むものとしてデータブロックを示すインデックスに基づいて読み取られるデータユニットを含むデータブロックの位置を特定し、解凍されたデータユニット内で読み取られるデータユニットを検索する。
【0021】
データ記憶システムは、グループのデータブロックを所定の記憶フォーマットに準拠するものとして特定するオーバーヘッド情報を記憶するように構成される。
【0022】
オーバーヘッド情報は、所定の記憶フォーマットを特定するグループの各データブロックのヘッダに識別子を含む。
【0023】
第1の読み取り操作は、所定の記憶フォーマットと親和性がある。
【0024】
別の態様においては、概して、データユニットの記憶を管理するためのシステムが、複数のデータブロックを記憶するための手段であって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接して記憶され、それによって、グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする、手段を含む。システムは、データユニットに関連する2又は3以上の操作を実行するための手段も含む。操作は、読み取られるデータユニットを含むデータブロックのアドレスに少なくとも部分的に基づいて読み取られるデータユニットを取り出す、第1の読み取り操作とは異なる第2の読み取り操作、及び削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作を含む。
【0025】
別の態様においては、概して、データユニットの記憶を管理するための方法が、データ記憶システムに複数のデータブロックを記憶するステップであって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接して記憶され、それによって、グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする、ステップを含む。方法は、少なくとも1つのプロセッサを用いて、データユニットに関連する2又は3以上の操作を実行するステップも含む。操作は、読み取られるデータユニットを含むデータブロックのアドレスに少なくとも部分的に基づいて読み取られるデータユニットを取り出す、第1の読み取り操作とは異なる第2の読み取り操作、及び削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作を含む。
【0026】
別の態様においては、概して、ソフトウェアが、データユニットの記憶を管理するためにコンピュータ可読媒体に記憶される。ソフトウェアは、コンピューティングシステムに、データ記憶システムに複数のデータブロックを記憶することであって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接して記憶され、それによって、グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする、記憶することと、データユニットに関連する2又は3以上の操作を実行することとを行わせるための命令を含む。操作は、読み取られるデータユニットを含むデータブロックのアドレスに少なくとも部分的に基づいて読み取られるデータユニットを取り出す、第1の読み取り操作とは異なる第2の読み取り操作、及び削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作を含む。
【0027】
別の態様においては、概して、データユニットの記憶を管理するためのシステムが、複数のデータブロックを記憶するように構成され、データブロックの少なくとも一部が複数のデータユニットを含むデータ記憶システムであって、データブロックの少なくとも一部に関して、そのデータブロックからの1又は2以上のデータユニットの以前の削除についての対応する履歴情報を記憶するように構成され、削除が、そのデータブロックのデータユニットの少なくとも一部のアドレスに影響を与える、データ記憶システムを含む。システムは、データ記憶システムに接続され、第1のデータブロックに対応する任意の記憶された履歴情報に基づいて解釈されたアドレス情報に従って第1のデータブロックに記憶された少なくとも第1のデータユニットにアクセスする少なくとも1つの操作を実行するように構成された、少なくとも1つのプロセッサを含むインターフェースも含む。
【0028】
態様は、以下の特徴のうちの1又は2以上を含み得る。
【0029】
第1のデータブロックに対応する履歴情報は、第1のデータブロックから解凍されたデータユニットの相対的なオフセットに影響を与える第1のデータブロックからの1又は2以上のデータユニットの以前の削除についての情報を含む。
【0030】
データブロックの少なくとも一部は、圧縮されたデータブロックである。
【0031】
インターフェースは、データユニットに関連する2又は3以上の操作を実行するように構成され、操作は、基準アドレスに対してデータユニットの位置を特定するアドレス情報に少なくとも部分的に基づいて読み取られるデータユニットを取り出す読み取り操作と、削除されるデータユニットを削除し、削除されるデータユニットの削除が原因である基準アドレスに対するあらゆるシフトを考慮に入れるためにその他のデータユニットに関するアドレス情報を解釈するための削除されたデータユニットについての履歴情報を記憶する削除操作とを含む。
【0032】
インターフェースは、データユニットに関連する2又は3以上の操作を実行するように構成され、操作は、圧縮されたデータブロックに対応する履歴情報に少なくとも部分的に基づいて読み取られるデータユニットを取り出す第1の読み取り操作と、削除されるデータユニットを含む第1の圧縮されたデータブロックを、削除されたデータユニットを含まない第2の圧縮されたデータブロックで置き換え、第2の圧縮されたデータブロックに対応する履歴情報に削除されたデータユニットについての情報を記憶する削除操作とを含む。
【0033】
第1の読み取り操作は、特定の圧縮されたデータブロックを解凍して1組の解凍されたデータユニットを復元し、その特定の圧縮されたデータブロックに対応する履歴情報に少なくとも部分的に基づいて基準位置から特定のオフセットにある読み取られるデータユニットを取り出す。
【0034】
第1の読み取り操作は、履歴情報が1又は2以上の既に削除されたデータユニットについての情報を含むか否かを判定する。
【0035】
履歴情報が1又は2以上の既に削除されたデータユニットについての情報を含む場合、第1の読み取り操作は、既に削除されたデータユニットのうちの少なくとも1つのオフセットを示す履歴情報内の値と特定のオフセットを比較することに基づいて特定のオフセットを調整すべきか否かを判定する。
【0036】
特定のオフセットが調整されるべきである場合、第1の読み取り操作は、1又は2以上の既に削除されたデータユニットのオフセット及びサイズに基づいて特定のオフセットを調整する。
【0037】
削除操作は、第2の圧縮されたデータブロックと第1の圧縮されたデータブロックとの間のサイズの差を補償するために第2の圧縮されたデータブロックの記憶されるサイズを拡張する。
【0038】
第2の圧縮されたデータブロックの記憶されるサイズは、第2の圧縮されたデータブロックに対応する履歴情報に加えて第2の圧縮されたデータブロックに関連するオーバーヘッド情報を記憶することによって拡張される。
【0039】
削除操作は、第2の圧縮されたデータブロックに関連する新しい誤り検出符号を記憶して、第1の圧縮されたデータブロックに関連する誤り検出符号を置き換える。
【0040】
操作は、1組の最近追加されたデータユニットに関連して追加されるデータユニットを記憶する追加操作を含む。
【0041】
プロセッサは、1組の最近追加されたデータユニットを記憶媒体に記憶される圧縮されたデータブロックとして圧縮するようにさらに構成される。
【0042】
操作は、1又は2以上の圧縮されたデータブロックを解凍し、複数の解凍されたデータユニットを順次読み取る、第1の読み取り操作とは異なる第2の読み取り操作を含む。
【0043】
操作は、1組の解凍されたデータユニットを復元するために、特定の識別子を有するデータユニットを含むものとしてインデックスによって示される特定の圧縮されたデータブロックを解凍し、解凍されたデータユニット内で特定の識別子を有するデータユニットを検索する、第1の及び第2の読み取り操作とは異なる第3の読み取り操作を含む。
【0044】
履歴情報の少なくとも一部は、データ記憶システムに記憶される。
【0045】
履歴情報の少なくとも一部は、異なるデータブロックの間にインターリーブされる。
【0046】
特定のデータブロックに対応する履歴情報の少なくとも一部は、その特定のデータブロックの所定の部分に記憶される。
【0047】
別の態様においては、概して、データユニットの記憶を管理するためのシステムが、複数のデータブロックを記憶するための、データブロックの少なくとも一部が複数のデータユニットを含む手段であって、データブロックの少なくとも一部に関して、そのデータブロックからの1又は2以上のデータユニットの以前の削除についての対応する履歴情報を記憶するように構成され、削除が、そのデータブロックのデータユニットの少なくとも一部のアドレスに影響を与える、手段を含む。システムは、第1のデータブロックに対応する任意の記憶された履歴情報に基づいて解釈されたアドレス情報に従って第1のデータブロックに記憶された少なくとも第1のデータユニットにアクセスする少なくとも1つの操作を実行するための手段も含む。
【0048】
別の態様においては、概して、データユニットの記憶を管理するための方法が、データ記憶システムに複数のデータブロックを記憶するステップであって、データブロックの少なくとも一部が複数のデータユニットを含み、データ記憶システムが、データブロックの少なくとも一部に関して、そのデータブロックからの1又は2以上のデータユニットの以前の削除についての対応する履歴情報を記憶するように構成され、削除が、そのデータブロックのデータユニットの少なくとも一部のアドレスに影響を与える、ステップを含む。方法は、第1のデータブロックに対応する任意の記憶された履歴情報に基づいて解釈されたアドレス情報に従って第1のデータブロックに記憶された少なくとも第1のデータユニットにアクセスする少なくとも1つの操作を、少なくとも1つのプロセッサを用いて実行するステップも含む。
【0049】
別の態様においては、概して、ソフトウェアが、データユニットの記憶を管理するためにコンピュータ可読媒体に記憶される。ソフトウェアは、コンピューティングシステムに、データ記憶システムに複数のデータブロックを記憶することであって、データブロックの少なくとも一部が複数のデータユニットを含み、データ記憶システムが、データブロックの少なくとも一部に関して、そのデータブロックからの1又は2以上のデータユニットの以前の削除についての対応する履歴情報を記憶するように構成され、削除が、そのデータブロックのデータユニットの少なくとも一部のアドレスに影響を与える、記憶することと、第1のデータブロックに対応する任意の記憶された履歴情報に基づいて解釈されたアドレス情報に従って第1のデータブロックに記憶された少なくとも第1のデータユニットにアクセスする少なくとも1つの操作を実行することとを行わせるための命令を含む。
【0050】
別の態様においては、概して、データユニットの記憶を管理するためのシステムが、複数のデータブロックを記憶するように構成されたデータ記憶システムであって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接して記憶され、それによって、グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする(例えば、第1の読み取り操作は、ストレージインターフェースモジュール104、又はデータ記憶システムへの別のインターフェースが実行するように構成されるある種の機能又はプログラムである可能性がある)、データ記憶システムを含む。システムは、データ記憶システムに接続され、データユニットに関連する1又は2以上の操作を実行するように構成された、少なくとも1つのプロセッサを含むインターフェースであって、操作が、第2のデータブロックが第1のデータブロックと同じサイズを有するようにして、削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作を含む、インターフェースも含む。
【0051】
態様は、以下の特徴のうちの1又は2以上を含み得る。
【0052】
第2のデータブロックは、データ記憶システム内で第1のデータブロックに隣接していたデータブロックに隣接している。
【0053】
第2のデータブロックは、第1のデータブロックと同じ記憶空間に記憶される。
【0054】
削除操作は、第1のデータブロック以外のデータブロックを、削除操作が実行される前にそれらのデータブロックが記憶されていたデータ記憶システム内の同じ記憶位置に維持する。
【0055】
データ記憶システムは、データブロックの少なくとも一部に関して、そのデータブロックからの1又は2以上のデータユニットの以前の削除についての対応する履歴情報を記憶するように構成され、削除は、そのデータブロックのデータユニットの少なくとも一部のアドレスに影響を与える。
【0056】
操作は、特定のデータブロックに対応する任意の記憶された履歴情報に基づいて解釈されたアドレス情報に従って特定のデータブロックに記憶された少なくとも第1のデータユニットにアクセスする、第1の読み取り操作とは異なる第2の読み取り操作を含む。
【0057】
削除操作は、第2のデータブロックに対応する履歴情報に削除されたデータユニットについての情報を記憶する。
【0058】
履歴情報の少なくとも一部は、データ記憶システムに記憶される。
【0059】
履歴情報の少なくとも一部は、異なるデータブロックの間にインターリーブされる。
【0060】
特定のデータブロックに対応する履歴情報の少なくとも一部は、その特定のデータブロックの所定の部分に記憶される。
【0061】
データブロックの少なくとも一部は、圧縮されたデータブロックである。
【0062】
第2の読み取り操作は、特定の圧縮されたデータブロックを解凍して1組の解凍されたデータユニットを復元し、その特定の圧縮されたデータブロックに対応する履歴情報に少なくとも部分的に基づいて基準位置から特定のオフセットにある読み取られるデータユニットを取り出す。
【0063】
第1の読み取り操作は、複数の圧縮されたデータブロックを解凍し、複数の解凍されたデータユニットを順次読み取る。
【0064】
削除操作は、第2の圧縮されたデータブロックと第1の圧縮されたデータブロックとの間のサイズの差を補償するために第2の圧縮されたデータブロックの記憶されるサイズを拡張する。
【0065】
第2の圧縮されたデータブロックの記憶されるサイズは、第2の圧縮されたデータブロックに対応する履歴情報に加えて第2の圧縮されたデータブロックに関連するオーバーヘッド情報を記憶することによって拡張される。
【0066】
削除操作は、第2の圧縮されたデータブロックに関連する新しい誤り検出符号を記憶して、第1の圧縮されたデータブロックに関連する誤り検出符号を置き換える。
【0067】
操作は、1組の最近追加されたデータユニットに関連して追加されるデータユニットを記憶する追加操作を含む。
【0068】
プロセッサは、1組の最近追加されたデータユニットを記憶媒体に記憶される圧縮されたデータブロックとして圧縮するようにさらに構成される。
【0069】
データ記憶システムは、グループのデータブロックを所定の記憶フォーマットに準拠するものとして特定するオーバーヘッド情報を記憶するように構成される。
【0070】
オーバーヘッド情報は、所定の記憶フォーマットを特定するグループの各データブロックのヘッダに識別子を含む。
【0071】
第1の読み取り操作は、所定の記憶フォーマットと親和性がある。
【0072】
別の態様においては、概して、データユニットの記憶を管理するためのシステムが、複数のデータブロックを記憶するための手段であって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接して記憶され、それによって、グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする、手段を含む。システムは、データユニットに関連する1又は2以上の操作を実行するための手段であって、操作が、第2のデータブロックが第1のデータブロックと同じサイズを有するようにして、削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作を含む、手段も含む。
【0073】
別の態様においては、概して、データユニットの記憶を管理するための方法が、データ記憶システムに複数のデータブロックを記憶するステップであって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接して記憶され、それによって、グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする、ステップを含む。方法は、少なくとも1つのプロセッサを用いて、データユニットに関連する1又は2以上の操作を実行するステップであって、操作が、第2のデータブロックが第1のデータブロックと同じサイズを有するようにして、削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作を含む、ステップも含む。
【0074】
別の態様においては、概して、ソフトウェアが、データユニットの記憶を管理するためにコンピュータ可読媒体に記憶される。ソフトウェアは、コンピューティングシステムに、データ記憶システムに複数のデータブロックを記憶することであって、データブロックの少なくとも一部が、複数のデータユニットを含み、データブロックの少なくとも1グループが隣接して記憶され、それによって、グループの少なくとも2つの隣接するデータブロックからデータユニットを取り出す第1の読み取り操作をサポートする、記憶することと、データユニットに関連する1又は2以上の操作を実行することであって、操作が、第2のデータブロックが第1のデータブロックと同じサイズを有するようにして、削除されるデータユニットを含む第1のデータブロックを、削除されたデータユニットを含まない第2のデータブロックで置き換える削除操作を含む、実行することとを行わせるための命令を含む。
【0075】
態様は、以下の利点のうちの1又は2以上を含む可能性がある。
【0076】
例えば、データが顧客の要求に応じて削除されることを必要とするプライバシーに関する法律を遵守するために有用である可能性がある、圧縮されたデータストアからデータユニットを完全に削除する削除操作が、提供される。特定のアドレスのデータユニットの位置を特定するポインタ、又は基準アドレスからの相対的なオフセットは、削除されたデータユニットの削除によって影響を受ける可能性がある。しかし、それらのポインタは、削除操作が実行される時に変更される必要がないか、又は位置を特定される必要さえない。その代わりに、ポインタは、それらのデータユニットが常に実際にアクセスされる場合、必要に応じて後で補正され得る。データストアの多くの使用に関して、そのような要求に応じたポインタの補正は、削除時にポインタの位置を特定し、補正するよりも効率的である。また、多ブロックの圧縮されたデータストアの圧縮されたブロックからの削除されたデータユニットの削除は、1又は2以上の圧縮されたデータブロックから復元された複数のデータユニットをスキャンすることによってデータユニットを読み取る操作との削除操作の親和性を保つようにして実行される。例えば、削除操作は、知られている圧縮フォーマット(例えば、gzip)で記憶されたファイルに標準的な解凍機能(例えば、gzcat)を適用し、(例えば、レコードフォーマットに従って)解凍されたデータを解釈して、インデックス又はその他のアドレス情報に頼ることなく個々のレコードをデータユニットとして順次復元するスキャン読み取り操作と親和性がある可能性がある。削除操作の後にファイルが、圧縮されたデータブロックの間にいかなる間隙も持たないことを保証することによって、スキャン読み取り操作は、ファイル全体が移動されるか又は書き直される必要なしに圧縮フォーマットを引き続き正しく解析することができる。加えて、履歴情報を用いて、削除操作は、いずれかのデータユニットが、圧縮されたデータストアから既に削除されたか否かに関わりなく、アドレス情報に確かに依存する読み取り操作が適切に機能し続けるように実装され得る。
【0077】
本発明のその他の特徴及び利点は、以下の説明及び請求項から明らかになるであろう。