JP5886447B2 - ロケーション非依存のファイル - Google Patents

ロケーション非依存のファイル Download PDF

Info

Publication number
JP5886447B2
JP5886447B2 JP2014553335A JP2014553335A JP5886447B2 JP 5886447 B2 JP5886447 B2 JP 5886447B2 JP 2014553335 A JP2014553335 A JP 2014553335A JP 2014553335 A JP2014553335 A JP 2014553335A JP 5886447 B2 JP5886447 B2 JP 5886447B2
Authority
JP
Japan
Prior art keywords
data
data segment
hash
data unit
computing device
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
JP2014553335A
Other languages
English (en)
Other versions
JP2015510174A (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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2015510174A publication Critical patent/JP2015510174A/ja
Application granted granted Critical
Publication of JP5886447B2 publication Critical patent/JP5886447B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • 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/178Techniques for file synchronisation in file systems
    • 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/18File system types
    • G06F16/182Distributed file systems

Description

下記はファイルシステムに関し、より詳しくは、ロケーション非依存のファイルのシステム及び方法に関する。
電子コンテンツが普及した結果、そのような電子コンテンツを記憶する電子ストレージをユーザが拡張しなければならなくなってきた。しかしながら、概して、ユーザがコンピューティングデバイスの容量を超える量の電子コンテンツを溜め込むことも珍しくない。例えば、パーソナルコンピュータ上の電子ストレージの容量が、ポータブルメディアプレーヤの容量を実質的に超過する可能性もある。それ故、ユーザは、パーソナルコンピュータからポータブルメディアプレーヤに転送される電子コンテンツの量を制限する必要に迫られている。同様な問題は、ストレージ容量が異なる2台の別個のコンピューティングデバイス上で電子コンテンツの同期化を試みたときに起こる可能性がある。
そのような問題に対する解決策の1つは、一般に、不足が生じたデバイスに追加のストレージを増設することであった。しかしながら、デバイスの種類によっては、ストレージの増設が概して実用的でないか又は不可能なことさえある。例えば、ポータブルメディアプレーヤの型式によっては、ストレージ容量を拡張できないものもある。別の例では、ポータブル又はラップトップコンピュータなどの一部のコンピューティングデバイスのストレージ容量は、外部ハードディスクなどの外部記憶装置を装着することによって拡張できる。しかしながら、このソリューションは、ラップトップコンピュータの可搬性が制限される場合があるという点で実用性に欠ける。
そのような問題に対する別のソリューションは通例、ネットワーク接続を介してコンピューティングデバイスから増設ストレージへのアクセスを可能にすること、即ち、リモートコンピューティングデバイスのストレージ容量をローカルコンピューティングデバイスが利用できるようにリモートコンピューティングデバイスを構成することであった。動作中には、リモートコンピューティングデバイス上に電子コンテンツを有するファイルを記憶できる。このファイルは、続いて、リモートコンピューティングデバイスからローカルコンピューティングデバイスに転送するか又はコピーすることによって、ローカルコンピューティングデバイスで利用されるようになる。ローカルコンピューティング上には、永久に又は一時的にファイルを記憶できる。しかしながら、ローカルコンピューティングデバイスのユーザがアクセスに先立ってファイル全体が転送されるのを待たなければならないので、この結果、アクセスの遅延時間が大幅に長引く場合がある。しかも、ローカルコンピューティングデバイス上にファイルを一時的にしか記憶しない場合は、リモートコンピューティングシステムをそのファイルの任意の最新版で更新する必要がある。前にも述べたように、この更新を行うには通常、その後でローカルコンピューティングデバイス上のファイルをローカルコンピューティングデバイスから転送してリモートコンピューティングデバイスに戻す必要があるため、更に遅延時間が長引くことになる。
それ故、本技術は、電子コンテンツを複数のロケーションにて管理し使用するためのシステム及び方法を提供する。本技術の一態様は、電子コンテンツのデータストレージを提供することにある。特に、電子コンテンツの1つ以上のファイルを表すデータユニットは、1つ以上の(ローカル又はリモート)ロケーション及びアクセスファイルに記憶されている一連のデータセグメントに変換される。各データセグメントは、別々のハッシュ値に関連付けられているデータユニットの別個の部分を表し、通信ネットワークを介して高速伝送が可能になるように構成できる。
アクセスファイルは、データユニット及び関連データセグメントに関する情報を含む。特に、アクセスファイルは、データユニットに関連付けられているメタデータ、データセグメントに関するセグメント化スキーム情報、ハッシュ値に関するハッシュスキーム情報、データセグメントのロケーション、及びデータセグメントのハッシュ値を判別するための1つ以上のハッシュID値を含む。一部の構成では、データセグメントのハッシュ値のハッシュによって1つ以上のID値が生成される。また、代わりに、ハッシュ値自体を値としてもよい。
その場合、本技術を後述するようなデータの取り出しに使用できる。ローカルシステムには、データユニットを記憶する代わりに電子コンテンツ用のアクセスファイルを記憶しておき、対応するアクセスファイルを使用してデータユニットに対する任意の要求に供するようにローカルシステムを構成する。故に、データユニットに対するアクセスがローカルシステムによって要求されたときに、要求を履行するうえで必要とされるデータユニット部分、及び取り出しの対象となるデータセグメントが、アクセスファイルを利用して判別されるようになる。更には、アクセスファイルのハッシュ情報に基づき、マッチングハッシュ値を提供するデータセグメントを識別することによって、必要とされるデータセグメントが取り出されるようにもなる。
データセグメントで表されるデータユニットの使用量が十分多い場合、本技術によって、少なくとも最も頻繁に使用されるデータセグメントを永続的に記憶できる。あるいは、データセグメント及びアクセスファイルを使用してローカルシステムにおいてデータユニットを再アセンブルすることもできる。
また、本技術により、生成されるデータユニットの各バージョンの別々の個別コピーを必要とすることなしに、データユニットの別々のバージョンを生成することも可能になる。例えば、データセグメントにアクセスした結果、データセグメントの更新処理が為された場合、セグメントが更新された結果として取得されるハッシュ値が、元のデータセグメントのハッシュ値とは異なるものになる。それ故、更新されたデータセグメントに基づいて新しいハッシュID値を提供して、データユニットの更新済みバージョンを表す更新済みアクセスファイルを生成するだけで、更新済みデータユニットを「作成」できる。
本技術はまた、拡張ファイルシステム及びそれに関する方法を提供することもできる。概して、コンピューティングデバイスのストレージは、使用済み部分と未使用部分とから構成するのが一般的である。使用済み部分は、ローカルデバイス上に記憶されたデータユニット用の論理ストレージを提供するファイルシステムにより論理的に管理される。本技術において、ファイルシステムは、リモートシステムから取り出されたデータセグメント用のストレージとして未使用部分を利用するように更に構成される。つまり、前述したように、アクセスファイルは、論理ストレージに記憶され、関連付けられているデータユニットに対する要求に供するために使用される。その後、データセグメントは未使用スペース内に記憶され、それらのハッシュ値を介してアクセスされる。データセグメントの取り出しに利用可能なスペースが十分にない場合は、他のデータセグメントを優先度に基づいて削除又は上書きすることもできる。加えて、ファイルシステムは、幾つかの基準に基づき、データセグメントからの及びデータセグメントへのデータユニット毎に論理ストレージが管理されるように構成できる。
コンピューティングデバイスの例を示す。 アクセスファイル及び関連付けられているデータセグメントの構成の実施形態の概略図である。 コンピューティングシステムの実施形態の概略図である。 データユニットをアクセスファイル及び関連付けられているセグメントに変換するための方法の実施形態におけるステップのフローチャートである。 データユニットをアクセスファイル及び関連付けられているセグメントに変換するためのシステムの実施形態の概略図である。 アクセスファイル及び関連付けられているセグメントを使用してデータユニットにアクセスするための方法の実施形態におけるステップのフローチャートである。 アクセスファイル及び関連付けられているセグメントをデータユニットに変換するための方法の実施形態におけるステップのフローチャートである。 様々なバージョンのデータユニットを生成するための方法の実施形態におけるステップのフローチャートである。 コンピューティングシステムの代替実施形態の概略図である。
開示されている方法及び装置の様々な実施形態については、後ほど詳述する。特定の実施態様を検討するが、これは説明のためにのみ行われることを理解されたい。他のコンポーネント、構成及びステップが本開示の趣旨及び範囲から逸脱することなく使用できることは、関連技術の当業者によって認識されるであろう。
図1を参照すると、可搬式又は固定式であり得る汎用コンピューティングデバイス100が図示してある。汎用コンピューティングデバイス100は、処理ユニット(CPU)120と、読み出し専用メモリ(ROM)140及びランダムアクセスメモリ(RAM)150などのシステムメモリ130を含む様々なシステムコンポーネントを処理ユニット120に結合するシステムバス110と、を含む。他のシステムメモリ130も同様に使用できることがある。本システムが、複数のCPU120を有するコンピューティングデバイス上、又は一緒にネットワーク接続されたグループ又はクラスタのコンピューティングデバイス上で動作して、より高い処理性能を提供し得ることが理解される。システムバス110は、メモリバス又はメモリコントローラ、周辺機器バス、及び様々なバスアーキテクチャのいずれかを使用するローカルバスを含む数種のバス構造のいずれであってもよい。ROM140などに記憶された基本入出力(BIOS)は、起動中などにコンピューティングデバイス100内の要素間で情報を伝えるのを支援する基本ルーチンを提供することがある。コンピューティングデバイス100は、ハードディスクドライブ、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、ソリッドステートドライブなどの記憶装置160を更に含む。記憶装置160は、ドライブインターフェースによりシステムバス110に接続される。ドライブ及び関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、及び他のデータの不揮発性ストレージをコンピューティングデバイス100に提供する。一態様では、特定の機能を実行するハードウェアモジュールは、その機能を実行するために、CPU、バス、ディスプレイなどの必要なハードウェアコンポーネントに関連した有形のコンピュータ可読媒体に記憶されたソフトウェアコンポーネントを含む。基本コンポーネントは、当業者に知られており、デバイスが小さなハンドヘルドのコンピューティングデバイスか、デスクトップコンピュータか、又は大規模コンピュータサーバーかなどのデバイスのタイプにより、適切な変動が考慮される。
本明細書で述べる例示的な実施形態は、ハードディスクを使用するが、当業者は、磁気カセット、フラッシュメモリカード、DVD、カートリッジ、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ビットストリームを含むケーブル信号又はワイヤレス信号など、コンピュータによってアクセス可能なデータを記憶することができる他のタイプのコンピュータ可読媒体が、例示的な動作環境で使用されてもよいことを理解されるだろう。
コンピューティングデバイス100に対するユーザの対話操作を可能にする任意の数の入力メカニズム、例えば、会話用のマイクロフォン、ジェスチャ又は図形入力用のタッチセンシティブスクリーン、キーボード、マウス、モーション入力、スピーチなどが、入力デバイス190で表してある。デバイス出力170はまた、当業者に公知の多くの出力メカニズムのうちの1つ以上であり得る。例えば、映像出力デバイス又は音声出力デバイスは、ディスプレイ又はスピーカに接続できるか、又はディスプレイ又はスピーカを含むものが、一般的である。加えて、これらの特化された機能のパフォーマンスを増強する目的に、特化されたプロセッサを映像出力デバイス及び音声出力デバイスに含めさせることもできる。幾つかの例では、マルチモーダルシステムは、ユーザに、コンピューティングデバイス100との通信の複数の入力のタイプを提供できるようにする。ユーザ入力及びシステム出力は一般に、通信インターフェース180によって統制、管理される。任意の特定のハードウェア配列上で動作している、開示されている方法及びデバイスは何らの制約も受けないため、改良されたハードウェア又はファームウェア配列が開発されるにしたがって、基本的な諸機能を容易に改良されたハードウェア又はファームウェア配列に置換できる。説明を分かり易くするために、(「プロセッサ」と表記された機能ブロックを含む)個々の機能ブロックを含めて構成されたものとして、例示的なシステムが示してある。これらのブロックで表されている機能は、ソフトウェアを実行できるハードウェアを含むがこれに限定されない共有ハードウェア又は専用ハードウェアのいずれかを用いることによって提供できる。例えば、図1に示された1つ以上のプロセッサの機能は、単一の共用プロセッサ又は複数のプロセッサによって提供されてもよい。(「プロセッサ」という用語が使用されている場合、ソフトウェアを実行できるハードウェアだけを指すものと解釈すべきではない。)例示的な実施形態は、マイクロプロセッサ及び/又はデジタルシグナルプロセッサ(DSP)ハードウェア、後述する動作を実行するソフトウェアを記憶するための読み出し専用メモリ(ROM)、及び結果を記憶するランダムアクセスメモリ(RAM)を含み得る。超大規模集積化(VLSI)、フィールドプログラマブルゲートアレイ(FPGA)、及び特定用途向け集積回路(AW)ハードウェアの実施形態も提供され得る。
様々な実施形態の論理演算は、(1)汎用コンピュータ内のプログラマブル回路上で実行される、コンピュータにより実行される一連のステップ、動作又は手順、(2)特定用途プログラマブル回路上で実行される、コンピュータにより実行される一連のステップ、動作又は手順及び/又は(3)プログラマブル回路内の相互接続されたマシンモジュール又はプログラムエンジンとして実行される。
ここで図2を参照すると、本技術によるアクセスファイル及び関連付けられているデータセグメントの概略図が示してある。上に記載したように、本技術の一態様は、電子コンテンツの1つ以上のアイテムを表すデータユニットを記憶するための代替の手段を提供することにある。データユニットをデータセグメント及びアクセスファイルに変換するプロセスについては、後ほど図3及び図4を参照しながら詳述する。再び図2に戻って説明すると、データユニットの変換結果は、クラウド又はアクセスファイル202、及び1つ以上のロケーション206に記憶されている1つ以上のデータセグメント204である。
アクセスファイル202は、データセグメント204を介したデータユニットへのアクセス方法を指示するデータの集合体から構成されるデータファイルである。例えば、図2に示すように、アクセスファイル202は、データユニットに関連付けられているメタデータ202Aが記憶されるように構成できる。図2に示すように、メタデータ202Aに、データユニットの拡張論理サイズを含めてもよい。しかしながら、この点に関して本技術は何らの制約も受けないため、メタデータ202Aにはまた、データユニットに関連付けられている他の如何なる種類のメタデータも含むことができる。このメタデータには、日付情報、ユーザ情報、ファイルの種類の情報及び属性情報が包含され得るが、これらはほんの数例にすぎない。しかしながら、202Aに他の如何なる種類の識別情報を含めてもよいし、又は202Aに含まれる情報は上記情報より少なくしてもよい。更に、データユニットが電子コンテンツの2つ以上のアイテムを表す場合、各アイテムのメタデータはまたアクセスファイルのメタデータ202A内に含めてもよい。
また、アクセスファイルには、メタデータ202Aに加えて、セグメント化スキーム情報202B、即ち、データセグメントの構成を記述した任意の情報を含むこともできる。例えば、図2に示すように、セグメント化スキーム情報202Bは、データセグメント204のサイズであり得る。図2のセグメント化スキーム情報202Bには、全てのデータセグメント204のサイズが同じ64Kであることを示してあるが、この点に関して本技術は何らの制約も受けない。幾つかの事例においては、上述したように、データセグメント204サイズはそれぞれ異なっていてもよい。更に、セグメント化スキーム情報202Bは、サイズ情報だけに制限されない。寧ろ、幾つかの事例において、セグメント化スキーム情報202Bには、データセグメント204の構成方法に関して追加の詳細を指定することも可能である。例えば、データセグメント204は、データユニット及び他の部分に関連付けられているデータから構成されるペイロード部分を含んだパケット又はファイルとして構成することもできる。それ以外の部分には、エラーチェック用の部分、データセグメント内のデータのデータユニット内部の開始位置及び終了位置、データセグメントと他のセグメントとの関係、並びに任意の他の情報を指示する部分が含まれ得る。それ故、セグメント化スキーム情報202Bには、データの取り出し時に正しく抽出できるように、データセグメントの構造を指定しておくことも可能である。データセグメント204構造及び構成を指定する他の何らかの情報もまた、セグメント化スキーム情報202B内に指定できる。
上述したように、データセグメントのサイジングは多様であり得るが、多くの構成においては、データセグメントへのアクセスが迅速かつ効率的になるように、データセグメントのサイジングを選択できる。つまり、ネットワーク接続されたデバイス間で、遅延又は遅滞をほとんど若しくは一切伴わずにデータセグメントをサイジングできる。例えば、上述されている64Kセグメントの転送に必要とされる帯域幅が比較的少なくて済む場合もある。加えて、また、特定のデータストレージ構成又はデータパケット構成が利用されるようにセグメントのサイジングを選択することもできる。つまり、様々な種類のメモリデバイス及びデータパケットは、データへの個別アクセスが行われるように構成されるのではなく、特定の量のデータを含んだブロックへのアクセスが行われるように構成されるのが一般的である。それ故、本技術ではまた、可能な限り高いスループットを維持するため、そのようなブロックの構成が利用されるようにデータセグメントをサイジングできる。
本技術の一態様は、データセグメント206に関連付けられているハッシュ値を利用するデータセグメントを取り出すことにある。それ故、ハッシュ値を正しく判別する方法を特定できるように、アクセスファイル202にはまたハッシュスキーム情報202Cを含めてもよい。図2において、ハッシュスキーム情報202Cに指定されているハッシュタイプはSHA2であるが、この点に関して本技術は何らの制約も受けないため、本技術においては他の如何なる種類のハッシュスキームも使用できる。ハッシュスキームの使用法については、後で更に詳述する。
本技術の説明では、用語「ハッシュ」、「ハッシュ値」、「ハッシュ関数」などを引用するが、これらの用語の使用は、如何なる形であれ制限的なものであると見なすべきではない。例えば、本明細書において「ハッシュ関数」は、第1のサイズの第1のデータセットと第1のサイズよりも小さい第2のサイズの第2のデータセットとの間のマッピング又は変換を提供する、任意のサブルーチン、アルゴリズム、プロセス、方法などを指す。
アクセスファイル202の付加部分は、ロケーション情報202Dである。ロケーション情報202Dには、データセグメント204が位置する1つ以上のロケーション206を指定できる。図2において、ロケーション情報202Dは、信頼されたユニフォームリソースロケータ(URL)文字列のリストとして示してある。しかしながら、ロケーション情報202Dは、如何なる形式であってもよく、データセグメント204が位置し得る任意の種類のリソースを指定できる。加えて、一部の構成では、ロケーションにアクセスするための特定の順序を、ロケーション情報202Dに指示できる。例えば、冗長バージョンのデータセグメントを一次的及び二次的なロケーションに記憶する必要がある場合は、データセグメントを一次的なロケーションに位置付けることができないときに限り、先に一次的なロケーションにアクセスしてから二次的なロケーションにアクセスすべきことを、ロケーション情報202Dに指定できる。
ロケーション情報202Dのコンテンツは、アクセスファイルの作成時に固定できるが、一部の構成においてはロケーション情報202Dを経時的に更新することもできる。つまり、データセグメントのストレージロケーションを変更するか又はさもなければ調整する場合には、そのような更新を受信して自動的にアクセスファイル202が調整されるように、アクセスファイル202が記憶されているコンピューティングシステムを構成できる。そのような調整は、グローバルに又はファイル毎に為され得る。加えて、更新にはまた、アクセスファイル202を利用するコンピューティングデバイスのロケーションも反映され得る。つまり、更新には、コンピューティングデバイスのロケーションに基づいてストレージロケーションが反映され得る。その結果、アクセスファイル202に関連付けられているデータセグメントへのアクセス性が向上する。
また、アクセスファイル202には、ハッシュ識別(ハッシュID)情報202E、即ち、データセグメント204のハッシュ値が直接又は間接的に指定される情報を含めてもよい。一部の構成では、ハッシュID情報202Eに、データセグメントのハッシュ値のリストを指定できる。あるいは、アクセスファイル202のファイルサイズを制限するか又はアクセスファイルに実質的に同じサイズ及びコンテンツを提供した方が好ましい場合もある。そのような場合、様々なデータユニットに関連付けられているハッシュ値の数値は、それぞれのデータユニットのサイズに応じて大幅に異なり得る。それ故、ソニック構成では、ハッシュID情報202Eに、1つ以上の複合ハッシュ値を指定できる。これにより、データセグメントに関連付けられているハッシュ値からハッシュ値が計算される。例えば、図2に示すように、データセグメント204に関連付けられているハッシュ値208については、複合ハッシュ値210を計算してハッシュID情報202Eとして使用できる。故に、データの取り出し中に、複合ハッシュ値210を使用してハッシュ値208を計算することによって、データセグメント204を取り出すことができる。
上述したように、各データセグメント204と別のデータセグメントとの関係、又は各データセグメント204とデータユニットとの関係を指定した情報をデータセグメント204に含んでもよい。しかしながら、この種の情報は同様に又は代わりに本技術における複合ハッシュ値210を介して記憶することも可能である。つまり、複合ハッシュ値210を使用することにより、データセグメント204を識別できるだけでなく、データセグメント204同士の間の関係を判別することも可能になる。例えば、データユニットがセグメント化によって様々なデータセグメント204が生成される際には、様々なデータセグメントのコンテンツをデータユニットの内部に配置する方法を定義する特定の順序、階層などが存在する。したがって、複合ハッシュ値210を生成する際には、まず、データユニット内のデータセグメント204同士の間の関係に対応した順序でハッシュ値208を配置できる。また、代わりに、関係を表すデータを生成してもよい。その後、ハッシュ値208のこの構造のハッシュ値を得るか、又はハッシュ値208及び構造データの組み合わせを得ることによって、複合ハッシュ値210を生成できる。結果として、複合ハッシュ値210には、ハッシュ値208が記憶されるだけでなく、様々なデータセグメント204の関係情報も記憶される。その結果、データセグメント204間の関係に関する別個の情報をアクセスファイル202内又はデータセグメント204内に記憶することによって、データセグメント204及びアクセスファイル202のサイズを更に縮小させる必要がある。
一部の構成においてアクセスファイルに複数の複合ハッシュ値208を含むことができる点は注目するに値する。複合ハッシュ値208の個数は、様々な要因に基づき得る。例えば、データユニットが複数のファイルから構成されるか、又は明確に定義された境界に沿った部分に細分され得る場合、これらのファイル又は部分のそれぞれについて別個の複合ハッシュ値208を生成できる。結果として、これらのファイル又は部分のうち1つだけが必要とされる場合、複合ハッシュ値208のうちの対応するもの1つだけが、データセグメント204の関連付けられているものを判別する処理を必要とする。
上述のストレージ構成では、新しい種類のファイルシステムによるデータユニットの管理を可能にしている。このことは、図3に関して略図的に示してある。図3は、本技術に従って構成されたコンピューティングデバイス300の概略図である。
図3に示すように、コンピューティングデバイス300は、ファイルシステム302と、コンピューティングシステム300用データが記憶されており、かつファイルシステム302によって管理されているコアストレージ304と、を含んで構成される。図3においてファイルシステム302は、階層ファイルシステムプラス(HFS+)として示してあるが、この点に関して本技術は何らの制約も受けないため、他の如何なる種類のファイルシステムも制限なしに本技術にて使用できる。
動作中に、ファイルシステム302は、コアストレージ304を2つ以上のストレージエリアとして管理する。特に、コアストレージ304を、1つ以上の論理ボリューム部分306(ハッチング無し)及びそれ以外の部分308(ハッチング有り)として管理することも可能である。コンピューティングシステム内に記憶されているデータユニットを管理するための論理ボリューム310を定義する目的で、論理ボリューム部分306がファイルシステム302によって管理される。論理ボリューム310をファイルシステム302により実質的に従来方式にて管理することにより、データ取り出し及びデータ記憶が実行できるようになっている。
それ以外の部分308は、コンピューティングデバイス300におけるデータセグメントの管理及び記憶用のコンテンツアドレス指定可能ストレージ(CAS)312を定義する目的に、ファイルシステム302によって使用される。データの取り出し及びデータの記憶を実行するため、ファイルシステム302及びCAS312が以下のような動作をする。
データの取り出しに関しては、上述したように、本技術ではデータユニットをアクセスファイル及び1つ以上のデータセグメントで表すことができる。したがって、そのようなデータユニット又はその一部分を要求に応答してコンピューティングデバイスによりアクセスする必要のある場合は、データユニット用のアクセスファイルが処理され、かつ要求に必要なデータセグメントが判別されるようにファイルシステム302を構成する。
本技術においてアクセスファイルのロケーションは可変であり得る。一部の構成においてアクセスファイルは、コンピューティングデバイス300の内部に記憶してもよく、しかも、コンピューティングデバイス300内部における1つ以上のロケーションにアクセスファイルを記憶することもできる。例えば、アクセスファイルは、1つ以上の構成内の論理ボリューム310内に記憶され得る。ある構成において、アクセスファイルは、論理ボリューム310内に記憶されている任意のデータユニットと共に追加のファイルとして記憶される。別の構成では、論理ボリューム310又は更に別個の論理ボリューム(図示なし)の一部分をアクセスファイルの記憶用に確保できる。しかしながら、アクセスファイルを論理ボリューム内に記憶する必要はない。寧ろ、コンピューティングデバイス300内の他のデータストレージロケーションを代わりに使用してもよい。例えば、ファイルシステム302は、アクセスファイルを記憶するための専用メモリ又はキャッシュを有していてもよい。
ファイルシステム302は、この情報を使用して、その場合、CAS312に対して分析又はクエリを実行し、データセグメントが利用可能かどうかを判別できる。一部の構成において分析は、アクセスファイルに基づいて取得されたハッシュ値を含むデータセグメントがCAS312に記憶されているかどうかを判別することを目的としたCAS312のスキャンであり得る。他の構成において、ファイルシステム302は、コンピューティングデバイス300においてメンテナンスされているテーブルにアクセスできる。このテーブルは、データセグメントが記憶されているCAS312内のロケーション及びCAS312内の各ロケーションに関連付けられているハッシュ値のリストを含む。その後で、所望されるハッシュ値に関連付けられているデータセグメントが、CAS312内に存在するかどうかが判別される。
アクセスファイルからのハッシュ値とマッチするデータセグメントがCAS312内で利用できない場合は、代わりにデータセグメントがリモートストレージ314から取り出されてCAS312内に配置され得る。リモートストレージ314内でのデータセグメントの場所指定は、CAS312内でのデータセグメントの場所指定と同じ又は異なる様式で実行できる。一旦データセグメントがCAS312内で利用可能になった後は、必要に応じて、データセグメントからデータを抽出できる。一旦CAS312がデータセグメントで充填されており、追加のデータセグメントを取り出す必要が生じた場合は、より古い又は使用頻度が低いデータセグメントを上書きしてもよい。同様に、データユニットを論理ボリューム310に追加する必要があり、CAS312がデータセグメントで充填されている場合は、より古い又は使用頻度が低いデータセグメントを上書きすることによって論理ボリュームの拡張が可能になる。データセグメントの取り出し及びアクセスのプロセスについては、後ほど図6に言及しながら更に詳しく説明する。
データストレージ(即ち、論理ストレージ310内のデータユニットをアクセスファイル及びデータセグメントに変換すること)に関しては、データユニットが処理されてかつアクセスファイル及びデータセグメントが生成されるように、ファイルシステム302が構成される。次いで、データセグメントを少なくともCAS312にコピーできる。加えて、そのデータセグメントをリモートストレージ314にもコピーできる。続いて、論理ストレージ310内のデータユニットが削除され、コンピューティングシステム300が、データアクセスファイル及びデータセグメントで定義されているデータユニットのバージョンに依存する可能性がある。データの記憶プロセスについては、以下図4及び5に言及しながら詳述する。
ここで図4〜8に戻ると、上述したように、アクセスファイル及びデータセグメントの構造を利用して、コンピューティングデバイス用ファイルシステムの様々な諸機能を実施するための様々な方法が提供されている。
最初に、図4及び5に関して、データユニットを変換するための例示的な方法及びシステムを説明する。図4は、本技術に従ってデータユニットをアクセスファイル及び関連付けられているデータセグメントに変換するための例示的な方法400におけるステップのフローチャートである。図5は、データユニットをアクセスファイル及び関連付けられているデータセグメント及びそのストレージに変換するための、図3のコンピューティングデバイス300内などの、コンピューティングデバイス内の例示的なシステム500の略図である。図5に示すように、コントローラ502を設け、このコントローラ502に命令又は構成情報504を制御させて、それらをシステム500のコンポーネントに供給させることによって、方法400を遂行することもできる。上で図2に関して説明したように、構成情報504には、セグメント化スキーム情報、ハッシュスキーム情報、及びロケーション情報を含むことができる。
方法400はブロック402において開始され、ブロック404に進む。ブロック404において、変換対象のデータユニットを選択できる。例えば、図5に示すように、ローカルストレージ508内の特定のデータユニット506をアクセスファイル及びデータセグメントに変換する必要があることが、コントローラ502によって判定され得る。一部の構成において、ブロック402での選択は、1つ以上の要因又は基準に基づく自動的な選択であり得る。そのような基準には、使用、年齢及びサイズが包含され得るが、これらはほんの数例にすぎない。しかしながら、この点に関して本技術は何らの制約も受けないため、他の任意の要因又は要因の組み合わせを分析してデータユニット506が識別されるようにコントローラ502を構成できる。他の構成において、ブロック404での選択は手動による選択であり得る。つまり、ローカルストレージ508内のデータユニットは、ユーザにより直接的に識別され得る。更に他の構成においては、データユニット506の自動的識別及び手動による識別の組み合わせを提供できる。
ブロック404において、一旦データユニット506が選択された後、方法400はデータユニットの処理を続行して、ブロック406において初めにデータユニット506をデータセグメントに細分する。例えば、図5に示すように、データユニット506をセグメント化システム510のデータユニットプロセッサ512に送り込むことによって、構成情報504に基づいてデータセグメント514を生成することが可能になる。データユニット506をデータセグメント514にセグメント化することは、様々な基準に従って実行できる。基準は、データユニットプロセッサ512に固有のものである場合もあれば、構成情報504内に提供される場合もあり、又はその両方の組み合わせである場合もある。例えば、上述したように、基準にはデータセグメント514のサイズを指定してもよい。また、基準には、セグメント化が発生するデータユニット506内のロケーションを指定することもできる。例えば、基準には、nバイト数毎にセグメント化が為されるように指定できる。あるいは、データユニット506を分析することによって、機能性、クリティカリティ、又はデータユニット506の様々な部分に関連付けられている他の任意の特性に基づいて、データユニット504用の論理セグメント又はセグメントの群を判別できる。加えて、基準は、データセグメント514を利用し、かつこのデータセグメントと相互作用するシステムに依存し得る。例えば、特定のシステム又は通信ネットワークが特定のサイズの、又は特定の構成を有するデータセグメントより効率的に動作する場合、この構成にデータセグメント514が適合するようにデータユニットプロセッサ512を構成できる。しかしながら、本技術は如何なる特定のセグメント化スキームにも制限されないため、どのような種類のセグメント化スキームにも使用できる。
ブロック406においてデータセグメント514がデータユニットプロセッサ512を介して生成された後、ブロック408においてデータセグメント514のハッシュ値を生成できる。例えば、図5に示すように、また、様々なデータセグメント514に対するハッシュ値518を生成するためのハッシュモジュール516をセグメント化システム510に含んでもよい。上述したように、本技術においては任意の種類のハッシュスキームを利用できるが、衝突のリスクを回避するため、実質的に一意のハッシュ値が提供されるハッシュスキームを使用できる。SHA2は、そのような目的に対応した例示的なハッシュスキームである。
ブロック408において、一旦ハッシュ値518がハッシュモジュール516により計算された後は、ブロック410においてアクセスファイルの生成又はアセンブルが可能になる。特に、セグメント化システム510に、アクセスファイルを生成するためのアクセスファイルジェネレータ520を含んでもよい。アクセスファイルジェネレータ520は、データユニット506に対するメタデータ522及び構成情報504とハッシュ値518を組み合わせて用いることで、データユニット506及びデータセグメント514用のアクセスファイル524を生成できる。
メタデータ522を得るには、幾つかの方法があり得る。例えば、図5に示すように、データユニット506からメタデータ522を抽出しかつメタデータ522をアクセスファイルジェネレータ520に転送するように、データユニットプロセッサ512を構成してもよい。しかしながら、この点に関して本技術は何らの制約も受けないため、セグメント化システム510の内部又は外部にて他の任意の方法を使用してメタデータ522を得ることができる。
アクセスファイル524内に含まれるハッシュスキーム情報、セグメント化スキーム情報、及びロケーション情報に関して、これらはアクセスファイルジェネレータ520により構成情報504から得ることができる。あるいは、また、そのような情報を利用するセグメント化システム510内のモジュール又はユニットは、この情報をアクセスファイルジェネレータ520に転送できる。
ブロック408及び410の後に又はこれらのブロックと並行して、ブロック412においてデータセグメント514を記憶できる。データセグメント514が記憶されるロケーションには、ローカルストレージ508、リモートストレージ526、又はその両方の組み合わせが含まれ得る。上で図3に関して説明したように、一部の構成では、データセグメント514を常にリモートストレージ526内に記憶しておくことによって、アーカイブコピーデータをセグメント514の上書きに必要とされた場合に提供できる。
上述したように、ブロック410において生成されたアクセスファイル524には、ロケーション情報が含まれる。少なくとも幾つかのデータセグメント514がローカルストレージ508内に記憶されている構成では、ローカルシステムはローカルストレージ508内でデータセグメント514を探せるようにアクセスファイル524にてローカルストレージ508を識別できる。一方、一部の構成においては、ローカルストレージ508のデータセグメント514がチェックされるように、ローカルシステム(即ち、ファイルシステム)を構成することもできる。それ故、アクセスファイル内のロケーションからローカルストレージ508を排除してアクセスファイル524のサイズが更に縮小されるように、アクセスファイルジェネレータ520を構成してもよい。
一旦ブロック412においてデータセグメント514が記憶され、ブロック410においてアクセスファイル524がアセンブルされた後、方法400はブロック414に進むことができる。ブロック414では、アクセスファイル524を使用してデータユニット506に対する任意の要求に供するように、ローカルシステムを再構成できる。このプロセスには、アクセスファイル524をローカルストレージ508内又はローカルシステム内の他のストレージに記憶することと、ローカルシステムがアクセスファイル524を介してデータユニット用のデータをアクセスするようにファイルシステムを構成することと、を含めてもよい。任意選択的に、ブロック416において、ローカルストレージ508からデータユニット506を削除又はパージしてもよい。その後、ステップ418において方法400は前の処理を再開する。このステップに、方法400の繰り返しを含めてもよい。
図6は、本技術に従ってアクセスファイル及び関連付けられているデータセグメントを使用してデータユニットにアクセスするための例示的な方法600のステップにおけるフローチャートである。ブロック602において、方法600が開始され、引き続きブロック604に進む。ブロック604において、データユニットの少なくとも選択部分へのアクセスに対する要求が受け取られる。つまり、アプリケーション又は要求に応じて、データユニットの一部のみが必要とされ得る。典型的なコンピューティングデバイスでは、ローカルシステム内でのデータユニットに対する要求は、ローカルシステム用のデータ記憶装置を管理する1つ以上のファイルシステムによって供される。それ故、ブロック604には、データユニットの選択部分に対する要求をファイルシステムに転送することを含めてもよい。
ブロック604において、一旦要求がファイルシステムにより受け取られた後は、ブロック606においてファイルシステムはデータユニットに対する要求にどのようにして供すべきかを決定できる。つまり、ブロック606において、ファイルシステムはアクセスファイル及びデータセグメントを使用して、データユニットに関連付けられている要求に供するように構成されているかどうかを判定できる。ファイルシステムがこのように構成されなかった場合は、方法がブロック608に進み、従来の方法を使用してデータユニットをローカルストレージから取り出すことができる。その後、方法600がブロック610に進み、前の処理(方法600の繰り返しを含む)を再開する。
ブロック606において、ファイルシステムがアクセスファイルを利用して、データユニットに対する要求に供するように構成されていると判定した場合、方法600はブロック612に進むことができる。ブロック612では、要求されたデータユニットに対するアクセスファイルを得ることも又はアクセスすることもできる。本技術において、アクセスユニットのロケーションは可変であり得る。一部の構成では、アクセスファイルは、ローカルシステムのローカルストレージ内部において、ローカルシステム上、又は専用メモリロケーションなどの特化されたロケーション内のいずれかに存在するデータユニットと共に、識別されたセグメントを記憶できる。例えば、ローカルシステムには、キャッシュ又はアクセスファイルを記憶するための他の予約メモリエリアを含めてもよい。あるいは、またアクセスファイルを1つ以上のリモートロケーションに記憶することもできる。そのような構成では、要求に供するため、ブロック612において、要求を受けると直ぐリモートロケーションにアクセスしてアクセスファイルの永久的又は一時的なコピーを作成するようにファイルシステムを構成できる。
ブロック612において、一旦アクセスファイルが取得された後は、ブロック614においてアクセスファイルの処理を開始し、要求に供するうえで必要なデータセグメントを得ることができる。例えば、ブロック614では、アクセスファイルを処理することによって、要求に基づいて、要求及びその対応するハッシュ値に対応する特定のデータセグメントを識別できる。例えば、アクセスファイル内のメタデータ情報及びセグメント化スキーム情報を利用して、要求に関連付けられているデータセグメントを判別できる。その場合、後になってから、セグメント化スキーム情報及びハッシュID情報を使用して、識別されたデータセグメントのハッシュ値を判別することもできる。データユニット全体が必要とされる場合は、全てのデータユニットに対するハッシュ値を得る。一方、データセグメントの一部分のみが必要な場合は、当該セグメントについてのみハッシュ値を取り出せば済むが、この点に関して本技術は何らの制約も受けない。つまり、要求に供するうえで必要なデータセグメントに対応したハッシュ値を含む限り、如何なる数のハッシュ値も得ることができる。
この構成の利点の1つは、多くの時点で、ユーザは通例データユニットの特定の部にアクセスする必要があるが、データユニット全体に直ちにアクセスせずに済むという点である。例えば、データユニットが音声又は映像コンテンツから構成される場合は、現在表示されている音声又は映像コンテンツの部分に対応するデータユニットの部分、更には追加の部分(例えば、コンテンツの何らかのバッファリングを提供するため)へのアクセスを提供するだけで済む場合がある。それ故、本技術によって、データユニット及び関連付けられているデータセグメントのこれらの部分の識別が可能になる。
ブロック614においてデータセグメントが識別されハッシュ値が取得された後、ブロック616において識別されたデータセグメントへのアクセスが提供されるようにローカルストレージを構成できる。このブロックは、最初に、様々なストレージロケーションで検索を実行して、特に識別されたデータセグメントのロケーションを判別することを含み、これは、識別されたデータセグメントのハッシュ値を、様々なストレージロケーションで利用可能なデータセグメントのハッシュ値と比較することを含む。一部の構成では、様々なロケーションにてデータセグメントのハッシュ値を動的に計算でき、他の構成では、様々なストレージロケーションにてデータセグメントのハッシュ値を予め計算できる。そのような構成では、これらのハッシュ値が、データセグメントとは別個のデータファイル内に記憶される場合もあれば、又はデータセグメントの内部に埋め込まれる場合もある。
検索されたロケーションに関しては、このロケーションに少なくともアクセスファイル内に指定されたロケーションが含まれる場合もあれば、一方、検索されたロケーションに、他のロケーションが含まれる場合もある。例えば、ローカルシステムの内部のストレージロケーションも検索可能である。しかしながら、この点に関して本技術は何らの制約も受けないため、他の任意の既定の検索対象ロケーション(ローカル及びリモートロケーションを含む)が含まれるように方法600を構成できる。しかも、上述したように、ロケーションは、アクセスファイル内又はローカルシステム内に指定された事前定義済みの順序で検索できる。
ブロック616にはまた、上述した検索を実行することに加えて、ローカルシステム内で識別されたセグメントのコピーを一時的に又は永久に作成することによって、識別されたセグメントが取り込まれるようにローカルストレージを構成することを含めてもよい。本技術において、識別されたセグメントをローカルシステム内に記憶するためのロケーションは可変であり得る。一部の構成では、ローカルシステムのローカルストレージ内部において、ローカルシステム上、又は専用メモリロケーションなどの特化されたロケーション内のいずれかに存在するデータユニットと共に、識別されたセグメントを記憶できる。例えば、キャッシュ、又は識別されたセグメントを記憶するための他の予約メモリエリアを、ローカルシステムに含むこともできる。
ブロック616において、識別されたデータセグメントを含むようにローカルシステムが構成された後、方法はブロック618に進む。ブロック618において、続いて、ローカルシステム内のデータセグメントを使用して要求に供し得る。つまり、データユニット全体を利用可能にする必要なしに要求に見合ったデータが提供されるように、データセグメントからデータを抽出できる。その後、方法600は引き続きブロック610に進み、前の処理(方法600の繰り返しを含む)を再開する。
上で図6に関して説明したように、ローカルストレージ内のデータセグメントを使用して要求に供することが可能になる。しかしながら、データセグメントを介してデータユニットの実質部分が頻繁にアクセスされている場合は、ローカルシステム内でデータユニットを再アセンブルする方が高効率であることもあり得る。このプロセスは図7に示してある。図7は、本技術に従ってアクセスファイル及び関連付けられているデータセグメントをデータユニットに変換するための例示的な方法700におけるステップのフローチャートである。ブロック702において方法700が開始され、引き続きブロック704に進む。
ブロック704では、ローカルシステムに記憶されるデータユニットを選択する。上述したように、データユニットは、使用基準、例えば、データユニットに関連付けられているデータセグメントの使用頻度に基づいて選択できる。しかしながら、この点に関して本技術は何らの制約も受けないため、他の如何なる基準もデータユニットの選択に使用できる。例えば、ローカルシステムにおいて追加のスペースが利用可能な場合は、データセグメントを介さずに1つ以上のデータユニットをローカルに記憶できる。別の例において、データユニットをアーカイブするか又はコピーを作成する必要があることから、データユニットをアセンブルする必要が生じ得る。本技術では、データユニットを選択するための他の任意の基準もまた利用できる。
ブロック704においてデータユニットが選択された後は、ブロック706においてデータユニット用の全てのデータセグメントを取り出すことができる。この取り出しは、上で図6に関して説明したのと実質的に同様に実行できる。その後、全てのデータセグメントがローカルシステムにおいて利用可能になった後は、ブロック708においてデータセグメントを使用してデータユニットを再アセンブルできる。特に、セグメント化スキーム情報、メタデータ、及びアクセスファイル内の他の情報をデータセグメント内に存在する任意の情報と組み合わせて使用することで、データユニットが再アセンブルされるよう、適切な配列にてデータセグメントを配置できる。
ブロック708において、一旦データユニットがローカルシステムにて再アセンブルされた後は、続いてブロック710においてローカルシステムを構成できる。つまり、再アセンブル済みデータユニットをローカルシステムでメンテナンスすべき場合は、ブロック710において再アセンブル済みデータユニットを使用してデータユニットを利用するため今後の要求に供するようにローカルシステムを再構成できる。
任意選択的に、ブロック710において、再アセンブル済みデータユニットが利用されるようにローカルシステムが再構成された後、ブロック712においてアクセスファイル及び関連付けられているデータチャンクを削除してもよい。幾つかの事例では、この削除に、ローカルシステムにおいてはアクセスファイル及び関連付けられているデータチャンクを削除することが含まれる。故に、そのような構成では、リモートシステム内にデータユニットのアーカイブコピーがメンテナンスされる。あるいは、ローカルシステム及び1つ以上のリモートシステムの両方におけるアクセスファイル及び関連付けられているデータチャンクを削除することをブロック712に含むことができる。そのようにした結果、リモートシステム内のデータユニットのアーカイブコピーの削除が可能になる。しかしながら、幾つかの事例においては、削除を他での非アーカイブリモートシステムだけに制限することによって、データユニットがローカルシステムから不注意にも削除されるか、又はデータユニットの「クリーン」コピーが後でローカルシステムで必要になった場合に備えてファイルのバックアップコピーを提供できるようにしている。
上述したように、本技術に従って構成されたファイルシステムでは、従来方法と比較してスペース使用量が少ない文書版数管理システムが提供されている。この版数管理システムの動作については、以下に図8に言及しながら説明する。図8は、本技術によるデータユニット様々なバージョンを生成するための例示的な方法800におけるステップのフローチャートである。
方法800はブロック802にて開始し、ブロック804に進む。ブロック804では、ローカルシステムにコピーされた少なくとも1つのデータセグメントが更新されたことが、ファイルシステムに検出される。例えば、データセグメント内部のデータを変更するコマンドがユーザによって発行されたことが、ファイルシステムに検出される場合もあれば、あるいは、データセグメントに対するハッシュ値がアクセスファイルに準ずるハッシュ値にマッチしなくなったことが、ファイルシステムに検出される場合もある。データセグメントの変更を検出するための他の如何なる方法も、制限なしに使用できる。
ブロック804において、一旦データセグメントの変更が検出されると、方法800はブロック806に進み、新しいバージョンのデータユニットを生成する。特に、ブロック806において、ファイルシステムは更新済みデータセグメント(1つ又は複数)を使用して、更新済みアクセスファイルを生成する。更新済みアクセスファイルは、元のデータセグメントに関連付けられているアクセスファイルに似ているが、この更新済みアクセスファイルは、更新済みデータセグメント(1つ又は複数)に対するハッシュ値に関する情報を含むように生成される。しかも、メタデータ又は更新済みアクセスファイルに対する他の情報は、更新済みアクセスファイルが元のアクセスファイル内の別のバージョンのデータユニットが参照されていることが反映されるように調整され得る。例えば、元のアクセスファイルを参照する情報を、更新済みアクセスファイル内に更に含めてもよい。
幾つかの事例においては、更新済みデータセグメントに応答して完全なアクセスファイルを生成するより寧ろ、更新済みデータセグメント(1つ又は複数)に基づいて新しいバージョンのデータユニットを生成する方法を指示する情報と、元のアクセスファイル内の情報と、を含むように更新済みアクセスを構成できる。つまり、元のアクセスファイルを識別する情報と、新しいバージョンのデータユニットにアクセスするためのデータセグメントを得るうえで必要な元のアクセスファイル内の変更内容を識別する情報と、を含むように更新済みアクセスファイルを構成できる。
更新済みアクセスファイルの構成に関係なく、ブロック806において更新済みアクセスファイルが一旦生成された後は、方法800がブロック808に進む。ブロック808において、更新済みデータセグメントを、今後アクセスできるように、アクセスファイルに関連付けられているストレージロケーションに記憶してもよい。また、ブロック808には、更新済みアクセスファイルを共有環境内のリモートロケーションに記憶することを含めてもよい。つまり、アクセスファイルを他のユーザにアクセス可能なストレージロケーションに記憶しておけば、他のユーザが更新済みデータセグメントを介してアクセス更新済みデータユニットにアクセスできるようになる。
方法800は、ブロック808の後に又はブロック808と並行して、ブロック810を実行できる。ブロック810において、ローカルシステムが更新済みアクセスファイルを使用して新しいバージョンのデータユニットに対する要求に供するように、ローカルシステムを再構成できる。ブロック808及び810の後、方法800は任意選択的に、ブロック812に進み得る。元のデータユニットがもうローカルシステムで使用されなくなった場合、例えば、ユーザがローカルシステムで元のデータユニットを上書きする意思がある場合は、ブロック812において、元のアクセスファイルをローカルシステムから削除してもよい。同様に、更新済みデータセグメント(1つ又は複数)しか使用しない場合は、元のデータセグメントをローカルシステムから削除してもよい。最後に、方法800はブロック814に進み、前の処理(方法800の繰り返しを含む)を再開してもよい。
上述のデータセグメントスキームを用いてローカルストレージの容量拡張方法を提供する様々な実施形態について述べてきたが、この点に関して本技術は何らの制約も受けない。幾つかの実施形態においては、ローカルシステムパフォーマンスの増強を目的にデータセグメントが利用される場合もある。
多くの実例において、コンピューティングデバイスは、メモリデバイスに対するデータの読み取り又は書き込みに関して、データ転送速度、アクセス速度、又は他のデータアクセスメトリックがそれぞれ異なる多様な型式のメモリデバイスから構成できる。例えば、ソリッドステートドライブなどのソリッドステート記憶装置は典型的に、磁気ヘッド付きハードディスクドライブなどの磁気記憶装置よりもアクセス速度が顕著に高速である。しかしながら、ソリッドステートドライブのメガバイト当たりのコストは、磁気ヘッド付きハードディスクドライブのメガバイト当たりのコストよりも顕著に高くつくのが一般的である。それ故、多くの型式のコンピューティングデバイスにおいて、磁気ヘッド付きハードディスクドライブは、依然として一次的なストレージ媒体のまま変わりがない。
一方、多くの事例においては、コンピューティングデバイスによって使用されるデータの量が、磁気ヘッド付きハードディスクドライブのストレージの総容量よりも顕著に少ないことの方が一般的になっており、この点は注目に値する。故に、本技術の一態様は、複合ストレージが提供されるようにデータセグメントを利用することにある。そのような複合記憶装置の動作及び構成については、以下図9に言及しながら説明する。
図9は、本技術の代替実施形態に従って構成されたコンピューティングデバイス900の概略図である。上述したように、コンピューティングデバイス900は、第1の物理的デバイス904及び第2の物理的デバイス906を管理するファイルシステム902から構成され得る。説明の便宜上、第1の物理的デバイス904をアクセス速度が高速でストレージ容量が少ないストレージボリュームとする一方、第2の物理的デバイス906をアクセス速度が低速でストレージ容量が多いストレージボリュームとしている。例えば、第1の物理的デバイス904は磁気ディスクドライブであってもよく、第2の物理的デバイス906はソリッドステートディスクドライブであってもよい。
図9の例示的な実施形態は、ファイルシステムに関して記述しているが、これは図を分かり易くすることのみを目的としたものである。しかしながら、本明細書に記載の複数のストアデバイスは、制限なしに実質的に同じ様式にて、ファイルシステムレベル、ボリュームマネージャレベル、又は更にはデバイスドライバレベルで制御できる。
動作中に、データはコンピューティングデバイス900により第2の物理的デバイス906内にセグメント化された形態でローカルに記憶される。そのようなデータセグメントの生成及び記憶は、上記の方法のいずれかに従って為され得る。第2の物理的デバイス906は上述のリモート記憶装置と実質的に同じ様式で動作する。結果として、第2の物理的デバイス906内に記憶されている一連の特定のデータセグメントに対して特定のデータユニットが関連付けられるように、ファイルシステム902を構成できる。
従来システムにおいては、コンピューティングデバイス900が後になってから少なくともデータユニットの一部分を要求した場合、コンピューティングデバイス900は、第2の物理的デバイス906内の適切なデータセグメントにのみアクセスする。しかしながら、様々な実施形態においては、そのようなアクセスを提供する代わりに、第1の物理的デバイス904に適切なデータセグメントをコピーする。更に、コピーされたデータセグメントに対する今後の要求が第1の物理的デバイス904により供されるように、ファイルシステム902を再構成することもできる。結果として、第1及び第2の物理的デバイス904並びに906は、単一の論理記憶装置908として動作し、データセグメントのコピーが第1の物理的デバイス904において作成されたかどうかに応じてデバイス904及び906のうちの一方からデータセグメントが取り出される。例えば、第1の物理的デバイス904からのデータユニット910に関連付けられているデータセグメントに対してアクセスが行えるように、かつ第2の物理的デバイス906からのデータユニット912に関連付けられているデータセグメントへのアクセスが行えるように、ファイルシステム902を構成することもできる。
更に重要なことには、コンピューティングデバイスは通例、多数のデータユニットに繰り返しアクセスしているため、より高速な第1の物理的デバイス904を介して対応するデータセグメントにアクセスすると、結果として、コンピューティングデバイス900の全体的なパフォーマンスも向上する。
第1の物理的デバイス904のストレージ容量が枯渇した場合、記憶されているデータセグメントを上書き又は削除できる。上述したように、上書き又は削除可能なデータセグメントを選択する際には、如何なる種類のスキームも利用できる。そのような事例において、第1の物理的デバイス904内でデータセグメントの修正が発生しない場合は、単にデータセグメントを上書き又は削除して、第2の物理的デバイス906を介してデータセグメントへのアクセスが提供されるようにファイルシステム902を再構成することもできる。第1の物理的デバイス904内でデータセグメントに対して修正が発生した場合は、第1の物理的デバイス904内のデータセグメントを使用して第2の物理的デバイス906内の対応するデータセグメントを上書きできる。データセグメントを第2の物理的デバイス906に複製し直すとパフォーマンスに影響が及ぶ可能性があるが、典型的なコンピューティングデバイスにおいてアクセス対象データの実質部分(90%以上)は変更されないままになるのが一般的である。それ故、ほとんどの場合、追加のコピー動作を必要とすることなしに、通例はデータセグメントの削除/上書きは更新済みファイルシステムに対する動作のみから構成される。
あるいは、第1の物理的デバイス904からの修正済みデータセグメント及び第2の物理的デバイス906内の対応するデータセグメントの両方を、第2の物理的デバイス906内でメンテナンスできる。そのような場合は、前述したように、この配列をファイルシステム902により利用することによって、様々なバージョンのデータユニットを記憶できる。本開示はまた、第1の物理的デバイス904内のデータセグメントの修正に応答して、修正済みのデータセグメントが自動的に第2の物理的デバイス906にコピーされ、第1の物理的デバイス904からデータセグメントを削除することなしに、様々なバージョンのデータユニットのストレージが提供され得ることを思量している。
図9の例示的な実施形態は、アクセス速度の違いについて記述してあるが、本技術による複合記憶装置は、データアクセスメトリック(データ転送速度、アクセス速度、又は他の関心対象の任意のメトリックを含む)が異なるデバイスに基づくものであり得る。
本開示は、上に図9に関して記載されている複合ストレージスキームを単独で、又は上で記載されている任意の技術と共に使用できることを思量する。つまり、データセグメントは、ローカル−ローカルベース、リモート−ローカルベース、又はその両方で利用できる。
これらの実施例に準ずる実施態様としては、他にも、コンピュータ実行可能命令を保持若しくは有するコンピュータ可読媒体、又はそのコンピュータ可読媒体に記憶されているデータ構造が挙げられる。そのようなコンピュータ可読媒体は、汎用コンピュータ又は特殊用途向けコンピュータによりアクセスできる利用可能な如何なる媒体であってもよい。一例として、また限定するものではなく、そのような有形のコンピュータ可読媒体には、RAM、ROM、EEPROM、CD−ROM、又は他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶装置、ソリッドステートディスクストレージ、又はデータ構造の形で所望のプログラムコード手段を保持又は記憶するために使用することができる、その他任意の媒体が挙げられる。
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、又は専用処理装置に特定の機能若しくは機能群を実行させる命令及びデータを含む。コンピュータ実行可能命令は、また、コンピュータによってスタンドアロン又はネットワーク環境で実行されるプログラムモジュールを含む。概して、プログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、及び特定のタスクを実行するか又は特定の抽象データ型を実装するデータ構造を含み得る。コンピュータ実行可能命令、関連データ構造、及びプログラムモジュールは、本明細書に開示された方法のステップを実行するためのプログラムコード手段の例を表す。そのような実行可能命令の特定のシーケンス又は関連したデータ構造は、これらのステップで述べられた機能を実行するための対応する動作の例を表す。
当業者は、本発明のその他の実施形態が、パーソナルコンピュータ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの又はプログラム可能な民生電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどを含む、多くのタイプのコンピュータシステム構成を含むネットワークコンピューティング環境で実施されてもよいことを理解するであろう。実施形態は、また、通信ネットワーク経由で(有線接続、無線接続、又はこれらの組み合わせによって)結合されたローカル及びリモート処理装置によってタスクが実行される分散コンピューティング環境で実施されてもよい。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモートの両方のメモリ記憶装置に配置されてもよい。
記載されているシステムの様々なステージにおける通信は、ローカルエリアネットワーク、トークンリングネットワーク、インターネット、企業イントラネット、802.11シリーズのワイヤレス信号、光ファイバネットワーク、無線伝送又はマイクロ波伝送などを介して実行できる。基盤となる通信技術は変遷していく可能性があるが、本明細書に記載されている基本的な原理は、依然として適用され得る。
以上述べた様々な実施形態は、説明のためにのみ提供されているものであって、限定的なものであると解釈すべきではない。当業者は、本開示の真の趣旨及び範囲から逸脱することなしに、本明細書に図示され説明された例示的な実施形態及び用途に従って為され得る様々な修正及び変更を容易に認識できるであろう。

Claims (20)

  1. 以上のロケーションに、各々がデータユニットの別個の部分を表すデータセグメントを記憶するステップと、
    前記データセグメントの各々についてハッシュ値を計算するステップと、
    前記データユニットに対するメタデータと、前記データセグメントの構成を特定するセグメント化スキーム情報と、前記データセグメントに関連する前記ハッシュ値に用いられたハッシュスキームの種類を特定するハッシュスキーム情報と、前記データセグメントに関連する前記ハッシュ値を記述したハッシュ識別情報と、前記データセグメントが配置される1つ以上のリソースの前記1つ以上のロケーションを識別するロケーション情報と、を含むアクセスファイルをアセンブルするステップと、
    前記アクセスファイルを処理することにより、前記データセグメントを使用して前記データユニットに対する要求に供するようにファイルシステムを構成するステップと、を含む方法。
  2. 前記データユニットを少なくとも1つの基準に基づいて選択するステップを更に含む、請求項1に記載の方法。
  3. 前記少なくとも1つの基準が、前記データユニットに対するユーザのアクセス頻度に基づくものである、請求項2に記載の方法。
  4. 前記データセグメントの各々が同じサイズに構成される、請求項1に記載の方法。
  5. 前記ハッシュ識別情報が、前記データセグメントの前記ハッシュ値を含む、請求項1に記載の方法。
  6. 前記ハッシュ識別情報が、前記ハッシュ値に基づく少なくとも1つの複合ハッシュ値を含む、請求項1に記載の方法。
  7. ファイルシステムを含むコンピューティングデバイスを備え、前記ファイルシステムが、
    前記コンピューティングデバイス内に記憶されたデータユニットをデータセグメントに変換するステップと、
    前記データセグメントを1つ以上のロケーションに記憶するステップと、
    前記データセグメントの各々についてハッシュ値を計算するステップと、
    前記データユニットに対する要求に供するためのアクセスファイルをアセンブルするステップと、を含む複数ステップを遂行する前記コンピューティングデバイスを制御するように構成され、
    前記アクセスファイルが、前記データユニットに対するメタデータと、前記データセグメントの構成を特定するセグメント化スキーム情報と、前記データセグメントに関連する前記ハッシュ値に用いられたハッシュスキームの種類を特定するハッシュスキーム情報と、前記データセグメントに関連する前記ハッシュ値を記述するハッシュ識別情報と、前記データセグメントが配置される1つ以上のリソースの前記1つ以上のロケーションを識別するロケーション情報と、を含む、システム。
  8. 前記ロケーションが、前記コンピューティングデバイスによって通信リンク経由でアクセス可能な1つ以上のリモートストレージロケーションを含む、請求項7に記載のシステム。
  9. 前記コンピューティングデバイスが、前記アクセスファイルを記憶するための前記ファイルシステムによって管理される専用ストレージを含む、請求項7に記載のシステム。
  10. 前記ファイルシステムは、少なくとも1つの基準に基づいて前記データユニットを選択するために前記コンピューティングデバイスを制御するように更に構成される、請求項7に記載のシステム。
  11. 前記少なくとも1つの基準が、前記コンピューティングデバイスにおける前記データユニットのアクセス頻度に基づく、請求項10に記載のシステム。
  12. 前記ファイルシステムが、前記データセグメントを記憶するステップ及び前記アクセスファイルをアセンブルするステップに応答して、前記コンピューティングデバイスから前記データユニットをパージするように前記コンピューティングデバイスを制御するように更に構成される、請求項7に記載のシステム。
  13. コンピューティングデバイスのコンピュータに、
    ータユニットの少なくとも選択部分にアクセスする要求に応答して、前記データユニットに対応するアクセスファイルを取得し、前記データユニットのデータを含む1つ以上のデータセグメントを識別するステップと、
    少なくとも前記データユニットの前記選択部分に対応する前記データセグメントを識別して、識別されたデータセグメントを得るために前記アクセスファイルを処理するステップと、
    少なくとも前記識別されたデータセグメントを含むように前記コンピューティングデバイスのローカルストレージを構成するステップと、
    前記ローカルストレージ内のデータセグメントから抽出されたデータを使用して前記要求に供するステップと、を実行させるコンピュータプログラムであって、
    記アクセスファイルが、前記データユニットに対するメタデータと、前記データセグメントの構成を特定するセグメント化スキーム情報と、ハッシュ値に用いられたハッシュスキームの種類を特定するハッシュスキーム情報と、前記データセグメントに関連する前記ハッシュ値を記述したハッシュ識別情報と、前記データセグメントが配置される1つ以上のリソースの1つ以上のロケーションを識別するロケーション情報と、を含む、コンピュータプログラム
  14. 前記取得するステップは、前記コンピューティングデバイスによって通信リンク経由でアクセス可能なリモートシステムから前記アクセスファイルを取り出すことを更に含む、請求項13に記載のコンピュータプログラム
  15. 前記処理するステップが、前記メタデータ及び前記セグメント化スキーム情報に基づいて前記識別されたデータセグメントを判別することを更に含む、請求項13に記載のコンピュータプログラム
  16. 前記構成するステップが、
    前記ハッシュスキーム情報及び前記ハッシュ識別情報に基づいて前記識別されたデータセグメントに対するハッシュ値を取得し、取得されたハッシュ値を形成
    前記取得されたハッシュ値に基づいて、前記識別されたデータセグメントのいずれかが前記ローカルストレージ内に存在しないかどうかを判別
    前記ローカルストレージ内に存在しない前記識別されたデータセグメントの各々について、前記アクセスファイル内に指定された前記ロケーションのいずれかから前記識別されたデータセグメントのうちの1つを取り出すこと
    を更に含む、請求項13に記載のコンピュータプログラム
  17. コンピューティングデバイスにおいてデータユニットの少なくとも選択部分に対する要求に応答して、前記データユニットに対するメタデータと、前記データユニットの1つ以上の異なる部分を定義するデータセグメント記憶する1つ以上のロケーションを識別するロケーション情報と、前記データセグメントの構成を特定するセグメント化スキーム情報と、前記データセグメントに関連するハッシュ値に用いられたハッシュスキームの種類を特定するハッシュスキーム情報と、前記データセグメントに関連する前記ハッシュ値に基づくハッシュ識別情報と、を含むアクセスファイルを取得するステップと、
    少なくとも、前記データユニットの選択部分に対応する前記データセグメントを識別するステップと、
    少なくとも前記識別されたデータセグメントを含むように前記コンピューティングデバイスのローカルストレージを構成するステップと、
    前記ローカルストレージ内のデータセグメントから抽出されたデータを使用して前記要求に供するステップと、を含む方法。
  18. 前記構成するステップが、前記ローカルストレージにおいて、前記識別されたデータセグメントのうちの1つ以上についてスペースが不十分であることに応答して、現在使用されていない1つ以上の他のデータセグメントを削除するステップを更に含む、請求項17に記載の方法。
  19. 前記他のデータセグメント、前記コンピューティングデバイスにおける前記他のデータセグメントの少なくとも使用状況の履歴に基づいて削除対象として選択される、請求項18に記載の方法。
  20. 前記識別されたデータセグメントの使用状況が使用基準を満たす場合、コンピューティングデバイスにて前記データユニットを再アセンブルして再アセンブル済みデータユニットを形成し、前記再アセンブル済みデータユニットを使用して前記要求に供するステップ、を更に含み、前記データユニットは前記アクセスファイルに基づいて再アセンブルされる、請求項17に記載の方法。
JP2014553335A 2012-01-17 2013-01-14 ロケーション非依存のファイル Active JP5886447B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/351,987 2012-01-17
US13/351,987 US9195666B2 (en) 2012-01-17 2012-01-17 Location independent files
PCT/US2013/021375 WO2013109490A1 (en) 2012-01-17 2013-01-14 Location independent files

Publications (2)

Publication Number Publication Date
JP2015510174A JP2015510174A (ja) 2015-04-02
JP5886447B2 true JP5886447B2 (ja) 2016-03-16

Family

ID=47599179

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014553335A Active JP5886447B2 (ja) 2012-01-17 2013-01-14 ロケーション非依存のファイル

Country Status (8)

Country Link
US (1) US9195666B2 (ja)
EP (1) EP2805261A1 (ja)
JP (1) JP5886447B2 (ja)
KR (1) KR101631004B1 (ja)
CN (1) CN104160397B (ja)
AU (1) AU2013210018B2 (ja)
TW (1) TWI609277B (ja)
WO (1) WO2013109490A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806499B2 (en) * 2008-05-15 2014-08-12 Novell, Inc. Mechanism to build dynamic locations to reduce brittleness in a team environment
US20140279933A1 (en) * 2013-03-14 2014-09-18 Konica Minolta Laboratory U.S.A., Inc. Hashing Schemes for Managing Digital Print Media
US10097431B1 (en) * 2014-06-06 2018-10-09 Amazon Technologies, Inc. Routing to tenant services utilizing a service directory
US10250455B1 (en) 2014-06-06 2019-04-02 Amazon Technologies, Inc. Deployment and management of tenant services
CN105389316A (zh) * 2014-09-05 2016-03-09 上海科泰世纪科技有限公司 文件管理系统和方法
JP6405831B2 (ja) * 2014-09-25 2018-10-17 富士ゼロックス株式会社 情報処理装置、通信システム及びプログラム
CN105528347B (zh) * 2014-09-28 2019-03-26 北京古盘创世科技发展有限公司 数据块储存方法、数据查询方法和数据修改方法
WO2016154918A1 (zh) * 2015-03-31 2016-10-06 华为技术有限公司 一种数据处理方法、装置及设备
CN106257450B (zh) * 2015-06-19 2019-09-17 杭州海康威视数字技术股份有限公司 集群系统的文件定位、存储方法和装置
DE102016214671B3 (de) * 2016-08-08 2017-12-21 Audi Ag Verfahren zum Übertragen einer Datei zwischen einer Steuervorrichtung eines Kraftfahrzeugs und einer fahrzeugexternen Servervorrichtung, Steuervorrichtung und Kraftfahrzeug
US10552075B2 (en) * 2018-01-23 2020-02-04 Vmware, Inc. Disk-image deduplication with hash subset in memory
US11683373B2 (en) * 2020-02-20 2023-06-20 Comcast Cable Communications, Llc Systems, methods, and apparatuses for storage management
CN111782632A (zh) * 2020-06-28 2020-10-16 百度在线网络技术(北京)有限公司 数据处理方法、装置、设备和存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6269382B1 (en) * 1998-08-31 2001-07-31 Microsoft Corporation Systems and methods for migration and recall of data from local and remote storage
KR100860821B1 (ko) * 2000-02-18 2008-09-30 이엠씨 코포레이션 공통부분 요소분화 시스템에 사용하기 위한 컴퓨팅 시스템, 식별자 설정 방법 및 컴퓨터 판독가능 프로그램을 구비한 기록 매체
US20040030731A1 (en) 2002-04-03 2004-02-12 Liviu Iftode System and method for accessing files in a network
US20040117437A1 (en) 2002-12-16 2004-06-17 Exanet, Co. Method for efficient storing of sparse files in a distributed cache
JP2007511820A (ja) * 2003-10-27 2007-05-10 アーカイヴァス インコーポレイテッド 独立ノード冗長アレイに対するポリシーに基づく管理
JP4349301B2 (ja) * 2004-11-12 2009-10-21 日本電気株式会社 ストレージ管理システムと方法並びにプログラム
US7499586B2 (en) 2005-10-04 2009-03-03 Microsoft Corporation Photographing big things
US8161353B2 (en) * 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
CN101546320B (zh) * 2008-03-27 2011-11-16 北京兴宇中科科技开发股份有限公司 一种基于滑动窗口的数据差异分析方法
US8515909B2 (en) 2008-04-29 2013-08-20 International Business Machines Corporation Enhanced method and system for assuring integrity of deduplicated data
US8909606B2 (en) * 2008-06-10 2014-12-09 Google Inc. Data block compression using coalescion
US8086634B2 (en) * 2008-10-07 2011-12-27 Hitachi, Ltd. Method and apparatus for improving file access performance of distributed storage system
JP5254141B2 (ja) 2009-07-14 2013-08-07 富士通株式会社 アーカイブ装置、データ格納プログラムおよびデータ格納方法
CN101620618B (zh) * 2009-07-24 2011-11-30 中兴通讯股份有限公司 内存存储数据的维护方法与装置
US9043489B2 (en) * 2009-10-30 2015-05-26 Cleversafe, Inc. Router-based dispersed storage network method and apparatus
JP5691229B2 (ja) * 2010-04-08 2015-04-01 日本電気株式会社 オンラインストレージシステム、及びオンラインストレージサービスの提供方法
US9063656B2 (en) * 2010-06-24 2015-06-23 Dell Gloval B.V.—Singapore Branch System and methods for digest-based storage
WO2012112121A1 (en) * 2011-02-17 2012-08-23 Jitcomm Networks Pte Ltd Parallel data partitioning

Also Published As

Publication number Publication date
KR20140114040A (ko) 2014-09-25
CN104160397A (zh) 2014-11-19
WO2013109490A1 (en) 2013-07-25
EP2805261A1 (en) 2014-11-26
CN104160397B (zh) 2018-03-06
JP2015510174A (ja) 2015-04-02
TWI609277B (zh) 2017-12-21
TW201346601A (zh) 2013-11-16
US9195666B2 (en) 2015-11-24
KR101631004B1 (ko) 2016-06-15
AU2013210018B2 (en) 2016-04-21
US20130185266A1 (en) 2013-07-18
AU2013210018A1 (en) 2014-08-07

Similar Documents

Publication Publication Date Title
JP5886447B2 (ja) ロケーション非依存のファイル
CN107003935B (zh) 用于优化数据库去重的装置、方法和计算机介质
US9734158B2 (en) Searching and placeholders
JP5878548B2 (ja) 重複排除ストレージ・システム、その内部の合成バックアップを容易にする方法、及び、プログラム
US10452484B2 (en) Systems and methods for time-based folder restore
US9317519B2 (en) Storage system for eliminating duplicated data
US9830324B2 (en) Content based organization of file systems
KR102128139B1 (ko) 플레이스홀더에 의한 파일 관리 기법
KR102187127B1 (ko) 데이터 연관정보를 이용한 중복제거 방법 및 시스템
KR20160003682A (ko) 플레이스홀더에 의한 하이드레이션 및 디하이드레이션 기법
US11392545B1 (en) Tracking access pattern of inodes and pre-fetching inodes
US10776321B1 (en) Scalable de-duplication (dedupe) file system
EP3519993A1 (en) Tracking access pattern of inodes and pre-fetching inodes
US10474365B2 (en) System and method for file processing from a block device
US11533384B2 (en) Predictive provisioning of cloud-stored files
CN111930684A (zh) 基于hdfs的小文件处理方法、装置、设备及存储介质
US10235293B2 (en) Tracking access pattern of inodes and pre-fetching inodes
CN115129789A (zh) 一种分布式对象存储系统的桶索引存储方法、装置及介质
CN113688139A (zh) 对象存储方法、网关、设备及介质
US10664442B1 (en) Method and system for data consistency verification in a storage system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151109

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160210

R150 Certificate of patent or registration of utility model

Ref document number: 5886447

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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