JP4755642B2 - 記憶のためのファイル圧縮および圧縮ファイルの操作の方法およびシステム - Google Patents

記憶のためのファイル圧縮および圧縮ファイルの操作の方法およびシステム Download PDF

Info

Publication number
JP4755642B2
JP4755642B2 JP2007510232A JP2007510232A JP4755642B2 JP 4755642 B2 JP4755642 B2 JP 4755642B2 JP 2007510232 A JP2007510232 A JP 2007510232A JP 2007510232 A JP2007510232 A JP 2007510232A JP 4755642 B2 JP4755642 B2 JP 4755642B2
Authority
JP
Japan
Prior art keywords
compressed
clu
file
section
data
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.)
Active
Application number
JP2007510232A
Other languages
English (en)
Other versions
JP2007535068A (ja
JP2007535068A5 (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 JP2007535068A publication Critical patent/JP2007535068A/ja
Publication of JP2007535068A5 publication Critical patent/JP2007535068A5/ja
Application granted granted Critical
Publication of JP4755642B2 publication Critical patent/JP4755642B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1724Details of de-fragmentation performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、記憶データへのネットワークアクセスをサポートするネットワークインフラストラクチャデバイスに関し、特に、ファイルシステムプロトコルによるファイルシステムでの圧縮データの圧縮および操作を促進する方法および装置に関する。
現在のビジネス環境では、全てのタイプのビジネスデータがビジネスの成功にとって益々重要になってきている。ビジネスにより生成される、情報資産の共有、管理および保護の方法を定めたデータの著しい増加および複雑性が、情報ストレージの需要を後押ししている。
典型的には、どの技術も構造も全ての組織の全ての要求に取り組むことはできない。主なストレージ技術は、EMCによる白書(非特許文献1)に記載され、基本的には、接続のタイプ(直接取付型ストレージ(DAS)、IPまたはチャネルネットワーク)によって、また、データがアクセスされる方法によって識別される。データアクセスの方法と関連して、ブロックアクセス、ファイルアクセスおよびオブジェクトアクセスといったストレージデバイスの構造の三つの基本的なタイプを考える。
ブロックアクセス構造では、サーバ/クライアントとストレージデバイスとの間の通信は、ブロックで実行され、つまり、情報はディスクからブロック毎に直接的に引き出される。オペレーションシステムは、各情報がディスク上のどこにあるかを把握している一方、ストレージデバイスは通常、デバイス上でデータを整理するために使用されるファイルシステムを認識していない。読み出しまたは書き込みが必要となると、ディスク上のどこにデータの各ブロックが存在し、どのようにしてひとまとめにするかを知っているプロセッサによってディスクのデータは直接的にアクセスされる。ブロックアクセスストレージ技術の例としてDAS(直接取付型ストレージ)、SAN(ストレージ領域ネットワーク)およびブロックストレージオーバIP(例えば、FCIP、iFCP、iSCSI等)が挙げられる。
ファイルアクセスでは、サーバまたはクライアントは物理的な場所ではなく名前でファイルを要求することが必要である。その結果、ストレージデバイスは、通常、ファイルシステムを作成、維持および更新するためにファイルをデータのブロックにマッピングすることを担う。ファイルサーバは、ファイルを読み出しまたは書き込む要求を受信し、「密かに」ブロックアクセスを行う。ファイルアクセスストレージ技術の例として、NAS(NFS、CIFS、HTTP等のプロトコルによるネットワーク接続ストレージ)およびMPFS(マルチパスファイルサービング)が挙げられる。ファイルアクセスストレージは、例えば、汎用ファイル、ウェブアプリケーション、エンジニアリングアプリケーション(例えば、CAD、CAM、ソフトウェア開発等)、画像および3Dデータ処理、マルチメディアストリーミング等のために実行される。
オブジェクトアクセスは、ブロック、フィイルおよびストレージのトポロジーに関する全ての詳細をアプリケーションから隠すことによってデータアクセスを更に簡略化する。オブジェクトアクセスは、コンテンツ管理アプリケーションで一体化されるAPI上で実行される。オブジェクトアクセスストレージ技術の例としてCAS(コンテンツアドレスストレージ)が挙げられる。
ストレージデバイスのより効率的な使用は、データを記憶する前に圧縮することで実現される。データ圧縮技法は、ストレージデバイスの容量および送信時間をそれぞれ減少させるよう記憶されまたは送信されるべきデータ量を減少させるために使用される。圧縮は、例えば、非特許文献2に記載されている標準的な圧縮アルゴリズム等の様々な圧縮アルゴリズムを用いて実現される。透過的に圧縮を実行すること、つまり、データが既存のアプリケーションを変更することなく使用されることが重要である。いずれの場合においても、元のデータが再構成され、アプリケーションにアクセス可能となるよう対応する解凍技法を提供することが必要である。圧縮データを更新する場合、特に、データの比較的小部分を更新する場合、ブロックまたはファイル全体を解凍し再圧縮することは一般的に非効率的である。
記憶および記憶データのアクセスの最適化の様々な実行は、例えば、以下の特許公報に開示される。
特許文献1(Franaszek)は、メモリの断片化を減少する一方でメモリの再編の必要性を回避するように可変長のオブジェクトを記憶するシステムおよび方法を開示する。可変長オブジェクトの残余は、最良適合または第一適合ベースで別の可変長オブジェクトからの残余とストレージの固定サイズのブロックを共有するよう割り当てられる(ブロックを共有する二つの残余はルームメートと称される)。一方の残余がブロックの一方の端部に記憶され、他方の残余はブロックの他方の端部に記憶される。ストレージのブロックを共有する可変長オブジェクトは、同じ集団(cohort)から選択される。それにより、オブジェクト間では何らかの関連性がある。この関連性は、例えば、オブジェクトが同じページからまたは多数のページにわたって何らかの線形順序にあることを含む。ある集団の可変長オブジェクトに関する情報、例えば、オブジェクトがルームメートを有するか否かは、メモリに記憶される。
特許文献2(Yoshida et al.)は、圧縮データを記憶する方法および装置を開示する。ここでは、圧縮ファイルは、圧縮管理テーブルの位置を示す情報を有するヘッダと、圧縮されたコードと、元のレコードそれぞれの圧縮されたコードの記憶場所を示す情報を保持する圧縮管理表とよりなる。
特許文献3(Morris et al.)は、バックアップサブシステムにおけるストレージ要件を減少させ、セグメント化された圧縮フォーマットにおいてサーバ上で基本ファイルが維持される送信帯域幅に対する負荷を減少させる方法および手段を開示する。ファイルがクライアントで変更されると、ファイルはサーバに送信され、基本ファイル全体を解凍することなく、差分関数を用いてファイルのセグメント化された圧縮基本バージョンと比較される。圧縮基本フィイルとファイルの変更バージョンとの間の差であるデルタファイルが作成され、バックアップシステムの一部である記憶媒体に記憶される。
特許文献4(Bolan et al.)は、システムストレージ階層において区別可能な場所で圧縮データがシステム管理されるリソースとなるよう、システムの時系列パラメータに基づいてデータの圧縮および解凍を制御するシステムを開示する。プロセッサレジスタはキャッシュにより支持され、キャッシュはメインストレージにより支持され、メインストレージは解凍ディスクストレージにより支持され、解凍ディスクストレージは圧縮ディスクストレージ、テープ等によって支持される。データは、解凍形態から圧縮形態に移行し、システムの時系列パラメータに基づいてデータライフサイクルに応じてシステム制御下でストレージ階層を通じて移され、または、任意には、要求に応じて、データは最初に作成され記憶され、データはシステム制御下で後に圧縮され、データがアクセスされると、要求に応じてセグメント毎に解凍され、その幾らか後に、データは次に参照されるまでシステム制御下で再び圧縮される。大きいデータオブジェクトはセグメント化され、圧縮はより使用頻度が低いデータに適用される。
特許文献5(Obara et al.)は、ディスクストレージシステムを開示する。ここでは、キャッシュメモリに記憶されるべきデータは、データが所属するトラックブロックと関連付けられた二つのキャッシュブロックをそれぞれが有する複数のデータブロックに分割されて圧縮され、それにより、読みやすい方法でディスクストレージシステムのキャッシュメモリに複数の圧縮レコードが記憶される。圧縮後のそれぞれのデータブロックは、一つのまたは複数のキャッシュブロックに記憶される。データブロックに対するイントラックアドレスから各キャッシュブロックを取り出す情報は、キャッシュメモリに対する取り出し情報の一部として記憶される。レコードにおけるそれぞれのデータブロックが読み出されると、圧縮データブロックを記憶するキャッシュブロックは、データブロックのイントラックアドレスおよび取り出し情報に基づいて判定される。
特許文献6(Faulkner et al.)は、仮想メモリシステムを用いたデータ圧縮および解凍の組み合わせを開示する。データが圧縮フォーマットでストレージデバイスに記憶されるいわゆる、埋め込み型システムを含む幾つかのコンピュータシステムが記載されている。中央処理ユニット(CPU)によるデータに対する要求に応答して、仮想メモリシステムはまず、要求されたデータが、解凍データが記憶されている部分でもありCPUがアクセス可能であるメインメモリの部分に存在するか否かを判定する。要求されたデータがメインメモリの解凍部分に存在しないがストレージデバイスにおいて圧縮フォーマットで存在する場合、データは、デマンドページング操作を通じてメインメモリの解凍部分に転送される。デマンドページング操作中、圧縮データは解凍される。同様に、データがメインメモリの解凍部分からページアウトされ、当該データは保存されなくてはならない場合、当該データは圧縮データのストレージデバイスに記憶される前に圧縮される。
特許文献7(Cowart et al.)は、圧縮ファイルの記憶および取り出し方法を開示する。この方法は、コンパクトディスク読み出し専用メモリから直接的に圧縮ファイルを取り出すためにファイル割り付けテーブルを動的に生成することを伴う。
特許文献8(Pham et al.)は、クライアントコンピュータシステムのファイルシステムとネットワークデータストレージとの間のデータの確実なアクセスおよび転送をサポートするセキュアネットワークファイルアクセス機器を開示する。クライアントコンピュータシステム上に設けられ、確実なネットワークファイルアクセス機器によってモニタリングされるエージェントは、ネットワークデータストレージに発信されるファイルシステム要求に対してクライアントコンピュータシステムの認証を確実にする。セキュアネットワークファイルアクセス機器は、クライアントコンピュータシステムとネットワークデータストレージとの間のネットワークインフラストラクチャに設けられ、適格なアクセスポリシーを適用し、ファイルシステム要求に対して選択的に通過させる。セキュアネットワークファイルアクセス機器は、暗号鍵ストレージを保持し、暗号鍵を対応するシステムファイルと関連付けて、セキュアネットワークファイルアクセス機器を通じてネットワークデータストレージに転送されまたはそこから読み出されるファイルデータを暗号化および復号化する。
特許文献9(Benveniste et al.)は、情報を記憶する方法およびシステムを開示し、メインメモリ圧縮情報をメモリ圧縮ディスクに記憶することを含み、ページはメインメモリ圧縮情報を解凍することなく個別に記憶され取り出される。
特許文献10(Negishi et al.)は、ネットワーク上でNASサーバとクライアントとの間に介在し、所定のクライアントから送られるNASサーバに対する操作要求を一時的に保持する、フロントエンドサーバを開示する。フロントエンドサーバは、NASサーバで記憶されるデータファイル間の相関に関する情報を保持し、当該情報に基づいてクライアントから受信する操作要求を最適化し、NASサーバに操作要求を送信する。
米国特許第5,761,536号明細書 米国特許第5,813,011号明細書 米国特許第5,813,017号明細書 米国特許第6,092,071号明細書 米国特許第6,115,787号明細書 米国特許第6,349,375号明細書 米国特許第6,584,520号明細書 米国特許第6,678,828号明細書 米国特許出願公開第2004/030,813号明細書 米国特許出願公開第2005/021,657号明細書 "Leveraging Networked storage for your business", 2003, www.emc.com/pdf/products/networkedstorage/leveraging net storage.pdf J. Ziv and A. Lempel, "A Universal Algorithm For Sequential Data Compression," IEEE Transactions on Information Theory, IT-23, pp. 337-343 (1997)
記憶および取り出し能力を損なうことなく、且つ、ユーザが圧縮/解凍操作並びに圧縮データの記憶場所を認識する必要性を有することなく、ファイルアクセスストレージシステムに使用する新しい圧縮ストレージのシステムおよび方法を提供することがこの技術において必要である。本発明は、幾つかの態様において、圧縮記憶ファイルにおけるデータへのランダムアクセスを促進し、ファイル全体を解凍することなく圧縮データの操作を可能にする新規の解決策を提供することを目的とする。
本発明のある態様では、ファイルアクセスストレージに使用する、圧縮ファイルの作成、読み出しおよび書き込みの方法およびシステムが提供され、上記方法およびシステムは、圧縮ファイルのデフラグを維持しながら圧縮データへの直接アクセスを促進する。
本発明のある態様によると、上記方法は、
原ファイルを圧縮して圧縮データを生成するステップであって、原ファイルのデータ(クラスタ)の少なくとも一つの固定サイズ部分は、順に処理されて、少なくとも一つの固定サイズ圧縮論理ユニット(CLU)に分割される対応する圧縮セクションとされる、ステップと、
圧縮ファイルとしての圧縮データの記憶を促進するステップであって、圧縮ファイルは、原ファイルのクラスタに対応する圧縮セクションと、固有のファイル記述子を有するヘッダとを含む、ステップと、
圧縮セクションを記述する少なくとも一つのレコードを有するセクションテーブルを作成するステップであって、上記レコードは圧縮セクションに対応するCLUに関する情報と上記CLUに関連する記憶場所ポインタとを少なくとも保持する、ステップと、を備える。
上述のように圧縮されるファイルに保存されるデータの読み出しのために、上記方法は更に、
読み出すべきデータを有する第1の圧縮セクションのシリアル番号を判定するステップと、
セクションテーブルを参照して上記圧縮セクションに対応するCLUおよびその記憶場所を判定するステップと、
上記圧縮セクションからクラスタを復元するステップと、
読み出すべきデータの範囲が復元されたクラスタのサイズを超える場合には、読み出すべきデータ全てが復元されるまでステップb)およびc)を、シリアル番号を1だけインクリメントした圧縮セクションに対して繰り返すステップと、を備える。
上述のように圧縮されるファイルへのデータの書き込みのために、上記方法は更に、
更新されるべき(元のセクション)データを有する第1の圧縮セクションのシリアル番号を判定するステップと、
セクションテーブルを参照して上記元の圧縮セクションに対応するCLUおよびその記憶場所を判定するステップと、
上記元の圧縮セクションからクラスタを復元するステップと、
上記クラスタ内の更新するデータのオフセットを計算し、要求されるデータ範囲の更新を促進するステップと、
更新された圧縮セクションに更新されたクラスタを圧縮するステップと、
上記更新された圧縮セクションで上記元の圧縮セクションの上書きを促進するステップと、
セクションテーブルを更新するステップと、
書き込むべきデータの範囲が復元されたクラスタのサイズを超える場合には、書き込むべき必要なデータ全てが復元されるまでステップb)乃至g)を、シリアル番号を1だけインクリメントした圧縮セクションに対して繰り返すステップと、を備える。
本発明の更なる態様によると、この方法は、圧縮ファイルへのデータの書き込み中に解放される自由CLUのリストを扱うステップを含み、上記リストは、ファイルが閉じられるまでファイルに関連する全てのセッション中に扱われる。当該方法は、更に、上記元のNと更新されたNの圧縮セクションに必要なCLUの数を比較し、
・N=Nの場合、更新された圧縮セクションに対応するCLUで元の圧縮セクションに対応する全てのCLUを上書きすること、
・N>Nの場合、更新された圧縮セクションに対応するCLUで元の圧縮セクションに対応するN個のCLUを上書きし、解放されるCLUに関する自由CLUのリストを更新すること、
・N<N<N+N(Nは自由CLUリスト中のCLUの数)の場合、更新された圧縮セクションに対応するCLUで元の圧縮セクションに対応する全てのCLUを上書きし、更新された圧縮セクションに対応する残りのCLUを自由CLUのリストに含まれるCLUに書き込むこと、
・N+N<Nの場合、更新された圧縮セクションに対応するCLUで元の圧縮セクションに対応する全てのCLUを上書きし、更新された圧縮セクションに対応するCLUを自由CLUのリストに含まれるCLUに書き込み、次の自由な記憶場所に更新された圧縮セクションに対応する残りのCLUを連続的に書き込むこと、
のいずれかを促進することを含む。
本発明の更なる態様によると、この方法は、ファイルを閉じる前に自由CLUのリストを確認するステップを更に含み、空でない場合には、
・圧縮セクションに含まれるCLUの中で最も高い記憶場所ポインタを有するCLU(第1のCLU)を定め、
・上記第1のCLUからより低い記憶場所ポインタを有する自由CLU(第2のCLU)への圧縮データの移動を促進し、
・上記第2のCLUを関連する圧縮セクションに割り当て、上記第1のCLUを自由CLUのリストに割り当て、
・圧縮セクションに含まれる全てのCLUの記憶場所ポインタが自由CLUのリストに含まれるどのCLUのポインタよりも低くなるまでステップb)−d)を繰り返す。
本発明の更なる態様によると、記憶するためにファイルを圧縮するシステムは、
原ファイルを圧縮して圧縮データを生成するサブシステムであって、原ファイルのデータ(クラスタ)の少なくとも一つの固定サイズ部分は、順に処理されて、少なくとも一つの固定サイズ圧縮論理ユニット(CLU)に分割される対応する圧縮セクションとされる、サブシステムと、
圧縮ファイルとしての圧縮データの記憶を促進するサブシステムであって、圧縮ファイルは原ファイルのクラスタに対応する圧縮セクションおよび固有のファイル記述子を有するヘッダとを含む、サブシステムと、
全ての圧縮セクションのレコードを有するセクションテーブルを作成するステップであって、上記レコードのそれぞれは、圧縮セクションに対応するCLUに関する情報と上記CLUに関連する記憶場所ポインタとを保持する、サブシステムと、を備える。
本発明によるシステムは好適にプログラムされたコンピュータでもよいことは理解されるべきである。同様にして、本発明は、本発明の方法を実行するためにコンピュータによって読み出されるコンピュータプログラムに関する。本発明は、更に、本発明の方法を実行するために機械によって実行可能な命令のプログラムを明白に具現化する機械読み出し可能メモリに関する。
本発明を理解し、それが実際にどのようにして実行されるかを知るために、添付の図面を参照して非制限的な例のみにより好ましい実施の形態を説明する。
以下の詳細な説明では、本発明の完全な理解を提供するために多数の特定の詳細を記載する。しかしながら、当業者には本発明がこれらの特定の詳細を有することなく実行され得ることが理解されるであろう。加えて、周知の方法、手順、構成要素および回路は、本発明の説明を不明瞭にしないよう詳細には説明しない。
特に記載しない限り、以下の説明から明らかとなるように、明細書中に用いる「処理」、「演算」、「計算」、「判定」等といった用語は、コンピュータまたは演算システム、あるいは、演算システムのレジスタおよび/またはメモリ内の物理的な、例えば電子的な数量によって表されるデータを、演算システムのメモリ、レジスタもしくは他の情報記憶装置または表示装置内の物理的な量として同様に表される他のデータに操作および/または変換するプロセッサまたは同様の演算装置の作用および/または処理を意味する。
本発明の実施の形態は、操作を実行するプロセッサ、コンピュータ、装置、システム、サブシステム、モジュール、ユニット、デバイス(単独であるいは複数で)といった用語を用いる。これは、所望の目的のために特別に構成されてもよく、あるいは、コンピュータに記憶されるコンピュータプログラムによって選択的に作動または再設定される汎用コンピュータを有してもよい。このようなコンピュータプログラムは、フロッピー(登録商標)ディスク、光学ディスク、CD−ROM、光磁気ディスク、読み取り専用メモリ(ROM)、電気コンピュータ読み取り可能記憶媒体にランダムアクセスメモリ(RAM)、電気的にプログラム可能な読み取り専用メモリ(EPROM)電気的に消去可能且つプログラム可能な読み取り専用メモリ(EEPROM)、磁気もしくは光学カードを含む全てのタイプのディスク、または、電子指示を記憶することに適し、コンピュータシステムバスに接続することができる全ての他のタイプの媒体等のコンピュータ読み取り可能記憶媒体に記憶されるが、これらに制限されない。
本願記載の処理/デバイス(または上述の同様の用語)および表示装置は、特に記載しない限り、如何なる特定のコンピュータまたは他の装置にも本質的に関連しない。様々な汎用システムは、本願記載の教示に応じたプログラムに使用され、または、所望の方法を実行するためにより特殊な装置を構成することが便利となる。これらの様々なシステムに対する所望の構成を以下に記載する。更に、本発明の実施の形態は、特定のプログラミング言語を参照して説明されない。様々なプログラミング言語が本願記載の本発明の教示を実行するために使用され得ることが理解されるであろう。
これを念頭において、技術において公知の典型的なNASストレージネットワーク構造の概略図を例示する図1に注目する。クライアント11および/またはサーバ12からのファイルは、ファイルストレージデバイス14にIPネットワーク13を介して転送される。ファイルストレージデバイスは、特殊NASファイルサーバ、汎用ファイルサーバ、SANストレージ装置、ストリームストレージ等でもよい。IPネットワークは、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、その組み合わせ等でもよい。
図2aを参照するに、本発明のある実施の形態によるNASストレージネットワーク構造の概略図を例示する。サーバ12および/またはクライアント11とファイルストレージデバイス14との間の通信はプラットホーム20を介する。プラットホーム20は、一つ以上のクライアント/サーバを接続するクライアント/サーバインタフェース21と、一つ以上のファイルストレージデバイスとのブリッジ/プロキシ接続のためのファイルストレージインタフェース22とを備える。プラットホーム20は、選択されたトランザクションではプロキシとして機能し、それにより、制御トランザクションに対するスループット、および、データトランザクションに対するプロキシを保持する。プラットホーム20は、全ての物理的インタフェース(例えば、イーサネット(登録商標)、ファイバチャネル等)をサポートし、例えば、冗長性、ミラーリング、スナップショット、フェールオーバ、ロールバック、管理等のストレージデバイス特徴を保存する。プラットホームは、既存のネットワークインフラストラクチャと継ぎ目なく一体化される。以下に説明する圧縮およびアクセス機能を実施するために、典型的には、プラットホームが、ファイル自体より上の全てのレベルにおいて変更を必要としない。ユーザは、圧縮および解凍の操作並びに圧縮データの記憶場所を考慮する必要がない。
記憶前の圧縮されるべきファイルに対する「書き込み」操作中、クライアント11および/またはサーバ12からのファイルは、ネットワーク13を通ってプラットホーム20に流れ、プラットホームによって圧縮され、ファイルストレージデバイス14にて書き込まれる。異なる種類のデータ(例えば、テキスト、画像、音声等)を含むファイルは、異なるアルゴリズムによって圧縮される(例えば、http://www.data-compression.com参照)。「読み出し」操作は逆方向に実行され、つまり、必要なファイルはプラットホームによって取り出され、解凍(要求されるデータ範囲に応じて部分的にあるいは全体的に)され、適当なクライアント/サーバに送られる。以下に、図3乃至図9を参照して本発明のある態様による圧縮/解凍操作を更に説明する。図2bは、クライアント/サーバから受信されるファイルがネットワーク13を介して転送される前にプラットホームで圧縮され書き込まれる場合の本発明の他の実施の形態によるストレージ構造を例示する。
ある実施の形態では、プラットホーム20は、暗号化、認証等のセキュリティ機能も提供する。
プラットホーム20は、透過的な方法によりクライアント/サーバとファイルストレージデバイスとの間で、選択されたトランザクション(典型的には、ファイルのコピー、ファイルの削除、ファイル名を変える、スナップショット等の制御関連のトランザクション)を転送する一方で、データ関連のトランザクション(例えば、開く、閉じる、読み出し、書き込み、作成等)、および、例えば、ディレクトリリストコマンド等の幾つかの制御関連のトランザクションに介入するよう構成される。
本発明のある実施の形態では、プラットホームは、プラットホーム20を介さずにファイルストレージデバイス14に先験的に記憶される圧縮されていないファイルを圧縮するよう構成されてもよい。プラットホームは、予め定められた基準のファイルに従ってストレージデバイスから全てのまたは選択されたファイルを抽出し、それらを本発明に従って圧縮し、圧縮された形態でストレージデバイスに書き換えてもよい。
本発明のある実施の形態では、プラットホーム20は、予め定められた基準(例えば、サイズ、IPアドレス、ディレクトリ、ファイルタイプ)に従って選択通過したファイルだけを圧縮するよう構成されてもよい。
原ファイル(または、その関連部分)は、ファイルストレージデバイス14への書き込み中または書き込み前にプラットホーム20によって圧縮される。同様にして、ファイル(またはその関連部分)は、ファイルストレージデバイス14からの読み出し中または読み出し後にプラットホーム20によって解凍される。本発明の幾つかの実施の形態では、ファイルは圧縮された状態でプラットホーム20とファイルストレージデバイス14との間を転送され、例えば、原ファイルはプラットホーム内で圧縮されて書き込まれ、結果として生ずる圧縮ファイルがファイルストレージデバイスに更に転送される、および/または、圧縮ファイルがプラットホーム内での更なる読み出し/書き込み操作のためにファイルストレージデバイスから受信される。
本発明は、図1および図2を参照して説明した特定のネットワーク構造によって制限されないことに注意する。当業者には、本発明がNAS、あるいは、IPまたはチャネルベースの通信を有するファイルアクセスストレージサブネットワークに基づく全てのネットワークに同様に適用可能であることが容易に理解されるであろう。プラットホーム20(またはその一部)の機能は、幾つかのプラットホーム間で分散されている、または、他のストレージネットワーク要素(例えば、ファイルサーバ、企業スイッチ等)内で一体化されている、スタンドアローン型サーバ(図2参照)で実行されてもよい。
図3は、本発明のある実施の形態によるプラットホーム20の概略的な機能ブロック図である。
入力/出力ブロック31の主な機能は、ソケットハンドリングであり、同ブロックはIP通信の完全性に対して責任を担う。I/Oブロック31は、新しいTCPパケットを受信し、それをアンパッキングし、セッションマネージャ32に移行する。このブロック31は、セッションマネージャからもデータを取得し、それをTCP構成にパッキングし、要求アドレスに送る。
セッションは、「ファイルを開く」といった要求によって開始し、同じIPアドレス(ユーザ)から受信する「ファイルを閉じる」といった要求によって終了する。セッションマネージャ32は、例えば、ソースIPアドレス等の全てのセッションのプライベートデータ、使用中の全てのファイルインスタンス、セッションカウンタ、セッションステータス、使用中のバッファに対する全てのインスタンス等を保持する。セッションマネージャは、「ファイルブロック」も扱い、切断時に全ての関連するリソースを解放する。セッションマネージャ32は、受信したパケットのフィルタ処理のためにディスパッチャ33にセッションタスクをロードする。ディスパッチャは、CIFS/NFSマネージャ34にCIFS/NFSパケットを送り、全ての他のパケットを手付かずのままI/Oブロックに(セッションマネージャを介して)送り返す。CIFS/NFSマネージャ34は、これに応じてCIFSおよびNFSトランザクションを統合し、データ関連のトランザクション(例えば、開く、読み出す、書き込む、閉じる等)をファイルマネージャ35に要求し、本発明のある実施の形態による圧縮/解凍操作を圧縮/解凍ブロック37に要求する。一般的には、圧縮アルゴリズムは、圧縮効率性と性能パラメータとのトレードオフによって特徴付けられる幾つかの圧縮レベルを有する。圧縮ブロック37は、最適圧縮レベルを選択し、入力/出力ブロック31(および/またはCPU利用)によって現在扱われるソケットの数に圧縮比を調節する。選択された圧縮レベルの情報は、データの圧縮部分に保持される。ファイルマネージャ35は、ファイルの完全性と操作とに対する責任を担う。ファイルマネージャ35は、ファイルに関連する全ての要求を組み合わせて、ファイルマニピュレーションの共有を可能にする。圧縮/解凍ブロック37は、バッファから読み出し、解凍することができ、更に、CLUSを圧縮し書き込むことができる。メモリバッファリソースは、CIFS/NFSマネージャに接続されるバッファマネージャ36によって管理される。完全性マネージャ38は、I/Oブロック、セッションマネージャ、バッファマネージャおよびファイルマネージャに接続され、プラットホームにおける全ての処理の同期および全体的な制御に対する責任を担う。
当業者には、本発明が図3の構成によって制限されず、同等のおよび/または変更された機能が別の方法で統合あるいは分割され得ることは容易に理解されるであろう。
図4は、本発明のある実施の形態による原ファイルおよび圧縮ファイルの概略図である。圧縮されていない原ファイル41は、略等しい所定のサイズを有するデータ部分43(以降クラスタと称する)にセグメント化される。これらのクラスタは、ファイルに対する入力/出力トランザクション中に圧縮/解凍操作の原子要素として機能する。クラスタへの原ファイルのセグメント化は、圧縮処理中に「オンザフライで」提供され、所定のサイズを有する次の部分43それぞれは圧縮を施されるクラスタを構成する。本発明のある実施の形態では、セグメント化は、圧縮前に行われてもよい。原ファイルの最後の部分のサイズは、クラスタの所定のサイズ以下でもよく、いずれの場合でも当該部分は完全なクラスタのサイズを有するかのように扱われる。クラスタのサイズは設定可能であり、クラスタがより大きいと処理オーバーヘッドがより低くなり圧縮比がより高くなり、クラスタがより小さいとアクセスがより効率的になるが処理オーバーヘッドがより高くなる。更に、クラスタのサイズは、各ファイルセッションの圧縮/解凍がメモリにおいて利用可能なクラスタを少なくとも一つ必要とし、性能が同時セッションの数を定めるため、利用可能なクラスタ利用可能なメモリと要求される性能に依存する。クラスタの数は、(原ファイルのサイズをクラスタのサイズで割算した)整数値、あるいは、余りがある場合には、それに1を加算した値に等しい。
代替的には、本発明のある他の実施の形態では、クラスタのサイズは、例えば、データのタイプ(例えば、テキスト、画像、音声、合成等)による所定の基準に応じて変化する。例えば、各データのタイプは、所定のサイズのクラスタを有し、圧縮中プラットホームは原ファイルの圧縮部分で優位を占めるデータのタイプに応じて適当なサイズのクラスタを選択してもよい。
各ファイル内クラスタ43(例えば、図4では43A−43C)は、対応する圧縮セクション46’(例えば、図4では46A−46C)に圧縮される。同じサイズを有するクラスタは、必然的に結果として、各クラスタにおけるデータの性質および圧縮アルゴリズムに依存して異なるサイズの圧縮セクションを生成する。クラスタ圧縮の比が所定の値未満である場合、圧縮ファイルにおける対応する圧縮セクションは当該クラスタからの圧縮されていないデータを有する場合もある。例えば、所与のクラスタにおける原データが元のクラスタサイズの少なくともX%(例えば、95%)に圧縮されると、無視できる圧縮比により、対応するセクションは圧縮データの代わりに原クラスタデータを受けることになる。
本発明のある実施の形態では、圧縮処理は、適応能力を含み、内容に応じて各クラスタに最適圧縮アルゴリズム(例えば、優位を占める音声、テキスト、画像等のデータを有するクラスタに最適な異なる圧縮アルゴリズム)を提供する。
本発明のある実施の形態では、各圧縮ファイル44はヘッダ45と、幾つかの圧縮セクション46と、セクションテーブル47とを有する。圧縮ファイルのヘッダ45は、固有のファイル記述子、原ファイル41のサイズ、および、ファイルがプラットホーム20によって処理されたか否かを示す署名(所定の値未満の取得可能な圧縮比によりプラットホームによって圧縮されていないファイルについても同様)を有する。
圧縮ファイル内の圧縮セクションの数は、クラスタの数に等しい。本発明のある実施の形態では、圧縮セクション46におけるデータは所定のサイズを全て有する圧縮論理ユニット(CLU)48に記憶される(例えば、図4では、圧縮論理ユニット48A0−48A2はクラスタ43Aに対応する圧縮セクション46Aに対応する)。所定のCLUサイズは設定可能であり、CLUがより大きいとオーバーヘッドが低くなり、CLUがより小さいと分解能がより高くなる。更に、本発明のある実施の形態では、CLUサイズは最大および/または最適CIFS/NFSパケット長に調節されてもよい。
圧縮セクション内のCLUの数は、(圧縮セクションのサイズをCLUのサイズで割算した)整数値、あるいは、余りがある場合には、それに1を加算した値に等しい。圧縮セクションにおける最後のCLUは、部分的に満たされている(例えば、図4において48−A2、48−C1)。このようなCLUは満たされたCLUと同様に扱われる。本発明のある実施の形態では、最後の圧縮セクション(例えば、図4において48−C1によって例示される)における最後のCLUは特別な方法で扱われる、即ち、部分的に満たされた場合に(以下に図9を参照して更に説明する)、正確な圧縮サイズに切られる。
CLUは、メモリにおいてセグメントの仮想シーケンスによって形成される圧縮ファイルの仮想部分として考えられる。CLUと割り当てられたメモリセグメントとの間の関係は、以下に図11を参照して更に説明される。
セクションテーブル47は、全ての圧縮セクション46のレコードを有し、圧縮セクションそれぞれに対応するCLUをどこで見つけるかを特定する。レコードは、各圧縮セクション(以降、セクションレコードと称する)に対して、セクションが圧縮されたか否かを示す署名、圧縮セクションの全体的なサイズ、セクションに含まれる全てのCLUに関連するポインタのリストを有する。任意には、レコードは、対応するクラスタの圧縮中に使用される圧縮アルゴリズムの表示、および、クラスタのサイズ(所定の基準に対して可変)を有する。好ましくは、セクションテーブル47は、圧縮ファイルの終わりに配置される。なぜなら、その長さはファイルのコンテンツが更新されると変化するためである(更に例示するように、セクションテーブルの長さは、圧縮セクションの数、従って、クラスタの数に比例する)。
図5は、例示的なファイルのセクションテーブルの典型的な構成を非制限的な例により例示する。
この例示的なファイル50(更なる例でも参照する)は、元のサイズが3MB+413ビットであり、所定のクラスタサイズが1Mであり、CLUサイズが60Kである。従って、原ファイルは4個のクラスタを含む(1MBのクラスタが3個と、部分的に満たされているが完全なクラスタとして扱われるクラスタが1個)。
ある圧縮セクションのレコード51は、署名52と、セクション53のサイズと、幾つかのエントリ54とを有する。セクションレコードの各エントリ54は、圧縮セクションに含まれるCLUの一つに関する情報を有する。セクションテーブルは、物理的な場所と論理CLU#との関係を有する。
例示的なファイル50のクラスタは、例えば、301123、432111、120423、および、10342バイトのそれぞれのサイズを有する圧縮セクションに圧縮される。CLUの長さ60Kであることは61440バイトを意味し、セクション#0は5個の割り付けられたCLU([301123/61440]+1)を有し、セクション#1は8個の割り付けられたCLU([432111/61440]+1)を有し、セクション#2は2個の割り付けられたCLU([120423/61440]+1)を有し、セクション#3は1個の割り付けられたCLU([10342/61440]+1)を有する。合計で、圧縮ファイルは16個のCLU(合計サイズは15×61440バイト+10342バイト)、固定長ヘッダ(例えば、署名に対する4バイト、ファイルID(固有記述子)に対する16バイト、および元のサイズに関する情報に対する4バイト)、および、4個のセクションレコードを有するセクションテーブルを有する。
例示的なファイル50は新しい圧縮ファイルとして作成された場合、CLUは順に割り付けられる。例えば、
最初に、ポインタ1、2、3、4、5を有する5個のCLUがセクション0に割り付けられ、
次に、ポインタ6、7、8、9、10、11、12、13を有する8個のCLUがセクション1に割り付けられ、
次に、ポインタ14、15を有する2個のCLUがセクション2に割り付けられ、
次に、ポインタ16を有する1個のCLUがセクション3に割り付けられる。
ファイル内のCLUの配分は更新後に変更されてもよい(以下に図8乃至図11を参照して更に説明する)。例えば、
ポインタ1、4、5、6、9を有するCLUがセクション0に割り付けられ、
ポインタ2、3、7、10、11、12、15、14を有するCLUがセクション1に割り付けられ、
ポインタ8、13を有するCLUがセクション2に割り付けられ、
ポインタ16を有するCLUがセクション3に割り付けられる。
(本例では、更新は圧縮セクションのサイズに対して影響を及ぼさない)。
ファイルが新しい圧縮ファイルとして作成されると、CLUの仮想(論理)シーケンスがCLUに対応するディスクセグメントの物理的シーケンスと同じである。更新されたファイルでは、CLUの仮想(論理)シーケンスは、CLUに対応するディスクセグメントの物理的シーケンスと異なる場合もある。例えば、上述の例では、第1のクラスタの第2のCLUは物理的セグメント#2に最初に位置していたが、更新後、物理的セグメント#4に位置する。各CLUはメモリにおけるセグメントに割り当てられ、対応するセグメントは、CLUの長さを加算しセグメントシリアル番号を乗算したヘッダ45の長さのオフセットに書き込まれる。例えば、上述の例示的なファイルでは、第1のクラスタの第2のCLUが物理的セグメント#2に位置する場合、記憶場所メモリにおいて2×61440バイトを加算したヘッダのオフセット24バイトに書き込まれる。更新後に当該CLUが物理的セグメント#4に位置すると、そのオフセットはヘッダに4×61440バイトを加算した24バイトとなる。
本発明のある実施の形態では、各セクションレコードのエントリの数は一定であり、クラスタを記憶するに必要となるCLUの最大数に対応し、従って、各セクションレコードのサイズはセクションに設けられるCLUの実際の数に関わらず一定であり、使用中でないエントリには特別なマークが設けられる。セクションレコードにおけるエントリの数はクラスタのサイズをCLUのサイズで分割し、1を加算した整数値に等しい。
クラスタの所定のサイズが1MBであり、CLUの所定のサイズが60Kの例示的な例では、圧縮セクションの各レコードはそれぞれが4バイトを有する17個のエントリ(1MB/60K+1の整数値)を有する。圧縮セクション#0の例示するセクションレコード50は、対応するCLUの物理的な場所に関する情報、および、12個の空のエントリ(例えば、−1とマーキングされる)を含む5個のエントリを有する。セクションレコードのサイズは72バイトである(圧縮セクションおよび署名のサイズに関する情報に対して4バイト+17エントリ×4バイト)。セクションテーブルの全体的なサイズは288バイト(各セクションレコードに対して4圧縮セクション×72バイト)である。
本発明のある実施の形態では、圧縮データはセクションテーブル47とは別個に記憶されてもよい。セクションテーブルは、圧縮データと同じ記憶スペース内の別のファイルに、または、例えば、プラットホーム20の、異なる、場合によっては物理的に遠隔な記憶スペースに記憶されてもよい。プラットホーム20は、読み出し/書き込み操作中の圧縮データと対応するセクションテーブルとの間の関連付けを促進するように構成されなくてはならない。
図6乃至図11は、本発明のある実施の形態による圧縮ファイルに対して実行される入力/出力操作を例示する。プラットホーム20が、原ファイル(例えば、DIR、STAT等)のサイズに関するコマンドに介入し、対応する圧縮ファイルのヘッダのサイズを維持し、上記データを要求があると供給する。従って、例えば、ファイルサイズがX(原ファイルの状態)で圧縮状態(ディスクに記憶された状態)でY(<X)を有するファイルを考える。特定の特徴により、ヘッダに記憶されるファイルのサイズは、X(原ファイルのサイズ)であり、DIR、STAT等のシステムコマンドを考える限り完全に透過性を維持する。
本発明のある実施の形態による圧縮された特定のファイルを開くための入来要求を受信すると(ユーザはファイルが圧縮されていることに気付かない場合もある)、プラットホーム20は当該要求をNASシステム(ストレージデバイス14)に転送し、ファイル管理に対する鍵として機能する「ハンドル」応答(または、ファイルが見つからない場合には「ヌル」)を受信する。「ハンドル」の受信に続いて、プラットホーム20はファイルID(固有のファイル記述子)を含むヘッダ45および対応する原ファイルのサイズを読み出す。プラットホーム20がファイルに関連する同時のセッションが存在するか否かをファイルID毎に確認する。「ノー」である場合、プラットホームは、固有のファイル記述子と原ファイルのサイズとを含むファイルブロックを生成する。ファイルが既に使用中の場合、プラットホームは、既存のファイルブロックに追加的なセッションを追加する。「ハンドル」は、ファイル操作に対する以下の要求とプラットホームに送られるようユーザに戻される。
ファイルを開く操作は、圧縮ファイルのセクションテーブル47を読み出し、ファイルに対応する全てのCLUの情報を得ることを含む。ファイルが開かれた瞬間から閉じられるまで、プラットホームはファイルのCLU構成およびファイル内の全てのバイトのオフセットを認識している。
図6を参照するに、本発明のある実施の形態による圧縮ファイルを作成する一般化されたフローチャートを例示する。この処理は、入来作成要求によって開始される。プラットホーム20は、ファイルストレージデバイス14に発出要求を生成し(60)、確認後、ファイルストレージデバイスで圧縮ファイルのヘッダに書き込み始める(61)。図4に記載したように、ヘッダは、ファイル記述子、未圧縮の原ファイルのサイズ、および、ファイルがプラットホーム20によって処理されたことを示す署名を含む。次のステップ(62)では、プラットホームは、原ファイルの最初の固定サイズの部分(クラスタ)をサイズXを有する圧縮セクションに処理する。(圧縮は、任意の適当な市販のまたは特殊なアルゴリズムの補助で提供される)。プラットホームは、第1のCLUに対する最初の自由記憶場所を定め、ファイルストレージデバイスでの記憶について当該CLUおよび後続するCLUへの圧縮セクションの連続的な書き込み(63)を開始して扱い、セクションテーブルにレコードされるべき処理中に占有されるCLUのポインタを準備する(64)。プラットホームは、ファイル全体のデータが圧縮形態で書き込まれるまで次のクラスタに対して処理を繰り返し(65)、セクションテーブルが作成される(66)。本発明のある実施の形態では、セクションテーブルは、圧縮ファイル外で記憶されてもよい。
図7を参照するに、本発明のある実施の形態による圧縮ファイルに対する読み出し操作の一般化されたフローチャートが示される。
読み出し操作は、入力パラメータ(例えば、ファイルハンドル、シーク番号(データオフセット)、および、データ長Y)および出力パラメータ(例えば、ターゲットバッファアドレス)を有する入来読み出し要求で開始される(70)。入来読み出し要求は、オフセット(原ファイルにおける)と、読み出すデータの範囲Yとを識別する。プラットホーム20は、読み出すべき第1のクラスタ(以降、開始クラスタと称する)のシリアル番号を(オフセットをクラスタで割算した)整数値、あるいは、余りがある場合には、それに1を加算した値として計算する(71)。読み出すべきクラスタの数は、(読み出すべきデータの範囲をクラスタのサイズで割算した)整数値に1を加算した値として定義される。その結果、プラットホームは、読み出すべきクラスタに一対一に対応して圧縮セクションを定め、発出読み出し要求を生成する(72)。要求は、圧縮ファイル(ヘッダおよびセクションテーブル)のメタデータに基づき、読み出すべき圧縮セクションに対応するCLUを指す。本発明のある実施の形態では、圧縮ファイルの終わりに配置されるセクションテーブルのオフセットは、圧縮ファイルのサイズ−クラスタの数×セクションレコードの固定サイズにより簡単に計算される。
他の実施の形態では、プラットホームは、圧縮データと別のファイルに保存されている対応するメタデータとの間の関連付けを促進するよう構成される。
本発明のある実施の形態では、発出読み出し要求は、読み出すべきデータの範囲全てを特定して送られてもよい。あるいは、図7に示すように、読み出し要求全体がステップ毎に扱われ、読み出し操作に対して、プラットホームはクラスタのサイズに略等しいバッファを維持してもよい。第1の発出読み出し要求は、開始クラスタの圧縮セクションに含まれるCLUに対するポインタを有する。開始クラスタに対応する圧縮セクション全体は読み出され(73)、プラットホームによってターゲットバッファに解凍される(74)。次のステップでは、プラットホームは、クラスタ内の要求されるオフセットを計算し(75)、要求されるデータをコピーし(76)、アプリケーションに送る。コピーするデータの必要な長さは次の通りに計算される。
長さ=最小{データ範囲Y;(クラスタのサイズ−オフセットmodクラスタのサイズ)}
データ範囲Yがクラスタのサイズを超えると、操作が繰り返される(77)。
例えば、例示的なファイル50を参照するに、要求は、オフセット1MB+1340から20バイトの長さのファイルデータを読み出すことである。読み出しは、第2のクラスタから始まり、従って、要求されるデータが二番目の圧縮セクションから始まる圧縮ファイルに含まれる。セクションテーブルのオフセットは、圧縮ファイルらクラスタの数(4)×セクションレコードのサイズ(72バイト)として定義される。セクションテーブルにおける二番目の圧縮セクションのレコードは、ポインタ2、3、7、10、11、12、15、14を有するCLUを含む。従って、これらのCLUは、プラットホーム20における一時的なバッファに読み出され、プラットホームにおいて1MBのバッファに解凍される。バッファオフセット1340からの20バイトはターゲット(ユーザの)バッファに移動される。コピーするデータの必要な長さは、20バイトである(20バイトと(1MB−1340バイト)の最小値に等しい)。他の要求は同じオフセットから2MBの長さのファイルデータを読み出すことである場合、操作は、三番目、四番目の圧縮セクションに対して同様に繰り返され、開始クラスタからコピーするデータの必要な長さは1MB−1340バイトとなる(2MBと(1MB−1340バイト)の最小値に等しい)。
図8を参照するに、本発明のある実施の形態による圧縮ファイルに対する書き込み操作の一般化されたフローチャートが示される。入来書き込み要求(80)は、オフセット(原ファイルにおける)と書き込むべきデータの範囲Yを識別する。プラットホーム20は、更新されるべき(上書きすべき)一番目のクラスタのシリアル番号を(オフセットをクラスタのサイズで割算した)整数値、あるいは、余りがある場合にはそれに1を加算した値として計算する(81)。上書きすべきクラスタの数は、(書き込むべきデータの範囲をクラスタのサイズで割算した)整数値あるいは、余りがある場合にはそれに1を加算した値として定義する。その結果、プラットホームは上書きする圧縮セクションを定め、図7を参照して説明した方法と同様に発出読み出し要求を生成する。開始クラスタに対応する圧縮セクション全体が読み出され(82)、プラットホームによってバッファに解凍(83)された後、プラットホームは、図7を参照して説明したように、クラスタ内の要求されるオフセットを計算(84)し、要求されるデータ範囲を更新する(上書きする)(85)。続いて、プラットホームは、更新されたクラスタを圧縮し(86)、セクションテーブルを更新し、圧縮ファイルに新しい圧縮セクションを書き込む(87)ことを要求する。データ範囲Yがクラスタのサイズを超える場合、操作は、後続するクラスタに対して繰り返される(88)。処理が終わると、プラットホームはセクションテーブルを更新する(89)。
上述した通り、本発明のある実施の形態では、要求されるデータの記憶場所は、直接的にアクセスされ、従って、読み出し/更新(および同様の)操作は、ファイル全体でなく必要なデータ範囲を含むクラスタだけを復元することを必要とする。
典型的には、ファイルの更新により、割り付けられたストレージで不使用スペースが生ずるため、断片化を生ずる。図9および図10は、本発明のある実施の形態によるCLU管理の断片化扱いアルゴリズムを示す。図9は、本発明のある実施の形態による圧縮セクション(図8のステップ87)に対する書き込み/更新操作中のCLU管理のアルゴリズムを示す。更新された圧縮セクションを書き込む前に、プラットホームは、更新された圧縮セクションと古い圧縮セクションに必要なCLUの数を比較する(91)。CLUの数が変化していない場合、プラットホーム20は、古い圧縮セクションに対応する全てのCLUに対して更新された圧縮セクションを順に書き込むことを要求する(92)。要求されるCLUの新しい数が古い数未満である場合、圧縮セクションは、古い圧縮セクションに対応するCLUの部分に順に書き込まれる。解放されたCLUに関する情報は、ファイルが閉じられるまでプラットホーム20によって扱われる自由CLUの特別なリスト(キュー)に更新される(93)。要求されるCLUの数が古い数よりも大きい場合、圧縮セクションは古い圧縮セクションに対応する全てのCLU順に書き込まれ(94)、続いて、自由CLUのキューから取得したCLUに対して書き込まれる(95)。更なるCLUが必要な場合には、プラットホームはファイル(#n)に割り付けられた最後のCLUを定め、(n+1)の数から始まるCLUに対して順に書き込むことを要求し(96)、割り付けられたCLUのリストはこれに応じて更新される(97)。
本発明のある実施の形態では、最後の圧縮セクション(図4の48−C1によって示される)における最後のCLUは、特別な方法で扱われ、即ち、部分的に満たされている場合に正確な圧縮サイズに切られる。セクションテーブルは、ヘッダ長+(N−1)×CLUサイズ+Sのオフセットに対して書き込まれ、このとき、Nは割り付けられたCLUの合計であり、Sは最後のCLUにおける圧縮データのサイズである。
図10は、本発明のある実施の形態による、ファイルを閉じる操作中のCLU管理のアルゴリズムを示す。
ファイルを閉じる(102)前に、プラットホームは、自由CLUのリストが空か否かを確認する(101)。リスト中にまだCLUが存在する場合、プラットホーム20は使用中のCLUの中から最も高い記憶場所ポインタを有するCLUを定める。上記CLUに含まれる圧縮データは、より低いポインタで自由CLUに転送され(103)、空になったCLUは自由CLUのリストに追加される。当該処理は、使用中のCLUの全てのポインタが自由CLUのリストにあるどのCLUのポインタよりも低くなるまで繰り返される(104)。セクションテーブルは、これに応じて更新される(105)。このような更新は、上記CLUの書き換え毎に、書き換え処理全体の終わりで、または、他の所定の基準に応じて行われる。処理が終わると、ファイルは閉じられ、自由CLUは解放される(106)。上述の処理に対する自由CLUの選択は、異なるアルゴリズムに従って提供されてもよい。例えば、本発明のある実施の形態では、最も高い記憶場所ポインタを有するCLUからの上記圧縮データは、最も低い記憶場所ポインタを有する自由CLUに転送されてもよい。
図11a乃至図11cを参照するに、本発明のある実施の形態によるCLUと割り当てられたディスクメモリセグメントとの間の関係が示される。図11aは、新しい圧縮ファイルとして作成されたときの図5に示す例示的なファイル50を示す。CLUの仮想(論理)シーケンスは、CLUに対応するディスクセグメントの物理的シーケンスと同じである(CLU内の数は対応するディスクメモリセグメントへのポインタを示す)。図11bは、図5を参照して説明した更新された例示的なファイルのように圧縮セクションのサイズが変更されていない更新された圧縮ファイル内のCLUの新しい配分を示す。CLUの仮想(論理)シーケンスは、ファイルのデフラグ構成(de-fragmented structure)を維持しつつ、CLUに対応するディスクセグメントの物理的なシーケンスとは異なる。図11cは、更新された例示的な圧縮ファイル50内のCLUのデフラグ配分を示し、二番目の圧縮セクションのサイズは432111から200100バイトへの更新後に変更されている。例えば、更新オフセットが1MB+314バイトの場合、第1の圧縮セクションは更新中に影響を及ぼされない。二番目の圧縮セクションの新しいサイズは、4CLU(「200100/61440」+1)の割り付けだけを必要とする。ここで、図11bに示すように、更新前には、第2の圧縮セクションは8個のCLU(番号2、3、7、10、11、12、15および16)を収容している。図9を参照して説明したように、プラットホーム20は、圧縮セクション(本例では2、3、7、10)から最初の4個のCLUに対して更新された二番目の圧縮セクションを書き込み、ポインタ11、12、15および16を有するCLUを自由CLUのリストに送る。三番目および四番目の圧縮セクションもこの特定の更新中は影響を及ぼされない。図10を参照して説明したように、プラットホーム20は、ファイルを閉じる前に自由CLUのリストが空か否かを確認する。本例では、リストは、記憶場所ポインタ11、12、15および16を有するCLUを含む。図10を参照して説明したように、プラットホームは、ポインタ13を有するCLUからポインタ11を有するCLUに圧縮データを書き換え、ポインタ16を有するCLUからポインタ12を有するCLUに圧縮データを書き換え、ポインタ13乃至16を有するCLUを解放する。従って、更新されたファイルは、デフラグのない12個の割り付けられたCLUを有する。
本発明は、図6乃至図11を参照して説明したプラットホーム12とストレージデバイス14との間の特定の入来/発出通信に限定されないことに注意する。当業者には、本発明がネットワーク構造およびプラットホーム20の機能の実行方法によって全ての他の通信にも同様に適用可能であることが理解されるであろう。例えば、圧縮ファイルが内部プラットホームリソースに書き込まれおよび/または読み出される場合、発出要求を生成する必要はない。同様にして、プラットホーム機能がストレージリソースと一体化されている場合には発出要求の必要性はない。追加的な要件(例えば、確実なアクセス、データ保全性等)は、プラットホームとファイルストレージデバイスとの間の通信並びにネットワークリソース全体をより複雑にする。
本発明は、本願に記載するあるいは図面に例示する説明にその適用が制限されないことは理解されるであろう。本発明の他の実施の形態も可能であり、様々な方法で実行され実施されてもよい。従って、本願で用いる表現および用語が、説明目的であり、制限的として解釈されてはならない。当業者には、本開示が基づく概念が、本発明の幾つかの目的を実行するための他の構成、方法およびシステムを設計する基礎となることは理解されるであろう。
当業者には、添付の特許請求の範囲に定められる範囲から逸脱することなく上述の説明したような本発明の実施の形態に様々な変更および変化が行われてもよいことは容易に理解されるであろう。
当該技術において公知の典型的なNASストレージネットワーク構造の概略的なブロック図 本発明のある実施の形態によるNASストレージネットワーク構造の概略的なブロック図 本発明のある実施の形態によるNASストレージネットワーク構造の概略的なブロック図 本発明のある実施の形態によるシステム機能構造の概略的なブロック図 本発明のある実施の形態による原ファイルおよび圧縮ファイルの略図 本発明のある実施の形態によるセクションテーブルの例示的な構成を示す図 本発明のある実施の形態による圧縮ファイルを作成する操作の一般化されたフローチャート 本発明のある実施の形態による圧縮ファイルに対する読み出し操作の一般化されたフローチャート 本発明のある実施の形態による圧縮ファイルに対する書き込み操作の一般化されたフローチャート 本発明のある実施の形態による圧縮セクションに対する書き込み操作のシーケンスを例示する一般化されたフローチャート ファイルに対する閉じる操作中のCLU管理の一般化されたフローチャート 本発明のある実施の形態によるCLUと割り当てられたディスクメモリセグメントとの間の関係を示す略図 本発明のある実施の形態によるCLUと割り当てられたディスクメモリセグメントとの間の関係を示す略図 本発明のある実施の形態によるCLUと割り当てられたディスクメモリセグメントとの間の関係を示す略図

Claims (10)

  1. 少なくとも一つのファイルアクセスストレージプロトコルにより動作する記憶装置において記憶するために圧縮ファイルを作成し、前記圧縮ファイルに対して所与のデータ範囲でデータを書き込む方法であって、
    a)原ファイルを圧縮して圧縮データを生成するステップであって、前記原ファイルのデータはクラスタとして1個以上の固定サイズを有する第1のクラスタおよび1個または0個の前記固定サイズに満たないサイズを有する第2のクラスタを含み、
    前記第1のクラスタおよび第2のクラスタが順に処理された結果、前記第1のクラスタおよび第2のクラスタのそれぞれが対応する圧縮セクションに圧縮され、前記各圧縮セクションは1個以上の固定サイズを有する固定サイズ圧縮論理ユニット(CLU)に分割されて記憶されるステップと、
    b)前記圧縮ファイルとしての前記圧縮データの記憶を促進するステップであって、前記圧縮ファイルは、前記原ファイルのクラスタに対応する圧縮セクションと、対応する前記原ファイルのサイズについての情報を保持するヘッダとを含むステップと、
    c)前記圧縮セクションに関連する少なくとも一つのレコードを有するセクションテーブルを作成するステップであって、前記レコードは、前記圧縮セクションに対応するCLUに関する情報と、前記CLUに関連する記憶場所ポインタとを少なくとも保持するステップとを、備え
    a1)更新されるべきデータを有し元の圧縮セクションを生じさせる第1の圧縮セクションのシリアル番号を判定するステップと、
    b1)セクションテーブルを参照して前記元の圧縮セクションに対応するCLUおよびその記憶場所を判定するステップと、
    c1)前記元の圧縮セクションからのクラスタの復元を促進するステップと、
    d1)前記クラスタ内の更新されるべきデータのオフセットを計算し、前記更新を促進するステップと、
    e1)前記更新された圧縮セクションに前記更新されたクラスタを圧縮するステップと、
    f1)前記更新された圧縮セクションで前記元の圧縮セクションへの上書きを促進するステップと、
    g1)セクションテーブルを更新するステップと、
    h1)書き込まれるべきデータの範囲が復元されたクラスタを超える場合には、書き込むべき必要なデータ全てが復元されるまでステップb1)乃至g1)を、シリアル番号を1だけインクリメントした圧縮セクションに対して繰り返すステップと、
    i1)前記圧縮ファイルへのデータの書き込み中に解放された自由CLUのリストを扱うステップであって、前記リストは、ファイルが閉じられるまでファイルに関連する全てのセッション中に扱われるステップと、
    a2)ファイルを閉じる前に自由CLUのリストを確認し、最も低い記憶場所ポインタを有する自由CLUを特定するステップと、
    b2)前記リストが空でない場合には、前記圧縮セクションに含まれるCLUの中の最も高い記憶場所ポインタを有するCLUを定め、第1のCLUを生じさせるステップと、
    c2)前記第1のCLUから前記最も低い記憶場所ポインタを有する自由CLUへの圧縮データの移動を促進し、第2のCLUを生じさせるステップと、
    d2)前記第2のCLUを属する圧縮セクションに割り当て、前記第1のCLUを自由CLUのリストに割り当てるステップと、
    e2)圧縮セクションに含まれる全てのCLUの記憶場所ポインタが自由CLUのリストに含まれるどのCLUのポインタよりも低くなるまでステップb)−d)を繰り返すステップと、
    f2)セクションテーブルを更新するステップと、を備える方法。
  2. 前記原ファイルのサイズを、対応する蓄積された前記圧縮ファイルのサイズに言及する要求に応答して報告するステップを更に備える、請求項1記載の方法。
  3. 少なくとも一つのクラスタの圧縮は、処理中に評価された取得可能な圧縮比が所定の基準を満たす場合にだけ与えられる、請求項1または請求項2記載の方法。
  4. 前記圧縮ファイルは、対応する前記クラスタの非圧縮データを収容する少なくとも一つの圧縮セクションを含む、請求項1から請求項3のいずれかに記載の方法。
  5. 前記圧縮セクションを記述するセクションテーブルにおけるレコードのうち少なくとも一つのレコードは、前記圧縮セクションが圧縮データを含むかを示す情報を保持する、請求項1から請求項4のいずれかに記載の方法。
  6. 前記元のセクションに対応するCLUの数Nと前記更新された圧縮セクションに対応するCLUの数Nを比較するステップと、
    a)N=Nの場合、更新された圧縮セクションに対応するCLUで元の圧縮セクションに対応する全てのCLUを上書きすること、
    b)N>Nの場合、更新された圧縮セクションに対応するCLUで元の圧縮セクションに対応するNのCLUを上書きし、解放されるCLUに関する自由CLUのリストを更新すること、
    c)N<N<N+N(Nは自由CLUのリスト中のCLUの数)の場合、更新された圧縮セクションに対応するCLUで元の圧縮セクションに対応する全てのCLUを上書きし、更新された圧縮セクションに対応する残りのCLUを自由CLUのリストに含まれるCLUに書き込むこと、
    d)N+N<Nの場合、更新された圧縮セクションに対応するCLUで元の圧縮セクションに対応する全てのCLUを上書きし、更新された圧縮セクションに対応するCLUを自由CLUのリストに含まれるCLUに書き込み、次の自由な記憶場所に更新された圧縮セクションに対応する残りのCLUを連続的に書き込むこと、
    のいずれかを促進するステップを更に備える、請求項1から請求項5のいずれかに記載の方法。
  7. ストレージネットワークにおいて動作可能であり、請求項1から請求項6のいずれかの方法のステップを実行するよう構成された通信装置または記憶装置。
  8. 記憶するためにファイルを圧縮するシステムであって、
    a)原ファイルを圧縮し圧縮データを生成するよう構成されたサブシステムであって、前記原ファイルのデータはクラスタとして1個以上の固定サイズを有する第1のクラスタおよび1個または0個の前記固定サイズに満たないサイズを有する第2のクラスタを含み、
    前記第1のクラスタおよび第2のクラスタが順に処理された結果、前記第1のクラスタおよび第2のクラスタのそれぞれが対応する圧縮セクションに圧縮され、前記各圧縮セクションは1個以上の固定サイズを有する固定サイズ圧縮論理ユニット(CLU)に分割されて記憶されるよう構成されたサブシステムと、
    b)圧縮ファイルとしての圧縮データの記憶を促進するよう構成されたサブシステムであって、前記圧縮ファイルは、前記原ファイルのクラスタに対応する一つ以上の圧縮セクションと、対応する前記原ファイルのサイズについての情報を保持するヘッダとを含むサブシステムと、
    c)前記圧縮セクションを記述する少なくとも一つのレコードを有するセクションテーブルを作成するよう構成されたサブシステムであって、前記レコードは、圧縮セクションに対応するCLUと、前記CLUに関連する記憶場所ポインタに関する情報とを保持するサブシステムと、を備え
    a1)更新されるべきデータを有し元の圧縮セクションを生じさせる第1の圧縮セクションのシリアル番号を判定する動作と、
    b1)セクションテーブルを参照して前記元の圧縮セクションに対応するCLUおよびその記憶場所を判定する動作と、
    c1)前記元の圧縮セクションからのクラスタの復元を促進する動作と、
    d1)前記クラスタ内の更新されるべきデータのオフセットを計算し、前記更新を促進する動作と、
    e1)前記更新された圧縮セクションに前記更新されたクラスタを圧縮する動作と、
    f1)前記更新された圧縮セクションで前記元の圧縮セクションへの上書きを促進する動作と、
    g1)セクションテーブルを更新する動作と、
    h1)書き込まれるべきデータの範囲が復元されたクラスタを超える場合には、書き込むべき必要なデータ全てが復元されるまで動作b1)乃至g1)を、シリアル番号を1だけインクリメントした圧縮セクションに対して繰り返す動作と、
    i1)前記圧縮ファイルへのデータの書き込み中に解放された自由CLUのリストを扱う動作であって、前記リストは、ファイルが閉じられるまでファイルに関連する全てのセッション中に扱われる動作と、
    a2)ファイルを閉じる前に自由CLUのリストを確認し、最も低い記憶場所ポインタを有する自由CLUを特定する動作と、
    b2)前記リストが空でない場合には、前記圧縮セクションに含まれるCLUの中の最も高い記憶場所ポインタを有するCLUを定め、第1のCLUを生じさせる動作と、
    c2)前記第1のCLUから前記最も低い記憶場所ポインタを有する自由CLUへの圧縮データの移動を促進し、第2のCLUを生じさせる動作と、
    d2)前記第2のCLUを属する圧縮セクションに割り当て、前記第1のCLUを自由CLUのリストに割り当てる動作と、
    e2)圧縮セクションに含まれる全てのCLUの記憶場所ポインタが自由CLUのリストに含まれるどのCLUのポインタよりも低くなるまで動作b)−d)を繰り返す動作と、
    f2)セクションテーブルを更新する動作と、を行うように構成されたサブシステムと、をさらに備えるシステム。
  9. 記憶された圧縮ファイルのサイズに言及する要求において介入し、前記要求に応答して当該原ファイルのサイズを報告し得るよう更に構成された請求項8記載のシステム。
  10. コンピュータプログラムであって、
    前記プログラムがコンピュータ上で実行され、および/または、コンピュータ可読媒体上で具現されたときに、請求項1から請求項6のいずれかにおけるすべてのステップを実行するためのコンピュータプログラムコード手段を有する、コンピュータプログラム。
JP2007510232A 2004-04-26 2005-04-21 記憶のためのファイル圧縮および圧縮ファイルの操作の方法およびシステム Active JP4755642B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US56529804P 2004-04-26 2004-04-26
US60/565,298 2004-04-26
PCT/IL2005/000419 WO2005103878A2 (en) 2004-04-26 2005-04-21 Method and system for compression of files for storage and operation on compressed files

Publications (3)

Publication Number Publication Date
JP2007535068A JP2007535068A (ja) 2007-11-29
JP2007535068A5 JP2007535068A5 (ja) 2008-09-11
JP4755642B2 true JP4755642B2 (ja) 2011-08-24

Family

ID=35197600

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007510232A Active JP4755642B2 (ja) 2004-04-26 2005-04-21 記憶のためのファイル圧縮および圧縮ファイルの操作の方法およびシステム

Country Status (9)

Country Link
US (2) US7979403B2 (ja)
EP (1) EP1745394B1 (ja)
JP (1) JP4755642B2 (ja)
CN (1) CN1973287A (ja)
AU (1) AU2005236265A1 (ja)
CA (1) CA2564844C (ja)
DE (1) DE602005015435D1 (ja)
IL (1) IL178694A (ja)
WO (1) WO2005103878A2 (ja)

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006059319A (ja) * 2004-07-21 2006-03-02 Ricoh Co Ltd 情報処理装置、プログラムおよび記憶媒体
JP4754982B2 (ja) * 2006-02-13 2011-08-24 パナソニック株式会社 ファイル転送システム
US20070208893A1 (en) * 2006-02-23 2007-09-06 Microsoft Corporation File-based compression on a fat volume
JP5431148B2 (ja) 2006-05-31 2014-03-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ストレージ用論理データオブジェクトの変換方法およびシステム
US8868930B2 (en) 2006-05-31 2014-10-21 International Business Machines Corporation Systems and methods for transformation of logical data objects for storage
KR101490327B1 (ko) 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
JP5037952B2 (ja) * 2007-01-15 2012-10-03 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US20080228770A1 (en) * 2007-03-15 2008-09-18 Halcrow Michael A Method for Performing Recoverable Live Context Migration in a Stacked File System
US8447285B1 (en) 2007-03-26 2013-05-21 Callwave Communications, Llc Methods and systems for managing telecommunications and for translating voice messages to text messages
US8325886B1 (en) 2007-03-26 2012-12-04 Callwave Communications, Llc Methods and systems for managing telecommunications
US8583746B1 (en) 2007-05-25 2013-11-12 Callwave Communications, Llc Methods and systems for web and call processing
US8463759B2 (en) * 2007-09-24 2013-06-11 Ca, Inc. Method and system for compressing data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
GB2457303A (en) 2008-02-11 2009-08-12 Linear Algebra Technologies Randomly accessing elements of compressed matrix data by calculating offsets from non-zero values of a bitmap
US20090287986A1 (en) * 2008-05-14 2009-11-19 Ab Initio Software Corporation Managing storage of individually accessible data units
US8286171B2 (en) 2008-07-21 2012-10-09 Workshare Technology, Inc. Methods and systems to fingerprint textual information using word runs
WO2010059747A2 (en) 2008-11-18 2010-05-27 Workshare Technology, Inc. Methods and systems for exact data match filtering
CN101478370B (zh) * 2009-01-20 2012-05-23 中兴通讯股份有限公司 基于文件***的文件压缩方法及装置
US7987162B2 (en) * 2009-03-06 2011-07-26 Bluearc Uk Limited Data compression in a file storage system
TWI413899B (zh) 2009-07-27 2013-11-01 Univ Nat Sun Yat Sen 應用於循環記憶體之壓縮資料管理系統及方法
US8209303B2 (en) * 2009-07-29 2012-06-26 Novell, Inc. System and method for implementing a reliable persistent random access compressed data stream
US8131688B2 (en) * 2009-08-26 2012-03-06 Lsi Corporation Storage system data compression enhancement
EP2476039B1 (en) 2009-09-09 2016-10-26 SanDisk Technologies LLC Apparatus, system, and method for power reduction management in a storage device
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
CN102053915B (zh) * 2009-10-30 2013-06-19 国立中山大学 应用于循环存储器的压缩数据管理***及方法
US20110119232A1 (en) * 2009-11-18 2011-05-19 Raytheon Company Synchronizing data between a client and a server
CN101923559B (zh) * 2010-03-24 2012-10-10 深圳市万兴软件有限公司 一种图像文件管理方法和***
US10013354B2 (en) 2010-07-28 2018-07-03 Sandisk Technologies Llc Apparatus, system, and method for atomic storage operations
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US10025759B2 (en) 2010-11-29 2018-07-17 Workshare Technology, Inc. Methods and systems for monitoring documents exchanged over email applications
US10783326B2 (en) 2013-03-14 2020-09-22 Workshare, Ltd. System for tracking changes in a collaborative document editing environment
US11030163B2 (en) 2011-11-29 2021-06-08 Workshare, Ltd. System for tracking and displaying changes in a set of related electronic documents
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
CN103262054B (zh) 2010-12-13 2015-11-25 桑迪士克科技股份有限公司 用于自动提交存储器的装置、***和方法
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US8996807B2 (en) 2011-02-15 2015-03-31 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a multi-level cache
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US8745338B1 (en) * 2011-05-02 2014-06-03 Netapp, Inc. Overwriting part of compressed data without decompressing on-disk compressed data
US9948676B2 (en) 2013-07-25 2018-04-17 Workshare, Ltd. System and method for securing documents prior to transmission
US9613340B2 (en) 2011-06-14 2017-04-04 Workshare Ltd. Method and system for shared document approval
US9170990B2 (en) 2013-03-14 2015-10-27 Workshare Limited Method and system for document retrieval with selective document comparison
US10963584B2 (en) * 2011-06-08 2021-03-30 Workshare Ltd. Method and system for collaborative editing of a remotely stored document
US10880359B2 (en) 2011-12-21 2020-12-29 Workshare, Ltd. System and method for cross platform document sharing
US10574729B2 (en) 2011-06-08 2020-02-25 Workshare Ltd. System and method for cross platform document sharing
WO2012169124A1 (ja) 2011-06-10 2012-12-13 パナソニック株式会社 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US8615500B1 (en) * 2012-03-29 2013-12-24 Emc Corporation Partial block allocation for file system block compression using virtual block metadata
US9177028B2 (en) 2012-04-30 2015-11-03 International Business Machines Corporation Deduplicating storage with enhanced frequent-block detection
US9659060B2 (en) * 2012-04-30 2017-05-23 International Business Machines Corporation Enhancing performance-cost ratio of a primary storage adaptive data reduction system
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US9201883B1 (en) * 2012-10-08 2015-12-01 Amazon Technologies, Inc. Remote file archiving using package files
US8959301B2 (en) 2012-11-09 2015-02-17 International Business Machines Corporation Accessing data in a storage system
GB2556262B (en) * 2012-12-21 2018-11-21 Displaylink Uk Ltd Management of memory for storing display data
US9779102B2 (en) * 2013-03-11 2017-10-03 Here Global B.V. Method and apparatus for providing compressed data structure
US11567907B2 (en) 2013-03-14 2023-01-31 Workshare, Ltd. Method and system for comparing document versions encoded in a hierarchical representation
US9805046B2 (en) 2013-03-14 2017-10-31 International Business Machines Corporation Data compression using compression blocks and partitions
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US10911492B2 (en) 2013-07-25 2021-02-02 Workshare Ltd. System and method for securing documents prior to transmission
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
CN105446964B (zh) * 2014-05-30 2019-04-26 国际商业机器公司 用于文件的重复数据删除的方法及装置
US11182551B2 (en) 2014-12-29 2021-11-23 Workshare Ltd. System and method for determining document version geneology
US10133723B2 (en) 2014-12-29 2018-11-20 Workshare Ltd. System and method for determining document version geneology
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
US20160378352A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Efficient solid state drive data compression scheme and layout
US20170038978A1 (en) * 2015-08-05 2017-02-09 HGST Netherlands B.V. Delta Compression Engine for Similarity Based Data Deduplication
US11763013B2 (en) 2015-08-07 2023-09-19 Workshare, Ltd. Transaction document management system and method
US9588694B1 (en) * 2016-01-21 2017-03-07 International Business Machines Corporation Storage device optimization
AU2016231504B2 (en) * 2016-09-20 2021-10-21 Ainsworth Game Technology Limited Method and System of Verifying a File for use in a Gaming Machine
JP6841024B2 (ja) * 2016-12-09 2021-03-10 富士通株式会社 データ処理装置,データ処理プログラムおよびデータ処理方法
US10489350B2 (en) * 2017-02-24 2019-11-26 Advanced Micro Devices, Inc. Data compression with inline compression metadata
JP6756280B2 (ja) * 2017-03-03 2020-09-16 富士通株式会社 情報処理装置,情報処理プログラムおよび情報処理方法
US10282127B2 (en) 2017-04-20 2019-05-07 Western Digital Technologies, Inc. Managing data in a storage system
TWI631556B (zh) * 2017-05-05 2018-08-01 英屬開曼群島商捷鼎創新股份有限公司 資料壓縮裝置及其資料壓縮方法
US10809928B2 (en) 2017-06-02 2020-10-20 Western Digital Technologies, Inc. Efficient data deduplication leveraging sequential chunks or auxiliary databases
US10503608B2 (en) 2017-07-24 2019-12-10 Western Digital Technologies, Inc. Efficient management of reference blocks used in data deduplication
US11194498B1 (en) * 2017-07-28 2021-12-07 EMC IP Holding Company LLC Inline compression with small-write compression avoidance
JP7013732B2 (ja) * 2017-08-31 2022-02-01 富士通株式会社 情報処理装置、情報処理方法及びプログラム
US11119681B2 (en) * 2018-04-28 2021-09-14 Hewlett Packard Enterprise Development Lp Opportunistic compression
US10970254B2 (en) 2018-05-02 2021-04-06 International Business Machines Corporation Utilization of tail portions of a fixed size block in a deduplication environment by deduplication chunk virtualization
US11119654B2 (en) * 2018-07-10 2021-09-14 International Business Machines Corporation Determining an optimal storage environment for data sets and for migrating data sets
CN110647428B (zh) * 2019-09-29 2023-08-04 海信视像科技股份有限公司 镜像文件的制作及恢复方法、处理器和嵌入式***
US11243890B2 (en) * 2020-01-14 2022-02-08 EMC IP Holding Company LLC Compressed data verification
CN113157655A (zh) * 2020-01-22 2021-07-23 阿里巴巴集团控股有限公司 一种数据压缩、解压方法、装置、电子设备和存储介质
CN111797969A (zh) * 2020-06-23 2020-10-20 浙江大华技术股份有限公司 神经网络模型的转换方法及相关装置
CN114328373A (zh) * 2020-09-29 2022-04-12 伊姆西Ip控股有限责任公司 管理文件***的方法、电子设备和计算机程序产品
CN113590051B (zh) * 2021-09-29 2022-03-18 阿里云计算有限公司 数据存储和读取方法、装置、电子设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08314689A (ja) * 1995-05-12 1996-11-29 Fujitsu Ltd 圧縮データ管理方式
US6577734B1 (en) * 1995-10-31 2003-06-10 Lucent Technologies Inc. Data encryption key management system

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481701A (en) * 1991-09-13 1996-01-02 Salient Software, Inc. Method and apparatus for performing direct read of compressed data file
US5305295A (en) * 1992-06-29 1994-04-19 Apple Computer, Inc. Efficient method and apparatus for access and storage of compressed data
US5649151A (en) * 1992-06-29 1997-07-15 Apple Computer, Inc. Efficient method and apparatus for access and storage of compressed data
US5991753A (en) * 1993-06-16 1999-11-23 Lachman Technology, Inc. Method and system for computer file management, including file migration, special handling, and associating extended attributes with files
AU1447295A (en) 1993-12-30 1995-08-01 Connectix Corporation Virtual memory management system and method using data compression
US6349375B1 (en) * 1994-02-02 2002-02-19 Compaq Computer Corporation Compression of data in read only storage and embedded systems
US5488365A (en) * 1994-03-01 1996-01-30 Hewlett-Packard Company Method and apparatus for compressing and decompressing short blocks of data
WO1995029437A1 (fr) 1994-04-22 1995-11-02 Sony Corporation Dispositif et methode pour transmettre des donnees et dispositif et methode pour enregistrer des donnees
US5668970A (en) * 1994-06-20 1997-09-16 Cd Rom, U.S.A., Inc. Method and apparatus for generating a file allocation table for a storage medium with no file allocation table using file storage information
US5574906A (en) * 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
JP2831602B2 (ja) * 1995-01-13 1998-12-02 富士通株式会社 圧縮データ管理装置及び圧縮データ管理方法
US5778411A (en) * 1995-05-16 1998-07-07 Symbios, Inc. Method for virtual to physical mapping in a mapped compressed virtual storage subsystem
US5809295A (en) * 1995-09-26 1998-09-15 Microsoft Corporation Method and apparatus for storing compressed file data on a disk where each MDFAT data structure includes an extra byte
US5765173A (en) * 1996-01-11 1998-06-09 Connected Corporation High performance backup via selective file saving which can perform incremental backups and exclude files and uses a changed block signature list
US5774715A (en) * 1996-03-27 1998-06-30 Sun Microsystems, Inc. File system level compression using holes
US5761536A (en) * 1996-08-21 1998-06-02 International Business Machines Corporation System and method for reducing memory fragmentation by assigning remainders to share memory blocks on a best fit basis
US6112024A (en) * 1996-10-02 2000-08-29 Sybase, Inc. Development system providing methods for managing different versions of objects with a meta model
US6115787A (en) * 1996-11-05 2000-09-05 Hitachi, Ltd. Disc storage system having cache memory which stores compressed data
US6092071A (en) * 1997-11-04 2000-07-18 International Business Machines Corporation Dedicated input/output processor method and apparatus for access and storage of compressed data
US6624761B2 (en) * 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6145069A (en) * 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
FI991261A (fi) * 1999-06-02 2000-12-03 Nokia Networks Oy Trie-rakenteeseen perustuva funktionaalinen muisti
WO2001025928A1 (en) * 1999-10-01 2001-04-12 Infraworks Corporation Method and apparatus for monitoring clock-related permission on a computer to prevent unauthorized access
US6532121B1 (en) * 1999-10-25 2003-03-11 Hewlett-Packard Company Compression algorithm with embedded meta-data for partial record operation augmented with expansion joints
JP4424845B2 (ja) 1999-12-20 2010-03-03 本田 正 イメージデータ圧縮方法及び復元方法
US6728785B1 (en) * 2000-06-23 2004-04-27 Cloudshield Technologies, Inc. System and method for dynamic compression of data
WO2002039306A1 (en) 2000-11-09 2002-05-16 Sri International Systems and methods for negotiated resource utilization
US20020107988A1 (en) 2001-02-05 2002-08-08 James Jordan In-line compression system for low-bandwidth client-server data link
US8402005B2 (en) * 2001-03-27 2013-03-19 Intel Corporation Systems and methods for creating self-extracting files
EP1563389A4 (en) * 2001-08-01 2008-06-25 Actona Technologies Ltd VIRTUAL DATA DISTRIBUTION NETWORK
US6678828B1 (en) * 2002-07-22 2004-01-13 Vormetric, Inc. Secure network file access control system
US7958289B2 (en) * 2002-08-08 2011-06-07 International Business Machines Corporation Method and system for storing memory compressed data onto memory compressed disks
US7228925B2 (en) * 2002-10-04 2007-06-12 Tesla Capital, Llc Electrical systems for electric powered vehicles
US20050033988A1 (en) * 2002-10-18 2005-02-10 Neoscale Systems, Inc. Method and system for transparent encryption and authentication of file data protocols over internet protocol
US7536418B2 (en) * 2003-01-10 2009-05-19 At&T Intellectual Property Ii, Lp Preload library for transparent file transformation
JP4131514B2 (ja) * 2003-04-21 2008-08-13 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、サーバ、データ処理方法及びプログラム
US7117204B2 (en) * 2003-12-03 2006-10-03 International Business Machines Corporation Transparent content addressable data storage and compression for a file system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08314689A (ja) * 1995-05-12 1996-11-29 Fujitsu Ltd 圧縮データ管理方式
US6577734B1 (en) * 1995-10-31 2003-06-10 Lucent Technologies Inc. Data encryption key management system

Also Published As

Publication number Publication date
US20060184505A1 (en) 2006-08-17
EP1745394B1 (en) 2009-07-15
US8606763B2 (en) 2013-12-10
WO2005103878A2 (en) 2005-11-03
CN1973287A (zh) 2007-05-30
CA2564844A1 (en) 2005-11-03
US20110218976A1 (en) 2011-09-08
CA2564844C (en) 2014-12-09
WO2005103878A3 (en) 2006-08-24
IL178694A (en) 2011-12-29
DE602005015435D1 (de) 2009-08-27
EP1745394A2 (en) 2007-01-24
EP1745394A4 (en) 2007-10-31
US7979403B2 (en) 2011-07-12
IL178694A0 (en) 2007-02-11
JP2007535068A (ja) 2007-11-29
AU2005236265A1 (en) 2005-11-03

Similar Documents

Publication Publication Date Title
JP4755642B2 (ja) 記憶のためのファイル圧縮および圧縮ファイルの操作の方法およびシステム
US8327050B2 (en) Systems and methods for compressing files for storage and operation on compressed files
US8347003B2 (en) Systems and methods for compression of data for block mode access storage
US8656075B2 (en) Method and system for compression of files for storage and operation on compressed files
US20060230014A1 (en) Method and system for compression of files for storage and operation on compressed files
US9176975B2 (en) Method and system for transformation of logical data objects for storage
US20060190643A1 (en) Method and system for compression of data for block mode access storage
EP1376403A2 (en) Backup file format and corresponding method and system
ZA200608760B (en) Method and system for compression of files for storage and operation on compressed files

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110425

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: 20110524

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110527

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140603

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4755642

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250