JP5819416B2 - データ記憶とデータ送信の最適化 - Google Patents

データ記憶とデータ送信の最適化 Download PDF

Info

Publication number
JP5819416B2
JP5819416B2 JP2013515377A JP2013515377A JP5819416B2 JP 5819416 B2 JP5819416 B2 JP 5819416B2 JP 2013515377 A JP2013515377 A JP 2013515377A JP 2013515377 A JP2013515377 A JP 2013515377A JP 5819416 B2 JP5819416 B2 JP 5819416B2
Authority
JP
Japan
Prior art keywords
data
file
file data
storage server
storage
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.)
Expired - Fee Related
Application number
JP2013515377A
Other languages
English (en)
Other versions
JP2013534007A (ja
JP2013534007A5 (ja
Inventor
アイリーン シー.ブラウン
シー.ブラウン アイリーン
イー.ジョリー トーマス
イー.ジョリー トーマス
フェニング イエルク−トーマス
フェニング イエルク−トーマス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2013534007A publication Critical patent/JP2013534007A/ja
Publication of JP2013534007A5 publication Critical patent/JP2013534007A5/ja
Application granted granted Critical
Publication of JP5819416B2 publication Critical patent/JP5819416B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/173Customisation support for file systems, e.g. localisation, multi-language support, personalisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Description

記憶最適化機能性(storage optimization functionality)は、ファイルサーバおよびデータ記憶マーケットにおいて競争力を付けるためにますます重要になっている。ネットワークトラフィックの最適化も、コンピュータ環境とネットワーク環境、および既存のネットワークインフラストラクチャに統合される機器(appliance)において重要になっており、リアルタイムでネットワークトラフィックの最適化を行なうことによって有用な便益が得られる。
コンピュータ上で生成され、送信され、ストアされるデータの量は急速なペースで増加を続けている。コンシューマ(消費者)およびコンペティタ(競争企業)は、保存データに必要とされる記憶量を削減するためにデータ最適化手法を使用する傾向を高めている。例えば、データは圧縮されることがあり、ストアされたデータ内の冗長性は、データのストアのために必要なスペースを削減するために低減されることがある。ネットワーク上を転送されるデータ量を減少するために類似の手法も適用されつつある。しかし、データ記憶とデータ送信に対する現在のソリューションは大部分が別々で行われており、統一されたソリューションは知られていない。記憶手法と送信手法が別々であるために、データ記憶とデータ送信を一緒に見た場合に、冗長性、非互換性および不必要なオーバヘッドが生じている。
一例として、サーバ(すなわち、データストア)上にストアされるファイルは、データ記憶サーバ上にストアされる場合に、別々のセグメント(すなわち、チャンク(chunk))に圧縮され、ストアされることがある。クライアントに送信されるファイルをクライアントがサーバに要求するとき、サーバはチャンクを再アセンブル(reassemble)し、ファイルを再構築(reconstitute)するためにファイルを展開(decompress)してからそのファイルをクライアントに送信しなければならない。
同様に、送信バンド幅(例えば、ネットワーク上の)、レイテンシ(latency)または送信コストを低減するためには、ネットワークエージェントはファイルを受け取ったあと、送信前にそのファイルを再び圧縮し、圧縮したファイルを他方のエンドポイントに送信し、そのあと送信経路の他方のエンドでファイルを展開することもある。
有用であるのは、統一されたデータ最適化ツールおよび手法であり、その中には、記憶と送信プロトコル、ファイルシステムAPI、データストア、サーバ、クライアント、アプリケーションおよびクラウドが含まれる。このようなツールと手法を使用すると、データ転送と送信プロトコルによって利用できる、保存データに対して最適化された記憶を提供することにより、ばらばらで別々の既存データ記憶とデータ送信ソリューションを拡張し、向上することができる。
本発明は、データ記憶とデータ送信をエンドツーエンド(end-to-end)で最適化するための方法、システム、デバイスおよびコンピュータプログラムプロダクトに適用される。例えば、本明細書に記載の実施形態は、データ記憶とデータ送信の両方の効率化と最適化を強化し、向上させることを可能にする。
一例示実施形態は、データ記憶サーバ内の記憶最適化の詳細がクライアントに見えるように(expose)する方法を提供している。この方法は、データ記憶サーバ上のファイルデータの記憶を記述したメタデータにアクセスするステップを含み、そこではファイルデータは、そのファイルデータのネイティブ形体(form)とは異なる形体でデータ記憶サーバ上にストアされている。このメタデータは、ファイルデータの記憶形体がデータ記憶サーバ上にストアされている通りに見えるようにする。
クライアントは、ファイルデータのリクエストを記憶サーバに送信することができ、ファイルデータ、データ記憶サーバ上のファイルデータの記憶を記述した追加メタデータ、および/またはファイルデータの少なくとも一部を表わしているデータを含む情報をデータ記憶サーバから受信することができる。
別の例示実施形態によれば、データ記憶サーバ内の記憶最適化の詳細がクライアントに見えるようにする方法が提供されている。この方法は、データ記憶サーバ上の記憶を記述したメタデータを送信するステップを含んでいる。ファイルデータは、そのファイルデータのネイティブ形体とは異なる形体でデータ記憶サーバ上にストアされており、メタデータは、ファイルデータの記憶形体がデータ記憶サーバ上にストアされた通りに見えるようにする。
データ記憶サーバは、ファイルデータのリクエストをコンピューティングシステムから受信し、ファイルデータ、データ記憶サーバ上のファイルデータの記憶を記述した追加メタデータ、および/またはファイルデータの少なくとも一部を表わしているデータを含む情報を送信する。
別の例示実施形態によれば、データ記憶サーバ内の記憶最適化の詳細がクライアントに見えるようにするコンピュータプログラムプロダクトが提供されている。このコンピュータプログラムプロダクトは、特に、ファイルデータのリクエストをコンピューティングシステムからデータ記憶サーバに送信し、データ記憶サーバ上のファイルデータの記憶を記述した情報を含む情報をデータ記憶サーバから受信するためのコンピュータ実行可能命令を含んでいる。
本発明の追加の特徴と利点は以下の説明の中で明らかにされるが、その一部は以下の説明から自明であることもあれば、本発明の実施によって習得されることもある。本発明の特徴と利点は、特に特許請求の範囲の中で記載されている手段およびその組み合わせによって実現され、取得されることがある。本発明のこれらの特徴およびその他の特徴は、以下の説明および特許請求の範囲の記載からより詳細に明らかになるが、以下に記述されている通りに本発明を実施することにより習得されることがある。
なお、この概要は、以下の詳細な説明に詳しく記載されているコンセプト(概念)を選択して簡単に紹介したものである。この概要は、請求項に記載の主題のキーとなる特徴または基本的特徴を特定するものでも、請求項に記載の主題の範囲を判断する際の一助として使用されるものでもない。
本発明の上記およびその他の利点のある特徴がどのようにして取得できるかを説明するために、以下では、添付図面に示した特定の実施形態を参照して上記に簡単に記載した本発明についてより具体的に説明する。これらの図面は本発明の代表的な実施形態のみを図示しており、従って本発明の範囲を限定するものではないとの理解の下で、以下では、添付図面の使用を通してさらに具体的にかつ詳細に本発明を記載し、解説する。
データ記憶とデータ送信をエンドツーエンドで最適化する例を示す図である。 データ記憶とデータ送信をエンドツーエンドで最適化するためのアーキテクチャの例を示す図である。 データ記憶サーバ内の記憶最適化の詳細がクライアント側から見た通りにクライアントに見えるようにする方法の例を示す図である。 データ記憶サーバ内の記憶最適化の詳細がサーバ側から見た通りにクライアントに見えるようにするための方法の例を示す図である。
本発明は、データ記憶とデータ送信をエンドツーエンドで最適化するための方法、システム、デバイスおよびコンピュータプログラムプロダクトに適用される。例えば、本明細書に記載の実施形態によれば、データ記憶とデータ送信の両方の効率化と最適化を強化することを可能にしている。本発明は、データ記憶サーバ内の記憶最適化の詳細がクライアントに見えるようにする方法、システムおよびコンピュータプログラムプロダクトに適用される。本発明の実施形態は特殊目的または汎用コンピュータを含むことがあり、その中には、本明細書の中で詳しく説明されているように、種々のコンピュータハードウェアまたはモジュールが含まれている。
一例示実施形態によれば、データ記憶サーバ内の記憶最適化の詳細がクライアントに見えるようにする方法が提供されている。この方法は、データ記憶サーバ上のファイルデータの記憶を記述したメタデータにアクセスするステップを含み、そこではファイルデータはそのファイルデータのネイティブ形体とは異なる形体でデータ記憶サーバ上にストアされている。このメタデータは、ファイルデータの記憶形体がデータ記憶サーバ上にストアされている通りに見えるようにする。
クライアントはファイルデータのリクエストを記憶サーバに送信することができ、ファイルデータ、データ記憶サーバ上のファイルデータの記憶を記述した追加メタデータ、および/またはファイルデータの少なくとも一部を表わしているデータを含む情報をデータ記憶サーバから受信することができる。
別の例示実施形態によれば、データ記憶サーバ内の記憶最適化の詳細がクライアントに見えるようにする方法が提供されている。この方法は、データ記憶サーバ上のファイルデータの記憶を記述したメタデータを送信するステップを含んでいる。ファイルデータは、そのファイルデータのネイティブ形体とは異なる形体でデータ記憶サーバ上にストアされており、メタデータはそのファイルデータの記憶形体がデータ記憶サーバにストアされている通りに見えるようにする。
データ記憶サーバは、ファイルデータのリクエストをコンピューティングシステムから受信し、ファイルデータ、データ記憶サーバ上のファイルデータの記憶を記述した追加メタデータ、および/またはファイルデータの少なくとも一部を表わしているデータを含む情報を送信する。
別の例示実施形態によれば、データ記憶サーバ内の記憶最適化の詳細がクライアントに見えるようにするコンピュータプログラムプロダクトが提供されている。このコンピュータプログラムプロダクトは、特に、ファイルデータのリクエストをコンピューティングシステムからデータ記憶サーバに送信し、データ記憶サーバ上のファイルデータの記憶を記述した情報を含む情報をデータ記憶サーバから受信するためのコンピュータ実行可能命令を含んでいる。
本発明の実施形態によれば、以下で詳しく説明されるように、例えば、1つまたは2つ以上のプロセッサおよびシステムメモリのようなコンピュータハードウェアを含む特殊目的または汎用コンピュータが含まれているか、または利用されることがある。本発明の範囲内の実施形態は、コンピュータ実行可能命令を実行またはストアするための物理的およびその他のコンピュータ可読媒体および/またはデータ構造も含んでいる。このようなコンピュータ可読媒体は、汎用または特殊目的コンピュータシステムによってアクセス可能ならば、利用可能などのような媒体であってもよい。コンピュータ実行可能命令をストアするコンピュータ可読媒体は物理的記憶媒体であることがある。コンピュータ実行可能命令を実行するコンピュータ可読媒体は伝送媒体であることがある。従って、例を挙げると、本発明の実施形態は、少なくとも2つの異なる別種のコンピュータ可読媒体、すなわち、コンピュータ記憶媒体と伝送媒体を含むことができるが、これらに限定されない。
コンピュータ記憶媒体としては、RAM、ROM、EEPROM、CD−ROMまたはその他の光ディスク記憶装置、磁気ディスク記憶装置またはその他の磁気記憶デバイス、または望みのプログラムコード手段をコンピュータ実行可能命令またはデータ構造の形体でストアするために使用可能で、汎用または特殊目的コンピュータによってクセス可能であるその他の任意の媒体がある。
コンピュータプログラムプロダクトは、1つまたは2つ以上のプロセッサ上で実行されるとき、方法、ステップおよび動作を本明細書に記載されているように実行するコンピュータ実行命令が符号化されてそこに格納されている1つまたは2つ以上のコンピュータ可読記憶媒体を含むこともある。
「ネットワーク」とは、コンピュータシステムおよび/またはモジュールおよび/または他のエレクトロニックデバイスプログラムの間で電子データをトランスポートするのを可能にする1つまたは2つ以上のリンクとして定義されている。ネットワークまたはその他の通信コネクション(ハードワイヤード、ワイヤレスまたはハードワイヤードとワイヤレスの組み合わせのいずれか)を利用して情報がコンピュータに転送または提供されるとき、コンピュータはそのコネクションを伝送媒体として正しく見ている。伝送媒体として可能なものには、コンピュータ実行可能命令またはデータ構造の形体で望みのプログラムコード手段を伝播するために使用可能であって、汎用または特殊目的コンピュータによってアクセス可能であるネットワークおよび/またはデータリンクがある。上に挙げたものの組み合わせも、当然にコンピュータ可読媒体の範囲内に含まれる。
さらに、種々のコンピュータシステムコンポーネントに到着したとき、コンピュータ実行可能命令の形体をしたプログラムコード手段またはデータ構造を伝送媒体からコンピュータ記憶媒体に(またはその逆に)自動的に転送することができる。例えば、ネットワークまたはデータリンクを利用して受信したコンピュータ実行可能命令またはデータ構造は、ネットワークインタフェースモジュール(例えば、“NIC“)内のRAMにバッファリングしたあとで、最終的にコンピュータシステムのRAMおよび/またはコンピュータシステムにある低揮発性(less volatile)のコンピュータ記憶媒体に転送することができる。従って、当然に理解されるように、コンピュータ記憶媒体は、伝送媒体も利用する(または主として)コンピュータシステムコンポーネントに含まれることができる。
コンピュータ実行可能命令は、例えば、プロセッサで実行されると、汎用コンピュータ、特殊目的コンピュータまたは特殊目的処理デバイスにある種の関数(function)または関数グループを実行させる命令とデータを含んでいる。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語のような直接形式命令であることも、ソースコードであることもある。構造上の特徴および/または方法上の動作に特有の表現で主題を記載してきたが、当然に理解されるように、請求項に定義した主題は上述した記載の特徴または動作に必ずしも限定されない。むしろ、記載した特徴と動作は、請求項を実現する例示形態として開示されたものである。
この分野の当業者ならば理解されるように、本発明は様々なタイプのコンピュータシステム構成と共にネットワークコンピューティング環境で実施されることがあり、その中にはパーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、モバイル電話、PDA、ページャ、ルータ、スイッチなどが含まれる。本発明は分散システム環境で実施されることもあり、そこではローカルコンピュータシステムとリモートコンピュータシステムはネットワークを通して(ハードワイヤードデータリンク、ワイヤレスデータリンクによって、またはハードワイヤードデータリンクとワイャレスデータリンクの組み合わせによって)リンクされており、共にタスクを実行している。分散システム環境では、プログラムモジュールは、ローカルとリモートの両方のメモリ記憶デバイスに置かれていることがある。
本明細書で用いられている「モジュール」または「コンポーネント」という用語は、コンピューティングシステム上で実行可能なソフトウェアオブジェクトまたはルーチンを指すことができる。本明細書に記載の異なるコンポーネント、モジュール、エンジンおよびサービスはコンピューティングシステム上で実行されるオブジェクトまたはプロセスとして(例えば、別々のスレッドとして)実現されることがある。本明細書に記載のシステムとモジュールは好ましくはソフトウェアで実現されるが、ハードウェアまたはソフトウェアとハードウェアの組み合わせで実現することも可能であり、これは本発明の意図していることである。本明細書の記載において、「コンピューティングエンティティ」は本明細書に前述したように任意のコンピューティングシステムであることも、コンピューティングシステム上を走行する任意のモジュールまたはモジュールの組み合わせであることもある。
図1は、本発明が動作することができる環境の例を示す図である。図1は、クライアント110、データストア120、およびクライアント110とデータストア120との間のデータ送信130を示している。データは多数の異なる形体でデータストア120上にストアされることがある。
本明細書に提示した実施形態は、図1に図示するような環境でデータ記憶140とデータ送信130を統合し、最適化する方法、システムおよびコンピュータプログラムプロダクトを記載している。
ファイルは、連続ファイルとしてそのネイティブ形体でデータストア内にストアされることがある。例えば、ファイルA150は、アプリケーションによって提示されるか、あるいはアプリケーションによって予想される通りに、ファイルのすべてのビット、バイトおよびデータを含む未変更の生(raw)フォーマットまたはネイティブフォーマットでデータストアにストアされている。データは、種々の代替フォーマットでストアされることもある。例えば、データは必要とする記憶スペースを低減するために圧縮フォーマットでストアされることもあれば、データは冗長性を低減し、データストアにストアされたデータを非重複(de-duplicate)にするための手法を使用してストアされることもある。
データは、ファイルが別々で異なるデータのサブセットに分割されているチャンク(chunk)またはブロックでデータストア上にストアされることもある。例えば、ファイルは、チャンク160C1−Cnとしてデータストア内にストアされることがある。ファイルからのデータのサブセットであるチャンクはブロックと呼ばれることもあり、チャンクおよびブロックという2つの用語は本明細書では同意義で使用されている(なお、本明細書で用いられているファイルの用語は論理的に関連する任意のデータグループまたはデータ量を表わしている)。
データストアでは、ファイルをチャンクに分割してデータ記憶を最適化するアルゴリズムが使用されることがある。例えば、ファイルは、より効率的にまたはコンパクトにファイルをデータストアにストアするためにチャンク160C1−Cnに分割されることがある。チャンクに分割されたファイルは、ファイル内の冗長性を減少するとによってより効率的にストアされることもある。例えば、チャンクC1は2回以上ファイル内に現れることがある。ファイルをチャンクに分割すると、チャンクC1は一度だけデータストアに書くことで済むので、ファイル内に繰り返して現れる各々のチャンクC1は、そのチャンクC1への参照 (reference)またはポインタ(pointer)で置き換えることが可能になる。
以上から理解されるように、チャンクまたはブロックは任意の固定長である必要でなく、任意の長さ、データ量またはファイルの任意の部分であることもあり、その中にはファイル全体も含まれる。ファイルのチャンクまたはブロックはファイルの任意の長さおよび/またはオフセットであることがある。ファイルをチャンクまたはブロックに分割することは任意のアルゴリズムまたは手法に従って行なわれることがあり、チャンクのサイズは、データがそこに存続するデータストアまたはデータがそこを送信される送信経路の特定の考慮事項によって影響されることも、左右されることもある。
データは、圧縮フォーマットでデータストア内にストアされることもある。例えば、ファイルC170は、オリジナルファイルが圧縮アルゴリズムを使用して圧縮されたときの圧縮フォーマットでストアされており、圧縮で得られたファイル、つまり、ファイルC170は、データストア内に占める記憶スペースがオリジナルの未圧縮ファイルデータよりも少なくなっている。ファイルおよびデータの圧縮は、Lempel-Ziv(LZ)、Lempel-Ziv-Welch(LZW)およびMPEG圧縮のような業界で周知の手法によって行なわれることがある。
圧縮とチャンキング(chunking)(またはブロッキング)を組み合わせたものが、データストアで採用されることもある。例えば、ファイルはチャンクに分割されたあとで、これらのチャンクが圧縮され、圧縮チャンク180CH1−CHnとしてストアされることがある。
データストア内にストアされたファイルおよびデータを非重複にする(de-duplicating)ことにより、別の圧縮化が得られることがある。非重複にすると、データストアにストアされた別々のファイルに現れることのある同一ファイルまたは同一部分が特定され、重複するファイルまたはデータ部分の1つを除くすべてがファイルまたはデータ部分の参照コピー(reference copy)への参照で置き換えられる。ファイルを非重複にすると、特定のファイルまたはデータ部分の1つのコピーだけがデータストアにストアされるので、多数の重複ファイルまたはデータ部分が占めるはずであった記憶スペースが節減されることになる。
非重複(de-duplication)は、ファイルのチャンクレベルで行なわれることもある。例えば、2つまたはそれ以上のファイルがデータチャンクにチャンキングされた場合、重複するチャンクはデータストア内で冗長チャンクのコピーへの参照で置き換えられることがある。例えば、ファイルは、チャンクC1およびデータストア120内にチャンクフォーマットでストアされた他のファイルに関連してストアされた他のチャンクへの参照としてデータストア120上にストアされることがある。例えば、ファイルXはチャンクC1−Cnへの参照としてストアされることがあり、ファイルYはチャンクCH1、C1およびC2への参照としてストアされる可能性があり、ファイルZはチャンクC1および圧縮チャンクCH2−CHnへの参照のリストとしてストアされる可能性がある。
ファイルの非重複、チャンキングおよび圧縮は、これらの組み合わせで行なわれることもある。例えば、ファイルは、1つまたは2つ以上のチャンクとしてデータストア上にストアされることがあり、そこではチャンクの各々が圧縮されている。ファイルデータは任意の組み合わせでストアされることもあり、そこでは一部のファイルは未圧縮でストアされ、一部のファイルは圧縮でストアされ、一部のファイルはチャンクフォーマットでストアされ、一部のファイルはチャンクとしてストアされ、これにより一部のチャンクは圧縮され、一部のチャンクは未圧縮になっている。
一般的に、あるクライアントがデータストアにデータを要求するとき、そのクライアントは、ファイル全体についてまたはファイルの一部のロジック部分についてデータを要求することになる。例えば、クライアントはファイルシステムを通してget(fileX)を要求することもあれば、ファイルシステムを通してgetFileBytes(fileX; bytes=100-1000)を要求することもある。ファイルまたはそのファイルの一部がデータストア120からクライアント110に送信130されるとき、要求データを再アセンブルして、クライアントまたはアプリケーションが期待するフォーマットでクライアントに送信するために圧縮データを展開したり、データのチャンクを再アセンブルしたりする負担がデータストアに生じることになる。
本明細書に記載の実施形態によれば、クライアントは、データストア上のファイルデータの記憶に関する情報を要求またはその情報にアクセスできるので、データストア上にストアされたデータの記憶詳細に関する情報をクライアントに与えることによって効率化と最適化が得られることがある。例えば、クライアント110は、ファイルXがどのようにデータストアにストアされているかをクライアントに通知するようにデータストア120に要求することがある。データストア120は、ファイルXが圧縮チャンクCH1とCH3としてストアされていることをクライアントに通知することがある。圧縮チャンクを圧縮形体で送信するとより効率的になるように、この場合には、クライアントはget(fileX)を要求するのではなく(これを要求すると、データストアはチャンクCH1とCH3を展開してファイルを再アセンブルしてから、そのファイルをクライアントに送信する必要が生じる)、これらのチャンクCH1とCH3をクライアントに送信することをデータストアに要求することができる。
実施形態によれば、クライアントは、データストア上のファイルデータの記憶に関する情報にアクセスできるので、データストア上にストアされたデータの記憶詳細に関する情報をクライアントに与えることによって効率性と最適化が得られることもある。例えば、クライアント110は、ファイルXがどのようにデータストアにストアされているかを示す、ローカルにキャッシュまたはストアされた情報にアクセスすることがある。この情報は先行リクエスト(previous request)によってすでに得られていることもあれば、クライアントとデータストアとの間の先行トランザクションの過程ですでにキャッシュされていることもある。
ローカルにストアされているか、またはデータストア120よりも低いレイテンシまたは送信コストで記憶ロケーションから得られるチャンクのコピーをクライアントがすでに持っていれば、追加の効率が得られることがある。このようなケースでは、そのあとクライアントはgetChunk(CH3)だけをデータストアに要求することができる。
本明細書に記載の実施形態は、クライアントとデータストアとの間および/またはクライアントと集中化サーバ(centered servers)との間の冗長LANおよび/またはWANトラフィックを減少している。本明細書に記載の実施形態によれば、種々のネットワークファイルシステムプロトコルについて記憶と送信の最適化が得られる。例えば、SMBプロトコルとHTTPプロトコルのどちらも、本明細書に記載のデバイスと手法によって拡張され、強化されることができる。
標準ファイルシステムプロトコル(例えば、SMBとHTTP)は、APIを提供するように拡張可能であり、そのAPIは、データストアによって与えられたときファイルまたはデータ部分がどのようにデータストア上にストアされているかの詳細が見えるようにするデータストアからデータをクライアントが要求するのを可能にする。例えば、クライアント110は、ファイルXがどのようにストアされているのかに関するデータをデータストア120に要求することがある。例えば、クライアント110は、getStorageDetails(fileX)のようなファイルシステムエクステンション(file system extension)をコールすることがあり、そのレスポンスとしてデータストアは{fileX:= chunks CH1, CH3}を返すことがある。ファイルXがどのようにストアされているかの詳細は分かっているので、クライアントはファイルXに関連するデータをどのようにデータストアに要求するかを決定することができる。クライアントは、その生フォーマットまたはネイティブフォーマットでファイル全体を標準的方法で要求できる。これとは対照的に、本明細書に記載の実施形態は、クライアントが圧縮チャンクCH3をクライアントに送信することをデータストアに要求するのを可能にしている。
一実施形態では、図3に示すように、クライアントは、データ記憶サーバ上のファイルデータを記述したメタデータにアクセスすること310ができ、そこではファイルデータはそのファイルデータのネイティブ形体とは異なる形体でデータ記憶サーバ上にストアされ、メタデータはファイルの記憶形体がデータ記憶サーバ上にストアされた通りに見えるようにしている。データ記憶サーバ上のファイルデータの記憶を記述したメタデータは、ファイルデータがデータストア上でどのようにチャンキングされたか、ファイルデータがデータストア上でどのように圧縮されたか、またはファイルデータがデータストア上でどのようにチャンキングされると共に圧縮されているかを記述した情報であることがある。
ファイルがどのようにチャンキングされているかの詳細には、ファイルのどの部分がサーバ上にストアされた各チャンクに対応しているかが含まれていることがある。また、チャンキングの詳細には、ファイルを構成するチャンクの各々の暗号ハッシュ(cryptographic hash)も含まれていることがある。チャンクの暗号ハッシュは、クライアント、アプリケーションおよびデータストアが各チャンクをユニークに識別することを可能にしている。この情報を使用すると、クライアント、アプリケーションおよび他のデータストアは、そのチャンクに同一チャンクが暗号ハッシュで識別されたようにすでに使用可能になっているかどうかを識別できることがある。
ファイルまたはデータの部分(例えば、チャンク)がどのように圧縮されているかの詳細には、データをユニークに識別するためのオリジナル未圧縮データの暗号ハッシュが含まれていることがある。この詳細には、圧縮データをユニークに識別するために圧縮データの暗号ハッシュが含まれていることもある。また、この詳細には、圧縮を行なうために使用された圧縮のタイプ(これは、圧縮データをデータストアから別のエンドポイントに送信したあとその圧縮データを展開するために必要なことがある)も含まれていることもある。圧縮のタイプとしては、例えば、LZ、LZW、MPEGなどがある。
メタデータにアクセスすることにより、クライアントはデータストア上のデータの記憶詳細を知ることができる。クライアントがデータストア上のデータの記憶詳細を知ったとき、クライアントはファイルデータのリクエストを記憶サーバに送信すること320がある。本明細書に記載の実施形態を採用すると、クライアントはファイル全体を要求しないで済むので、クライアントは、必要とするファイルのチャンクだけを要求することもあれば、ファイルの圧縮バージョンまたはファイルのチャンクの圧縮バージョンを要求することもある。ファイルデータのリクエストを送信したあと320、クライアントは、要求したファイルデータ記憶サーバ上のファイルデータの記憶を記述した追加メタデータおよび/またはファイルデータの少なくとも一部を表わしているデータを含む情報を記憶サーバから受信すること330ができる。
ファイルデータ情報を受信すること330には、データファイル、記憶サーバ上のファイルデータの記憶を記述した追加メタデータおよび/またはファイルデータの少なくとも一部を表わしているデータ、の少なくとも1つが含まれていることがある。この情報には、クライアント側のレガシ(legacy)アプリケーションが予想するように標準フォーマットのファイルデータが含まれていることがある。この情報には、データストア上のファイルデータの記憶を記述した情報が含まれていることがある。この情報には、ファイルデータの少なくとも一部を表わしているデータが含まれていることがある。
ファイルデータの記憶を記述したメタデータにアクセスすること310には、ファイルデータの記憶を記述した情報のリクエストをサーバに送信することが含まれることがある。このようなリクエストは、クライアントがファイルシステム(またはネットワークファイルシステム)に対してコールを行なって、ファイル、ファイルデータまたはデータの一部がどのようにデータストア上にストアされているかの詳細を要求するのを可能にするファイルシステムエクステンションの形体になっていることがある。
上記とは別に、ファイルデータの記憶を記述したメタデータにアクセスすること310には、ファイルデータの記憶を記述した情報についてローカルストアにアクセスすることが含まれていることがある。ローカルストア内の情報は、先行リクエストに対するレスポンスとしてファイルサーバから以前に受信されていることもあれば、進行中(ongoing)の一連のファイルシステムトランザクションとしてローカルにすでにキャッシュされていることもある。ファイルデータの記憶を記述したメタデータにアクセスすること310には、ファイルデータの記憶形体がデータ記憶サーバ上にストアされているように見えるようにするか、またはローカルにキャッシュされたコピーがどのようにストアされているかがクライアントに見えるようにする詳細を返すファイルシステムコール(file system call)(通常ファイルシステムAPIのエクステンションによって導入された)が含まれていることがある。
例えば、データ記憶サーバ上のファイルデータの記憶を記述したメタデータには、データ記憶サーバ上のファイルデータの非重複の結果得られるファイルデータの記憶を記述したデータが含まれていることがある。このメタデータには、ファイルを構成するチャンクのチャンクリストが含まれることもあれば、ファイルを構成するチャンクの各々の暗号ハッシュのハッシュリストが含まれていることもある。そのあと、クライアントは、送信されるチャンクの1つまたは2つ以上のリクエストを組み立てるために返されたチャンクリストまたはハッシュリストを使用することもあれば、すでに受信されたまたはローカルにキャッシュされたチャンクのリストを比較してデータストアに要求する必要のあるチャンクがあるかどうかを判断するためにハッシュリストを使用することもある。
例えば、ファイルをダウンロードするとき、クライアントはハッシュリストをファイルサーバに要求し、必要とするデータについてピアクライアント(peer clients)および/またはピアファイルサーバにクエリすることもある。クライアントはハッシュリストを含む情報をそのクエリに対するレスポンスとして受信すること330がある。ハッシュリストはデータがデータストア上にストアされた通りにデータを表わしていることもあれば、クライアントは必要とするデータの部分(例えば、チャンク)だけを要求できることもある。また、データは、必要とするデータがピアにあるときそのピアから読み取られることもあるので、ピアとクライアント間のデータ送信の場合の送信コストまたはレイテンシは、クライアントとデータストア間の送信コストまたはレイテンシよりも低くなっている。
データ記憶サーバ上のファイルデータの記憶を記述したメタデータには、ファイルデータの圧縮したサブセットを記述したデータまたはファイルデータの圧縮したバージョンを記述したデータが含まれていることもある。この情報を使用すると、クライアントはファイルデータの圧縮したサブセットのリクエストを組み立てる(formulate)ことも、ファイルデータの圧縮したバージョンのリクエストを組み立てることもある。このようにすると、ファイルデータのリクエストに対するレスポンスしてデータを送信する前にファイルデータまたはそのファイルデータのサブセットを展開しないで済むデータストアの効率性が得られる。
一実施形態では、クライアントはファイル全体のリクエストまたはファイルの一部のリクエストを含むことのあるファイルデータのリクエスト送信すること320がある。例えば、ファイルのリクエストget(fileX)またはファイルの一部分のリクエストgetFileBytes(fileX; bytes=100-1000)はファイルシステムを通してデータ記憶サーバに送信されることがある。このリクエストに対するレスポンスとして、データ記憶サーバはファイルまたはそのファイルの一部ではなく、要求したファイルまたはそのファイルの一部を含んでいるデータを恐らく異なる形体で送り返すことがある。
例えば、データ記憶サーバは、要求したファイルまたはそのファイルの要求した一部を完全にカバーしている一定範囲の圧縮チャンクを含むデータを返す可能性がある。さらに、データ記憶サーバは、返されたチャンクが要求したデータ(および可能性として要求よりも多いデータ)を含むことを示しているチャンクと一緒にファイル記憶メタデータを返す可能性がある。
さらに、返されたチャンクが圧縮されていれば、データ記憶サーバは、返されたデータ(またはデータのチャンク)が圧縮されていることを示すファイル記憶メタデータを返すこともあれば、データを圧縮するためにどの圧縮手法またはアルゴリズムが使用されたか、またはデータを展開するためにどの展開手法またはアルゴリズムを使用する必要があるかを示していることもある。以上から理解されるように、特定の圧縮または展開手法を示すメタデータを返すこともなしに、圧縮データおよび/または圧縮チャンクが返される場合に想定されることのあるデフォルトの圧縮または展開手法が存在することもある。
次いで、クライアントはこのデータおよび/またはメタデータをデータ記憶サーバから受信し330、該当する展開および/またはチャンクアセンブリをクライアント側で行なって要求データを再構成することがある。以上から理解されるように、このようにすると、クライアントによって実際に要求された特定のデータをデータ記憶サーバに展開および/またはアセンブルさせてからクライアントに送信またはクライアントによって受信する場合よりもデータ送信コストまたは送信レイテンシに起因する効率性が向上する。
ファイル記憶メタデータには、チャンクまたは圧縮チャンクの暗号ハッシュリストおよびどのチャンクがファイルデータのどの部分を含んでいるかを示すID(identification)を含んでいることがある。チャンクまたは圧縮チャンクの暗号ハッシュリストおよびどのチャンクがファイルデータのどの部分を含んでいるかを示すIDを使用すると、クライアントは圧縮データを適当な方法で展開し、および/またはクライアントによって望まれるまたは要求される一定範囲のデータのすべてまたはより多くを含むチャンクを再アセンブルできることがある。
ファイル記憶と送信に対する統合化アプローチのための例示アーキテクチャは、図2に図示されている。クライアントとサーバ210には、最適化を意識した(aware)アプリケーションおよび/またはサービスが含まれていることがある。クライアントとサーバは、ファイルシステムのアプリケーションプログラミングインタフェース(API)を含むと共に最適化APIを含んでいることがあるファイルシステムインタフェース250と通信することがある。ファイルシステムAPIには、通常ファイルシステムおよび/またはネットワークファイルシステムのすべての通常コールと関数が含まれていることがある。最適化APIは、データストアにストアされているデータ260、270および280の記憶詳細が見えるようにする拡張APIエレメント(extended API elements)(例えば、関数コールとインタフェース)を含んでいる。
ファイルシステムインタフェース250を使用すると、クライアントはデータ記憶サーバ上のファイルデータの記憶を記述したメタデータを要求することができる。ファイルシステムインタフェース250を使用すると、クライアントは、いくつかのフォーマットでデータをデータ記憶サーバに要求することもできる。クライアントは、通常ファイルシステムAPI(例えば、標準またはレガシファイルシステムAPI)を使用してデータを要求して、ファイルをその生またはネイティブフォーマットのままにしておくことがある。また、クライアントは、ファイルの圧縮形体であるファイルの特定のチャンクだけをサーバ上にストアされた通りに要求するために最適化APIを使用してデータを要求することもあり、ファイルの圧縮チャンクをサーバ上にストアされた通りに要求することもある。
強化された(enhanced)および/または拡張(extended)されたファイルシステムインタフェース250を意識していない(unaware)クライアント、アプリケーションおよびサービス220は、レガシファイルシステムAPIの全機能をそのまま残しているファイルシステムAPIにコールを行なうことにより、依然として通常に、未変更のまま、妨害されることなく動作することがある。
最適化を意識しているクライアント、アプリケーションおよびサービス230は、最適化APIにコールを行なって、本明細書に記載の実施形態の全機能を起動(invoke)することがある。最適化を意識したクライアント、アプリケーションおよびサービスはハッシュリスト、チャンクリスト、圧縮ファイルなどをデータストアまたはサーバに要求することがある。例えば、ファイルfoo.vhdは、チャンクストア/インデックス270をポイントするチャンクリストとしてデータストア上にストアされることがある。このチャンクリスト/インデックスはチャンク(例えば、チャンク160C1−Cn)を含むことも、圧縮チャンク(例えば、チャンク180CH1−CHn)を含むことも、ストアされたチャンクを指してファイルとデータ記憶の非重複やその他の最適化を可能にする参照、ポインタおよびインデックスを含むこともある。
クライアントは、最適化APIを通してfoo.vhdの記憶を記述したメタデータを要求し、foo.vhdがどのようにストアされているかを記述したメタデータをデータストアから受信することがある。クライアントがそのメタデータにアクセスしたあと、そのクライアントは最適化APIを通してファイルデータのリクエストを記憶サーバに送信することがある。このリクエストはネイティブフォーマットのファイル全体に対することもあれば、1つまたは2つ以上のチャンクだけのこともあれば、チャンクストア/インデックス270にストアされた通りのファイルの圧縮チャンクに対することもある。
次いで、クライアントは、ファイルデータ、データ記憶サーバ上のファイルデータの記憶を記述した追加メタデータおよびファイルデータの少なくとも一部を表わしているデータ、の1つまたは2つ以上を含む情報をデータ記憶サーバから受信することがある。クライアントはそのネイティブフォーマットでファイル全体を受信することがある。クライアントはファイルのチャンクを受信することがある。クライアントはファイルの圧縮チャンク
を受信することがある。クライアントはファイルデータの記憶を記述した追加メタデータを受信することも、ファイルデータの一部を含むデータを受信することもある。クライアントによって受信されたレスポンスは、クライアントおよびアプリケーションがデータストア内のデータの記憶の詳細を意識しているリクエストを行なうのを可能にする拡張最適化APIを通して行なわれたリクエストに対応していることもある。
別の例において、ファイルbar.docは、最適化サービス240によって圧縮され、チャンクにされ、非重複化されて、チャンクストア/インデックスを指すポインタとしてストアされていることがある。本明細書に記載の実施形態では、クライアントはデータストア上のbar.docの記憶を記述したメタデータを要求することがあり、データストア上のbar.docの記憶を記述した情報を受信したあと、チャンクストア/インデックス270にストアされたbar.docの圧縮チャンクの1つまたは2つ以上のリクエストを送信することがある。圧縮チャンクはクライアントによって要求されているので、データストアはbar.docのチャンクを展開する必要もなければ、データストアは、クライアントからのbar.docに対するリクエストに応答するためにbar.docのチャンクを再アセンブルする必要もない。
別の実施形態では、データストア内の記憶最適化の詳細がクライアントに見えるようにする方法が提供されている。この方法は、データ記憶サーバ上のファイルデータの記憶を記述したメタデータを送信するステップを含み、そこではデータは、ファイルデータのネイティブ形体とは異なった形体でデータ記憶サーバ上にストアされると共に、メタデータはファイルデータの記憶形体がデータ記憶サーバ上にストアされた通りに見えるようにしている。また、この方法は、コンピューティングシステムからのファイルデータのリクエストをデータ記憶サーバで受信するステップも含んでいる。また、この方法は、ファイルデータ、データストア上のファイルデータの記憶を記述した追加メタデータおよびファイルデータの少なくとも一部を表わしているデータ、の少なくとも1つを含む情報をデータ記憶サーバから送信するステップも含んでいる。
図4に図示するように、サーバまたはデータストアは、データ記憶サーバまたはデータストア上のファイルデータの記憶を記述したメタデータを送信すること410がある。ファイルデータはそのファイルデータのネイティブ形体とは異なる形体でデータ記憶サーバ上にストアされている。例えば、ファイルデータは、チャンクフォーマットでも、圧縮フォーマットでも、圧縮フォーマットとチャンクフォーマットの組み合わせでも記憶サーバ上にストアされることがある。
送信されるメタデータは、ファイルデータの記憶形体がデータ記憶サーバ上にストアされている通りに見えるようにする情報を提供している。例えば、メタデータは、データがチャンクフォーマット、圧縮フォーマットまたはチャンクフォーマットと圧縮フォーマットの組み合わせでストアされていることを見えるようにする情報を含んでいることもある。メタデータは、ファイルデータを構成するチャンクのハッシュリストをデータストアにストアされているように示す情報を含んでいることもある。データストア上にストアされたチャンクは、記憶サーバ上にストアされたファイルデータ(他のデータファイルと共に)非重複の結果得られたチャンクであることもある。
メタデータは、ファイルデータのサブセットの暗号ハッシュを含む情報を含んでいることもある。データのサブセットの暗号ハッシュは、チャンクが別のチャンクと同一であるかどうかを示すためにクライアントよっても、送信デバイスによっても、別データストアによっても使用されることがある。ファイルデータのサブセットの暗号ハッシュを使用することにより、クライアント、送信デバイスおよび他のデータストアは、データの特定サブセットがローカルに使用可能であるか、低いレイテンシまたは送信コストでソースから使用可能であるかを判断する能力を備えている。データの同一サブセットを特定することにより、データの特定サブセットを要求する必要があるか、送信する必要があるかが判断されることもある。
ファイルデータのサブセットは、ファイル全体であることも、ファイルデータであることもある。データのサブセットは、記憶最適化または非重複方式の一部としてデータストアによってすでにチャンキングされているファイルデータ、の1つまたは2つ以上のチャンクであることもある。
データ記憶サーバまたはデータストア上のファイルデータの記憶を記述したメタデータには、ファイルデータの一部または全部がデータ記憶サーバまたはデータストア上に圧縮されていることを記述したデータが含まれていることもある。メタデータには、ファイルデータのチャンクフォーマットの1つまたは2つ以上が圧縮されているとの情報が含まれていることがある。ファイルデータのある部分が圧縮されていることを示す情報を使用することにより、クライアントは、クライアントに対するレスポンスの中でデータストア内にストアされている通りにチャンクフォーマットまたは圧縮フォーマットで返されるファイルまたはファイルの1つまたは2つ以上のチャンクを要求することがある。ファイルの特定チャンクまたは圧縮したチャンクを要求することにより、データストアは、ファイルまたはファイルのチャンクを要求したクライアントに送信する前にファイルまたはファイルのチャンクを展開する必要がないのでオーバヘッドが減少される。
図4は、ファイルデータのリクエストをコンピューティングシステムから受信すること420も示している。このリクエストはクライアントからも、別の記憶サーバからも、リモートコンピューティングシステム上で実行されるアプリケーションなどからも受信されることがある。このリクエストは、標準ネットワークファイルシステムAPIを拡張および/または強化する最適化APIに対応するプロトコルを使用してフォーマット化されることがある。
ファイルデータのリクエストには、要求されるファイルの特定チャンクを示す情報が含まれていることがある。このリクエストには、要求されたファイルデータが圧縮または展開フォーマットで送られるべきかどうかを示す情報が含まれていることもある。このリクエストには、他のチャンクがローカルですでに使用可能であるのでファイルのチャンクのサブセットだけが送信されるはずであるとの情報が含まれていることがある。
図4は、ファイルデータの少なくとも1つ、データ記憶サーバ上のファイルデータの記憶を記述した追加メタデータおよびファイルデータの少なくとも一部を表わしているデータを含んでいるファイルデータ情報を送信するステップ430も示している。ファイルデータ情報を送信すること430は、ファイルデータについて受信されたリクエストに対するレスポンスであることがある。上述したように、ファイルデータのリクエストは、圧縮フォーマットでまたはいずれかの組み合わせでチャンクとしてデータストアにストアされている通りのファイルデータに対するものであることがある。
ファイルデータ情報を送信すること430には、ファイルデータ、データ記憶サーバ上のファイルデータの記憶を記述した追加メタデータおよびファイルデータの少なくとも一部を表わしているデータ、の少なくとも1つが含まれていることがある。この情報は、クライアント側のレガシアプリケーションが予想するように標準フォーマットのファイルデータを含むことがある。この情報は、データストア上のファイルデータの記憶を記述した情報を含んでいることもある。また、この情報はファイルデータの少なくとも一部を表わしているデータを含んでいることもある。
受信したリクエストは、クライアントによって望まれるデータの特定チャンクをすでに特定していることがある。このリクエストに対するレスポンスとして、データストアはデータの要求されたチャンクを要求側のクライアントに送信することがある。受信したリクエストは、クライアントによって望まれるデータの特定の圧縮チャンクをすでに特定していることがある。このリクエストに対するレスポンスとして、データストアはデータの要求した圧縮サブセットを要求側クライアントに送信することがある。受信したリクエストは、クライアントによって望まれるデータのチャンクを特定する特定暗号ハッシュをすでに特定していることがある。このリクエストに対するレスポンスとして、データストアは、暗号ハッシュによって特定されたデータの特定チャンクを要求側クライアントに送信することがある。
一実施形態では、データストアは、ファイルまたはファイルの一部のリクエストを受信すること420がある。例えば、データストアはファイルのリクエストget(fileX)を受信することもあれば、ファイルの一部のリクエストgetFileBytes(fileX, bytes=100-1000)を受信することもある。データストアはそのリクエストに対するレスポンスを構築し、データストア上にストアされたままのファイルデータを含む情報を送信し、ストアされたままのファイルデータの記憶詳細を特定したメタデータを含んでいることがある。例えば、データストアは、チャンクのセットおよびどのチャンクが要求したチャンクのどの部分を含んでいるかを特定したメタデータを返すことがある。さらに、データストアは、圧縮フォーマットで返されたデータを展開するために適切と思われる圧縮および/または展開情報を含むメタデータを返すこともある。
一部の実施形態では、メタデータを送信する先行ステップ410を実行することなくリクエストが受信されること420があり、ファイルデータ情報が送信されること430がある。例えば、最適化を意識したクライアントはファイルデータを要求するだけのことがあり、データストアはその要求を受信する420可能性があり、データストアはレスポンスを構築し、クライアントが返されたファイルデータおよび/またはメタデータを適切に処理し、チャンクを適当に再アセンブルしおよび/またはデータを必要に応じて展開できることを想定してクライアントにそのレスポンスを送信する可能性がある。
実施形態によれば、データ記憶とデータ送信のための書き込み経路(write path)最適化もサポートされている。例えば、ファイルに対しローカルで変更するクライアントは、変更したファイルのハッシュリスト表現を生成することがある。そのあと、このハッシュリストはデータ記憶サーバに送信されることがある。そのあと、データ記憶サーバは変更したファイルを表わす受信したハッシュリストを、データ記憶サーバ上にストアされたファイルチャンクを特定したデータ記憶サーバ上に維持された包括的ハッシュリストと比較することがある。
この比較に基づいて、そのあとデータ記憶サーバは、クライアントがデータ記憶サーバ上にすでにストアしていたチャンクのリスト返すことがある。データ記憶サーバは、データ記憶サーバ上にストアされていないチャンクのリストをクライアントに返すこともある。データ記憶サーバ上にストアされていて返されたチャンクのリスト(またはストアされていないチャンクのリスト)に基づいて、そのあとクライアントはデータ記憶サーバ上にまだストアされていないチャンクをデータ記憶サーバに送信することが可能である。
変更ファイルを表わしているハッシュリストを受信したあとおよびデータ記憶サーバ上にまだストアされていない変更ファイルを受信したあと、データ記憶サーバは、完全な変更ファイル(これはサーバ上にすでにストアされている一部のチャンク、新たにサーバによって受信された一部のチャンクおよび完全な変更ファイルを表わしているハッシュリスト(またはチャンクリスト)で構成されている)をストアすることがある。完全なファイルを表わしているハッシュリスト(またはチャンクリスト)を送信し、データ記憶サーバ上にまだストアされていないチャンクだけを送信することにより、クライアントからデータストアへのデータ送信の最適化が実現されることが可能である。
例えば、データ記憶サーバはクライアントからハッシュリストを受信し、ファイルを表わしているその送信ハッシュリストを、データ記憶サーバ上にストアされたチャンクおよびデータ記憶サーバ上にストアされたチャンクに対する暗号ハッシュのインデックスを含むチャンクストア/インデックス270にストアされたハッシュリストと比較することがある。そのあとデータストアは、チャンクストアとインデックス270にまだストアされていないチャンクを表わしているハッシュリストをクライアントに返すことがある。そのあと、クライアントはチャンクストアにまだストアされていないチャンクをデータストアに送信することがある。そのあと、データストアは受信したチャンクを、完全な変更ファイルを表わしているハッシュリストと共にチャンクストア270にストアすることがある。このようにして、データ記憶サーバは、変更ファイルの完全な表現(ファイルを表わしているチャンクリストおよび対応するチャンクで表わしている)をストアすることがあるが、ファイルを構成するすべてのチャンクをクライアントが送信する必要はない。
別の例では、5個のチャンク、すなわち、チャンクC1−C5で構成されたファイルはチャンクC4内だけでクライアントによって変更されることがある(その結果、変更したチャンクCm4が得られる)。クライアントはチャンクC1−C3、Cm4およびC5を表わしているハッシュリストをデータ記憶サーバに送信することがある。このハッシュリストは完全な変更ファイルを表わすことになる。そのあと、データ記憶サーバはサーバ上にストアされたチャンクC1−C3およびC5をすでに有しているが、チャンクCm4が抜けているクライアントに応答することがある。そのあと、クライアントはチャンクCm4をデータ記憶サーバに送信することが可能である。そのあと、データ記憶サーバは、チャンクC1−C3、Cm4およびC5を表わしている受信したハッシュリスト及びすでにストアされたチャンクC1−C3およびC5と共にチャンクCm4をデータ記憶サーバにストアすることあり、データストア上にストアされた完全な変更ファイルを持つことになる。
以上から理解されるように、この書き込み経路の実施形態は、変更ファイルについても新しく作成されたファイルについても同じように使用可能である。変更ファイルであるか、新たに作成されたファイルであるかに関係なく、クライアントはどのファイルについてもチャンクリストを作成し、そのチャンクリストをデータ記憶サーバに送信することがあるので、データ記憶サーバは受信したチャンクリストを、サーバ上にすでにストアされているチャンクのリストと比較することができる。さらに、チャンクリストは、ファイルを構成するチャンクの各々をユニークに識別する暗号ハッシュリストであることがある。本明細書で説明したチャンクそれ自体は、圧縮チャンクであることも、生のデータフォーマットのチャンクであることも、暗号または他のなんらかの方法で変更されたチャンクでさえあることもある。
チャンクは、その送信時に、生のデータフォーマットでも、圧縮フォーマットでも、その他のフォーマットでも送信されることがある。以上から理解されるように、ファイルデータ部分が圧縮フォーマットで送信されるときは、その結果として、送信の効率性を得るために送信インフラストラクチャがデータを圧縮する必要がないとする最適化が得られることがあるので、データ記憶サーバはデータ記憶サーバ上の記憶を最適化するためにデータを圧縮する必要がない。送信の受信側にまだストアされていないか、あるいは存在しないチャンクだけを送信することにより、ファイルデータの送信と記憶の両方で最適化が実現されることがある。
本発明は、本発明の趣旨または基本的特徴から逸脱することなく、他の特定の形態で具現化されることがある。本明細書に記述した実施形態は、すべての側面において例示であって限定されるものではないと考慮されるものである。従って、本発明の範囲は上述してきた説明によってではなく特許請求の範囲の請求項によって示されている。請求項の等価の意味と範囲内に属するすべての変更はこれらの範囲内に包含されるものである。

Claims (15)

  1. クライアントとデータ記憶サーバを含むコンピューティング環境において、前記データ記憶サーバ内の記憶最適化の詳細が前記クライアントに見えるようにする方法であって、
    前記クライアントにより、前記データ記憶サーバ上のファイルデータの記憶を記述したメタデータにアクセスするステップであって、メタデータにアクセスすることは、前記メタデータに対するリクエストを前記データ記憶サーバに送信することを有し、前記ファイルデータは、前記ファイルデータのネイティブ形体とは異なる形体で前記データ記憶サーバ上にストアされており、前記メタデータは、前記データ記憶サーバ上にストアされている前記ファイルデータの前記異なる形体を見えるようにするステップと
    前記クライアントにて、前記データ記憶サーバ上の前記ファイルデータの記憶を記述したメタデータを含む情報を、前記データ記憶サーバから受信するステップであり、前記データ記憶サーバ上の前記ファイルデータの記憶を記述した前記メタデータは、前記ファイルデータを展開するために使用可能な前記ファイルデータに関する圧縮情報を記述し、前記データ記憶サーバは前記クライアントから遠隔に位置する、ステップと、
    前記クライアントにより、前記ファイルデータに対する後続リクエストを送信するステップであり、前記ファイルデータに対する前記後続リクエストは少なくとも部分的に、前記データ記憶サーバ上の前記ファイルデータの記憶を記述した前記メタデータに基づき、該リクエストは、前記データ記憶サーバにストアされている前記異なる形体の前記ファイルデータに対するものである、ステップと、
    前記クライアントにて、前記ファイルデータを受信するステップであり、前記ファイルデータは、前記データ記憶サーバにストアされている前記異なる形体の前記ファイルデータにて受信される、ステップと、
    前記クライアントにより、前記異なる形体の前記ファイルデータを、前記メタデータに基づいて、前記ネイティブ形体の前記ファイルデータに変換するステップと
    を含む方法。
  2. 前記データ記憶サーバ上の前記ファイルデータの記憶を記述した前記メタデータは更に、前記データ記憶サーバ上の前記ファイルデータの非重複の結果得られる前記ファイルデータの記憶を記述したデータを含む請求項1に記載の方法。
  3. 前記データ記憶サーバ上の前記ファイルデータの記憶を記述した前記メタデータは更に、前記ファイルデータのサブセットの暗号ハッシュを含む請求項1に記載の方法。
  4. 前記データ記憶サーバ上の前記ファイルデータの記憶を記述した前記メタデータは更に、前記ファイルデータの複数のサブセットの各々の暗号ハッシュを含むことを特徴とする請求項1に記載の方法。
  5. 当該方法は更に、ファイルデータに対する後続リクエストを有し、ファイルデータに対する該リクエストは、前記ファイルデータのサブセットの暗号ハッシュを含む、請求項1に記載の方法。
  6. クライアントとデータ記憶サーバを含むコンピューティング環境において、前記データ記憶サーバ内の記憶最適化の詳細が前記クライアントに見えるようにする方法であって、
    前記データ記憶サーバにて、ファイルデータの記憶を記述したメタデータにアクセスするリクエストを受信するステップと、
    前記リクエストを受信したことに応答して、前記データ記憶サーバから、前記データ記憶サーバ上のファイルデータの記憶を記述したメタデータを送信するステップであって、前記ファイルデータは、前記ファイルデータのネイティブ形体とは異なる形体で前記データ記憶サーバ上にストアされており、前記メタデータは、前記データ記憶サーバ上にストアされている前記ファイルデータの前記異なる形体を見えるようにするステップと、
    前記データ記憶サーバ上にストアされている前記異なる形体の前記ファイルデータでの前記ファイルデータに対する前記クライアントからのリクエストを前記データ記憶サーバで受信するステップであり、前記ファイルデータに対する前記リクエストは少なくとも部分的に、前記データ記憶サーバ上の前記ファイルデータの記憶を記述した前記メタデータに基づき、前記クライアントは前記データ記憶サーバから遠隔に位置する、ステップと、
    前記ファイルデータ及び前記データ記憶サーバ上の前記ファイルデータの記憶を記述した追加メタデータを含む情報を前記データ記憶サーバから送信するステップであり、前記追加メタデータは、前記ファイルデータを展開するために使用可能な前記ファイルデータに関する圧縮情報を記述し、前記追加メタデータは、前記異なる形体の前記ファイルデータを前記ネイティブ形体の前記ファイルデータに変換するのに使用可能である、ステップ
    を含む方法。
  7. 前記データ記憶サーバ上の前記ファイルデータの記憶を記述した前記メタデータは、前記データ記憶サーバ上の前記ファイルデータの非重複の結果得られる前記ファイルデータの記憶を記述したデータを含む請求項6に記載の方法。
  8. 前記データ記憶サーバ上の前記ファイルデータの記憶を記述した前記メタデータは、前記ファイルデータのサブセットの暗号ハッシュを含む請求項6に記載の方法。
  9. 前記データ記憶サーバ上の前記ファイルデータの記憶を記述した前記メタデータは、前記ファイルデータの複数のサブセットの各々の暗号ハッシュを含む請求項6に記載の方法。
  10. 前記データ記憶サーバ上の前記ファイルデータの記憶を記述した前記メタデータは、前記ファイルデータの圧縮したサブセットを記述したデータを含む請求項6に記載の方法。
  11. 1つ以上のコンピュータプロセッサ上で実行されるときに、データ記憶サーバ内の記憶最適化の詳細がクライアントに見えるようにする方法を前記1つ以上のコンピュータプロセッサに実行させるコンピュータ実行可能命令、を有するコンピュータプログラムであって、前記方法は、
    前記クライアントから、ファイルデータの記憶を記述したメタデータにアクセスするリクエストを、前記データ記憶サーバに送信するステップと、
    前記クライアントにて、前記データ記憶サーバ上の前記ファイルデータの記憶を記述したメタデータを含む情報を、前記データ記憶サーバから受信するステップであり、前記ファイルデータは前記データ記憶サーバ上で圧縮されており、前記ファイルデータの記憶を記述した前記メタデータは、前記ファイルデータを展開するために使用可能な前記ファイルデータに関する圧縮情報を記述したデータを有する、ステップと、
    前記クライアントにより、前記ファイルデータに対する後続リクエストを送信するステップであり、前記ファイルデータに対する前記後続リクエストは少なくとも部分的に、前記データ記憶サーバ上の前記ファイルデータの記憶を記述した前記メタデータに基づき、前記ファイルデータに対する前記後続リクエストは、前記データ記憶サーバにストアされている前記圧縮されたファイルデータに対するものである、ステップと、
    前記クライアントにて、前記圧縮されたファイルデータを受信するステップと、
    前記クライアントにより、前記圧縮されたファイルデータを前記メタデータに基づいて展開するステップと
    を含む
    コンピュータプログラム。
  12. 前記データ記憶サーバ上の前記ファイルデータの記憶を記述した前記メタデータを含む前記情報は、前記データ記憶サーバ上の前記ファイルデータの非重複の結果得られる前記ファイルデータの記憶を記述したデータを含む請求項11に記載のコンピュータプログラム。
  13. 前記データ記憶サーバ上の前記ファイルデータの記憶を記述した前記メタデータを含む前記情報は、前記ファイルデータのサブセットの暗号ハッシュを含む請求項11に記載のコンピュータプログラム。
  14. 前記データ記憶サーバ上の前記ファイルデータの記憶を記述した前記メタデータを含む前記情報は、前記ファイルデータの複数のサブセットの各々の暗号ハッシュを含む請求項11に記載のコンピュータプログラム。
  15. 前記データ記憶サーバ上の前記ファイルデータの記憶を記述した前記メタデータを含む前記情報は、前記ファイルデータの圧縮したサブセットを記述した情報を含む請求項11に記載のコンピュータプログラム。
JP2013515377A 2010-06-18 2011-06-06 データ記憶とデータ送信の最適化 Expired - Fee Related JP5819416B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/818,515 US20110314070A1 (en) 2010-06-18 2010-06-18 Optimization of storage and transmission of data
US12/818,515 2010-06-18
PCT/US2011/039318 WO2011159517A2 (en) 2010-06-18 2011-06-06 Optimization of storage and transmission of data

Publications (3)

Publication Number Publication Date
JP2013534007A JP2013534007A (ja) 2013-08-29
JP2013534007A5 JP2013534007A5 (ja) 2014-07-24
JP5819416B2 true JP5819416B2 (ja) 2015-11-24

Family

ID=45329631

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013515377A Expired - Fee Related JP5819416B2 (ja) 2010-06-18 2011-06-06 データ記憶とデータ送信の最適化

Country Status (12)

Country Link
US (1) US20110314070A1 (ja)
EP (1) EP2583186A2 (ja)
JP (1) JP5819416B2 (ja)
KR (1) KR20130095194A (ja)
CN (1) CN102947815B (ja)
AU (1) AU2011268033A1 (ja)
BR (1) BR112012032407A2 (ja)
CA (1) CA2799976A1 (ja)
HK (1) HK1182493A1 (ja)
MX (1) MX2012014730A (ja)
RU (1) RU2581551C2 (ja)
WO (1) WO2011159517A2 (ja)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
US8572340B2 (en) * 2010-09-30 2013-10-29 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US8364652B2 (en) 2010-09-30 2013-01-29 Commvault Systems, Inc. Content aligned block-based deduplication
US9116850B2 (en) 2010-12-14 2015-08-25 Commvault Systems, Inc. Client-side repository in a networked deduplicated storage system
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US8856368B2 (en) * 2011-04-01 2014-10-07 International Business Machines Corporation Method for distributing a plurality of data portions
KR101904482B1 (ko) * 2011-12-26 2018-10-08 에스케이텔레콤 주식회사 콘텐트 전송 시스템, 그 시스템에서의 네트워크 중복 전송 트래픽 최적화 방법, 중앙 제어 장치 및 로컬 캐싱 장치
KR20130093806A (ko) * 2012-01-10 2013-08-23 한국전자통신연구원 클라우드 컴퓨팅 환경에서의 개인 정보 유출 알림 시스템 및 방법
CN102571974B (zh) * 2012-02-02 2014-06-11 清华大学 分布式数据中心数据冗余消除方法
CN102546817B (zh) * 2012-02-02 2014-08-20 清华大学 集中式数据中心数据冗余消除方法
US9218376B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Intelligent data sourcing in a networked storage system
US9665591B2 (en) 2013-01-11 2017-05-30 Commvault Systems, Inc. High availability distributed deduplicated storage system
WO2014149025A1 (en) * 2013-03-18 2014-09-25 Ge Intelligent Platforms, Inc. Apparatus and method for optimizing time series data store usage
US10015012B2 (en) * 2013-07-03 2018-07-03 Red Hat, Inc. Precalculating hashes to support data distribution
US20160162368A1 (en) * 2013-07-18 2016-06-09 Hewlett-Packard Development Company, L.P. Remote storage
KR102187127B1 (ko) * 2013-12-03 2020-12-04 삼성전자주식회사 데이터 연관정보를 이용한 중복제거 방법 및 시스템
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US9633056B2 (en) 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
JP6326913B2 (ja) 2014-03-31 2018-05-23 富士通株式会社 制御プログラムおよび制御方法
KR101896048B1 (ko) * 2014-05-13 2018-09-06 다토미아 리서치 랩스 오위 분산된 보안 데이터 저장 및 스트리밍 매체 콘텐트의 전송
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
KR101588976B1 (ko) 2014-10-22 2016-01-27 삼성에스디에스 주식회사 파일 송신 장치 및 방법
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US10146752B2 (en) 2014-12-31 2018-12-04 Quantum Metric, LLC Accurate and efficient recording of user experience, GUI changes and user interaction events on a remote web document
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US20160350391A1 (en) 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US11461456B1 (en) * 2015-06-19 2022-10-04 Stanley Kevin Miles Multi-transfer resource allocation using modified instances of corresponding records in memory
WO2017011829A1 (en) * 2015-07-16 2017-01-19 Quantum Metric, LLC Document capture using client-based delta encoding with server
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
WO2017022034A1 (ja) * 2015-07-31 2017-02-09 富士通株式会社 情報処理装置、情報処理方法、及び、情報処理プログラム
RU2625611C2 (ru) * 2015-12-07 2017-07-17 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Оренбургский государственный университет" Способ преобразования документов для минимизации их объёма при хранении электронных документов с квазиструктурированным информационным наполнением
US20170192868A1 (en) 2015-12-30 2017-07-06 Commvault Systems, Inc. User interface for identifying a location of a failed secondary storage device
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US10165088B2 (en) * 2016-08-02 2018-12-25 International Business Machines Corporation Providing unit of work continuity in the event initiating client fails over
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
RU2731321C2 (ru) 2018-09-14 2020-09-01 Общество С Ограниченной Ответственностью "Яндекс" Способ определения потенциальной неисправности запоминающего устройства
RU2714219C1 (ru) 2018-09-14 2020-02-13 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования передачи операций ввода/вывода
RU2718215C2 (ru) 2018-09-14 2020-03-31 Общество С Ограниченной Ответственностью "Яндекс" Система обработки данных и способ обнаружения затора в системе обработки данных
RU2714602C1 (ru) 2018-10-09 2020-02-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки данных
RU2721235C2 (ru) 2018-10-09 2020-05-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для маршрутизации и выполнения транзакций
RU2711348C1 (ru) 2018-10-15 2020-01-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запросов в распределенной базе данных
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
RU2714373C1 (ru) 2018-12-13 2020-02-14 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования выполнения операций ввода/вывода
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
RU2749649C2 (ru) 2018-12-21 2021-06-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования обработки операций ввода/вывода
RU2720951C1 (ru) * 2018-12-29 2020-05-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и распределенная компьютерная система для обработки данных
RU2746042C1 (ru) 2019-02-06 2021-04-06 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для передачи сообщения
US20200327017A1 (en) 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
US11064055B2 (en) * 2019-07-22 2021-07-13 Anacode Labs, Inc. Accelerated data center transfers
US11442896B2 (en) 2019-12-04 2022-09-13 Commvault Systems, Inc. Systems and methods for optimizing restoration of deduplicated data stored in cloud-based storage resources
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management
CN113641434A (zh) * 2021-08-12 2021-11-12 上海酷栈科技有限公司 一种云桌面数据压缩自适应编码方法、系统及存储设备
US11914983B2 (en) * 2022-06-03 2024-02-27 Apple Inc. Virtual restructuring for patching compressed disk images

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920700A (en) * 1996-09-06 1999-07-06 Time Warner Cable System for managing the addition/deletion of media assets within a network based on usage and media asset metadata
JP3171160B2 (ja) * 1998-03-20 2001-05-28 日本電気株式会社 圧縮ファイルサーバ方式
WO2000045274A1 (fr) * 1999-01-29 2000-08-03 Digitaldesign, Co., Ltd. Procede de transmission de donnees, support lisible par un ordinateur et appareil de transmission de donnees
JP3598495B2 (ja) * 1999-01-29 2004-12-08 株式会社 デジタルデザイン データ転送方法、コンピュータ読み取り可能な記録媒体及びデータ転送システム
AU2001238269B2 (en) * 2000-02-18 2006-06-22 Emc Corporation Hash file system and method for use in a commonality factoring system
US6990547B2 (en) * 2001-01-29 2006-01-24 Adaptec, Inc. Replacing file system processors by hot swapping
US7054927B2 (en) * 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
US6944740B2 (en) * 2002-03-27 2005-09-13 International Business Machines Corporation Method for performing compressed I/O with memory expansion technology
JP3979183B2 (ja) * 2002-05-27 2007-09-19 日本電気株式会社 データ共有システム及びディスク装置へのアクセス方法並びにプログラム
US7181578B1 (en) * 2002-09-12 2007-02-20 Copan Systems, Inc. Method and apparatus for efficient scalable storage management
US20040107242A1 (en) * 2002-12-02 2004-06-03 Microsoft Corporation Peer-to-peer content broadcast transfer mechanism
US20050138011A1 (en) * 2003-12-23 2005-06-23 Royer Robert J.Jr. Meta-data storage and access techniques
US7130956B2 (en) * 2004-02-10 2006-10-31 Sun Microsystems, Inc. Storage system including hierarchical cache metadata
US7243110B2 (en) * 2004-02-20 2007-07-10 Sand Technology Inc. Searchable archive
US7533181B2 (en) * 2004-02-26 2009-05-12 International Business Machines Corporation Apparatus, system, and method for data access management
US7383382B2 (en) * 2004-04-14 2008-06-03 Microsoft Corporation System and method for storage power, thermal and acoustic management in server systems
CA2564967C (en) * 2004-04-30 2014-09-30 Commvault Systems, Inc. Hierarchical systems and methods for providing a unified view of storage information
CN1697327A (zh) * 2004-05-13 2005-11-16 皇家飞利浦电子股份有限公司 一种顺序压缩/解压缩数据的方法及装置
US7386566B2 (en) * 2004-07-15 2008-06-10 Microsoft Corporation External metadata processing
US7657581B2 (en) * 2004-07-29 2010-02-02 Archivas, Inc. Metadata management for fixed content distributed data storage
US7594075B2 (en) * 2004-10-20 2009-09-22 Seagate Technology Llc Metadata for a grid based data storage system
US7320008B1 (en) * 2004-12-20 2008-01-15 Veritas Operating Corporation Data protection mechanism
US7548657B2 (en) * 2005-06-25 2009-06-16 General Electric Company Adaptive video compression of graphical user interfaces using application metadata
JP2009509218A (ja) * 2005-09-01 2009-03-05 アストラグループ エイエス(ア ノルウェギアン カンパニー) ポストレコーディング分析
US7555715B2 (en) * 2005-10-25 2009-06-30 Sonic Solutions Methods and systems for use in maintaining media data quality upon conversion to a different data format
US7587569B2 (en) * 2005-12-19 2009-09-08 Yahoo! Inc. System and method for removing a storage server in a distributed column chunk data store
DE602006000817T2 (de) * 2006-02-03 2008-07-17 Research In Motion Ltd., Waterloo System und Methode für steuernde Datenkommunikation zwischen einem Server und einer Client-Vorrichtung
US7747831B2 (en) * 2006-03-20 2010-06-29 Emc Corporation High efficiency portable archive and data protection using a virtualization layer
US8412682B2 (en) * 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
US20080052328A1 (en) * 2006-07-10 2008-02-28 Elephantdrive, Inc. Abstracted and optimized online backup and digital asset management service
US20080243769A1 (en) * 2007-03-30 2008-10-02 Symantec Corporation System and method for exporting data directly from deduplication storage to non-deduplication storage
JP5061797B2 (ja) * 2007-08-31 2012-10-31 ソニー株式会社 伝送システムおよび方法、伝送装置および方法、受信装置および方法、プログラム、並びに記録媒体
US7941409B2 (en) * 2007-09-11 2011-05-10 Hitachi, Ltd. Method and apparatus for managing data compression and integrity in a computer storage system
US7797279B1 (en) * 2007-12-31 2010-09-14 Emc Corporation Merging of incremental data streams with prior backed-up data
US8300823B2 (en) * 2008-01-28 2012-10-30 Netapp, Inc. Encryption and compression of data for storage
US8176269B2 (en) * 2008-06-30 2012-05-08 International Business Machines Corporation Managing metadata for data blocks used in a deduplication system
US20100082700A1 (en) * 2008-09-22 2010-04-01 Riverbed Technology, Inc. Storage system for data virtualization and deduplication
US8738621B2 (en) * 2009-01-27 2014-05-27 EchoStar Technologies, L.L.C. Systems and methods for managing files on a storage device
US7987162B2 (en) * 2009-03-06 2011-07-26 Bluearc Uk Limited Data compression in a file storage system
US8205065B2 (en) * 2009-03-30 2012-06-19 Exar Corporation System and method for data deduplication
CN101582076A (zh) * 2009-06-24 2009-11-18 浪潮电子信息产业股份有限公司 一种基于数据库的重复数据删除方法
US9191437B2 (en) * 2009-12-09 2015-11-17 International Business Machines Corporation Optimizing data storage among a plurality of data storage repositories
US8370297B2 (en) * 2010-03-08 2013-02-05 International Business Machines Corporation Approach for optimizing restores of deduplicated data

Also Published As

Publication number Publication date
JP2013534007A (ja) 2013-08-29
RU2012154625A (ru) 2014-06-27
US20110314070A1 (en) 2011-12-22
AU2011268033A1 (en) 2012-12-20
CN102947815B (zh) 2016-01-20
HK1182493A1 (zh) 2013-11-29
KR20130095194A (ko) 2013-08-27
RU2581551C2 (ru) 2016-04-20
EP2583186A2 (en) 2013-04-24
CN102947815A (zh) 2013-02-27
WO2011159517A2 (en) 2011-12-22
WO2011159517A3 (en) 2012-04-05
CA2799976A1 (en) 2011-12-22
MX2012014730A (es) 2013-01-22
BR112012032407A2 (pt) 2019-09-24

Similar Documents

Publication Publication Date Title
JP5819416B2 (ja) データ記憶とデータ送信の最適化
JP6644960B1 (ja) オブジェクトベース・ストレージでアーカイブされたデータ・コンテナをリストアする方法とシステム
USRE48725E1 (en) Methods for accessing data in a compressed file system and devices thereof
US9984093B2 (en) Technique selection in a deduplication aware client environment
US20150006475A1 (en) Data deduplication in a file system
US20120089579A1 (en) Compression pipeline for storing data in a storage cloud
US20120011101A1 (en) Integrating client and server deduplication systems
US20120089775A1 (en) Method and apparatus for selecting references to use in data compression
US11829624B2 (en) Method, device, and computer readable medium for data deduplication
US11221992B2 (en) Storing data files in a file system
US20180357217A1 (en) Chunk compression in a deduplication aware client environment
US10972569B2 (en) Apparatus, method, and computer program product for heterogenous compression of data streams
CN104081739A (zh) 在覆盖网络中利用压缩和差异化引擎的基于主机/路径的数据差异化
US20160352811A1 (en) Streaming zip
US11797488B2 (en) Methods for managing storage in a distributed de-duplication system and devices thereof
US9633035B2 (en) Storage system and methods for time continuum data retrieval
Park et al. Supporting Practical Content-Addressable Caching with CZIP Compression.
US20240187502A1 (en) Multi-objective compression for data tiering in a stream data platform
US20180246666A1 (en) Methods for performing data deduplication on data blocks at granularity level and devices thereof
Yan et al. Z-Dedup: A case for deduplicating compressed contents in cloud
Kandula et al. Software Data Strategies for Network Optimization supporting AI workloads
JP2010211713A (ja) バックアップ装置、バックアップシステム、バックアップ方法、及びプログラム

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130712

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140605

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150324

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150624

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150930

R150 Certificate of patent or registration of utility model

Ref document number: 5819416

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees