(57)【要約】【課題】ファイルシステムインターフェイスを通じてキーバリューシステム格納装置にアクセスするキャッシュアクセス方法及びシステムを提供する。【解決手段】本発明によるシステムは、コンピュータと、コンピュータ内のプロセッサと、コンピュータ内のメモリと、メモリに格納されてプロセッサ上で動作し、ページキャッシュを含むファイルシステムと、メモリに格納されたキーバリューファイルシステム（ＫＶＦＳ）と、を備え、ＫＶＦＳは、ファイルを識別するファイル名称を含むファイルシステムコマンドをファイルシステムから受信する受信ユニットと、ファイルシステムコマンドをキーバリューシステムコマンドにマッピングするマッピングユニットと、キーバリューシステムコマンドを格納装置に伝送するコマンドユニットと、キーバリューシステムコマンドの結果をファイルシステムに返還する返還ユニットと、を含む。【選択図】図１
2017151974.tif 000002
【特許請求の範囲】
【請求項１】
キーバリューシステム格納装置へのキャッシュアクセスシステムであって、
コンピュータと、
前記コンピュータ内のプロセッサと、
前記コンピュータ内のメモリと、
前記メモリに格納されて前記プロセッサ上で動作し、ページキャッシュを含むファイルシステムと、
前記メモリに格納されたキーバリューファイルシステム（ＫＶＦＳ）と、を備え、
前記ＫＶＦＳは、
ファイルを識別するファイル名称を含むファイルシステムコマンドを前記ファイルシステムから受信する受信ユニットと、
前記ファイルシステムコマンドをキーバリューシステムコマンドにマッピングするマッピングユニットと、
前記キーバリューシステムコマンドを格納装置に伝送するコマンドユニットと、
前記キーバリューシステムコマンドの結果を前記ファイルシステムに返還する返還ユニットと、を含むことを特徴とするシステム。
【請求項２】
前記格納装置は、前記ファイルに対するメタデータ客体及びデータ客体を格納することを特徴とする請求項１に記載のシステム。
【請求項３】
前記キャッシュアクセスシステムは、前記メモリに格納されたＫＶＦＳシムを更に含み、
前記ＫＶＦＳシムは、
客体名称を含む第２キーバリューシステムコマンドを受信する第２受信ユニットと、
前記第２キーバリューシステムコマンドを前記ファイルシステムコマンドにマッピングする第２マッピングユニットと、
前記ファイルシステムに前記ファイルシステムコマンドを伝送する第２コマンドユニットと、を含むことを特徴とする請求項１に記載のシステム。
【請求項４】
前記ＫＶＦＳシムは、前記ファイルに対応するファイルディスクリプタを格納するファイルディスクリプタルックアップテーブルを更に含むことを特徴とする請求項３に記載のシステム。
【請求項５】
前記第２コマンドユニットは、前記ファイルシステムに前記ファイルディスクリプタ及び前記ファイルシステムコマンドを伝送するように動作することを特徴とする請求項４に記載のシステム。
【請求項６】
前記ＫＶＦＳシムは、前記客体名称から前記ファイル名称を生成する名称生成ユニットを更に含むことを特徴とする請求項４に記載のシステム。
【請求項７】
前記ＫＶＦＳは、ＫＶＦＳキャッシュを更に含むことを特徴とする請求項１に記載のシステム。
【請求項８】
前記ＫＶＦＳキャッシュは、前記格納装置からの客体に対するデータのコピーを格納するように動作することを特徴とする請求項７に記載のシステム。
【請求項９】
前記返還ユニットは、前記ファイルシステムに前記ＫＶＦＳキャッシュに格納された前記客体に対する前記データの一部のみを返還するように動作することを特徴とする請求項８に記載のシステム。
【請求項１０】
前記ＫＶＦＳは、前記格納装置からの客体に対するメタデータを格納するアイノードを更に含むことを特徴とする請求項１に記載のシステム。
【請求項１１】
キーバリューシステム格納装置へのキャッシュアクセス方法であって、
ファイルを識別するファイルシステムコマンドを受信する段階と、
前記ファイルに対応するアイノードにアクセスする段階と、
前記アイノードから格納装置に格納された客体を識別する客体名称を識別する段階と、
キーバリューファイルシステム（ＫＶＦＳ）キャッシュの客体に対するコマンドを遂行する段階と、
前記コマンドの結果を返還する段階と、を有することを特徴とする方法。
【請求項１２】
前記ＫＶＦＳキャッシュの客体に対するコマンドを遂行する段階は、
前記ＫＶＦＳキャッシュで前記客体名称を検索する段階と、
前記客体名称と共に前記客体が前記ＫＶＦＳキャッシュに存在する場合、前記ＫＶＦＳキャッシュの客体に対するコマンドを遂行する段階と、を含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記ＫＶＦＳキャッシュの客体に対するコマンドを遂行する段階は、
前記客体名称が前記ＫＶＦＳキャッシュに存在しない場合、前記ファイルシステムコマンドをキーバリューシステムコマンドにマッピングする段階と、
前記客体名称と共に前記客体に対する前記キーバリューシステムコマンドを前記格納装置に伝送する段階と、
前記格納装置から前記客体を受信する段階と、
前記客体を前記ＫＶＦＳキャッシュに格納する段階と、を含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記コマンドの結果を返還する段階は、
前記客体に対するデータの一部のみにアクセスする段階と、
前記キーバリューシステムコマンドの結果として前記データの一部を返還する段階と、を含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記ファイルに対応するアイノードが発見されない場合、前記格納装置にファイル名称によって識別されるメタデータ客体を要請する段階と、
前記格納装置から前記ファイルに対するメタデータを含む前記メタデータ客体を受信する段階と、
前記メタデータ客体から前記メタデータを取出す段階と、
前記メタデータを使用して前記アイノードを生成する段階と、を更に含むことを特徴とする請求項１１に記載の方法。
【請求項１６】
前記ＫＶＦＳキャッシュの客体に対するコマンドを遂行する段階は、前記ファイルシステムコマンドに応答して前記アイノードを変形する段階を含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記ＫＶＦＳキャッシュの客体に対するコマンドを遂行する段階は、
前記格納装置からの前記メタデータ客体を削除する段階と、
前記格納装置に交替メタデータ客体を格納する段階と、を更に含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
キーバリューシステム格納装置へのキャッシュアクセス方法であって、
格納装置に格納された客体を識別する客体名称を受信する段階と、
前記客体名称にハッシュ機能を適用してファイル名称を生成する段階と、を有することを特徴とする方法。
【請求項１９】
前記ハッシュ機能によるハッシュ値のＡＳＣＩＩ表示として前記ファイル名称を生成する段階を更に含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記ハッシュ機能によるハッシュ値のＡＳＣＩＩ表示として前記ファイル名称を生成する段階は、前記ハッシュ値のＡＳＣＩＩ表示と衝突インデックスとを組合せる段階を含むことを特徴とする請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キーバリュー格納に関し、より詳細には、オペレーティングシステムキャッシュを使用してキーバリューシステム格納装置にアクセスするキャッシュアクセス提供方法及びシステムに関する。
【背景技術】
【０００２】
既存のオペレーティングシステムは、多様な方法を具現してメモリのファイルシステムデータをキャッシングし、性能を向上させる。特に、ページキャッシュ（又はバッファキャッシュ）は頻繁にアクセスされるデータを多くキャッシングして全体的なファイルシステム性能を向上させる。ページキャッシュ自体はファイルシステムがブロック装置に存在することを要求しないが、実際にページキャッシュを活用してファイルシステムの性能を向上させる大部分の構成では、ファイルシステムがブロック装置に存在することを要求する。
【０００３】
キーバリューソリッドステートドライブ（Ｋｅｙ−ｖａｌｕｅ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅｓ）は更に良いストレージ性能を提供する最新技術である。しかし、このようなＳＳＤで使用されるキーバリューシステムは、ブロック記号（ｂｌｏｃｋ  ｓｅｍａｎｔｉｃｓ）の代わりに客体記号（ｏｂｊｅｃｔ  ｓｅｍａｎｔｉｃｓ）をエクスポートして、ページキャッシュと一般的に連結されることができない。キーバリューＳＳＤを使用することは、現在のファイルシステム全体を経由しないか（ｂｙｐａｓｓｉｎｇ）、又はページキャッシュの長所無しにファイルシステムを使用することの中の１つを必要とする。いずれの場合にも、キーバリューＳＳＤからのデータはオペレーティングシステムのページキャッシュ又はバッファキャッシュにキャッシングされない。
【０００４】
これは、性能障壁（ｐｅｒｆｏｒｍａｎｃｅ  ｃｌｉｆｆ）を作り、使用者プログラム自体のキャッシング方法を具現して合理的な性能を回復することを要求する。使用者プログラム内でキャッシュを具現することは使用者に対してソフトウェア開発費用及び複雑性を増加させる。更に、使用者空間キャッシングが使用される場合、他のプログラムはそれらのキャッシュを容易に共有することができず、プログラムが終了されると、全体のキャッシュコンテンツが消失される。
【０００５】
キーバリューＳＳＤを含むシステムがページキャッシュの長所を活用する方法に対する要求が存在する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第８，４０７，４０３号明細書
【特許文献２】米国特許第８，８８０，７８７号明細書
【特許文献３】米国特許出願公開第２０１３／００４２０６０号明細書
【特許文献４】米国特許出願公開第２０１３／０２５０６８６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、ファイルシステムインターフェイスを通じてキーバリューシステム格納装置にアクセスするキャッシュアクセス方法及びシステムを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するためになされた本発明の一態様によるキーバリューシステム格納装置へのキャッシュアクセスシステムは、コンピュータと、前記コンピュータ内のプロセッサと、前記コンピュータ内のメモリと、前記メモリに格納されて前記プロセッサ上で動作し、ページキャッシュを含むファイルシステムと、前記メモリに格納されたキーバリューファイルシステム（ＫＶＦＳ）と、を備え、前記ＫＶＦＳは、ファイルを識別するファイル名称を含むファイルシステムコマンドを前記ファイルシステムから受信する受信ユニットと、前記ファイルシステムコマンドをキーバリューシステムコマンドにマッピングするマッピングユニットと、前記キーバリューシステムコマンドを格納装置に伝送するコマンドユニットと、前記キーバリューシステムコマンドの結果を前記ファイルシステムに返還する返還ユニットと、を含む。
【０００９】
上記目的を達成するためになされた本発明の一態様によるキーバリューシステム格納装置へのキャッシュアクセス方法は、ファイルを識別するファイルシステムコマンドを受信する段階と、前記ファイルに対応するアイノードにアクセスする段階と、前記アイノードから格納装置に格納された客体を識別する客体名称を識別する段階と、キーバリューファイルシステム（ＫＶＦＳ）キャッシュの客体に対するコマンドを遂行する段階と、前記コマンドの結果を返還する段階と、を有する。
【００１０】
上記目的を達成するためになされた本発明の他の態様によるキーバリューシステム格納装置へのキャッシュアクセス方法は、格納装置に格納された客体を識別する客体名称を受信する段階と、前記客体名称にハッシュ機能を適用してファイル名称を生成する段階と、を有する。
【発明の効果】
【００１１】
本発明によれば、ファイルシステムインターフェイスを通じてキーバリューシステム格納装置への高速キャッシュアクセスを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態によるキーバリューシステム格納装置にアクセスする際のオペレーティングシステムのページキャッシュを使用するシステムを示す図である。
【図２】図１に示すコンピュータの追加的な詳細構成図である。
【図３Ａ】図１に示すコンピュータの階層を通じたデータ及びコマンドの流れを示す図である。
【図３Ｂ】図１に示すコンピュータの階層を通じたデータ及びコマンドの流れを示す図である。
【図４】図１に示すキーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅ  ｆｉｌｅ  ｓｙｓｔｅｍ）の詳細構成図である。
【図５】図１に示すＫＶＦＳシムの詳細構成図である。
【図６】図５に示す名称生成ユニットの詳細構成図である。
【図７】図５に示すファイルディスクリプタルックアップテーブルの詳細構成図である。
【図８】図１に示すメタデータ客体の構造の一例を示す詳細構成図である。
【図９Ａ】本発明の一実施形態による図１に示すコンピュータを使用してコマンドを処理する手続の一例を示すフローチャートである。
【図９Ｂ】本発明の一実施形態による図１に示すコンピュータを使用してコマンドを処理する手続の一例を示すフローチャートである。
【図９Ｃ】本発明の一実施形態による図１に示すコンピュータを使用してコマンドを処理する手続の一例を示すフローチャートである。
【図９Ｄ】本発明の一実施形態による図１に示すコンピュータを使用してコマンドを処理する手続の一例を示すフローチャートである。
【図９Ｅ】本発明の一実施形態による図１に示すコンピュータを使用してコマンドを処理する手続の一例を示すフローチャートである。
【図１０Ａ】本発明の一実施形態による図１に示すＫＶＦＳシムの動作の手続の一例を示すフローチャートである。
【図１０Ｂ】本発明の一実施形態による図１に示すＫＶＦＳシムの動作の手続の一例を示すフローチャートである。
【図１１Ａ】本発明の一実施形態による図１に示すＫＶＦＳの動作の手続の一例を示すフローチャートである。
【図１１Ｂ】本発明の一実施形態による図１に示すＫＶＦＳの動作の手続の一例を示すフローチャートである。
【図１２Ａ】本発明の一実施形態による図１に示すＫＶＦＳキャッシュを使用する手続の一例を示すフローチャートである。
【図１２Ｂ】本発明の一実施形態による図１に示すＫＶＦＳキャッシュを使用する手続の一例を示すフローチャートである。
【図１３】本発明の一実施形態による図５に示す名称生成ユニットを使用して客体名称からファイル名称を生成する手続の一例を示すフローチャートである。
【図１４】本発明の一実施形態による図１に示すメタデータ客体を変形する手続の一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。以下の詳細な説明で、多様な詳細な説明は本発明の技術的思想の理解を助けるためである。しかし、当業者がこのような詳細な説明無しに本発明の思想を遂行できる。また、広く公知された方法、手続、構成、回路、及びネットワークは実施形態が不必要に不明瞭にならないように説明しない。
【００１４】
第１、第２等の用語を本明細書で多様な要素を説明するために使用するが、このような要素はこのような用語に限定されない。このような用語は単に１つの要素から他の１つを区分するために使用される。例えば、本発明の思想から逸脱することなく、第１モジュールは第２モジュールを示し、同様に第２モジュールは第１モジュールを示すことがある。
【００１５】
本明細書で使用する用語は単に特定の実施形態を説明するための目的を有し、本発明の限定を意図しない。本明細書及び特許請求の範囲で使用する単数用語は、脈絡が明確に他のものを指称しない限り、複数の形態を含むものと意図する。本明細書で使用する“及び／又は”の用語は列挙した目録の１つ又はそれ以上の可能な組合せを含むか、或いは参照するものである。詳細な説明で使用する“含む”の用語は言及する特性、数、段階、動作、及び／又は構成要素の存在を明示し、１つ又はそれ以上の他の特性、数、段階、動作、構成要素、及び／又はこれらのグループの存在又は追加を排除しない。図面の特徴及び構成は必しも一定の縮尺で図示しない。
【００１６】
本発明の実施形態はオペレーティングシステムのページキャッシュ（又はバッファキャッシュ）を使用してデータアクセスを加速化させるキーバリューをアクセスする方法を含む。キーバリュー要請（又はキーバリューシステムコマンド）はページキャッシュを活用するファイルシステム要請に変換される。また、本発明の実施形態はファイルシステム要請をキーバリュー要請に変換する。例えば、本発明の実施形態はページキャッシュＲｅａｄ  ＰａｇｅコマンドをキーバリューシステムＧＥＴ及びＰＵＴコマンドに変換する。このような変換を具現するために、キーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅ  ｆｉｌｅ  ｓｙｓｔｅｍ）は、格納装置のアクセス要請の生成回数を減少させる自体の内部ページキャッシュを含み、部分読出し及び書込み（ｐａｒｔｉａｌ  ｒｅａｄｓ  ａｎｄ  ｗｒｉｔｅｓ）を管理する。また、格納装置は、最小オーバーヘッドを要求しながら、ファイルシステムインターフェイス及び機能を支援するメタデータ客体（オブジェクト）を格納する。
【００１７】
既存のオペレーティングシステムページキャッシュを活用することによって、本発明の実施形態はキーバリューアプリケーションのデータアクセス性能を向上させる。このような結果は、複数のアプリケーションがページキャッシュを共有し、キャッシュされたデータがアプリケーションの再開始を通じて継続されるようにする追加された長所を有する。
【００１８】
本発明の実施形態は、オペレーティングシステムの包括的な構成（ｇｅｎｅｒｉｃ  ｐａｒｔ）の変化を要求すること無しに、標準オペレーティングシステムページキャッシュ及びバッファキャッシュを使用する。このような結果を達成するために、本発明の実施形態は以下の２つの新しい構成を含む。
【００１９】
１）オペレーティングシステムの使用者空間で、新しいキーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅ  ｆｉｌｅ  ｓｙｓｔｅｍ）シム（ｓｈｉｍ）が導入される。ＫＶＦＳシムはアプリケーションが連結される方法の一部を無視してアプリケーションに透過で具現する。
【００２０】
２）オペレーティングシステムのファイルシステム階層で、ＫＶＦＳドライバー（ＫＶＦＳ階層又はＫＶＦＳと称する）が導入される。ＫＶＦＳドライバーはオペレーティングシステムによって要求される標準ファイルシステムインターフェイス（ＢＳＤ（登録商標）’ｓ  Ｖｎｏｄｅ又は  Ｌｉｎｕｘ（登録商標）’ｓ  ＶＦＳインターフェイス）に従い、ファイルシステム要請をキーバリューシステム要請に変換する。
【００２１】
図１は、本発明の一実施形態によるキーバリューシステム格納装置にアクセスする際のオペレーティングシステムのページキャッシュを使用するシステムを示す図である。図１で、コンピュータ１０５は、プロセッサ１１０、メモリ１１５、及び格納装置１２０を含む。プロセッサ１１０は、多様なプロセッサ、例えばインテルゼオン（Ｉｎｔｅｌ  Ｘｅｏｎ（登録商標））又はインテルセレロンプロセッサ（Ｉｎｔｅｌ  Ｃｅｌｅｒｏｎ（登録商標）  ｐｒｏｃｅｓｓｏｒ）である。メモリ１１５は、不揮発性メモリ（例えば、フラッシュメモリ）又はＳＲＡＭ（ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような多様なメモリであるが、或いは一般的なＤＲＡＭであってもよい。格納装置１２０は従来のブロックインターフェイスを使用しない多様な格納装置である。本実施形態はキーバリュー（客体）インターフェイスを提供するソリッドステートドライブ（ＳＳＤ：ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）を含む。しかし、他の実施形態において、他の種類の格納装置、他の種類のインターフェイス、又はその両方を支援する。以下の詳細な説明で、コマンド、インターフェイスの文脈又は他の文脈で、一般的に“キーバリュー”の用語は他の専用格納装置１２０に適合する他の案として代替される。
【００２２】
メモリ１１５は多様なアプリケーションであるアプリケーション１２５を含む。一実施形態で、アプリケーション１２５は格納装置１２０のキーバリューインターフェイスを活用するように設計されたアプリケーションである。しかし、他の実施形態で、アプリケーション１２５は従来のファイルシステムを活用するアプリケーションである。以下の図３Ｂを参照して説明するように、本発明の実施形態は、従来のファイルシステムコマンドを活用するアプリケーションが格納装置１２０のようにキーバリューインターフェイスを提供する格納装置にアクセスすることを可能にする。
【００２３】
メモリ１１５はファイルシステム１３５を含むオペレーティングシステム１３０を更に含む。ファイルシステム１３５はオペレーティングシステム１３０がページキャッシュを含む従来のオペレーティングシステムであると同様に従来のファイルシステムである。“ページキャッシュ”の用語は、より一般的なバッファキャッシュ又はより最新のリナックス（登録商標）類型のページキャッシュ等、オペレーティングシステムによって提供されてアプリケーションのためにデータを格納するキャッシュを含む。従来のファイルシステムコマンドとキーバリューシステムコマンドとの間の変換のために、オペレーティングシステム１３０はキーバリューファイルシステム（ＫＶＦＳ）シム１４０及びＫＶＦＳ１４５を含む。ＫＶＦＳシム１４０はキーバリューシステムコマンドをファイルシステムで以後の処理が可能なファイルシステムコマンドに変換する。ＫＶＦＳ１４５は、ファイルシステムコマンドをキーバリューシステムコマンドに再び変換して、（上述したように、従来のブロックインターフェイスの代わりにキーバリューシステムインターフェイスを提供する）格納装置１２０と通信する。ＫＶＦＳシム１４０はアプリケーションによって一般的に呼出されるライブラリ機能を無視する機能として使用される。
【００２４】
ＫＶＦＳシム１４０及びＫＶＦＳ１４５を具現する詳細な構成が、格納装置１２０によって適用されるコマンド、ファイルシステム１３５、及びオペレーティングシステム１３０の具体的な事項を含む変数に依存するため、具現は他の装置を通じて変化する。一実施形態で、ＫＶＦＳシム１４０及びＫＶＦＳ１４５は、接続可能な機能（ｐｌｕｇｇａｂｌｅ  ｆｕｎｃｔｉｏｎｓ）を使用して具現され、ＫＶＦＳシム１４０及びＫＶＦＳ１４５の全ては全ての可能な機能の完全なセットを含む。特定の具現のために、特定の機能が活性化され、残りの機能は非活性化状態で残る。例えば、ＫＶＦＳシム１４０及びＫＶＦＳ１４５は、全ての可能なファイルシステムに対する全ての可能なファイルシステムコマンドを管理する機能、及び全ての可能な格納装置１２０に対する全ての可能なキーバリューシステムコマンドを管理する機能を含む。ＫＶＦＳシム１４０及びＫＶＦＳ１４５がコンピュータにインストールされた場合、ファイルシステム１３５及び格納装置１２０によって認識される特定コマンドを処理する機能が活性化され、コンピュータ１０５のために必要な特定のＫＶＦＳシム１４０及びＫＶＦＳ１４５を使用する。
【００２５】
オペレーティングシステム１３０は自体がページキャッシュを含み、追加拡張はコンピュータ１０５が格納装置１２０のデータにアクセスする必要性を減少させる。例えば、ＫＶＦＳ１４５はＫＶＦＳキャッシュ１５０を含む。ＫＶＦＳキャッシュ１５０はデータのコピー１５５及びメタデータのコピー１６０を格納する。コピー（１５５、１６０）は格納装置１２０に格納されたデータ客体１６５及びメタデータ客体１７０のコピーである。以下の図３Ａ〜図８を参照して更に詳細に説明するように、データ客体１６５は基本データ（ｕｎｄｅｒｌｙｉｎｇ  ｄａｔａ）を格納し、メタデータ客体１７０はファイルのメタデータを格納する。即ち、データ客体１６５及びメタデータ客体１７０は共にファイル１７５を構成する。
【００２６】
ＫＶＦＳキャッシュ１５０を含む１つの理由は部分読出し及び書込みを管理するためである。キーバリューシステム記号（ｋｅｙ−ｖａｌｕｅ  ｓｅｍａｎｔｉｃｓ）は、客体が全体的に読出されるか又は書込まれることを明示し、部分データ読出し又は書込みが許容されない。即ち、格納装置１２０に格納されたデータ客体１６５からデータが必要である場合、データ客体１６５の全体が読出されなければならない。同様に、データが格納装置１２０に格納されたデータ客体１６５に書込まれる場合、データ客体１６５の全体が書込まれなければならない。
【００２７】
しかし、ファイルシステム記号は部分データ読出し及び書込みを許容する。例えば、ファイルシステムコマンドはデータ客体１６５からデータフィールドを読出すことのみを望むことがある。キーバリューシステム記号は、どの位多くのデータが実際に使用されたかに拘らず、読出されるデータ客体１６５の全体を要求し、残りのデータは将来必要な場合にどこかにキャッシングされ、データ客体１６５を再び読出す必要性を防止する。しかし、オペレーティングシステム１３０からのファイルシステムコマンドはアプリケーションによって要求される特定データのみを要請するため、オペレーティングシステム１３０内のページキャッシュはデータ客体１６５から残りのデータをキャッシングしない。
【００２８】
即ち、ＫＶＦＳキャッシュ１５０は、将来所定の時点で必要とすることがあるにも拘らず、除去されるデータを格納する手段を提供する。
【００２９】
勿論、これはＫＶＦＳキャッシュ１５０が任意のキャッシュに対して存在する制限事項を伴うキャッシュであることを意味する。ＫＶＦＳキャッシュ１５０はＫＶＦＳキャッシュ１５０に割当られた空間によって決定された有限の大きさを含む。ＫＦＶＳキャッシュ１５０に割当られた空間より多いデータを格納するように要求される場合、ＫＶＦＳキャッシュ１５０はＫＶＦＳキャッシュ１５０のデータ出力を循環する必要がある。ＫＶＦＳキャッシュ１５０はＬＦＵ（Ｌｅａｓｔ  Ｆｒｅｑｕｅｎｔｌｙ  Ｕｓｅｄ）、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）、又は所定の他のスケジュールのように古いデータを除去して新しいデータのための空間を生成する適切なアルゴリズムを使用する。
【００３０】
前のデータを除去するＫＶＦＳキャッシュ１５０の１つの結果は、一部客体に対して、ＫＶＦＳキャッシュ１５０がデータの一部領域のみを含む。例えば、データが２００ＭＢの大きさであるデータベースから要請されるものと仮定する。客体がキーバリューシステム格納装置から全体データで読出され、また書込まれるため、大略２００ＭＢの大きさである単一客体はデータベースを格納する。データベースの一部が読出される場合、データベースの２００ＭＢの全体がＫＦＶＳキャッシュ１５０にロードされる。その後に、１０ＫＢの大きさのファイルを読出すための要請が受信されるが、ＫＶＦＳキャッシュ１５０がフル（ｆｕｌｌ）である状態であるものと仮定する。何らかの理由で、ＫＶＦＳキャッシュ１５０はデータベースの１０ＫＢの容量を除去することを決定して要請されたファイルのための空間を生成する。
【００３１】
データベースからのデータのための他の要請が受信されるものと仮定する。１９９ＭＢ以上のデータベースがＫＶＦＳキャッシュ１５０にある場合、要請されたデータが相変わらずＫＶＦＳキャッシュ１５０にある可能性が高い。そうである場合、要請は、格納装置１２０をアクセスすることなく、ＫＶＦＳキャッシュ１５０から遂行される。しかし、更に小さいデータが読出される場合、要請されたデータがＫＶＦＳキャッシュ１５０から除去されたデータの一部である場合、ＫＶＦＳ１４５は２００ＭＢデータベース客体の全体を再び要請することを必要とする。
【００３２】
データ書込みは同様に管理される。データが書込まれる場合、交替されたデータがＫＶＦＳキャッシュ１５０に格納された場合、ＫＶＦＳキャッシュ１５０内のデータが更新され、ＫＶＦＳ１４５は結果を返還する。その後に、ＫＶＦＳ１４５はＫＶＦＳキャッシュ１５０からのデータを格納装置１２０に書込んでデータが更に永久的な格納所に更新されるようにする。その後に、ＫＶＦＳキャッシュ１５０内のデータは消去される。勿論、ＫＶＦＳキャッシュ１５０がフル（ｆｕｌｌ）である状態で、新しいデータがＫＶＦＳキャッシュ１５０にロードされる場合、ＫＶＦＳキャッシュ１５０は、データのページがＫＶＦＳキャッシュ１５０から除去されると、データが格納装置１２０にフラッシュされるようにデータが格納装置１２０に書込まれたか否かを認知する必要がある。そのため、ＫＶＦＳキャッシュ１５０はＫＶＦＳキャッシュ１５０の各ページに対するダーティビットを追跡することを必要とする。勿論、他の代案はＫＶＦＳ１４５がデータ書込み動作の結果を返還する前にデータ客体が格納装置１２０に書込まれるようにすることである。このような状況で、ＫＶＦＳキャッシュ１５０はデータが安全に除去されることを確信する。
【００３３】
データ客体１６５は客体名称１８０を含む。客体名称１８０は格納装置１２０にデータ客体１６５を唯一に位置させるために使用されるデータである。同様な方式で、メタデータ客体１７０は、以下の図５及び図６を参照して説明するように、自体が名称を含む。メタデータ客体１７０の名称はデータ客体１６５の名称１８０から誘導（ｄｅｒｉｖｅｄ）される。客体名称１８０の誘導によってメタデータ客体１７０の名称を生成することで、メタデータ客体１７０は常に客体名称１８０を認知するように置かれる。
【００３４】
ファイル１７５はファイル名称１８５を含む。ファイル名称１８５は客体名称１８０に対して独立的であり、ファイル名称１８５は、客体名称１８０の変更無しに変更することができ、その反対も可能である。
【００３５】
図２は、図１に示すコンピュータ１０５の追加的な詳細構成図である。図２を参照すると、一般的に、１つ以上のマシン１０５は１つ以上のマシン１０５の構成の動作を組織化するために使用されるメモリコントローラ２１５及びクロック２２０を含む１つ以上のプロセッサ１１０を含む。プロセッサ１１０は、例えばランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、及び他の状態保存媒体を含むメモリ１１５に連結される。プロセッサ１１０は格納装置１２０及びネットワークコネクター２３０に連結される。例えば、ネットワークコネクター２１５はイーサーネット（登録商標）コネクター又は無線コネクターである。プロセッサ１１０はバス２４０に連結される。他の構成要素の中でＩ／Ｏ（入力／出力）エンジン２５０を使用して管理される入力／出力インターフェイスポート及び使用者インターフェイス２４５はバス２４０に接続される。
【００３６】
図３Ａ及び図３Ｂは、図１に示すコンピュータ１０５の階層を通じたデータ及びコマンドの流れを示す図である。図３Ａで、アプリケーション１２５が格納装置１２０によって認識されるキーバリューシステムコマンドを発行する本発明の一実施形態を示す。アプリケーション１２５がキーバリューシステムコマンド３０５を発行する場合、アプリケーション１２５はライブラリ機能（ｌｉｂｒａｒｙ  ｆｕｎｃｔｉｏｎ）を使用する。このようなライブラリ機能はＫＶＦＳシム１４０によって無視され、ＫＶＦＳシム１４０はキーバリューシステムコマンド３０５を受信する。ＫＶＦＳシム１４０はキーバリューシステムコマンド３０５をファイルシステムコマンド３１０にマッピングする。ファイルシステムコマンド３１０は、キーバリューシステムコマンド３０５と類似なファイルシステムコマンドであるが、図１のオペレーティングシステム１３０の一部であるファイルシステム１３５によって処理される。ファイルシステム１３５（又はファイルシステム１３５及び図１のオペレーティングシステム１３０の具現に依存する図１のオペレーティングシステム１３０）はページキャッシュ３１５にアクセスしてファイルシステムコマンド３１０を遂行する。ページキャッシュ３１５がファイルシステムコマンド３１０を遂行すると、ファイルシステム１３５（又は図１のオペレーティングシステム１３０）は結果３２０（ｒｅｓｕｌｔ）をＫＶＦＳシム１４０に返還する。ＫＶＦＳシム１４０は結果３２０をアプリケーション１２５によって予想される形態にマッピングする。アプリケーション１２５はファイルシステムコマンド３１０に対する結果と異なる形態を有するキーバリューシステムコマンド３０５に対する結果を予想する。
【００３７】
ファイルシステム１３５（又は図１のオペレーティングシステム１３０）がページキャッシュ３１５を使用してファイルシステムコマンド３１０を遂行しなかった場合、ファイルシステム１３５はファイルシステムコマンド３１０をＫＶＦＳ１４５に伝送する。ＫＶＦＳ１４５はＫＶＦＳキャッシュ１５０を使用してファイルシステムコマンド３１０を遂行する。ＫＶＦＳ１４５がＫＶＦＳキャッシュ１５０を使用してファイルシステムコマンド１３５を遂行すると、ＫＶＦＳは結果３２５を返還する。ファイルシステム１３５（又は図１のオペレーティングシステム１３０）はページキャッシュ３１５への必要なアップデートを生成し、（図３Ａの結果３２０として図示した）結果３２５をＫＶＦＳシム１４０に返還する。処理は上述したように続けられる。
【００３８】
ＫＶＦＳ１４５は格納装置１２０のアップデートを必要とする。例えば、ファイルシステムコマンド３１０が図１のファイル１７５に対するメタデータをアップデートする場合、ＫＶＦＳ１４５は格納装置１２０に格納されたようにメタデータ客体１７０をアップデートする。しかし、ＫＶＦＳ１４５が格納装置１２０への変化を必要とするか否かは、ＫＶＦＳ１４５、格納装置１２０、及びファイルシステムコマンド３１０の具体的思想に依存し、全てのファイルシステムコマンド３１０に対して必ずしも要求されない。
【００３９】
ＫＶＦＳ１４５がＫＶＦＳキャッシュ１５０を使用してファイルシステムコマンド３１０を遂行できない場合、ＫＶＦＳ１４５はファイルシステムコマンド３１０をキーバリューシステムコマンド３３０にマッピングする。キーバリューシステムコマンド３３０はアプリケーション１２５によって発行されたキーバリューシステムコマンド３０５と普通同一であるものと予想される。しかし、キーバリューシステムコマンド３３０がキーバリューシステムコマンド３０５と何らかの形で異なる可能性がある。ＫＶＦＳ１４５はＫＶＦＳ１４５が結果３３５のようにファイルシステム１３５（又は図１のオペレーティングシステム１３０）に返還する結果を格納装置１２０から受信する。その後に、処理は上述したように続けられる。ＫＶＦＳ１４５は格納装置１２０から受信された結果３３５に基づいて図１のＫＶＦＳキャッシュ１５０をアップデートする。例えば、ファイルシステムコマンド３１０が図１のファイル１７５を再命名すること（ｒｅｎａｍｉｎｇ）を含み、図１のＫＶＦＳキャッシュ１５０が図１のメタデータ客体１７０を予め格納しない場合、ＫＶＦＳ１４５はキーバリューシステムコマンド３３０を発行して図１のメタデータ客体１７０を回収し、メタデータ客体１７０のコピー１６０を図１のＫＶＦＳキャッシュ１５０に格納し、図１のＫＶＦＳキャッシュ１５０に格納された図１のメタデータ客体１７０のコピー１６０をアップデートする。ＫＶＦＳ１４５は、追加的な第２キーバリューシステムコマンド３３０を発行して格納装置１２０から図１のメタデータ客体１７０を削除し、格納装置１２０に図１の交替されたメタデータ客体１７０を格納する。従って、格納装置１２０はアップデートされたメタデータを含む。
【００４０】
図３Ｂは図３Ａと類似である。しかし、他の実施形態として、アプリケーション１２５は図３Ａのキーバリューシステムコマンド３０５の代わりにファイルシステムコマンド３１０を発行する。例えば、アプリケーション１２５は、格納装置１２０によって提供されるキーバリューインターフェイスを活用するように設計されないアプリケーションであるが、その代わりに、従来のファイルシステムコマンドを使用することを予想する。
【００４１】
アプリケーション１２５が従来のファイルシステムコマンドを発行するため、ＫＶＦＳシム１４０はキーバリューシステムコマンドをファイルシステムコマンドに変換することを必要としない。結果的に、ファイルシステム１３５（又は図１のオペレーティングシステム１３０）はファイルシステムコマンド３１０に基づいてページキャッシュ３１５を活用する。しかし、変わらずにＫＶＦＳ１４５はファイルシステムコマンド３１０をキーバリューシステムコマンド３３０にマッピングする。実際の格納装置１２０が客体格納所を使用する場合、ＫＶＦＳ１４５を使用してファイルシステムコマンド３１０をキーバリューシステムコマンド３１０にマッピングすることによって、ＫＶＦＳ１４５はファイルシステム１３５に格納装置１２０が従来のブロック格納所を使用するように見せる。本発明のこのような実施形態で、アプリケーション１２５は、格納装置１２０が従来のブロック格納所を使用しないにも拘らず、ページキャッシュ３１５の長所に影響を与える。ファイルシステム１３５（及び／又は図１のオペレーティングシステム１３０）、ＫＶＦＳ１４５（及び図１のＫＶＦＳキャッシュ１５０）、及び格納装置１２０の動作は図３Ａに記載されたことと同一である。
【００４２】
図３Ａ及び図３Ｂは本発明の互いに代案的な実施形態として示したが、図３Ａ及び図３Ｂに記載した本発明の実施形態は互いに組合される。例えば、本発明の実施形態はアプリケーション１２５が図３Ａのキーバリューシステムコマンド３０５のようなキーバリューシステムコマンドを発行した場合、図３Ａに示したように動作し、アプリケーション１２５が図３Ｂのファイルシステムコマンド３１０のようなファイルシステムコマンドを発行した場合、図３Ｂに示したように動作する。結果的に、図１のＫＶＦＳキャッシュ１５０及びページキャッシュ３１５はアプリケーション１２５を通じてキーバリューシステムコマンド又はファイルシステムコマンドの中の１つを使用することに影響を受け、データは図１のＫＶＦＳキャッシュ１５０及びページキャッシュ３１５内でこのようなアプリケーション１２５を通じて共有される。
【００４３】
図４は、図１に示すキーバリューファイルシステム（ＫＶＦＳ：Ｋｅｙ−Ｖａｌｕｅ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）１４５の詳細構成図である。図４で、図１、図３Ａ、及び図３Ｂを参照して説明したＫＶＦＳキャッシュ１５０は除外され、ＫＶＦＳ１４５は、受信ユニット４０５、マッピングユニット４１０、コマンドユニット４１５、及び返還ユニット４２０を含む。受信ユニット４０５は図１のファイルシステム１３５のように図１のオペレーティングシステム１３０の他のレベルからコマンドを受信する。マッピングユニット４１０はファイルシステムコマンドをキーバリューシステムコマンドにマッピングする。コマンドユニット４１５はキーバリューシステムコマンドを図１の格納装置１２０に対して発行する。返還ユニット４２０は図１のファイルシステム１３５のような図１のオペレーティングシステム１３０の呼出レベル（ｃａｌｌｉｎｇ  ｌｅｖｅｌ）に結果を返還する。全てのユニットが全てのファイルシステムコマンドに応答することを必要としない。例えば、ファイルシステムコマンドがＫＶＦＳキャッシュ１５０に存在するデータから遂行される場合、マッピングユニット４１０及びコマンドユニット４１５は図１の格納装置１２０から情報にアクセスすることを必要としない。
【００４４】
ファイルシステムコマンドのキーバリューシステムコマンドへのマッピングは図３Ａ及び図３Ｂを参照して説明した。このようなマッピングを達成するために、マッピングユニット４１０はファイルシステムコマンドからキーバリューシステムコマンドへの適切なマッピングを含む。例えば、マッピングユニット４１０は与えられたファイルシステムコマンドと対応するキーバリューシステムコマンドが何であるかを示すテーブルを含む。関連（ａｓｓｏｃｉａｔｉｏｎ）は一対多（ｏｎｅ−ｔｏ−ｍａｙ）である。単一ファイルシステムコマンドは複数のキーバリューシステムコマンドを含む。例えば、フラッシュＳＳＤで、データは上書き（ｏｖｅｒｗｒｉｔｅ）されない。データを変更することは（適切な時、ＳＳＤによってガーベッジコレクションの対象になる）原本データを無効化すること及び新しいデータ客体を書込むことを含む。即ち、ファイルに対するメタデータを変更することは、ＫＶＦＳ１４５が、図１のメタデータ客体１７０を削除し（より正確には、ＫＶＦＳ１４５が格納装置１２０で図１のメタデータ客体１７０を無効化すること、及び格納装置１２０がガーベッジコレクションを遂行して以前の客体によって占有された空間を確保すること）、交替メタデータ客体を格納するように要請する。
【００４５】
差異が（ｄｉｓｔｉｎｃｔｉｏｎ）がシステム内の多様なデータ要素の名称間で区分されることに注意する価値がある。図１を再び参照すると、データ客体１６５は客体名称１８０を含み、ファイル１７５はファイル名称１８５を含む。（メタデータ客体１７０はまた以下の図５〜図８を参照して説明するように客体名称を含む。しかし、メタデータ客体１７０の名称はコンピュータ１０５の動作で厳格に内部的であるため、メタデータ客体１７０の名称は本明細書で十分に説明しない。）客体名称１８０はデータ客体１６５を識別する。ファイル名称１８５はファイル１７５を識別する。ファイル名称１８５自体はメタデータ客体１７０に格納されたメタデータであり、図１に示した表示は単なる象徴的なものである。ファイル１７５はファイルシステム１３５に効率的な要素であり、データ客体１６５は格納装置１２０のキーバリューシステムに効率的な要素である。客体名称１８０及びファイル名称１８５は区分され、完全に不可能でない場合、客体名称１８０及びファイル名称１８５が同一であることは非常に珍しいことである。
【００４６】
また、客体名称１８０及びファイル名称１８５は互いに影響を与えずに各々変形される。例えば、アプリケーション１２５がファイル名称１８５を再命名することを決定した場合、このような変化はメタデータ客体１７０のコンテンツに影響を与えるが客体名称１８０を変更しない。或いは、客体名称１８０が変更される場合、これはデータ客体１６５に影響を与えるが、（そして、メタデータ客体１７０に対する客体名称が変更されるため、メタデータ客体１７０に間接的な影響を与えるが、）ファイル名称１８５は変更されずに維持される。即ち、客体名称及びファイル名称のコンテンツを別に維持することは非常に重要であり、それは関連するが区分される概念である。
【００４７】
図４を再び参照すると、ＫＶＦＳ１４５はアイノード４２５（ｉｎｏｄｅ）を更に含む。アイノード４２５はファイルの代表的なデータ構造である。アイノード４２５はＵｎｉｘ−基盤のシステムに使用される一般的なアイノードであるか、或いはアイノード４２５は新しいデータ構造である。アイノード４２５は図１のファイル１７５のようなファイルに対する情報を格納する。特に、アイノード４２５は、ファイル名称１８５、ファイル生成時間及び日付、ファイルの所有者等のようなファイルメタデータを格納する。しかし、アイノード４２５は具現のために適切に追加的な情報を含む。
【００４８】
図５は、図１に示すＫＶＦＳシム１４０の詳細構成図である。図５で、ＫＶＦＳシム１４０は、受信ユニット５０５、マッピングユニット５１０、コマンドユニット５１５、及び返還ユニット５２０を含む。受信ユニット５０５は図１のアプリケーション１２５からコマンドを受信する。マッピングユニット５１０はキーバリューシステムコマンドをファイルシステムコマンドにマッピングする。コマンドユニット５１５はファイルシステムコマンドを図１のファイルシステム１３５（又は図１のオペレーティングシステム１３０）に発行する。返還ユニット５２０は図１のアプリケーション１２５に結果を返還する。図４のＫＶＦＳ１４５と異なり、ＫＶＦＳシム１４０は、自体がキーバリューシステムコマンドを遂行せず、ファイルシステムコマンドを図１のファイルシステム１３５（又は図１のオペレーティングシステム１３０）に伝送する。
【００４９】
キーバリューシステムコマンドのファイルシステムコマンドへのマッピングは図３Ａ及び図３Ｂを参照して説明した。このようなマッピングを達成するために、マッピングユニット５１０はキーバリューシステムコマンドからファイルシステムコマンドへの適切なマッピングを含む。例えば、マッピングユニット５１０は与えられたキーバリューシステムコマンドに対応するファイルシステムコマンドが何なのかを示すテーブルを含む。しかし、図４のマッピングユニット４１０と対照的に、ＫＶＦＳシム１４０のマッピングユニット５１０は一般的に更に単純な具現を含む。図１のファイルシステム１３５に発行される多数のファイルシステムコマンドが存在する反面、キーバリュー格納装置に発行される唯３つのキーバリューシステムコマンド（ＧＥＴ、ＰＵＴ、及びＤＥＬＥＴＥ）が存在する。ＧＥＴコマンドは格納装置からデータを読出し、ＰＵＴコマンドは格納装置にデータを書込み、ＤＥＬＥＴＥコマンドは格納装置のデータを無効化する。即ち、キーバリュー格納装置に発行されるコマンドの数が少なければ、マッピングユニット５１０の具現が単純になる傾向がある。また、図１のファイルシステム１３５は、一般的にデータ読出し、書込み、及び削除に対する同様のコマンドを含むため、キーバリューシステムコマンドからファイルシステムコマンドへのマッピングを比較的単純にする。それにも拘らず、図１の格納装置１２０及び図１のオペレーティングシステム１３０の詳細な構成に従って、単一キーバリューシステムコマンドは複数のファイルシステムコマンドにマッピングする。
【００５０】
ＫＶＦＳシム１４０はファイルディスクリプタルックアップテーブル５２５（ｆｉｌｅ  ｄｅｓｃｒｉｐｔｏｒ  ｌｏｏｋｕｐ  ｔａｂｌｅ）を更に含む。ファイルディスクリプタ（ｆｉｌｅ  ｄｅｓｃｒｉｐｔｏｒ）はファイル内のデータにアクセス（書込み又は読出しの中の１つ）するための内部的な方法である。ＫＶＦＳシム１４０はファイルディスクリプタルックアップテーブル５２５にファイルディスクリプタに対する識別子（ｉｄｅｎｔｉｆｉｅｒｓ）を格納する。置かれたファイルディスクリプタはファイルシステムコマンドへの引受（ａｒｇｕｍｅｎｔ）として図１のファイルシステム１３５に伝送される。ファイルディスクリプタルックアップテーブル５２５が無い場合、ＫＶＦＳシム１４０は、ファイルがアクセスされるか又はファイルをオープンする時毎にファイルディスクリプタを図１のオペレーティングシステム１３０に問い合わせ、必須的なコマンドを遂行して全てのキーバリューシステムコマンドに対するファイルをクローズすることを必要とする。しかし、これらのアプローチは全て時間がかかる（ｔｉｍｅ−ｉｎｔｅｎｓｉｖｅ）。ファイルディスクリプタをファイルディスクリプタルックアップテーブル５２５に格納することによって、ＫＶＦＳシム１４０は受信されたキーバリューシステムコマンドに対応するファイルシステムコマンドに対する適切なファイルディスクリプタを速く判別することができる。ファイルディスクリプタルックアップテーブル５２５は、図７を参照してより詳細に説明する。
【００５１】
ＫＶＦＳシム１４０は名称生成ユニット５３０を更に含む。上述したように、メタデータ客体は客体をアクセスするために必要な名称を含む。しかし、メタデータ客体名称は客体からファイルに変換された場合のみに重要である。従って、メタデータ客体の名称は図１のＫＶＦＳシム１４０及びＫＶＦＳ１４５のみで重要である。結果的に、メタデータ客体に対する名称を生成する概ね全ての適切なアルゴリズムが使用される。
【００５２】
メタデータ客体に対する名称を生成するための手続に対する幾つかの適切な特徴が存在する。第１に、手続は決定論的（ｄｅｔｅｒｍｉｎｉｓｔｉｃ）でなければならない。同一のデータが与えられた場合、同一のメタデータ名称が常に発生しなければならない。第２に、手続は衝突（ｃｏｌｌｉｓｉｏｎｓ）を避けることができなければならない。他のデータが与えられた場合、他のメタデータ名称が発生しなければならない。第３に、客体名称が所定の長さを有するため、手続は潜在的長さのデータを処理する必要がある。これは客体名称１８０が与えられた場合、図１のメタデータ客体１７０に対する名称を生成する名称生成ユニット５３０に存在する全ての特徴である。
【００５３】
図６は、図５に示す名称生成ユニット５３０の詳細構成図であり、図１の客体名称１８０から図１のメタデータ客体１７０に対する名称を生成する構成を示す。客体名称１８０と共に開始することによって、名称生成ユニット５３０は矛盾する入力から図１のメタデータ客体１７０に対して同一の名称を一貫して生成する問題点を避ける。図６で、名称生成ユニット５３０は、ハッシュユニット６０５、ＡＳＣＩＩ表示ユニット６１０、及び衝突インデックスユニット６１５を含む。ハッシュユニット６０５は客体名称１８０に対するハッシュ（ｈａｓｈ）を遂行する。ＳＨＡ−１のような暗号化ハッシュアルゴリズムは名称生成に適切な特徴の大部分を提供する。従って、メタデータ客体に対する名称を生成する最適の選択である。しかし、（コンテナからファイルを分離するのに時々使用されるスラッシュ（／）のように）ファイル名称の一部ではない一部文字が存在する。暗号化ハッシュアルゴリズムの結果がファイル名称として必須的に使用可能ではないため、ＡＳＣＩＩ表示ユニット６１０は、ハッシュユニット６０５の結果を獲得し、その結果のＡＳＣＩＩ表示を生成する。ＡＳＣＩＩ表示ユニット６１０はハッシュユニット６０５の結果から問題がある文字を除去する。
【００５４】
勿論、暗号化ハッシュアルゴリズムはハッシュ結果の間の衝突が無いことを保証しない。例えば、ＳＨＡ−１は、入力データの大きさに拘らず、１６０ビットハッシュ結果を生成する。即ち、ＳＨＡ−１が１６０ビット以上の入力データを受信した場合、ＳＨＡ−１は１６０ビットハッシュを生成する。１６０ビットより大きい入力の大きさに対して出力より更に多い可能な入力が存在するため、可能性が少ないが衝突の可能性は相変わらず存在する。このような可能性を解決するために、衝突インデックスユニット６１５は、衝突が発生した場合、衝突インデックスをＡＳＣＩＩ表示に追加する。衝突インデックスとハッシュユニット６０５の結果のＡＳＣＩＩ表示との組合せは図１のメタデータ客体１７０に対する名称の生成で可能な衝突を避ける。
【００５５】
図１のメタデータ客体１７０に対する名称が生成された場合、図１のＫＶＦＳシム１４０及び図１のＫＶＦＳ１４５はこのような名称を使用して図１のメタデータ客体１７０にアクセスする。ＰＵＴ、ＧＥＴ、又はＤＥＬＥＴＥ要請を図１のメタデータ客体１７０に対して生成された名称と共に図１の格納装置１２０に伝送することによって、図１のＫＶＦＳシム１４０及び図１のＫＶＦＳ１４５は、確実にそして持続的に図１のメタデータ客体１７０にアクセスし、使用する。
【００５６】
図７は、図５に示すファイルディスクリプタルックアップテーブル５２５の詳細構成図である。図５を参照して上述したように、ファイルディスクリプタルックアップテーブル５２５は図１のＫＶＦＳシム１４０が与えられたファイルに対するファイルディスクリプタ（ｆｉｌｅ  ｄｅｓｃｒｉｐｔｏｒ）にアクセスするための方法を提供する。図７で、ファイルディスクリプタルックアップテーブル５２５はハッシュ及びファイルディスクリプタに対する多様な関連を含む。例えば、第１ハッシュ７０５は第１ファイルディスクリプタ７１０に関連し、第２ハッシュ７１５は第２ファイルディスクリプタ７２０に関連し、第３ハッシュ７２５は第３ファイルディスクリプタ７３０に関連する。図７で、ファイルディスクリプタルックアップテーブル５２５は３つの関連を示すが、本実施形態は多様な関連を支援する。ハッシュ値が与えられた場合、対応するファイルディスクリプタがファイルディスクリプタルックアップテーブル５２５に存在すると、ＫＶＦＳシム１４０は対応するファイルディスクリプタを探す。
【００５７】
ハッシュ（７０５、７１５、７２５）は図１のオペレーティングシステム１３０によって管理されるようなファイルに対するファイルディスクリプタを格納する。ファイルディスクリプタが未だオープンされない場合、図１のＫＶＦＳシム１４０は、ファイルをオープンし、ファイルディスクリプタを再び受信する。図１のＫＶＦＳシム１４０は将来使用するためにハッシュ値及びファイルディスクリプタをファイルディスクリプタルックアップテーブル５２５に追加する。
【００５８】
図１のＫＶＦＳシム１４０は、ファイルディスクリプタルックアップテーブル５２５を検索するためのハッシュとして、図１のメタデータ客体１７０に対する名称を使用する。図１のメタデータ客体１７０に対する名称が図６のハッシュユニット６０５を（他の手続と共に）使用することによって生成されるため、２つの他のファイルディスクリプタがファイルディスクリプタルックアップテーブル５２５で同一のハッシュ値に関連する可能性は実質的にない。
【００５９】
図８は、図１に示すメタデータ客体１７０の構造の一例を示す詳細構成図である。図８で、メタデータ客体１７０は多様なデータフィールドを含む。このようなデータフィールドはファイル名称１８５、図１のファイル１７５が生成された日付８０５、（本明細書で使用する“日付”の用語は日付及び時間を全て含むものと看做す）図１のファイル１７５が最近変更された日付８１０、図１のファイル１７５が最近アクセスされた日付８１５、図１のファイル１７５に対する種類８２０（例えば、実行可能、文書、テキストファイル、又は他のもの）、図１のファイル１７５の大きさ８２５、図１のファイル１７５を格納するコンテナ８３０、及び図１のファイル１７５の所有者８３５を含む。
【００６０】
メタデータ客体１７０は客体名称１８０を更に含む。客体名称１８０を含むことによって、メタデータ客体１７０へのアクセスがデータ客体１６５に再び戻るためのシステムを提供する。（メタデータ客体１７０に対する名称が客体名称１８０から生成されることを想起）一実施形態で、メタデータ客体１７０は客体名称１８０を直接含む。メタデータ客体１７０へのアクセスを効率的にするために、メタデータ客体１７０は固定された大きさを有する。固定された大きさは客体名称１８０に対して割当られた空間が予め固定されることを意味する。客体名称が潛在的に無限大の長さを有するため、メタデータ客体１７０内に客体名称１８０を含むことは問題を生じることがある。客体名称１８０がメタデータ客体１７０内の客体名称１８０に対して割当られたフィールドの大きさより長くないようにすることが必要である。特に、これは問題になる可能性が低い。名称１８０のために割当られたフィールドは文字の意図した個数（２００、１０００、１００００、又はそれ以上）を含む。しかし、フィールド超過の可能性が存在し、これは図１のオペレーティングシステム１３０でエラーを発生させる。
【００６１】
代案として、図８に示したように、メタデータ客体１７０は客体名称１８０が格納された位置を示すポインター８４０を含む。システムが客体名称１８０が何処に格納されたか、そして客体名称１８０の長さ８４５が分かる場合、システムは客体名称１８０を回収する。その理由は、名称長さ８４５に対するポインターを含むメタデータ客体１７０は、固定された大きさのデータを読出すことが未知の大きさのデータを読出すことより効率的であるためである。図８は客体名称１８０と共に格納された名称長さ８４５を示しているが、他の実施形態で、名称長さ８４５はメタデータ客体１７０内に格納される。
【００６２】
メタデータ客体１７０は権限８５５（ｐｅｒｍｉｓｓｉｏｎｓ）へのポインター８５０を更に含む。権限８５５は図１のデータ客体１６５に対して存在する権限が何であるかを特定する。権限８５５の構造は図１のオペレーティングシステム１３０に従って変わる。例えば、ユニックス基盤のシステムで、権限８５５は、図１のファイル１７５の所有者であるか、又は図１のファイル１７５の所有者が含まれるグループの他の使用者であるかを特定し、他の使用者がファイルを読出し、書込み、実行するかを特定する。他のオペレーティングシステムは他の方式に権限８５５を特定する。図８がメタデータ客体１７０からポインター８５０を通じてアクセスされる権限８５５を示しているが、他の実施形態で、権限８５５はメタデータ客体１７０内に格納される。
【００６３】
図９Ａ〜図９Ｅは、本発明の一実施形態による図１に示すコンピュータ１０５を使用してコマンドを処理する手続の一例を示すフローチャートである。図９Ａを参照すると、９０３段階で、図１のＫＶＦＳシム１４０は図１のアプリケーション１２５から図３Ａのキーバリューシステムコマンド３０５を受信する。９０６段階で、図１のＫＶＦＳシム１４０は図３Ａのキーバリューシステムコマンド３０５を図３Ａのファイルシステムコマンド３１０にマッピングする。９０９段階で、ＫＶＦＳシム１４０は図５のファイルディスクリプタルックアップテーブル５２５を検索して意図したファイルが以前にオープンされたか否かを認知する。図６を参照して説明したように、このような検索は図５の名称生成ユニット５３０によって生成された図１のメタデータ客体１７０に対する名称を使用する。
【００６４】
図９Ｂの９１２段階で、図１のＫＶＦＳシム１４０は図５のファイルディスクリプタルックアップテーブル５２５が意図したファイルディスクリプタを含むか否かを判別する。図５のファイルディスクリプタルックアップテーブル５２５が意図したファイルディスクリプタを含む場合、９１５段階で、図１のＫＶＦＳシム１４０は図５のファイルディスクリプタルックアップテーブル５２５から意図したファイルディスクリプタにアクセスする。そうでない場合、９１８段階で、ＫＶＦＳシム１４０は意図したファイルをオープンすることによって、図１のオペレーティングシステム１３０から新しいファイルディスクリプタを要請する。９２１段階で、図１のＫＶＦＳシム１４０は新しいファイルディスクリプタを受信する。９２４段階で、図１のＫＶＦＳシム１４０は将来使用するために、新しいファイルディスクリプタを図５のファイルディスクリプタルックアップテーブル５２５に追加する。
【００６５】
いずれの場合も、図１のＫＶＦＳシム１４０が意図したファイルディスクリプタを含む場合、図９Ｃの９２７段階で、図１のＫＶＦＳ１４５は図１のファイルシステム１３５から、より詳細には図１のオペレーティングシステム１３０から図１のファイルシステムコマンド３１０を受信する。このような段階は図１のＫＶＦＳシム１４０が図３Ａのファイルシステムコマンド３１０を図１のオペレーティングシステム１３０に伝送して図３Ａのページキャッシュ３１５を使用して要請を遂行することを含む。図３Ａのページキャッシュ３１５が要請を遂行できない場合、図１のオペレーティングシステム１３０は図３Ａのファイルシステムコマンド３１０を図１のＫＶＦＳ１４５に伝達する。
【００６６】
９３０段階で、ＫＶＦＳ１４５は意図したメタデータを格納する図４のアイノード４２５が存在するか否かを判別する。アイノード４２５が存在しない場合、９３３段階で、図１のＫＶＦＳ１４５は図１の格納装置１２０から図１のファイル１７５に対するメタデータを要請する。より詳細には、図１のＫＶＦＳ１４５は図１の格納装置１２０から図１のメタデータ客体１７０を要請する。９３６段階で、図１のＫＶＦＳ１４５は図１の格納装置１２０から図１のファイル１７５に対するメタデータ客体１７０を受信する。９３９段階で、図１のＫＶＦＳ１４５は図４のアイノード４２５にメタデータを格納する。
【００６７】
９４２段階で、意図したメタデータを格納する図４のアイノード４２５が存在するか否かに拘らず、図１のＫＶＦＳ１４５は図４のアイノード４２５又は図１のメタデータ客体１７０から図１の客体名称１８０にアクセスする。９４５段階で、図１のＫＶＦＳ１４５は図３Ａのファイルシステムコマンド３１０を図３Ａのキーバリューシステムコマンド３３０にマッピングする。
【００６８】
図９Ｄの９４８段階で、図３Ａのファイルシステムコマンド３１０が図１のファイル１７５のメタデータを何らかの形で変形した場合、図１のＫＶＦＳ１４５は図４のアイノード４２５を変形する。９５１段階で、図１のＫＶＦＳ１４５は図１のＫＶＦＳキャッシュ１５０を使用して図３Ａのキーバリューシステムコマンド３３０を遂行する。
【００６９】
９５４段階で、図１のＫＶＦＳ１４５は図１のＫＶＦＳキャッシュ１５０が意図したデータを格納するか否かを判断するために図１のＫＶＦＳキャッシュ１５０を検索する。９５７段階で、図１のＫＶＦＳ１４５は図１のＫＶＦＳキャッシュ１５０が意図したデータを格納したか否かを判別する。図１のデータ客体１６５（又は図１のデータ客体１６５の適切な一部）が図１のＫＶＦＳキャッシュ１５０に格納されない場合、９６０段階で、図１のＫＶＦＳ１４５は図３Ａのキーバリューシステムコマンド３３０を図１の格納装置１２０に伝送して図１のデータ客体１６５を回収する。９６３段階で、図１のＫＶＦＳ１４５は格納装置１２０から図１のデータ客体１６５を受信し、９６６段階で、図１のＫＶＦＳ１４５は図１のデータ客体１６５のコピー１５５を図１のＫＶＦＳキャッシュ１５０に格納する。勿論、格納する段階は、図１のＫＶＦＳキャッシュ１５０から一部のデータを除去して新しいデータのための空間を生成することを含む。図１のＫＶＦＳ１４５は意図したアルゴリズムを使用して図１のＫＶＦＳキャッシュ１５０から除去されるデータを選択する。
【００７０】
このような点で、図１のＫＶＦＳ１４５は図１のＫＶＦＳキャッシュ１５０が意図したデータを格納することを保証する。図９Ｅの９６９段階で、図１のＫＶＦＳ１４５は図１のＫＶＦＳキャッシュ１５０からの図１のデータ客体１６５のコピー１５５からデータ又はデータの一部にアクセスする。データが書込まれる場合、このようなアクセス動作は、図１の格納装置１２０から図１のデータ客体１６０を削除して新しいデータ客体を書込むこと、又は図１のＫＶＦＳキャッシュ１５０のページを（後に、ページが図１の格納装置１２０にフラッシュされるように）ダーティとして単純に示すことの中の１つを含む。９７２段階で、図１のＫＶＦＳ１４５は図３Ａの結果３３５を図１のオペレーティングシステム１３０に返還する。９７５段階で、図１のオペレーティングシステム１３０は図３Ａの結果として図１のアプリケーション１２５に伝播する。
【００７１】
上述した説明は、図１のＫＶＦＳシム１４０、図１のファイルシステム１３５、及び図１のＫＶＦＳ１４５を含むオペレーティングシステム１３０の全てのレベルの動作を示すため、非常に複雑である。図１のＫＶＦＳシム１４０及び図１のＫＶＦＳ１４５で動作を個別的に検討することが有利である。図１のファイルシステム１３５が本実施形態で変更されずに維持されるため、図１のファイルシステムの動作の分析は以下で提供しない。
【００７２】
図１０Ａ及び図１０Ｂは、本発明の一実施形態による図１に示すＫＶＦＳシム１４０の動作の手続の一例を示すフローチャートである。図１０Ａの１００５段階で、図５の受信ユニット５０５は図３Ａのキーバリューシステムコマンド３０５を図１のアプリケーション１２５から受信する。１０１０段階で、図５のマッピングユニット５１０は図３Ａのキーバリューシステムコマンド３０５を図３Ａのファイルシステムコマンド３１０にマッピングする。以下の図１３を参照して説明するように、これは図１のメタデータ客体１７０に対する名称を生成することを含む。１０１５段階で、図１のＫＶＦＳシム１４０はファイルディスクリプタルックアップテーブル５２５を検索して図１のファイル１７５に対するファイルディスクリプタが存在するか否かを判別する。
【００７３】
図１０Ｂの１０２０段階で、図１のＫＶＦＳシム１４０は図１のファイル１７５に対するファイルディスクリプタが図５のファイルディスクリプタルックアップテーブル５２５で発見されたか否かを判別する。図１のファイル１７５に対するファイルディスクリプタが図５のファイルディスクリプタルックアップテーブル５２５で発見された場合、ファイルディスクリプタは１０２５段階で、アクセスされる。そうでない場合、１０３０段階で、図１のＫＶＦＳシム１４０は図１のファイル１７５に対する新しいファイルディスクリプタを要請する。このような要請は図１のファイルシステム１３５が図１のファイル１７５をオープンする要請を含む。１０３５段階で、図１のＫＶＦＳシム１４０は図１のファイルシステム１３５から新しいファイルディスクリプタを受信する。１０４０段階で、図１のＫＶＦＳシム１４０は新しいファイルディスクリプタ（及び図１のメタデータ客体１７０に対する名称）を図５のファイルディスクリプタルックアップテーブル５２５に追加する。
【００７４】
いずれの場合も、図１のＫＶＦＳシム１４０が図１のファイル１７５に対するファイルディスクリプタを含む場合、１０４５段階で、図１のＫＶＦＳシム１４０はファイルシステムコマンド３１０を図１のオペレーティングシステム１３０を通じて図１の格納装置１２０に伝送する。次に、１０５０段階で、図１のＫＶＦＳシム１４０は図３Ａのオペレーティングシステム１３０から受信された図３Ａの結果３２５を図１のアプリケーション１２５に返還する。
【００７５】
図１のＫＶＦＳシム１４０は、図３Ａのオペレーティングシステム１３０の本来のページキャッシュ３１５が影響を受けるように、キーバリューシステムコマンドをファイルシステムコマンドに変換する役割を遂行する。アプリケーション１２５がキーバリューシステムコマンドの代わりにファイルシステムコマンドを発行する場合、図１のＫＶＦＳシム１４０は通過（ｂｙｐａｓｓ）され、ファイルシステムコマンドは図１のオペレーティングシステム１３０に直接伝達される。そして、図３Ｂの結果３２５は図１のアプリケーションに直接返還される。
【００７６】
図１１Ａ及び図１１Ｂは、本発明の一実施形態による図１に示すＫＶＦＳ１４５の動作の手続の一例を示すフローチャートである。図１１Ａの１１０５段階で、図１のＫＶＦＳ１４５は図３Ａのファイルシステムコマンド３１０を受信する。１１１０段階で、図１のＫＶＦＳ１４５は図３Ａのファイルシステムコマンド３１０によって識別される図１のファイル１７５に対するメタデータを含む図４のアイノード４２５を検索する。１１１５段階で、図１のＫＶＦＳ１４５は図４のアイノード４２５が発見されたか否かを判別する。図４のアイノード４２５が発見された場合、１１２０段階で、図１のＫＶＦＳ１４５は図４のアイノード４２５にアクセスし、１１２５段階で、図１のＫＶＦＳ１４５は図４のアイノード４２５から客体名称１８０にアクセスする。
【００７７】
一方、１１１５段階で、図１のＫＶＦＳ１４５が図４のアイノード４２５を発見しない場合、図１１Ｂの１１３０段階で、図１のＫＶＦＳ１４５は図１の格納装置１２０に図１のメタデータ客体１７０を要請する。１１３５段階で、図１のＫＶＦＳ１４５は格納装置１２０から図１のメタデータ客体１７０を受信する。１１４０段階で、図１のＫＶＦＳ１４５は図１のメタデータ客体１７０からメタデータを取出す。１１４５段階で、図１のＫＶＦＳ１４５は図１のメタデータ客体１７０から図１の客体名称１８０にアクセスする。このような取出しはメタデータ客体１７０が客体名称１８０を直接的に格納した場合、直接的な動作である。或いは、このような取出しは図１のＫＶＦＳ１４５が客体名称１８０をロードする前に、客体名称１８０（及び名称長さ８４５）のポインターを先ず取出す間接的な動作である。１１５０段階で、図１のＫＶＦＳ１４５は図４のアイノード４２５を生成する。
【００７８】
図４のアイノード４２５が生成されたか又は発見されたかに拘らず、１１５５段階で、図１のＫＶＦＳキャッシュ１５０が存在する場合、図１のＫＶＦＳ１４５は図１のデータ客体１６５の図１のコピー１５５に対してファイルシステムコマンドを遂行する。最後に、１１６０段階で、図１のＫＶＦＳ１４５はコマンドの結果を返還する。
【００７９】
図１１Ａ及び図１１Ｂに対する内容は図１のＫＶＦＳ１４５が図１の格納装置１２０にキーバリューシステムコマンドを伝送しないことを仮定する。このような結果は図１１Ｂの１１５５段階を詳細に説明する以下の図１２Ａ及び図１２Ｂを参照して説明するように正確でないこともある。
【００８０】
図１２Ａ及び図１２Ｂは、本発明の一実施形態による図１に示すＫＶＦＳキャッシュ１５０を使用する手続の一例を示すフローチャートである。図１２Ａの１２０５段階で、図１のＫＶＦＳ１４５は、図１のＫＶＦＳキャッシュ１５０を検索して、図１のデータ客体１６５及びメタデータ客体１７０のコピー（１５５、１６０）が図１のＫＶＦＳキャッシュ１５０に存在するか否かを判別する。１２１０段階で、図１のＫＶＦＳ１４５は図１のＫＶＦＳキャッシュ１５０が図１のデータ客体１６５及びメタデータ客体１７０のコピー（１５５、１６０）を格納したか否かを判別する。本明細書で、“コピーを格納すること”の用語は、図１のデータ客体１６５及びメタデータ客体１７０のコピー（１５５、１６０）の全体を格納するか、又は図１のデータ客体１６５及びメタデータ客体１７０の全ての部分を格納することを必須的に意味しない。必須的なことは図１のＫＶＦＳキャッシュ１５０がファイルシステムコマンドが適用される図１のデータ客体１６５及び／又はメタデータ客体１７０の一部分のコピーを格納することである。図１のＫＶＦＳキャッシュ１５０が図１のデータ客体１６５及び／又はメタデータ客体１７０の適切な部分の全てのコピーを格納する場合、図１のコピー（１５５、１６０）が図１のデータ客体１６５及びメタデータ客体１７０の全体コピーでなくても、図１のＫＶＦＳ１４５は図１のＫＶＦＳキャッシュ１５０が図１のデータ客体１６５及びメタデータ客体１７０のコピー（１５５、１６０）を格納すると判断する。
【００８１】
図１のＫＶＦＳキャッシュ１５０が図１のデータ客体１６５及びメタデータ客体１７０のコピー（１５５、１６０）を格納した場合、１２１５段階で、図１のＫＶＦＳ１４５は図１のコピー（１５５、１６０）に対して図３Ａのファイルシステムコマンド３１０を遂行する。ファイルシステムコマンド３１０が図１のデータ客体１６５又は図１のメタデータ客体１７０の中の１つに対するデータの変更を含む場合、図１のＫＶＦＳ１４５は図１のＫＶＦＳキャッシュ１５０で影響を受けるページをダーティとしてマーキングして変更されたデータが結局格納装置１２０にフラッシュされるようにするか、又は図１のＫＶＦＳ１４５が現在影響を受ける客体を直ちに削除して変更された客体の交替コピーを格納装置１２０に格納することの中の１つを遂行する。
【００８２】
図１のＫＶＦＳキャッシュ１５０が図１のデータ客体１６５のコピー１５５を格納しない場合、図１２Ｂの１２２０段階で、図１のＫＶＦＳ１４５は図３Ａのファイルシステムコマンド３１０を図３Ａのキーバリューシステムコマンド３３０にマッピングする。１２２５段階で、図１のＫＶＦＳ１４５は図３Ａのキーバリューシステムコマンド３３０を図１の格納装置１２０に伝送する。１２３０段階で、図１のＫＶＦＳ１４５は図３Ａのキーバリューシステムコマンド３３０によって影響を受ける客体のコピーを格納装置１２０から受信する。１２３５段階で、図１のＫＶＦＳ１４５は図１の格納装置１２０から受信された図１のデータ客体１６５及び／又はメタデータ客体１７０のコピー（１５５及び／又は１６０）を図１のＫＶＦＳキャッシュ１５０に格納する。
【００８３】
１２４０段階で、図１のＫＶＦＳキャッシュ１５０が図１のデータ客体１６５及び／又はメタデータ客体１７０又は図１のコピー１５５及び／又は１６０が格納されたか、或は格納されなくても、コマンドが遂行される。１２４０段階で、図１のＫＶＦＳ１４５は図４のアイノード４２５を変形して図３Ａのファイルシステムコマンド３３０によって指称される全ての変更を反映する。１２４５段階で、図１のＫＶＦＳ１４５は図１のＫＶＦＳキャッシュ１５０からの図１のコピー１５５及び／又は１６０の中の１つ又は全てからデータの適切な一部にアクセスする。１２５０段階で、図１のＫＶＦＳ１４５は図１のオペレーティングシステム１３０にアクセスしたデータの一部を返還する。
【００８４】
図１３は、本発明の一実施形態による図５に示す名称生成ユニット５３０を使用して客体名称１８０からファイル名称を生成する手続の一例を示すフローチャートである。図１３の１３０５段階で、図１のＫＶＦＳシム１４０は客体名称１８０を受信する。客体名称１８０からファイル名称が生成される。１３１０段階で、図６のハッシュユニット６０５は図１の客体名称１８０にハッシュアルゴリズムを適用してハッシュ値を生成する。１３１５段階で、図６のＡＳＣＩＩ表示ユニット６１０はハッシュ値のＡＳＣＩＩ表示を生成し、それに従って図１のファイルシステム１３５内に有効なファイル名称を生成する。１３２０段階で、衝突インデックスユニット６１５はハッシュ値のＡＳＣＩＩ表示と衝突インデックスとを組合せて図１のメタデータ客体１７０に対する名称を生成する。図１のメタデータ客体１７０に対する名称は図１のオペレーティングシステム１３０で唯一であるか、又は少なくとも図１のファイル１７５を含むフォルダー内で唯一であることが保証される。
【００８５】
図１４は、本発明の一実施形態による図１に示すメタデータ客体１７０を変形する手続の一例を示すフローチャートである。図１の格納装置１２０がフラッシュ基盤の格納装置である場合、データは上書きされないことが想起される。代わりに、データを変形するために原本データは無効化され（後のガーベッジコレクションの対象になり）、変形されたデータを含む新しいデータ客体が書込まれる。図１４の１４１０段階で、図１のＫＶＦＳ１４５は図１のメタデータ客体１７０を図１の格納装置１２０から削除する。１４１５段階で、図１のＫＶＦＳ１４５は図１の格納装置１２０に交替メタデータ客体を格納する。
【００８６】
図９Ａ〜図１４を参照して、本発明の実施形態を示した。しかし、当業者はいずれかの段階の順序を変更するか、いずれかの段階を省略するか、又は図面に示さない連結を含ませることによって、他の実施形態が可能である。明確に記載したか、或いは記載しなくても、フローチャートのこのような全ての変形は本発明の実施形態と見做される。
【００８７】
以下の説明は本発明の特定の思想が具現される機械又は適切な機械（ｍａｃｈｉｎｅ）の一般的な説明を提供する。１つ以上の機械は、少なくとも一部で、キーボード、マウス等のような一般的な入力装置からの入力のみならず、他の機械から受信された命令語、仮想現実環境（ｖｉｒｔｕａｌ  ｒｅａｌｉｔｙ  ｅｎｖｉｒｏｎｍｅｎｔ）、生体フィードバック、又は他の入力信号によって制御される。本明細書で使用したように、“機械（ｍａｃｈｉｎｅ）”の用語は、単一機械、仮想マシン、又は機械、仮想マシン又は共に作動する装置が通信で連結されたシステムを広く含むものと意図する。例示的な機械は、パーソナルコンピュータ、ワークステーション、サーバー、携帯用コンピュータ、小型コンピュータ、電話機、タブレット等のようなコンピューティング装置のみならず、大衆交通、例えば、自動車、汽車、タクシー等のような運送装置を含む。
【００８８】
１つ以上の機械は、プログラム可能か又はプログラム不可能なロジック装置又はアレイ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、内装されたコンピュータ、スマートカード等のような内装されたコントローラを含む。１つ以上の機械はネットワークインターフェイス、モデム、又は他の通信連結等のように１つ以上の遠隔装置と１つ以上の連結を活用する。装置は、イントラネット、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のような物理的及び／又は論理的ネットワーク方法によって相互連結される。当業者は、ネットワーク通信が無線（ＲＦ：Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ）、衛星、マイクロウェーブ、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）８０２．１１、ブルートゥース（登録商標）、光、赤外線、ケーブル、レーザー等のような多様な有線又は無線短波長又は長波長キャリヤー及びプロトコルを活用できることを認知する。
【００８９】
本発明の実施形態は機械によってアクセスされる際、機械で作業を遂行するか、又は要約データタイプ又は低レベルハードウェア構成を定義するようにする機能、手続、データ構造、アプリケーションプログラムを含む関連するデータを参照するか、又は関連して説明される。関連するデータは、揮発性又は不揮発性メモリ（例えば、ＲＡＭ、ＲＯＭ）に格納されるか、又はハードドライブ、フロッピー（登録商標）ディスク、光ストレージ、テープ、フラッシュメモリ、メモリスティック（登録商標）、デジタルビデオディスク、生体ストレージ等を含む関連するストレージ媒体及び他の格納装置に格納される。関連するデータは、物理的又は論理的ネットワークを含む伝送環境上でパケット、直列データ、並列データ、電波信号等のような形態で提供され、圧縮されるか又は暗号化された形式で使用される。関連するデータは、分散された環境で使用され、論理的又は遠隔に装置アクセスのために格納される。
【００９０】
本発明の実施形態は１つ以上のプロセッサによって実行される命令語を含む類型の非一時的な機械読出し可能な記録媒体（ｔａｎｇｉｂｌｅ、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｍａｃｈｉｎｅ−ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を含む。命令語は本明細書に記載したような本発明の構成要素を遂行するための命令語を含む。
【００９１】
実施形態を参照して本発明の理論を説明したが、本実施形態は本発明の技術的思想から逸脱せずに変形され、他の適切な方式と組合される。そして、詳細な説明を特定の実施形態に集中させたが、他の構成が考慮される。特に、本明細書で“本発明の実施形態によると”のような表現を使用したが、このような表現は一般的に参照実施形態の可能性を意味し、本発明が特定の実施形態の構成に限定されることを意図しない。本明細書に記載したように、このような用語は他の実施形態と組合される同一の又は他の実施形態が参照される。
【００９２】
上述した実施形態は本発明を限定するものではない。一部の実施形態を説明したが、当業者は本明細書の長所及び新しい特徴から逸脱せずに本発明の可能な多様な変形を容易に遂行し得る。従って、このような変形は特許請求の範囲に定義された本発明の思想内に含まれるように意図される。
【００９３】
本発明の実施形態は、以下のステートメント（ｓｔａｔｅｍｅｎｔｓ）に制限無しに拡張される。
【００９４】
ステートメント１。本発明の実施形態はキーバリューシステム格納装置へのキャッシュアクセスシステムを含む。システムは、コンピュータ１０５と、コンピュータ１０５に含まれるプロセッサ１１０と、コンピュータ１０５に含まれるメモリ１１５と、メモリ１１５に格納されてプロセッサ１１０上で動作し、ページキャッシュ３１５を含むファイルシステム１３５と、メモリに格納されたキーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅ  ｆｉｌｅ  ｓｙｓｔｅｍ）と、を備える。ＫＶＦＳ１４５は、ファイルシステム１３５からファイル１７５を識別するファイル名称１８５を含むファイルシステムコマンド３１０を受信する受信ユニット４０５と、ファイルシステムコマンド３１０をキーバリューシステムコマンド３３０にマッピングするマッピングユニット４１０と、キーバリューシステムコマンド３３０を格納装置１２０に伝送するコマンドユニット４１５と、キーバリューシステムコマンド３３０の結果をファイルシステム１３５に返還する返還ユニット４２０と、を含む。
【００９５】
ステートメント２。本発明による実施形態はステートメント１に従うシステムを含む。格納装置１２０はファイル１７５に対するメタデータ客体１７０及びデータ客体１６５を格納する。
【００９６】
ステートメント３。本発明による実施形態はステートメント１に従うシステムを含む。本発明による実施形態は、メモリ１１５に格納されてプロセッサ１１０上で動作してファイルシステムコマンド３１０を発行するアプリケーション１２５を更に含む。
【００９７】
ステートメント４。本発明による実施形態はステートメント１に従うシステムを含む。本発明による実施形態は、メモリに格納されたＫＶＦＳシム１４０を更に含む。ＫＶＦＳシム１４０は、客体名称１８０を含む第２キーバリューシステムコマンド３０５を受信する第２受信ユニット５０５と、第２キーバリューシステムコマンド３０５をファイルシステムコマンド３１０にマッピングする第２マッピングユニット５１０と、ファイルシステムコマンド３１０をファイルシステム１３５に伝送する第２コマンドユニット５１５と、を含む。
【００９８】
ステートメント５。本発明による実施形態はステートメント１に従うシステムを含む。ＫＶＦＳシム１４０は、ファイル１７５に対応するファイルディスクリプタ（７１０、７２０、７３０）を格納するファイルディスクリプタルックアップテーブル５２５を更に含む。
【００９９】
ステートメント６。本発明による実施形態はステートメント５に従うシステムを含む。第２コマンドユニット５１５は、ファイルシステムコマンド３１０及びファイルディスクリプタ（７１０、７２０、７３０）をファイルシステム１３５に伝送するように動作する。
【０１００】
ステートメント７。本発明による実施形態はステートメント５に従うシステムを含む。ＫＶＦＳシム１４０は客体名称１８０からファイル名称１８５を生成する名称生成ユニット５３０を更に含む。
【０１０１】
ステートメント８。本発明による実施形態はステートメント７に従うシステムを含む。名称生成ユニット５３０は客体名称１８０をハッシュしてハッシュ値を生成するハッシュユニット６０５を含む。
【０１０２】
ステートメント９。本発明による実施形態はステートメント８に従うシステムを含む。名称生成ユニット５３０はハッシュ値のＡＳＣＩＩ表示としてファイル名称１８５を生成するＡＳＣＩＩ表示ユニット６１０を更に含む。
【０１０３】
ステートメント１０。本発明による実施形態はステートメント９に従うシステムを含む。名称生成ユニット５３０はファイル名称１８５と衝突インデックスとを組合せる衝突インデックスユニット６１５を更に含む。
【０１０４】
ステートメント１１。本発明による実施形態はステートメント１に従うシステムを含む。ＫＶＦＳ１４５はＫＶＦＳキャッシュ１５０を含む。
【０１０５】
ステートメント１２。本発明による実施形態はステートメント１１に従うシステムを含む。ＫＶＦＳキャッシュ１５０は格納装置１２０から客体（１６５、１７０）に対するデータのコピー１５５を格納するように動作する。
【０１０６】
ステートメント１３。本発明による実施形態はステートメント１２に従うシステムを含む。返還ユニット１４０はＫＶＦＳキャッシュ１５０に格納された客体（１６５、１７０）に対するデータの一部のみをファイルシステム１３５に返還するように動作する。
【０１０７】
ステートメント１４。本発明による実施形態はステートメント１に従うシステムを含む。ＫＶＦＳ１４５は格納装置１２０からの客体１６５に対するメタデータを格納するアイノード４２５を含む。
【０１０８】
ステートメント１５。本発明の実施形態はメモリ１１５を含む。本発明の実施形態はメモリ１１５に格納されたデータ構造を含む。データ構造は、ファイル１７５に対する名称１８５と、ファイル１７５に対する生成日付８０５と、ファイル１７５に対する変形日付８１０と、ファイル１７５に対するアクセス日付８１５と、ファイル１７５に対する種類８２０と、ファイル１７５に対する大きさ８３０と、ファイル１７５に対する所有者と、データが格納された客体１６５に対する名称１８０と、を含む。
【０１０９】
ステートメント１６。本発明の実施形態はステートメント１５に従うメモリ１１５を含む。データを格納する客体１６５に対する名称１８０はデータを格納する客体１６５に対する名称１８０へのポインター８４０を含む。
【０１１０】
ステートメント１７。本発明の実施形態はステートメント１６に従うメモリ１１５を含む。データを格納する客体１６５に対する名称１８０はデータを格納する客体１６５に対する名称１８０の大きさ８４５を含む。
【０１１１】
ステートメント１８。本発明の実施形態はステートメント１５に従うメモリ１１５を含む。データ構造はデータを格納する客体１６５に対する複数の権限８５５を含む。
【０１１２】
ステートメント１９。本発明の実施形態はステートメント１８に従うメモリ１１５を含む。データを格納する客体１６５に対する複数の権限８５５はデータを格納する客体１６５に対する複数の権限８５５を格納する第２データ構造へのポインター８５０を含む。
【０１１３】
ステートメント２０。本発明の実施形態はキーバリューシステム格納装置へのキャッシュアクセス方法を含む。方法は、ファイル１７５を識別するファイル名称１８５を含むファイルシステムコマンド３１０を受信する段階と、ファイルシステムコマンド３１０を客体１６５を識別する少なくとも１つの客体名称１８０で遂行される少なくとも１つのキーバリューシステムコマンド３３０にマッピングする段階と、キーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅ  ｆｉｌｅ  ｓｙｓｔｅｍ）キャッシュ１５０を使用して少なくとも１つのキーバリューシステムコマンド３３０を満足させる段階と、少なくとも１つのキーバリューシステムコマンド３３０のキーバリューシステム結果３３５を受信する段階と、キーバリューシステム結果３２５を返還する段階と、を含む。
【０１１４】
ステートメント２１。本発明の実施形態はステートメント２０に従う方法を含む。ファイルシステムコマンド３１０を受信する段階は、第２客体１６５を識別する第２客体名称１８０を含む第２キーバリューシステムコマンド３０５を受信する段階（９０３）と、第２キーバリューシステムコマンド３０５をファイルシステムコマンド３１０にマッピングする段階（９０６）と、を含む。
【０１１５】
ステートメント２２。本発明の実施形態はステートメント２１に従う方法を含む。第２キーバリューシステムコマンド３０５を受信する段階（９０３）は、ＰＵＴコマンド、ＧＥＴコマンド、及びＤＥＬＥＴＥコマンドを含むセットから得られる第２キーバリューシステムコマンド３０５を受信する段階（９０３）を含む。
【０１１６】
ステートメント２３。本発明の実施形態はステートメント２１に従う方法を含む。第２キーバリューシステムコマンド３０５をファイルシステムコマンド３１０にマッピングする段階（９０６）は第２客体名称１８０からファイル名称１８５を生成する段階（１３１０、１３１５、１３２０）を含む。
【０１１７】
ステートメント２４。本発明の実施形態はステートメント２３に従う方法を含む。第２客体名称１８０からファイル名称１８５を生成する段階（１３１０、１３１５、１３２０）は第２客体名称１８０にハッシュ機能を適用してファイル名称１８５を生成する段階（１３１０）を含む。
【０１１８】
ステートメント２５。本発明の実施形態はステートメント２４に従う方法を含む。第２客体名称１８０にハッシュ機能を適用してファイル名称１８５を生成する段階（１３１０）は、第２客体名称１８０にハッシュ機能を適用してハッシュ値を生成する段階（１３１０）と、ハッシュ値のＡＳＣＩＩ表示としてファイル名称１８５を生成する段階（１３１５）と、を含む。
【０１１９】
ステートメント２６。本発明の実施形態はステートメント２５に従う方法を含む。第２客体名称１８０からファイル名称１８５を生成する段階（１３１５）はハッシュ値のＡＳＣＩＩ表示と衝突インデックスとを組合せる段階（１３２０）を更に含む。
【０１２０】
ステートメント２７。本発明の実施形態はステートメント２１に従う方法を含む。ファイルシステムコマンド３１０を受信する段階（９２７）はファイル名称１８５に関連するファイルディスクリプタ（７１０、７２０、７３０）をファイルディスクリプタルックアップテーブル５２５で検索する段階（９０９）を含む。
【０１２１】
ステートメント２８。本発明の実施形態はステートメント２７に従う方法を含む。ファイルシステムコマンド３１０を受信する段階（９２７）は、ファイルディスクリプタルックアップテーブル５２５がファイル名称１８５を含まない場合、ファイル１７５に対するファイルディスクリプタ（７１０、７２０、７３０）を受信する段階（９２１）と、ファイルディスクリプタ（７１０、７２０、７３０）及びファイル名称１８５をファイルディスクリプタルックアップテーブル５２５に追加する段階（９２４）と、を更に含む。
【０１２２】
ステートメント２９。本発明の実施形態はステートメント２７に従う方法を含む。ファイルシステムコマンド３１０を受信する段階（９２７）は、ファイルディスクリプタルックアップテーブル５２５がファイル名称１８５を含む場合、ファイル名称１８５を使用してファイルディスクリプタルックアップテーブル５２５からファイル１７５に対するファイルディスクリプタ（７１０、７２０、７３０）をアクセスする段階（９１５）を更に含む。
【０１２３】
ステートメント３０。本発明の実施形態はステートメント２３に従う方法を含む。ファイルシステムコマンド３１０を受信する段階（９２７）は、格納装置１２０からファイル名称１８５によって識別されるメタデータ客体１７０を要請する段階（９３３）と、格納装置１２０からファイル１７５に対するメタデータを含むメタデータ客体１７０を受信する段階（９３６）と、を更に含む。
【０１２４】
ステートメント３１。本発明の実施形態はステートメント３０に従う方法を含む。ファイルシステムコマンド３１０を少なくとも１つのキーバリューシステムコマンド３３０にマッピングする段階（９４５）はメタデータ客体１７０から第２客体名称１８０にアクセスする段階（９４２）を含む。ＫＶＦＳキャッシュ１５０を使用して少なくとも１つのキーバリューシステムコマンド３３０を満足させる段階（９５１）は、メタデータ客体１７０を使用して少なくとも１つのキーバリューシステムコマンド３３０を満足させるためにＫＶＦＳキャッシュ１５０を使用する段階（９５１）と、第２客体１６５を使用して少なくとも１つのキーバリューシステムコマンド３３０を満足させるためにＫＶＦＳキャッシュ１５０を使用する段階（９５１）と、を含む。
【０１２５】
ステートメント３２。本発明の実施形態はステートメント３１に従う方法を含む。メタデータ客体１７０から第２客体名称１８０をアクセスする段階（９４２）は、メタデータ客体１７０から第２客体１６５に対する第２客体名称１８０へのポインター８４０にアクセスする段階（９４２）と、第２客体名称１８０へのポインター８４０を使用して第２客体名称１８０を回収する段階（９４２）と、を含む。
【０１２６】
ステートメント３３。本発明の実施形態はステートメント３２に従う方法を含む。メタデータ客体１７０から第２客体１６５に対する第２客体名称１８０へのポインター８４０にアクセスする段階（９４２）はメタデータ客体１７０から第２客体名称１８０に対する名称長さ８４５及び第２客体名称１８０へのポインター８４０にアクセスする段階（９４２）を含む。第２客体名称１８０へのポインター８４０を使用して第２客体名称１８０を回収する段階（９４２）は第２客体名称１８０に対する名称長さ８４５及び第２客体名称１８０へのポインター８４０を使用して第２客体名称１８０を回収する段階（９４２）を含む。
【０１２７】
ステートメント３４。本発明の実施形態はステートメント３０に従う方法を含む。ファイルシステムコマンド３１０を受信する段階（９２７）はメタデータ客体１７０からのメタデータをアイノード４２５に格納する段階（９３９）を含む。
【０１２８】
ステートメント３５。本発明の実施形態はステートメント３４に従う方法を含む。キーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅｆｉｌｅｓｙｓｔｅｍ）キャッシュ１５０を使用して少なくとも１つのキーバリューシステムコマンド３３０を満足させる段階（９５１）は少なくとも１つのキーバリューシステムコマンド３３０に応答してアイノード４２５を変形する段階（９４８）を含む。
【０１２９】
ステートメント３６。本発明の実施形態はステートメント３５に従う方法を含む。少なくとも１つのキーバリューシステムコマンド３３０に応答してアイノード４２５を変形する段階（９４８）は、格納装置１２０からメタデータ客体１７０を削除する段階（１４１０）と、交替メタデータ客体１７０を格納装置１２０に格納する段階（１４１５）と、を含む。
【０１３０】
ステートメント３７。本発明の実施形態はステートメント２０に従う方法を含む。キーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅ  ｆｉｌｅ  ｓｙｓｔｅｍ）キャッシュ１５０を使用して少なくとも１つのキーバリューシステムコマンド３３０を満足させる段階（９５１）はＫＶＦＳキャッシュ１５０で客体１５０を検索する段階（９５４）を含む。
【０１３１】
ステートメント３８。本発明の実施形態はステートメント３７に従う方法を含む。少なくとも１つのキーバリューシステムコマンド３３０のキーバリューシステム結果３３５を受信する段階（９７２）は、ＫＶＦＳキャッシュ１５０が客体１６５を格納する場合、ＫＶＦＳキャッシュ１５０から客体１６５に対するデータにアクセスする段階（９６９）を含む。
【０１３２】
ステートメント３９。本発明の実施形態はステートメント３８に従う方法を含む。少なくとも１つのキーバリューシステムコマンド３３０のキーバリューシステム結果３３５を受信する段階（９７２）は、ＫＶＦＳキャッシュ１５０が客体１６５を格納しない場合、キーバリューシステムコマンド３３０を格納装置１２０に伝送する段階（９６０）と、客体１６５に対するデータを格納装置１２０から受信する段階（９６３）と、データをＫＶＦＳキャッシュ１５０に格納する段階（９６６）と、を含む。
【０１３３】
ステートメント４０。本発明の実施形態はステートメント３７に従う方法を含む。少なくとも１つのキーバリューシステムコマンド３３０のキーバリューシステム結果３３５を受信する段階（９７２）は、客体１６５に対するデータの一部のみを受信する段階（９６９）と、キーバリューシステム結果３２５としてデータの一部を返還する段階（９７２）と、を含む。
【０１３４】
ステートメント４１。本発明の実施形態はキーバリューシステム格納装置へのキャッシュアクセス方法を含む。方法は、客体１６５を識別する客体名称１８０を含むキーバリューシステムコマンド３３０を受信する段階（１００５）と、キーバリューシステムコマンド３３０をファイルシステムコマンド３１０にマッピングする段階３１０と、ファイルシステムコマンド３１０を格納装置１２０に伝送する段階（１０４５）と、を含む。
【０１３５】
ステートメント４２。本発明の実施形態はステートメント４１に従う方法を含む。キーバリューシステムコマンド３３０を受信する段階（１００５）は、ＰＵＴコマンド、ＧＥＴコマンド、及びＤＥＬＥＴＥコマンドを含むセットから得られるキーバリューシステムコマンド３３０を受信する段階（１００５）を含む。
【０１３６】
ステートメント４３。本発明の実施形態はステートメント４１に従う方法を含む。キーバリューシステムコマンド３３０をファイルシステムコマンド３１０にマッピングする段階（１０１０）は客体名称１８０からファイル名称１８５を生成する段階（１３１０、１３１５、１３２０）を含む。
【０１３７】
ステートメント４４。本発明の実施形態はステートメント４３に従う方法を含む。客体名称１８０からファイル名称１８５を生成する段階（１３１０、１３１５、１３２０）は客体名称１８０にハッシュ機能を適用してファイル名称１８５を生成する段階（１３１０）を含む。
【０１３８】
ステートメント４５。本発明の実施形態はステートメント４４に従う方法を含む。客体名称１８０にハッシュ機能を適用してファイル名称１８５を生成する段階（１３１０）は、客体名称１８０にハッシュ機能を適用してハッシュ値を生成する段階（１３１０）と、ハッシュ値のＡＳＣＩＩ表示としてファイル名称１８５を生成する段階（１３１５）と、を含む。
【０１３９】
ステートメント４６。本発明の実施形態はステートメント４５に従う方法を含む。客体名称１８０からファイル名称１８５を生成する段階（１３１５）はハッシュ値のＡＳＣＩＩ表示と衝突インデックスとを組合せる段階（１３２０）を含む。
【０１４０】
ステートメント４７。本発明の実施形態はステートメント４１に従う方法を含む。キーバリューシステムコマンド３３０をファイルシステムコマンド３１０にマッピングする段階（１０１０）はファイルディスクリプタルックアップテーブル５２５でファイル名称１８５に関連するファイルディスクリプタ（７１０、７２０、７３０）を検索する段階（１０１５）を含む。
【０１４１】
ステートメント４８。本発明の実施形態はステートメント４７に従う方法を含む。キーバリューシステムコマンド３３０をファイルシステムコマンド３１０にマッピングする段階（１０１０）は、ファイルディスクリプタルックアップテーブル５２５にファイル名称１８５が含まれない場合、客体１６５に対応するファイル１７５に対するファイルディスクリプタ（７１０、７２０、７３０）を受信する段階（１０３５）と、ファイルディスクリプタ（７１０、７２０、７３０）及びファイル名称１８５をファイルディスクリプタルックアップテーブル５２５に追加する段階（１０４０）と、を更に含む。
【０１４２】
ステートメント４９。本発明の実施形態はステートメント４７に従う方法を含む。キーバリューシステムコマンド３３０をファイルシステムコマンド３１０にマッピングする段階（１０１０）は、ファイルディスクリプタルックアップテーブル５２５がファイル名称１８５を含む場合、ファイル名称１８５を使用してファイルディスクリプタルックアップテーブル５２５からファイル１７５に対するファイルディスクリプタ（７１０、７２０、７３０）にアクセスする段階（１０２５）を更に含む。
【０１４３】
ステートメント５０。本発明の実施形態はステートメント４１に従う方法を含む。方法はファイルシステムコマンド３１０の結果３２０を返還する段階（１０５０）を更に含む。
【０１４４】
ステートメント５１。本発明の実施形態はキーバリューシステム格納装置へのキャッシュアクセス方法を含む。方法は、ファイル１７５を識別するファイルシステムコマンド３１０を受信する段階（１１０５）と、ファイル１７５に対応するアイノード４２５にアクセスする段階（１１２０）と、格納装置１２０に格納された客体１６５を識別する客体名称１８０をアイノード４２５からアクセスする段階（１１２５）と、キーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅ  ｆｉｌｅ  ｓｙｓｔｅｍ）キャッシュ１５０の客体１６５に対してコマンドを遂行する段階（１１５５）と、コマンドの結果３２５を返還する段階（１１６０）と、を含む。
【０１４５】
ステートメント５２。本発明の実施形態はステートメント５１に従う方法を含む。ファイルシステムコマンド３１０を受信する段階（１１０５）はファイルディスクリプタ（７１０、７２０、７３０）を含むファイルシステムコマンド３１０を受信する段階（１１０５）を含む。ファイル１７５に対応するアイノード４２５にアクセスする段階（１１２０）はファイルディスクリプタ（７１０、７２０、７３０）に対応するアイノード４２５にアクセスする段階（１１２０）を含む。
【０１４６】
ステートメント５３。本発明の実施形態はステートメント５１に従う方法を含む。キーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅ  ｆｉｌｅ  ｓｙｓｔｅｍ）キャッシュ１５０の客体１６５に対してコマンドを遂行する段階（１１５５）は、客体名称１８０をＫＶＦＳキャッシュ１５０で検索する段階（１２０５）と、客体名称１８０を有する客体１６５がＫＶＦＳキャッシュ１５０に存在する場合、ＫＶＦＳキャッシュ１５０の客体１６５に対してコマンドを遂行する段階（１２１５）と、を含む。
【０１４７】
ステートメント５４。本発明の実施形態はステートメント５３に従う方法を含む。ＫＶＦＳキャッシュ１５０の客体１６５に対してコマンドを遂行する段階（１２１５）は、客体名称１８０を有する客体１６５がＫＶＦＳキャッシュ１５０に含まれない場合、ファイルシステムコマンド３１０をキーバリューシステムコマンド３３０にマッピングする段階（１２２０）と、客体名称１８０を有する客体１６５に対するキーバリューシステムコマンド３３０を格納装置１２０に伝送する段階（１２２５）と、格納装置１２０から客体１６５を受信する段階（１２３０）と、ＫＶＦＳキャッシュ１５０に客体１６５を格納する段階（１２３５）と、を含む。
【０１４８】
ステートメント５５。本発明の実施形態はステートメント５４に従う方法を含む。キーバリューシステムコマンド３３０の結果３２０を返還する段階（１１６０）は、客体１６５に対するデータの一部のみにアクセスする段階（１２４５）と、キーバリューシステム結果３２５としてデータの一部を返還する段階（１２５０）と、を含む。
【０１４９】
ステートメント５６。本発明の実施形態はステートメント５１に従う方法を含む。方法は、ファイルディスクリプタ（７１０、７２０、７３０）に対応するアイノード４２５を検索できない場合、格納装置１２０からファイル名称１８５によって識別されるメタデータ客体１７０を要請する段階（１１３０）と、格納装置１２０からファイル１７５に対するメタデータを含むメタデータ客体１７０を受信する段階（１１３５）と、メタデータ客体１７０からメタデータを取出す段階（１１４０）と、メタデータを使用してアイノード４２５を生成する段階（１１５０）と、を更に含む。
【０１５０】
ステートメント５７。本発明の実施形態はステートメント５６に従う方法を含む。メタデータ客体１７０からメタデータを取出す段階（１１４０）はメタデータ客体１７０から客体１６５に対する客体名称１８０へのポインター８４０にアクセスする段階（１１４５）を含む。
【０１５１】
ステートメント５８。本発明の実施形態はステートメント５７に従う方法を含む。メタデータ客体１７０から客体１６５に対する客体名称１８０へのポインター８４０にアクセスする段階（１１４５）はメタデータ客体１８０から客体名称１８０に対する名称長さ８４５及び客体名称１８０へのポインターにアクセスする段階（１１４５）を含む。
【０１５２】
ステートメント５９。本発明の実施形態はステートメント５１に従う方法を含む。キーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅ  ｆｉｌｅ  ｓｙｓｔｅｍ）キャッシュ１５０の客体１６５に対してコマンドを遂行する段階（１１５５）はファイルシステムコマンド３１０に応答してアイノード４２５を変形する段階を含む。
【０１５３】
ステートメント６０。本発明の実施形態はステートメント５９に従う方法を含む。キーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅ  ｆｉｌｅ  ｓｙｓｔｅｍ）キャッシュ１５０の客体１６５に対してコマンドを遂行する段階（１１５５）は、格納装置１２０からメタデータ客体１７０を削除する段階（１４１０）と、格納装置１２０に交替メタデータ客体１７０を格納する段階（１４１５）と、を含む。
【０１５４】
ステートメント６１。本発明の実施形態はキーバリューシステム格納装置へのキャッシュアクセス方法を含む。方法は、格納装置１２０に格納された客体１７０を識別する客体名称１８０を受信する段階（１３０５）と、客体名称１８０にハッシュ機能を適用してファイル名称１８５を生成する段階（１３１０）と、を含む。
【０１５５】
ステートメント６２。本発明の実施形態はステートメント６１に従う方法を含む。方法はファイル名称１８５をハッシュ値のＡＳＣＩＩ表示として生成する段階（１３１５）を更に含む。
【０１５６】
ステートメント６３。本発明の実施形態はステートメント６２に従う方法を含む。ファイル名称１８５をハッシュ値のＡＳＣＩＩ表示として生成する段階（１３１５）はハッシュ値のＡＳＣＩＩ表示と衝突インデックスとを組合せる段階（１３２０）を含む。
【０１５７】
ステートメント６４。本発明の実施形態は非一時的な命令語を含む類型の格納媒体を含む製品（又は物品）を含む。非一時的な命令語がマシン１０５で実行される際、ファイル１７５を識別するファイル名称１８５を含むファイルシステムコマンド３１０を受信（９２７）し、ファイルシステムコマンド３１０を客体１６５を識別する少なくとも１つの客体名称１８０に対する少なくとも１つのキーバリューシステムコマンド３３０にマッピング（９４５）し、キーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅ  ｆｉｌｅ  ｓｙｓｔｅｍ）キャッシュ１５０を使用して少なくとも１つのキーバリューシステムコマンド３３０を満足（９５１）させ、少なくとも１つのキーバリューシステムコマンド３３０のキーバリューシステム結果３３５を受信（９７５）し、キーバリューシステム結果３２５を返還することが実行される。
【０１５８】
ステートメント６５。本発明の実施形態はステートメント６４に従う製品を含む。ファイルシステムコマンド３１０を受信すること（９２７）は、第２客体１６５を識別する第２客体名称１８０を含む第２キーバリューシステムコマンド３０５を受信すること（９０３）と、第２キーバリューシステムコマンド３０５をファイルシステムコマンド３１０にマッピングすること（９０６）と、を含む。
【０１５９】
ステートメント６６。本発明の実施形態はステートメント６５に従う製品を含む。第２キーバリューシステムコマンド３０５を受信すること（９０３）は、ＰＵＴコマンド、ＧＥＴコマンド、及びＤＥＬＥＴＥコマンドを含むセットから得られる第２キーバリューシステムコマンド３０５を受信すること（９０３）を含む。
【０１６０】
ステートメント６７。本発明の実施形態はステートメント６５に従う製品を含む。第２キーバリューシステムコマンド３０５をファイルシステムコマンド３１０にマッピングすること（９０６）は第２客体名称１８０からファイル名称１８５を生成すること（１３１０、１３１５、１３２０）を含む。
【０１６１】
ステートメント６８。本発明の実施形態はステートメント２３に従う製品を含む。第２客体名称１８０からファイル名称１８５を生成すること（１３１０、１３１５、１３２０）は第２客体名称１８０にハッシュ機能を適用してファイル名称１８５を生成すること（１３１０）を含む。
【０１６２】
ステートメント６９。本発明の実施形態はステートメント６８に従う製品を含む。第２客体名称１８０にハッシュ機能を適用してファイル名称１８５を生成すること（１３１０）は、第２客体名称１８０にハッシュ機能を適用してハッシュ値を生成すること（１３１０）と、ハッシュ値のＡＳＣＩＩ表示としてファイル名称１８５を生成すること（１３１５）と、を含む。
【０１６３】
ステートメント７０。本発明の実施形態はステートメント６９に従う製品を含む。第２客体名称１８０からファイル名称１８５を生成すること（１３１５）はハッシュ値のＡＳＣＩＩ表示と衝突インデックスとを組合せること（１３２０）を更に含む。
【０１６４】
ステートメント７１。本発明の実施形態はステートメント６５に従う製品を含む。ファイルシステムコマンド３１０を受信すること（９２７）はファイル名称１８５に関連するファイルディスクリプタ（７１０、７２０、７３０）をファイルディスクリプタルックアップテーブル５２５で検索すること（９０９）を含む。
【０１６５】
ステートメント７２。本発明の実施形態はステートメント７１に従う製品を含む。ファイルシステムコマンド３１０を受信すること（９２７）は、ファイルディスクリプタルックアップテーブル５２５がファイル名称１８５を含まない場合、ファイル１７５に対するファイルディスクリプタ（７１０、７２０、７３０）を受信すること（９２１）と、ファイルディスクリプタ（７１０、７２０、７３０）及びファイル名称１８５をファイルディスクリプタルックアップテーブル５２５に追加すること（９２４）と、を更に含む。
【０１６６】
ステートメント７３。本発明の実施形態はステートメント７１に従う製品を含む。ファイルシステムコマンド３１０を受信する段階（９２７）は、ファイルディスクリプタルックアップテーブル５２５がファイル名称１８５を含む場合、ファイル名称１８５を使用してファイルディスクリプタルックアップテーブル５２５からファイル１７５に対するファイルディスクリプタ（７１０、７２０、７３０）にアクセスすること（９１５）を更に含む。
【０１６７】
ステートメント７４。本発明の実施形態はステートメント６７に従う製品を含む。ファイルシステムコマンド３１０を受信すること（９２７）は、格納装置１２０からファイル名称１８５によって識別されるメタデータ客体１７０を要請すること（９３３）と、格納装置１２０からファイル１７５に対するメタデータを含むメタデータ客体１７０を受信すること（９３６）と、を更に含む。
【０１６８】
ステートメント７５。本発明の実施形態はステートメント７４に従う製品を含む。ファイルシステムコマンド３１０を少なくとも１つのキーバリューシステムコマンド３３０にマッピングすること（９４５）はメタデータ客体１７０から第２客体名称１８０にアクセスすること（９４２）を含む。ＫＶＦＳキャッシュ１５０を使用して少なくとも１つのキーバリューシステムコマンド３３０を満足させること（９５１）は、メタデータ客体１７０を使用して少なくとも１つのキーバリューシステムコマンド３３０を満足させるためにＫＶＦＳキャッシュ１５０を使用すること（９５１）と、第２客体１６５を使用して少なくとも１つのキーバリューシステムコマンド３３０を満足させるためにＫＶＦＳキャッシュ１５０を使用すること（９５１）と、を含む。
【０１６９】
ステートメント７６。本発明の実施形態はステートメント７５に従う製品を含む。メタデータ客体１７０から第２客体名称１８０にアクセスすること（９４２）は、メタデータ客体１７０から第２客体１６５に対する第２客体名称１８０へのポインター８４０にアクセスすること（９４２）と、第２客体名称１８０へのポインター８４０を使用して第２客体名称１８０を回収すること（９４２）と、を含む。
【０１７０】
ステートメント７７。本発明の実施形態はステートメント７６に従う製品を含む。メタデータ客体１７０から第２客体１６５に対する第２客体名称１８０へのポインター８４０にアクセスすること（９４２）はメタデータ客体１７０から第２客体名称１８０に対する名称長さ８４５及び第２客体名称１８０へのポインター８４０にアクセスすること（９４２）を含む。第２客体名称１８０へのポインター８４０を使用して第２客体名称１８０を回収すること（９４２）は第２客体名称１８０に対する名称長さ８４５及び第２客体名称１８０へのポインター８４０を使用して第２客体名称１８０を回収すること（９４２）を含む。
【０１７１】
ステートメント７８。本発明の実施形態はステートメント７４に従う製品を含む。ファイルシステムコマンド３１０を受信すること（９２７）はメタデータ客体１７０からのメタデータをアイノード４２５に格納すること（９３９）を含む。
【０１７２】
ステートメント７９。本発明の実施形態はステートメント７９に従う製品を含む。キーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅ  ｆｉｌｅ  ｓｙｓｔｅｍ）キャッシュ１５０を使用して少なくとも１つのキーバリューシステムコマンド３３０を満足させること（９５１）は少なくとも１つのキーバリューシステムコマンド３３０に応答してアイノード４２５を変形すること（９４８）を含む。
【０１７３】
ステートメント８０。本発明の実施形態はステートメント７９に従う製品を含む。少なくとも１つのキーバリューシステムコマンド３３０に応答してアイノード４２５を変形すること（９４８）は、格納装置１２０からメタデータ客体１７０を削除すること（１４１０）と、交替メタデータ客体１７０を格納装置１２０に格納すること（１４１５）と、を含む。
【０１７４】
ステートメント８１。本発明の実施形態はステートメント６４に従う製品を含む。キーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅ  ｆｉｌｅ  ｓｙｓｔｅｍ）キャッシュ１５０を使用して少なくとも１つのキーバリューシステムコマンド３３０を満足させること（９５１）はＫＶＦＳキャッシュ１５０で客体１５０を検索すること（９５４）を含む。
【０１７５】
ステートメント８２。本発明の実施形態はステートメント８１に従う製品を含む。少なくとも１つのキーバリューシステムコマンド３３０のキーバリューシステム結果３３５を受信すること（９７２）は、ＫＶＦＳキャッシュ１５０が客体１６５を格納する場合、ＫＶＦＳキャッシュ１５０から客体１６５に対するデータにアクセスすること（９６９）を含む。
【０１７６】
ステートメント８３。本発明の実施形態はステートメント８２に従う製品を含む。少なくとも１つのキーバリューシステムコマンド３３０のキーバリューシステム結果３３５を受信すること（９７２）は、ＫＶＦＳキャッシュ１５０が客体１６５を格納しない場合、キーバリューシステムコマンド３３０を格納装置１２０に伝送すること（９６０）と、客体１６５に対するデータを格納装置１２０から受信すること（９６３）と、データをＫＶＦＳキャッシュ１５０に格納すること（９６６）と、を含む。
【０１７７】
ステートメント８４。本発明の実施形態はステートメント８１に従う製品を含む。少なくとも１つのキーバリューシステムコマンド３３０のキーバリューシステム結果３３５を受信すること（９７２）は、客体１６５に対するデータの一部のみを受信すること（９６９）と、キーバリューシステム結果３２５としてデータの一部を返還すること（９７２）と、を含む。
【０１７８】
ステートメント８５。本発明の実施形態は非一時的な命令語を含む類型の格納媒体を含む製品（又は物品）を含む。非一時的な命令語がマシン１０５で実行される際、客体１６５を識別する客体名称１８０を含むキーバリューシステムコマンド３３０を受信すること（１００５）と、キーバリューシステムコマンド３３０をファイルシステムコマンド３１０にマッピングすること３１０と、ファイルシステムコマンド３１０を格納装置１２０に伝送すること（１０４５）と、が実行される。
【０１７９】
ステートメント８６。本発明の実施形態はステートメント８５に従う製品を含む。キーバリューシステムコマンド３３０を受信すること（１００５）は、ＰＵＴコマンド、ＧＥＴコマンド、及びＤＥＬＥＴＥコマンドを含むセットから得られるキーバリューシステムコマンド３３０を受信すること（１００５）を含む。
【０１８０】
ステートメント８７。本発明の実施形態はステートメント８８に従う製品を含む。キーバリューシステムコマンド３３０をファイルシステムコマンド３１０にマッピングすること（１０１０）は客体名称１８０からファイル名称１８５を生成すること（１３１０、１３１５、１３２０）を含む。
【０１８１】
ステートメント８８。本発明の実施形態はステートメント８７に従う製品を含む。客体名称１８０からファイル名称１８５を生成すること（１３１０、１３１５、１３２０）は客体名称１８０にハッシュ機能を適用してファイル名称１８５を生成すること（１３１０）を含む。
【０１８２】
ステートメント８９。本発明の実施形態はステートメント８８に従う製品を含む。客体名称１８０にハッシュ機能を適用してファイル名称１８５を生成すること（１３１０）は、客体名称１８０にハッシュ機能を適用してハッシュ値を生成すること（１３１０）と、ハッシュ値のＡＳＣＩＩ表示としてファイル名称１８５を生成すること（１３１５）と、を含む。
【０１８３】
ステートメント９０。本発明の実施形態はステートメント８９に従う製品を含む。客体名称１８０からファイル名称１８５を生成すること（１３１５）はハッシュ値のＡＳＣＩＩ表示と衝突インデックスとを組合せること（１３２０）を含む。
【０１８４】
ステートメント９１。本発明の実施形態はステートメント８５に従う製品を含む。キーバリューシステムコマンド３３０をファイルシステムコマンド３１０にマッピングすること（１０１０）はファイルディスクリプタルックアップテーブル５２５でファイル名称１８５に関連するファイルディスクリプタ（７１０、７２０、７３０）を検索すること（１０１５）を含む。
【０１８５】
ステートメント９２。本発明の実施形態はステートメント９１に従う製品を含む。キーバリューシステムコマンド３３０をファイルシステムコマンド３１０にマッピングすること（１０１０）は、ファイルディスクリプタルックアップテーブル５２５にファイル名称１８５が含まれない場合、客体１６５に対応するファイル１７５に対するファイルディスクリプタ（７１０、７２０、７３０）を受信すること（１０３５）と、ファイルディスクリプタ（７１０、７２０、７３０）及びファイル名称１８５をファイルディスクリプタルックアップテーブル５２５に追加すること（１０４０）と、を更に含む。
【０１８６】
ステートメント９３。本発明の実施形態はステートメント９１に従う製品を含む。キーバリューシステムコマンド３３０をファイルシステムコマンド３１０にマッピングすること（１０１０）は、ファイルディスクリプタルックアップテーブル５２５がファイル名称１８５を含む場合、ファイル名称１８５を使用してファイルディスクリプタルックアップテーブル５２５からファイル１７５に対するファイルディスクリプタ（７１０、７２０、７３０）にアクセスすること（１０２５）を更に含む。
【０１８７】
ステートメント９４。本発明の実施形態はステートメント８５に従う製品を含む。命令語がマシン１０５によって実行される際、ファイルシステムコマンド３１０の結果３２０を返還すること（１０５０）が実行される。
【０１８８】
ステートメント９５。本発明の実施形態は非一時的な命令語を含む類型の格納媒体を含む製品（又は物品）を含む。非一時的な命令語がマシン１０５で実行される際、ファイル１７５を識別するファイルシステムコマンド３１０を受信すること（１１０５）と、ファイル１７５に対応するアイノード４２５にアクセスすること（１１２０）と、格納装置１２０に格納された客体１６５を識別する客体名称１８０をアイノード４２５からアクセスすること（１１２５）と、キーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅ  ｆｉｌｅ  ｓｙｓｔｅｍ）キャッシュ１５０の客体１６５に対してコマンドを遂行すること（１１５５）と、コマンドの結果３２５を返還すること（１１６０）と、が実行される。
【０１８９】
ステートメント９６。本発明の実施形態はステートメント９５に従う製品を含む。ファイルシステムコマンド３１０を受信すること（１１０５）はファイルディスクリプタ（７１０、７２０、７３０）を含むファイルシステムコマンド３１０を受信すること（１１０５）を含む。ファイル１７５に対応するアイノード４２５にアクセスすること（１１２０）はファイルディスクリプタ（７１０、７２０、７３０）に対応するアイノード４２５にアクセスすること（１１２０）を含む。
【０１９０】
ステートメント９７。本発明の実施形態はステートメント９５に従う製品を含む。キーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅ  ｆｉｌｅ  ｓｙｓｔｅｍ）キャッシュ１５０の客体１６５に対してコマンドを遂行すること（１１５５）は、客体名称１８０をＫＶＦＳキャッシュ１５０で検索すること（１２０５）と、客体名称１８０を有する客体１６５がＫＶＦＳキャッシュ１５０に存在する場合、ＫＶＦＳキャッシュ１５０の客体１６５に対してコマンドを遂行すること（１２１５）と、を含む。
【０１９１】
ステートメント９８。本発明の実施形態はステートメント９７に従う製品を含む。ＫＶＦＳキャッシュ１５０の客体１６５に対してコマンドを遂行すること（１２１５）は、客体名称１８０を有する客体１６５がＫＶＦＳキャッシュ１５０に含まれない場合、ファイルシステムコマンド３１０をキーバリューシステムコマンド３３０にマッピングすること（１２２０）と、客体名称１８０を有する客体１６５に対するキーバリューシステムコマンド３３０を格納装置１２０に伝送すること（１２２５）と、格納装置１２０から客体１６５を受信すること（１２３０）と、ＫＶＦＳキャッシュ１５０に客体１６５を格納すること（１２３５）と、を含む。
【０１９２】
ステートメント９９。本発明の実施形態はステートメント９８に従う製品を含む。キーバリューシステムコマンド３３０の結果３２０を返還すること（１１６０）は、客体１６５に対するデータの一部のみにアクセスすること（１２４５）と、キーバリューシステム結果３２５としてデータの一部を返還すること（１２５０）と、を含む。
【０１９３】
ステートメント１００。本発明の実施形態はステートメント９５に従う製品を含む。命令語がマシン１０５によって実行される際、ファイルディスクリプタ（７１０、７２０、７３０）に対応するアイノード４２５を検索できない場合、格納装置１２０からファイル名称１８５によって識別されるメタデータ客体１７０を要請すること（１１３０）と、格納装置１２０からファイル１７５に対するメタデータを含むメタデータ客体１７０を受信すること（１１３５）と、メタデータ客体１７０からメタデータを取出すこと（１１４０）と、メタデータを使用してアイノード４２５を生成すること（１１５０）と、が実行される。
【０１９４】
ステートメント１０１。本発明の実施形態はステートメント１００に従う製品を含む。メタデータ客体１７０からメタデータを取出すこと（１１４０）はメタデータ客体１７０から客体１６５に対する客体名称１８０へのポインター８４０にアクセスすること（１１４５）を含む。
【０１９５】
ステートメント１０２。本発明の実施形態はステートメント１０１に従う製品を含む。メタデータ客体１７０から客体１６５に対する客体名称１８０へのポインター８４０にアクセスすること（１１４５）はメタデータ客体１８０から客体名称１８０に対する名称長さ８４５及び客体名称１８０へのポインターにアクセスすること（１１４５）を含む。
【０１９６】
ステートメント１０３。本発明の実施形態はステートメント９５に従う製品を含む。キーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅｆｉｌｅｓｙｓｔｅｍ）キャッシュ１５０の客体１６５に対してコマンドを遂行すること（１１５５）はファイルシステムコマンド３１０に応答してアイノード４２５を変形することを含む。
【０１９７】
ステートメント１０４。本発明の実施形態はステートメント１０３に従う製品を含む。キーバリューファイルシステム（ＫＶＦＳ：ｋｅｙ−ｖａｌｕｅ  ｆｉｌｅ  ｓｙｓｔｅｍ）キャッシュ１５０の客体１６５に対してコマンドを遂行すること（１１５５）は、格納装置１２０からメタデータ客体１７０を削除すること（１４１０）と、格納装置１２０に交替メタデータ客体１７０を格納すること（１４１５）と、を含む。
【０１９８】
ステートメント１０５。本発明の実施形態は非一時的な命令語を含む類型の格納媒体を含む製品（又は物品）を含む。非一時的な命令語がマシン１０５で実行される際、格納装置１２０に格納された客体１７０を識別する客体名称１８０を受信すること（１３０５）と、客体名称１８０にハッシュ機能を適用してファイル名称１８５を生成すること（１３１０）と、が実行される。
【０１９９】
ステートメント１０６。本発明の実施形態はステートメント１０５に従う製品を含む。命令語がマシン１０５で実行される際、ファイル名称１８５をハッシュ値のＡＳＣＩＩ表示として生成すること（１３１５）が実行される。
【０２００】
ステートメント１０７。本発明の実施形態はステートメント１０６に従う製品を含む。ファイル名称１８５をハッシュ値のＡＳＣＩＩ表示として生成すること（１３１５）はハッシュ値のＡＳＣＩＩ表示と衝突インデックスとを組合せること（１３２０）を含む。
【０２０１】
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【０２０２】
１０５    コンピュータ
１１０    プロセッサ
１１５    メモリ
１２０    格納装置
１２５    アプリケーション
１３０    オペレーティングシステム
１３５    ファイルシステム
１４０    ＫＶＦＳシム
１４５    キーバリューファイルシステム（ＫＶＦＳ）
１５０    ＫＶＦＳキャッシュ
１５５    データ客体（コピー）
１６０    メタデータ客体（コピー）
１６５    データ客体
１７０    メタデータ客体
１７５    ファイル
１８０    客体名称
１８５    ファイル名称
２１５    メモリコントローラ
２２０    クロック
２３０    ネットワークコネクター
２４０    バス
２４５    使用者インターフェイス
２５０    Ｉ／Ｏ（入力／出力）エンジン
３０５、３３０    キーバリューシステムコマンド
３１０    ファイルシステムコマンド
３１５    ページキャッシュ
３２０、３２５、３３５    結果
４０５、５０５    受信ユニット
４１０、５１０    マッピングユニット
４１５、５１５    コマンドユニット
４２０、５２０    返還ユニット
４２５    アイノード
５２５    ファイルディスクリプタルックアップテーブル
５３０    名称生成ユニット
６０５    ハッシュユニット
６１０    ＡＳＣＩＩ表示ユニット
６１５    衝突インデックスユニット
７０５、７１５、７２５    第１〜第３ハッシュ
７１０、７２０、７３０    第１〜第３ファイルディスクリプタ
８０５    生成された日付
８１０    変更された日付
８１５    アクセスされた日付
８２０    種類
８２５    大きさ
８３０    コンテナ
８３５    所有者
８４０、８５０    ポインター
８４５    長さ
８５５    権限
【図１】
2017151974.tif 000003
【図２】
2017151974.tif 000004
【図３Ａ】
2017151974.tif 000005
【図３Ｂ】
2017151974.tif 000006
【図４】
2017151974.tif 000007
【図５】
2017151974.tif 000008
【図６】
2017151974.tif 000009
【図７】
2017151974.tif 000010
【図８】
2017151974.tif 000011
【図９Ａ】
2017151974.tif 000012
【図９Ｂ】
2017151974.tif 000013
【図９Ｃ】
2017151974.tif 000014
【図９Ｄ】
2017151974.tif 000015
【図９Ｅ】
2017151974.tif 000016
【図１０Ａ】
2017151974.tif 000017
【図１０Ｂ】
2017151974.tif 000018
【図１１Ａ】
2017151974.tif 000019
【図１１Ｂ】
2017151974.tif 000020
【図１２Ａ】
2017151974.tif 000021
【図１２Ｂ】
2017151974.tif 000022
【図１３】
2017151974.tif 000023
【図１４】
2017151974.tif 000024