JP2013538407A - ディレクトリのリース - Google Patents

ディレクトリのリース Download PDF

Info

Publication number
JP2013538407A
JP2013538407A JP2013529194A JP2013529194A JP2013538407A JP 2013538407 A JP2013538407 A JP 2013538407A JP 2013529194 A JP2013529194 A JP 2013529194A JP 2013529194 A JP2013529194 A JP 2013529194A JP 2013538407 A JP2013538407 A JP 2013538407A
Authority
JP
Japan
Prior art keywords
directory
request
lease
metadata
client
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.)
Granted
Application number
JP2013529194A
Other languages
English (en)
Other versions
JP5809275B2 (ja
JP2013538407A5 (ja
Inventor
マシュー クルーズ デービッド
ジョージ マシュー
キュロス ハヴェワラ サローシュ
グレゴリー オールレッド クリスチャン
ロバート クリスティアンセン ニール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2013538407A publication Critical patent/JP2013538407A/ja
Publication of JP2013538407A5 publication Critical patent/JP2013538407A5/ja
Application granted granted Critical
Publication of JP5809275B2 publication Critical patent/JP5809275B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed 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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • 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/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

分散ファイル・システムにアクセスするクライアントがディレクトリ・メタデータをローカルにキャッシュできるようにするための実施形態を説明する。クライアントは読取リースを要求することができる。当該読取リースにより、クライアントは、ディレクトリ・メタデータをローカルにキャッシュすることができ、当該キャッシュを用いて当該ディレクトリ・メタデータを初めに要求した同一のアプリケーションから受信した要求を処理することができる。さらに、クライアントはハンドル・リースを要求することもできる。当該ハンドル・リースにより、クライアントは、ディレクトリ・ハンドルを閉じるのを遅延させることができ、当該ハンドルを再利用して同一または別のアプリケーションからの後のディレクトリ・メタデータの要求を処理することができる。クライアントはまた書込みリースを要求することができる。当該書込みリースにより、クライアント上のアプリケーションは、例えばディレクトリ内の新たなファイルを生成もしくは削除するかまたはそれらの属性を変更することによって、ディレクトリ・メタデータを修正することができ、クライアントはそれらの変更をキャッシュすることができる。

Description

本発明は、分散ファイル・システムに関する。
クライアント上のアプリケーションが、分散ファイル・システムに格納したファイルにアクセスすることは一般的である。分散ファイル・システムは、リモートに格納したファイルへのアクセスを、クライアント上でローカルに実行されているアプリケーションに透過的に提供する。分散ファイル・システムは幾つかの機能を含むことができる。当該機能により、クライアントが何らかの情報をローカルにキャッシュすることができ、その結果、幾つかの要求がローカルの情報を用いて処理される。これは、情報をリモートから取り出すよりも効率的である。しかし、現在の分散ファイル・システムは、分散ファイル・システムにアクセスするクライアントの間で整合性および一貫性を提供する、メタデータ(例えば、ディレクトリ・メタデータ)のような情報をキャッシュするための機構は有していない。
これらおよび他の検討事項に関して、本発明の諸実施形態を構成した。また、比較的具体的な課題を論じたが、本発明の諸実施形態は、背景技術で特定した具体的な問題を解決することに限定されないことは理解されよう。
本概要は、選択した概念を簡潔な形で導入するために与えたものである。その概念は、下記の発明を実施するための形態においてさらに説明する。本概要は、特許請求する主題の主要な特徴または本質的な特徴を特定しようとするものではなく、特許請求する主題の範囲の決定を支援するものとして使用しようとするものでもない。
分散ファイル・システムにアクセスするクライアントがディレクトリ・メタデータをローカルにキャッシュできるようにするための諸実施形態を説明する。一実施形態では、クライアントはディレクトリ・データをキャッシュするためにファイル・サーバにリースを要求する。クライアントは読取リース(read lease)を要求することができる。当該読取リースにより、クライアントは、ディレクトリ・メタデータをローカルにキャッシュすることができ、当該ディレクトリ・メタデータを初めに要求した同一のアプリケーションからの要求を処理することができる。さらに、クライアントはハンドル・リース(handle lease)を要求することもできる。当該ハンドル・リースにより、クライアントは、ディレクトリ・ハンドルを閉じるのを遅延させることができ、当該ハンドルを再利用して、クライアント上の同一または別のアプリケーションからの後のディレクトリ・メタデータの要求を処理することができる。幾つかの実施形態では、サーバは2つのリース鍵を利用して、クライアントのリースを追跡し続け、ディレクトリ・メタデータに関する読取リースを有するクライアントが当該ディレクトリ・メタデータを変更した結果、読取リースが失効(revoke)することにならないことを保証する。他の実施形態では、クライアントは書込みリース(write lease)を要求することができる。当該書込みリースにより、クライアント上のアプリケーションは、例えばディレクトリ内のファイルを生成もしくは削除するかまたはそれらの属性を変更することによって、ディレクトリ・メタデータを修正することができ、クライアントはそれらの変更をキャッシュすることができる。別のクライアントがディレクトリ・メタデータを要求したときは、書込みリースは破棄され、当該変更がサーバにフラッシュされる。
諸実施形態をコンピュータ・プロセス、コンピューティング・システム、または、コンピュータ・プログラム製品もしくはコンピュータ読取可能媒体のような製品として実装してもよい。コンピュータ・プログラム製品は、コンピュータ・システムにより読取可能でありかつコンピュータ・プロセスを実行するための命令からなるコンピュータ・プログラムをエンコードする、コンピュータ記憶媒体であってもよい。当該コンピュータ・プログラム製品はまた、コンピューティング・システムにより読取可能でありかつコンピュータ・プロセスを実行するための命令からなるコンピュータ・プログラムをエンコードする、キャリア上の伝播信号であってもよい。
添付図面を参照して、非限定的で非包括的な諸実施形態を説明する。
幾つかの諸実施形態を実装するために使用できるシステムの一実施形態を示す図である。 幾つかの実施形態で使用できる、クライアントおよびサーバのブロック図である。 幾つかの実施形態と整合する、ディレクトリ・メタデータをローカルにキャッシュするための動作フローを示す図である。 幾つかの実施形態と整合する、ディレクトリ・メタデータに関するリースを保持するクライアントによりディレクトリ・メタデータを修正する要求を処理するための動作フローを示す図である。 幾つかの実施形態と整合する、ディレクトリ・データに関する読取リースの失効を受け取ったときに実施される動作フローを示す図である。 幾つかの実施形態と整合する、ディレクトリ・メタデータをローカルにキャッシュできるようにするための動作フローを示す図である。 諸実施形態を実装するのに適したコンピューティング環境のブロック図である。
添付図面を参照して様々な諸実施形態を以下でより完全に説明する。添付図面は本明細書の一部を構成し、本発明を実施するための具体的で例示的な諸実施形態を示す。しかし、諸実施形態を多数の様々な形態で実装してもよく、本明細書で説明した諸実施形態に限定されると解釈すべきではない。寧ろ、本開示が徹底的で完全であり、本発明の範囲を当業者に完全に伝達するように、これらの諸実施形態を提供するものである。諸実施形態を、方法、システム、または装置として実施してもよい。したがって、諸実施形態が、ハードウェア実装の形態、専らソフトウェア実装の形態、またはソフトウェアおよびハードウェアの態様を組み合わせた実装の形態をとってもよい。したがって、以下の詳細な説明は限定的な意味で捉えるべきではない。
図1は、諸実施形態を実装する分散ファイル・システム100の一実施形態を示す。システム100は、ファイルおよびファイル情報へのアクセスを必要とする様々なアプリケーションを実行する、クライアント102および104を含む。ファイル・サーバ106はファイルおよびファイル情報を、例えばデータ・ストア108に格納する。クライアント102および104は、ネットワーク、例えばネットワーク110を介してファイル・サーバ106にアクセスすることができる。当業者が理解するように、ネットワーク110はLAN、WAN(例えば、インターネット)、記憶領域ネットワーク、またはクライアント102および104がファイル・サーバ106と通信できるようにする他のネットワークであってもよい。
分散ファイル・システム100は、クライアント102および104がファイル・サーバ106にアクセスできるようにするためのプロトコルを実装してもよい。プロトコルの幾つかの非限定的な例には、SMB(Server Message Block)、SMB2、およびNFSがある。当業者が理解するように、ファイル・アクセス・プロトコルは、ファイル・サーバにファイルを要求するための様々なフォーマットをクライアントに提供する。諸実施形態はどの特定のファイル・アクセス・プロトコルにも限定されない。寧ろ、説明する諸実施形態の特徴を任意のファイル・アクセス・プロトコルを用いて実装してもよい。当該ファイル・アクセス・プロトコルには、上で列挙したものが含まれるがこれらに限らない。
一実施形態では、クライアント102および104がファイル・サーバ106にリースを要求してもよい。当該リースにより、クライアント102および104はディレクトリ・メタデータをローカルにキャッシュすることができる。当業者が理解できるように、ファイル・サーバ106が、実際のファイル・データを格納することに加えて、ディレクトリ内のファイルの特徴を記述するディレクトリ・メタデータを格納してもよい。例えば、ディレクトリ・メタデータとして、ディレクトリ内のファイルごとに、最終更新日付、作成日、ファイル・サイズ、ファイル・タイプ、および作成者名を含めてもよいがこれらに限らない。本実施形態を、リース機構を提供することによって実装することができる。
図1に示すように、幾つかの実施形態では、クライアント102のようなクライアントが、メタデータ・リース要求を有するパケット112をファイル・サーバ106に送信する。諸実施形態では、パケット112がリース要求に加えてメタデータの要求を含んでもよい。例えば、ブラウザ・アプリケーションのようなアプリケーションが、特定のディレクトリに対するディレクトリ・メタデータを要求してもよい。当該要求に応答して、クライアント102がパケット112を送信してもよい。当該パケット112は、特定のディレクトリのメタデータの要求ならびにメタデータ・リース要求を含む。
図1に示すように、パケット112が読取リース、書込みリース、および/またはハンドル・リースを指定してもよい。読取リースにより、クライアント102はディレクトリのメタデータをローカルのキャッシュに格納することができ、ブラウザ・アプリケーションがディレクトリ・メタデータを要求するたびにクライアントは当該要求をローカルのキャッシュから処理することができる。ハンドル・リースにより、クライアント102は、ディレクトリ・ハンドルを閉じるのを遅延させ、クライアント102がディレクトリ・ハンドルを使用して、ブラウザ・アプリケーションならびにディレクトリに対するディレクトリ・メタデータを要求できる他のアプリケーションからの後の要求を処理できるようにすることができる。書込みリースにより、クライアントはアプリケーションがディレクトリ・メタデータに対して行った変更をキャッシュすることができる。
図1に示す実施形態では、ファイル・サーバ106が応答パケット114を送信する。当該応答パケット114は、要求されたディレクトリ・メタデータ、および要求されたリースが与えられたかどうかの指示を含む。応答パケットに基づいて、クライアント102はリース要求が与えられた場合はディレクトリ・メタデータをキャッシュし、当該ディレクトリ・メタデータをブラウザ・アプリケーションに提供する。リースが与えられなかったと応答パケットが示す場合は、クライアント102はディレクトリ・メタデータをキャッシュせず、単に当該ディレクトリ・メタデータをブラウザ・アプリケーションに提供する。クライアント102にリースが与えられなかった場合は、ディレクトリ・メタデータに対するブラウザ・アプリケーションからの任意の後の要求により、クライアントはディレクトリ・メタデータをファイル・サーバ106に要求することとなる。
下記でさらに詳細に説明するように、リースをクライアントに与えることにより、アプリケーションからの要求を処理する効率性がもたらされ、クライアントが複数の要求をファイル・サーバ106に送信する必要性が減る。したがって、幾つかの実施形態では、ファイル・サーバ106は一般に、衝突するリースを別のクライアントが現在保持していない限り、リースをクライアントに与える。ディレクトリ・メタデータの一貫性を保証するために、ファイル・サーバ106は、特定のディレクトリ・メタデータに関して衝突するリースが別のクライアントに付与されないことを保証する。
図1の説明は幾つかの実施形態の幾つかの特徴を導入するために与えたにすぎない。下記でさらに詳細に説明するように、他の実施形態では追加の特徴を提供してもよい。図1の説明は、他の任意の実施形態の範囲を限定するために使用されるべきではない。
図2は、幾つかの実施形態で使用できるクライアントおよびサーバのブロック図を示す。上述のように、様々なファイル・アクセス・プロトコルを使用して、説明する実施形態の機能を実装することができる。以下の図2の説明のうち幾つかは、幾つかのSMB2の機能説明を含む。しかし、これは他の実施形態を限定するために使用されるべきではない。なぜならば、任意のファイル・アクセス・プロトコルを使用して、説明する機能を実装できるからである。SMB2の使用は一例にすぎず、例示の目的にのみ使用される。
図2は、分散ファイル・システム200の一部であるクライアント202およびファイル・サーバ204のブロック図を示す。幾つかの実施形態では、クライアント202をシステム100(図1)においてクライアント102および104として実装してもよく、ファイル・サーバ204をシステム100(図1)においてファイル・サーバ106として実装してもよい。
図2に示すように、クライアント202は、サーバ204のファイル・システム208に格納されたファイル・データおよびメタデータへのアクセスを要求する、幾つかのアプリケーション206A乃至Cを含む。クライアント202はまた、リダイレクタ210を含む。一実施形態では、リダイレクタ210をSMB2リダイレクタとして構成してもよく、クライアント202およびサーバ204はSMB2プロトコルに従ってフォーマットされたパケットを用いて通信する。アプリケーション206A乃至Cのうち1つがサーバ204上に置かれたファイルを要求すると、リダイレクタ210がその要求を処理する。リダイレクタ210は、ファイル・データおよびメタデータに対する要求を有する、SMB2プロトコルに従ってフォーマットされたパケットを生成する。下記でさらに詳細に説明するように、諸実施形態では、SMB2プロトコルを拡張して、クライアント202がディレクトリ・メタデータをクライアント202上のローカルのキャッシュ212に格納できるようにするリース機構を提供する。当該リース機構は、サーバ204が与えるリースに関連付けられたリース鍵(ディレクトリ鍵/ファイル鍵)を格納する、クライアント202上の検索テーブル214を利用する。サーバ204はまた、リースを要求し当該リースを与えられるクライアントに対してリース鍵を格納する。サーバ204は、リース・テーブル216を用いてリース鍵を格納する。
システム200の動作の一例として、アプリケーション206Aはファイル・システム208のディレクトリ、例えばディレクトリ1に格納されたファイルに関するメタデータを要求することができる。その結果、アプリケーション206Aはリダイレクタ210が受け取る要求を発行する。当該要求を受け取ったことに応答して、リダイレクタ210は、ネゴシエート要求パケット218を送信することにより、サーバ204とのセッションを開始する。当業者が理解するように、ネゴシエート要求パケット218は、クライアントとサーバとの間でのセッションのネゴシエートを提供するSMB2プロトコルに従ってフォーマットされる。ネゴシエート要求パケット218は、クライアントがディレクトリ・メタデータのリースを処理できるか否かを示す情報を含む。一実施形態では、ディレクトリ・メタデータのリースを何らかのバージョンのSMB2プロトコルによってのみサポートしてもよく、ネゴシエート要求パケット218が、クライアントはメタデータのリースをサポートする或るバージョンのSMB2プロトコルをサポートしており、そのバージョンのSMB2プロトコルを用いてサーバと通信することを望むという指示を提供してもよい。
ネゴシエート要求パケット218に応答して、サーバ204はネゴシエート応答パケット220を送信する。当該ネゴシエート応答パケット220は、サーバが当該バージョンのSMB2プロトコルをサポートするか否かの指示を含むことができる。現在の例では、ネゴシエート応答パケット220は、ディレクトリ・メタデータのリースをサポートする或るバージョンのSMB2プロトコルを用いて通信することにサーバが同意したことを示す。
クライアント202とサーバ204との間のネゴシエーションが完了した後、リダイレクタ210は、アプリケーション206Aが要求しているディレクトリ・メタデータを要求することができる。一実施形態では、リダイレクタ210は先ず、要求されているディレクトリ・メタデータに関連付けられたディレクトリ鍵、例えば、ディレクトリ2鍵を生成する。さらに、リダイレクタ210はまた、要求されているディレクトリ・メタデータを含む親ディレクトリ、この場合はディレクトリ1に対する鍵を生成する。これらの鍵を検索テーブル214に格納する。図2の実施形態で示すように、検索テーブル214はディレクトリ鍵を、ディレクトリ内に格納されたファイルに対する様々なファイル鍵ならびにディレクトリ内のサブディレクトリに対するディレクトリ鍵に関連付ける。リース鍵は幾つかの実施形態ではGUID(globally unique identifier)である。しかし、当該リース鍵はGUIDには限定されない。
リダイレクタ210は次に、ディレクトリ2内のディレクトリ・メタデータに対する要求を含み、ディレクトリ2内のディレクトリ・メタデータに対するリースもまた要求する、パケット222を送信する。リース要求の一部として、リダイレクタ210は、生成したリース鍵(即ち、ディレクトリ1に対するディレクトリ鍵およびディレクトリ2に対するディレクトリ鍵)を含む。別の実施形態では、リダイレクタ210は何らディレクトリ鍵を生成しない。その代わり、パケット222が、サーバがリース鍵を生成すべきであるとリダイレクタ210が示すことを規定する。
サーバ204がディレクトリ・リース要求パケット222を受け取ると、サーバ204はディレクトリ・メタデータをディレクトリ2から取り出す。サーバ204はまた、サーバ204が要求されたリースをクライアント202に与えることができるか否かを判定する。具体的には、当該サーバは、自身が与えた他のリースに対するリース鍵(ディレクトリ鍵およびファイル鍵)を格納するリース・テーブル216を参照することができる。本例では、以前にディレクトリ2に対するリースを要求したクライアントは存在せず、その結果、サーバ204は、ディレクトリ1に対するディレクトリ鍵およびディレクトリ2に対するディレクトリ鍵をディレクトリ・リース要求パケット222からリース・テーブル216に格納する。
当該サーバは、ディレクトリ・メタデータ、および要求されたリースが与えられたことの指示を有する、ディレクトリ・リース応答パケット224を送信する。この場合、要求されたリースが読取リース、書込みリース、および/またはハンドル・リースを含んでもよい。リースが読取リースである場合、クライアント202はディレクトリ2のディレクトリ・メタデータに対するアプリケーション206Aからの要求を、キャッシュ212から処理することができる。リースが書込みリースである場合は、ディレクトリ2のディレクトリ・メタデータに対する任意の変更をキャッシュ212に格納することができる。リースがハンドル・リースを含む場合は、クライアント202はアプリケーション206Aがハンドルを閉じるときにディレクトリ2に対するハンドルを閉じるのを遅延させることができる。次いで当該ハンドルを再利用して、アプリケーション206Aならびに他のアプリケーション206Bおよび206Cからの後の要求を処理することができる。リダイレクタ210はディレクトリ・メタデータをアプリケーション206Aに提供し、また当該ディレクトリ・メタデータをキャッシュ212に格納する。
後の時点で、第2のクライアントがディレクトリ2に格納された同一のディレクトリ・メタデータに対するアクセスを要求した場合、サーバ204は、クライアント202に与えたハンドル・リースと非互換のアクセスを第2のクライアントが要求した場合にクライアント202からのハンドル・リースを失効することができる。サーバ204は、ハンドル・リースが失効されていることを示す失効通知226をクライアント202に送信する。失効の後、アプリケーション206A、206B、および206Cからのディレクトリ・メタデータに対する任意の要求により、クライアント202は、新たなディレクトリ・ハンドルを直接サーバ204に要求する必要があるはずである。幾つかの実施形態では、リースの失効が同期的に発生し、クライアント202は、失効通知を受け取ったという受理(acknowledgment)228を送信しなければならない。後の時点で第2のクライアントがディレクトリ2に格納されたディレクトリ・メタデータを修正すると、サーバ204は、クライアント202からの読取リースを失効することができ、これによりキャッシュ212に格納されたデータが無効(invalid)になる。失効の後は、アプリケーション206A、206B、および206Cからのディレクトリ・メタデータに対する任意の要求を、情報を直接サーバ204に要求することで処理しなければならない。
当業者が理解するように、クライアント202はキャッシュ212内の情報を、さらにディレクトリ・メタデータをアプリケーション206A、206B、および206Cに提供する目的で使用することができる。一例として、ファイルがディレクトリに存在しない場合、アプリケーション206A、206B、および206Cからの見当たらないファイルに対する要求を、サーバ204に当該要求をリダイレクトする必要なしに失敗させることができる。これにより、存在しないファイルを対象としたオープンな要求に関するネットワーク・トラフィックを削減することを支援する。
一実施形態では、上述のリース機能は過渡的である。即ち、リダイレクタ210はリースの取得と失効をローカルのアプリケーションに渡すことができる。次いで当該ローカルのアプリケーションを使用して他のリモート・クライアントを処理することができる。このように、リースの付与および失効は原則として最終的なピアに対して過渡的である。
図3乃至図6は、諸実施形態に従う動作フロー300、400、500、および600を示す。動作フロー300、400、500、および600を任意の適切なコンピューティング環境で実施してもよい。例えば、動作フローを、図1および図2に示すようなシステムにより実行してもよい。したがって、動作フロー300、400、500、および600の説明では、図1および図2のコンポーネントのうち少なくとも1つを参照することができる。しかし、図1および図2のコンポーネントに対する任意のかかる参照は説明の目的のためにすぎず、図1および図2の実装形態は動作フロー300、400、500、および600に関して非限定的な環境であることは理解されよう。
さらに、動作フロー300、400、500、および600を逐次的に特定の順序で例示および説明するが、他の実施形態では、当該動作を異なる順序で、複数回、および/または並行して実施してもよい。さらに、幾つかの実施形態では1つまたは複数の動作を省略または組み合わせてもよい。
図3は、幾つかの実施形態と整合する、ディレクトリ・メタデータをローカルにキャッシュするための動作フロー300を示す。フロー300は動作302で開始し、ディレクトリ・メタデータに対する要求(ディレクトリ・メタデータの一部を含む)をアプリケーションから受け取る。幾つかの実施形態では、動作302をクライアント上のリダイレクタが受け取る。当該リダイレクタは、システム100(図1)またはシステム200(図2)のような分散ファイル・システムの一部である。フロー300は、どの特定のファイル・アクセス・プロトコルを用いて実装することにも限定されない。任意の適切なファイル・アクセス・プロトコルを用いてフロー300の実施形態を実装してもよい。
フローは動作302から判定304に移り、要求されたメタデータがローカルのキャッシュ内に格納されているか否かを判定する。判定304で、要求されたメタデータがローカルのキャッシュに格納されていると判定した場合は、フローは動作306に移り、当該メタデータを当該ローカルのキャッシュから取り出す。動作308で、当該ローカルのキャッシュから取り出した当該メタデータをアプリケーションに提供する。フロー300は310で終了する。
一方、動作304で、ディレクトリ・メタデータがローカルのキャッシュに格納されていないと判定した場合は、制御は判定304から動作312に移り、当該ディレクトリ・メタデータにより特定されたファイルに対するディレクトリ鍵を生成する。幾つかの実施形態では、ディレクトリ鍵は、リダイレクタがフロー300を実行することにより生成したGUIDである。動作312の後、ディレクトリ・メタデータにより特定されたディレクトリの親ディレクトリに対するディレクトリ鍵を動作314で生成する。幾つかの実施形態では、動作314が当該ディレクトリの全ての先祖に対する鍵を生成することを含んでもよい。次いで当該鍵をローカルにキャッシュすることができる。
動作316で、要求をファイル・サーバに送信する。当該要求は、メタデータならびに、当該メタデータのローカルなキャッシュを可能とするリースに対するものである。動作318で、応答をファイル・サーバから受け取る。当該応答は、諸実施形態では、要求されたリースがファイル・サーバにより与えられたか否かの指示を含む。動作318からフローは動作320に移り、当該応答からのメタデータをアプリケーションに提供する。動作320に続いて、判定322で、サーバがディレクトリ・メタデータに関する要求されたリースを与えたか否かを判定する。判定322で、当該リースが承認されなかったと判定した場合は、メタデータをローカルにキャッシュすることはできず、フローは310で終了する。判定322で、リースがファイル・サーバにより承認されたと判定した場合は、動作324でメタデータをローカルのキャッシュに格納する。動作324の後、フローは310で終了する。
次に図4を参照すると、幾つかの実施形態と整合する、ディレクトリ・メタデータに関するハンドル・リースを保持する(分散ファイル・システムにアクセスする)クライアントによりディレクトリ・メタデータを修正する要求を処理するためのフロー400が示されている。諸実施形態では、フロー400を、フロー300を実行した後に実行することができる。したがって、フロー400は、ハンドル・リースがディレクトリ・メタデータをキャッシュするために与えられている諸実施形態において実施される。
フロー400は動作402で開始し、ディレクトリ・メタデータを修正する要求を受け取る。当該要求は例えば、情報をファイルに書き込むための書込み要求であってもよく、これによりメタデータが変更される。非限定的な例では、当該メタデータには修正日、およびファイル・サイズが含まれる。ディレクトリ・メタデータをキャッシュするためのハンドル・リースを、ファイル・サーバがフロー400を実行しているクライアントに予め与えている。
動作404で、当該要求からの情報、即ちディレクトリ・メタデータ、例えばファイルへ書き込むべきデータを修正している情報を有するパケットを生成する。リースが予め与えられているので、第1のディレクトリ鍵および当該リースに関連付けられた親のディレクトリ鍵が存在する。したがって、動作406でディレクトリ鍵を当該パケットに含め、動作408で当該ディレクトリ鍵をパケットに含める。次いで410で当該パケットをサーバに送信する。幾つかの実施形態では、クライアントが最初に当該要求においてディレクトリ鍵および親のディレクトリ鍵を、オープンのために送信する。次いでサーバは、当該オープンに関する全ての後の動作に対して、当該鍵を使用する。しかし、他の実施形態では、クライアントが動作ごとに当該ディレクトリ鍵および親のディレクトリ鍵を提供してもよい。
動作410の後、フローは動作412に移り、ローカルのキャッシュを更新して変更されたメタデータを反映する。換言すれば、ローカルのキャッシュを更新して、直近の修正日、ファイル・サイズ等の変更を反映する。フロー400は414で終了する。
図5は、ディレクトリ・メタデータに関する読取リースを失効する通知を処理するためのフロー500を示す。フロー500を、クライアントに読取リースがサーバ204(図2)のようなサーバから与えられた後に実行することができる。フロー500は動作502で開始し、ディレクトリ・メタデータに関して予め与えられた読取リースが失効していることを示す失効通知をサーバから受け取る。幾つかの実施形態では、キャッシュされたディレクトリ・メタデータ、例えば、ディレクトリ内のファイルの修正の一貫性に影響を及ぼす別のクライアントが実施した動作を理由として、失効通知をサーバが送信する。失効通知を受け取ったことに応答して、フロー500は動作504に移り、任意のキャッシュしたディレクトリ・メタデータを無効にする。幾つかの実施形態では、動作504は、ディレクトリ・メタデータを要求したアプリケーションに当該ディレクトリ・メタデータを提供するためにキャッシュを使用することがもはやできないことを示すための、クライアントが実施する幾つかのステップを含む。
動作504の後、フローは動作506に移り、失効通知を成功裏に受け取ったという受理をサーバに送信する。幾つかの実施形態では、フロー500が動作506を含まなくともよい。これらの実施形態では、クライアントは失効通知を受け取り、サーバに受理を送信しない。次いでフローは動作508に移り、ディレクトリ・メタデータに対する任意の要求を、ディレクトリ・メタデータをサーバに要求することにより処理する。次いでフロー500は510で終了する。
図6は、幾つかの実施形態と整合する、ディレクトリ・メタデータをローカルにキャッシュできるようにするための動作フロー600を示す。幾つかの実施形態では、フロー600を、分散ファイル・システムの一部であるファイル・サーバにより実行することができる。
フロー600は動作602で開始し、ディレクトリ・メタデータおよびリースに対する要求を受け取る。幾つかの実施形態では当該要求を、クライアント、または分散ファイル・システムの一部であるクライアント上のリダイレクタが送信する。動作602の後、フロー600は判定604に移り、動作602で受け取った要求において要求されたようにリースを与えるか否かの判定を行う。判定604が幾つかの要因に基づいてもよい。当該要因には、例えばリースが当該ディレクトリ・メタデータに対して既に与えられたか否かが含まれる。判定604で、リースを与えないと判定した場合は、フローは動作606に移り、ディレクトリ・メタデータを有するパケットを送信する。当該パケットは、要求されたリースが与えられなかったという指示を含む。次いでフローは動作608で終了する。
判定604で、リースを与えることができると判定した場合、フロー600は動作610に移り、ディレクトリ鍵および親のディレクトリ鍵を格納する。幾つかの実施形態では、ディレクトリ鍵および親のディレクトリ鍵は、クライアントに与えたリースを追跡し続けるためのリース鍵として使用されるGUIDである。幾つかの実施形態では、動作602で、ディレクトリ鍵および親のディレクトリ鍵を、ディレクトリ・メタデータおよびリース要求とともに受け取る。本実施形態では、ディレクトリ鍵および親のディレクトリ鍵は、動作602で要求を送信したクライアントが生成している。他の実施形態では、動作610で、ディレクトリ鍵および親のディレクトリ鍵を当該サーバが生成して、これらをリース・テーブルに格納してもよい。
幾つかの実施形態では、ディレクトリ鍵および親のディレクトリ鍵は2つ以上のオープンなハンドルの間のコンテナと子の関係を表現する。同じことがファイル鍵およびディレクトリ鍵に当てはまる。当該ファイル鍵は、ディレクトリ内のファイルに関連付けられている。例えば、2つのオープンなハンドルH1およびH2が存在すると仮定する。H1をファイル鍵=K1およびディレクトリ鍵=Dに関連付けてもよい。H2をファイル鍵=K2およびディレクトリ鍵=Dに関連付けてもよい。これらの鍵は、これらのハンドルが参照するファイルが同一のディレクトリ内に存在することを示す。
図6を再度参照すると、動作612で、要求されたディレクトリ・メタデータ、およびリースの承認の指示を有する応答パケットをクライアントに送信する。次いでクライアントは、与えられたリースと整合するディレクトリ・メタデータをローカルにキャッシュすることができる。
動作614で、ディレクトリ・メタデータを修正する要求を受け取る。当該要求は例えば、追加の情報をファイルに書き込むためのものであってもよい。これにより、例えば最終更新時刻、またはファイル・サイズを変更することでディレクトリ・メタデータが修正される。フローは動作614から判定616に移り、ディレクトリ・メタデータを修正する要求がリース保持者(lease holder)からのものであるか否かを判定する。
一実施形態では、判定616で行う判定が、ディレクトリ・メタデータを修正する動作が行われたハンドルに関連付けられたリース鍵と、予めクライアントに提供されたハンドルに関連付けられたリース鍵とを比較することによって行われる。上述のように、幾つかの実施形態では、クライアントがファイル・ハンドル(またはディレクトリ・ハンドル)に関連付けられたリース鍵を生成し、したがって、各鍵は特定のクライアントに対して一意である。一例では、クライアントに提供されたハンドルH1はファイル鍵=K1およびディレクトリ鍵=Dに関連付けられる。後にサーバが、ハンドルH2に関連付けられたメタデータを修正する動作を受け取った場合、当該サーバはハンドルH2に関連付けられたリース鍵をハンドルH1に関連付けられたリース鍵と比較する。例えばH2がファイル鍵=K2およびディレクトリ鍵=Dに関連付けられている場合、当該サーバは、H1およびH2に対するディレクトリ鍵が同一であるため、ディレクトリDに関するリースを有する同一のクライアントが当該修正を行い、したがって当該リースを失効する必要がないと判定する。一方、H2がファイル鍵=K2およびディレクトリ鍵=D1に関連付けられている場合は、サーバは、ハンドルH1およびとH2に関連付けられたディレクトリ鍵が異なるので、リースを失効しなければならないと判定する。
リース保持者がディレクトリ・メタデータに対する修正を行ったものであると判定した場合は、フローは動作618に移り、ファイル・システムを更新して修正されたディレクトリ・メタデータを反映する。次いでフロー600は608で終了する。
動作616で、要求がリース保持者からのものでないと判定した場合は、フローは判定620に移り、要求された修正が、別のクライアントに与えたリースと不整合であるかどうかを判定する。当該要求が不整合でない場合は、フローは動作618に移り、608で終了する。
判定620で、要求がリースと不整合であると判定した場合は、フローは動作622に移り、ディレクトリ・メタデータに関するリースを現在保持しているクライアントに失効通知を送信する。当該失効は、当該ディレクトリ・メタデータにアクセスする全てのクライアントの間でディレクトリ・メタデータの一貫性を保持するために送信されるものである。動作624で失効通知の受理を受け取り、その後、フローは動作618に移り608で終了する。
図7は一般的なコンピュータ・システム700を示す。当該コンピュータ・システム700を使用して本明細書に記載の諸実施形態を実装することができる。コンピュータ・システム700はコンピューティング環境の一例にすぎず、コンピュータおよびネットワーク・アーキテクチャの使用範囲または機能範囲に関して何ら限定を示唆しようとするものではない。また、コンピュータ・システム700が、例示的なコンピュータ・システム700で示したコンポーネントのどの1つまたは組合せに関してどのような依存性または要件も有すると解するべきではない。幾つかの実施形態では、システム700を、図1および図2に関して上述したクライアントおよび/またはサーバとして使用してもよい。
その最も基本的な構成では、システム700は一般に少なくとも1つの処理装置702およびメモリ704を備える。コンピューティング装置の厳密な構成および種類に応じて、メモリ704は(RAMのような)揮発性、(ROM、フラッシュ・メモリ等のような)不揮発性、またはこれらの何らかの組合せであってもよい。この最も基本的な構成を図7で点線706により示す。システム・メモリ704は、システム700上で実行されているアプリケーションを格納する。例えば、メモリ704は図2に関して上述したレポート検索テーブル214を格納してもよい。
本明細書で使用するコンピュータ読取可能媒体という用語には、コンピュータ記憶媒体を含めてもよい。コンピュータ記憶媒体には、コンピュータ読取可能命令、データ構造、プログラム・モジュール、または他のデータのような情報を記憶するための任意の方法または技術で実装した、揮発性および不揮発性、取外し可能および取外し不能な媒体を含めてもよい。システム・メモリ704、取外し可能記憶装置および取外し不能記憶装置708は全て、コンピュータ記憶媒体の例である(即ち、メモリ記憶装置)。コンピュータ記憶媒体には、RAM、ROM、EEPROM(electrically erasable read−only memory)、フラッシュ・メモリもしくは他のメモリ技術、CD−ROM、DVD(digital versatile disk)もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または情報の格納に使用できコンピューティング装置700がアクセス可能な他の任意の媒体を含めてもよいが、これらに限らない。任意のかかるコンピュータ記憶媒体が装置700の一部であってもよい。コンピューティング装置700はまた、キーボード、マウス、ペン、音声入力装置、タッチ入力装置等のような入力装置(複数可)714を有してもよい。ディスプレイ、スピーカ、プリンタ等のような出力装置(複数可)716を含めてもよい。上述の装置は例であり、他のものを使用してもよい。
本明細書で使用するコンピュータ読取可能媒体という用語には、通信媒体を含めてもよい。通信媒体を、コンピュータ読取可能命令、データ構造、プログラム・モジュール、または、搬送波もしくは他の伝送機構のような変調データ信号における他のデータで具体化してもよく、また通信媒体には任意の情報伝達媒体を含む。「変調データ信号」という用語は、1つまたは複数の特性集合を有するかまたは当該信号内の情報をエンコードするように変化した信号を言い表すことができる。限定ではなく例として、通信媒体には、有線ネットワークまたは直接配線接続のような有線媒体、ならびに、音響、RF(radio frequency)、赤外線、および他の無線媒体のような無線媒体を含んでもよい。
本明細書では「一実施形態」または「実施形態」と言及するが、これは、説明した具体的な機能、構造、または特徴が少なくとも1つの実施形態に含まれることを意味する。したがって、かかる語句を使用することで、単に1つの実施形態より多くの実施形態に言及することができる。さらに、説明した機能、構造、または特徴を1つまたは複数の実施形態において任意の適切な方法で組み合わせてもよい。
しかし、本発明を1つまたは複数の具体的な詳細なしに、または、他の方法、リソース、材料等を用いて実施してもよいことは当業者には理解されよう。他の事例では、公知の構造、リソース、または動作については詳細に図示も説明もしていないが、これは本発明の諸態様を不明瞭にするのを避けるためにすぎない。
例示的な諸実施形態および適用事例を例示および説明したが、本発明は上述の厳密な構成およびリソースに限定されないことは理解されよう。特許請求する発明の範囲から逸脱しない当業者に明らかな様々な修正、変更、および変形を、本明細書で開示した方法およびシステムの配置構成、動作、および詳細において行ってもよい。

Claims (10)

  1. ディレクトリ・メタデータをローカルにキャッシュするコンピュータが実行する方法であって、
    ディレクトリ・メタデータに対する第1の要求をアプリケーションから受け取るステップと、
    前記第1の要求を受け取ったことに応答して、前記ディレクトリ・メタデータに対する第2の要求をサーバに送信するステップであって、前記第2の要求が、前記ディレクトリ・メタデータを含むディレクトリへのハンドルに対する要求を含み、さらにディレクトリ・メタデータをローカルにキャッシュするためのリースに対する要求をも含み、前記リースが、前記サーバが前記リースを失効するまでディレクトリ・メタデータのローカルなキャッシュを可能とする、ステップと、
    第1の応答を前記サーバから受け取るステップであって、前記第1の応答が、前記ディレクトリ・メタデータおよび前記リースに対する前記要求の承認の指示を含む、ステップと、
    前記ディレクトリ・メタデータをローカルのキャッシュに格納するステップと、
    前記ディレクトリ・メタデータを前記アプリケーションに提供するステップと
    を含むことを特徴とする方法。
  2. 前記ディレクトリ・メタデータに対する第3の要求を第2のアプリケーションから受け取るステップと、
    前記第3の要求を受け取ったことに応答して、前記ディレクトリ・メタデータを前記ローカルのキャッシュから提供するステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  3. 前記第1の要求を受け取ったことに応答して、第1のディレクトリに関連付けられた第1のディレクトリ鍵、および前記第1のディレクトリを含む第2のディレクトリに関連付けられた第2のディレクトリ鍵を生成するステップと、
    前記第1のディレクトリ鍵および前記第2のディレクトリ鍵を、前記サーバに送信される前記第2の要求に含めるステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  4. 前記第2のディレクトリ内に格納されたファイルを修正するための第3の要求を第2のアプリケーションから受け取るステップと、
    前記第3の要求を受け取ったことに応答して、
    前記ファイルに関連付けられたファイル鍵を生成するステップと、
    前記第3の要求からのデータ、前記ファイルに関連付けられた前記ファイル鍵、および前記第2のディレクトリ鍵とともに、第4の要求を前記サーバに送信するステップと、
    をさらに含むことを特徴とする請求項3に記載の方法。
  5. 前記サーバから、前記リースの失効の通知を受け取るステップと、
    前記失効の通知を受け取ったことに応答して、
    前記失効の通知の受け取りの受理を送信するステップと、
    前記ディレクトリ・メタデータを前記ローカルのキャッシュから除去するステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  6. ディレクトリ・メタデータをローカルにキャッシュできるように構成されたコンピュータ・システムであって、
    少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサにより実行されたときに、
    サーバにおいてディレクトリ・メタデータに対する第1の要求を第1のクライアントから受け取るステップであって、前記第1の要求が、前記ディレクトリ・メタデータを含むディレクトリへのハンドルに対する要求を含み、さらにディレクトリ・メタデータをローカルにキャッシュするためのリースに対する要求をも含み、前記リースが、前記サーバが前記リースを失効するまでディレクトリ・メタデータのローカルなキャッシュを可能とする、ステップと、
    第1の応答を送信するステップであって、前記第1の応答が、前記ディレクトリ・メタデータおよび前記リースに対する前記要求の承認の指示を含む、ステップと
    を含む方法を実施する実行可能命令を格納したコンピュータ読取可能記憶媒体と、
    を備えることを特徴とするコンピュータ・システム。
  7. 前記方法が、
    第2の要求を受け取るステップと、
    前記第2の要求を第2のクライアントから受け取ったかどうかを判定するステップであって、前記第2の要求が前記ディレクトリ・メタデータを修正するステップと、
    をさらに含むことを特徴とする請求項6に記載のコンピュータ・システム。
  8. 前記判定するステップが、
    前記第2の要求からのディレクトリ鍵を、予め格納されたディレクトリ鍵と比較するステップ
    を含むことを特徴とする請求項7に記載のコンピュータ・システム。
  9. 前記方法が、
    前記第2の要求からの前記ディレクトリ鍵が予め受け取ったディレクトリ鍵と同一でないと判定したことに応答して、失効通知を前記第1のクライアントに送信して前記リースを失効するステップ
    をさらに含むことを特徴とする請求項8に記載のコンピュータ・システム。
  10. 前記方法が、
    前記第1の要求を受け取ったことに応答して、前記ディレクトリに対する前記ハンドルに関連付けられたファイル鍵を生成し、前記ディレクトリの親ディレクトリに関連付けられたディレクトリ鍵を生成するステップと、
    前記ファイル鍵および前記ディレクトリ鍵を、前記サーバに送信される前記第1の応答に含めるステップと
    をさらに含むことを特徴とする請求項6に記載のコンピュータ・システム。
JP2013529194A 2010-09-17 2011-09-06 ディレクトリのリース Active JP5809275B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/885,384 US8589553B2 (en) 2010-09-17 2010-09-17 Directory leasing
US12/885,384 2010-09-17
PCT/US2011/050573 WO2012036938A2 (en) 2010-09-17 2011-09-06 Directory leasing

Publications (3)

Publication Number Publication Date
JP2013538407A true JP2013538407A (ja) 2013-10-10
JP2013538407A5 JP2013538407A5 (ja) 2014-09-18
JP5809275B2 JP5809275B2 (ja) 2015-11-10

Family

ID=45818735

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013529194A Active JP5809275B2 (ja) 2010-09-17 2011-09-06 ディレクトリのリース

Country Status (12)

Country Link
US (3) US8589553B2 (ja)
EP (2) EP3637275B1 (ja)
JP (1) JP5809275B2 (ja)
KR (1) KR101841311B1 (ja)
CN (2) CN102521224B (ja)
AU (1) AU2011302396B2 (ja)
BR (1) BR112013006347A2 (ja)
CA (1) CA2809133A1 (ja)
HK (1) HK1206119A1 (ja)
MX (1) MX2013002933A (ja)
RU (1) RU2596986C2 (ja)
WO (1) WO2012036938A2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8463846B2 (en) * 2010-05-06 2013-06-11 Cdnetworks Co., Ltd. File bundling for cache servers of content delivery networks
US8589553B2 (en) 2010-09-17 2013-11-19 Microsoft Corporation Directory leasing
CN102819570B (zh) * 2012-07-19 2015-09-30 华为技术有限公司 一种数据访问方法、装置及系统
US9171042B1 (en) * 2013-02-25 2015-10-27 Emc Corporation Parallel processing database tree structure
CN103714183B (zh) * 2014-01-10 2017-02-15 浪潮(北京)电子信息产业有限公司 一种元数据租约期限的动态获取方法和系统
US20150234775A1 (en) * 2014-02-14 2015-08-20 Western Digital Technologies, Inc. Enabling file oriented access on storage devices
US10264071B2 (en) * 2014-03-31 2019-04-16 Amazon Technologies, Inc. Session management in distributed storage systems
US10169367B2 (en) * 2014-06-06 2019-01-01 Panzura, Inc. Managing opportunistic locks in a distributed file system
US11144504B1 (en) * 2015-03-31 2021-10-12 EMC IP Holding Company LLC Eliminating redundant file system operations
US11294862B1 (en) 2015-03-31 2022-04-05 EMC IP Holding Company LLC Compounding file system metadata operations via buffering
US11151082B1 (en) * 2015-03-31 2021-10-19 EMC IP Holding Company LLC File system operation cancellation
US9940213B2 (en) * 2015-06-10 2018-04-10 International Business Machines Corporation Integrating external services with a clustered file system
US10742731B2 (en) 2015-06-10 2020-08-11 International Business Machines Corporation Maintaining service configuration consistency across nodes of a clustered file system
KR20170010574A (ko) * 2015-07-20 2017-02-01 삼성전자주식회사 정보처리장치, 영상처리장치 및 그들의 제어방법
CN107516048B (zh) * 2016-06-16 2021-01-08 阿里巴巴集团控股有限公司 一种控制分布式文件系统中文件访问的方法与设备
CN106648903B (zh) * 2017-01-03 2019-03-26 北京百度网讯科技有限公司 调用分布式文件系统的方法和装置
CN107360245B (zh) * 2017-07-28 2020-10-16 苏州浪潮智能科技有限公司 一种基于租约锁机制的本地缓存方法及装置
US11301421B2 (en) * 2018-05-25 2022-04-12 Microsoft Technology Licensing, Llc Scalable multi-tier storage structures and techniques for accessing entries therein
CN109918356B (zh) * 2019-03-15 2023-05-12 深信服科技股份有限公司 文件读取方法、装置、设备及计算机可读存储介质
US11204892B2 (en) 2019-03-21 2021-12-21 Microsoft Technology Licensing, Llc Techniques for snapshotting scalable multitier storage structures
KR102018593B1 (ko) * 2019-05-22 2019-09-06 (주)에이앤티 말림방지 구조를 갖는 박판용 이물질 세정장치
CN112765106B (zh) * 2019-10-21 2024-05-14 伊姆西Ip控股有限责任公司 文件访问方法、电子设备和计算机程序产品
CN111177197B (zh) * 2019-12-26 2023-03-14 北京仁科互动网络技术有限公司 一种缓存处理方法及系统
CN111158597A (zh) * 2019-12-28 2020-05-15 浪潮电子信息产业股份有限公司 一种元数据读取方法、装置及电子设备和存储介质
CN112905556B (zh) * 2021-02-09 2022-11-15 山东英信计算机技术有限公司 分布式系统的目录租约管理方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100185704A1 (en) * 2009-01-15 2010-07-22 Microsoft Corporation Client-based caching of remote files

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897782A (en) 1987-10-19 1990-01-30 International Business Machines Corporation Local cache structure for maintaining updated file characteristics in a file sharing system
US6757705B1 (en) 1998-08-14 2004-06-29 Microsoft Corporation Method and system for client-side caching
US7165096B2 (en) * 2000-12-22 2007-01-16 Data Plow, Inc. Storage area network file system
CA2513503A1 (en) * 2003-01-17 2004-08-12 Tacit Networks, Inc. Method and system for use of storage caching with a distributed file system
US20050091226A1 (en) 2003-10-23 2005-04-28 Yun Lin Persistent caching directory level support
US7363429B2 (en) 2004-01-29 2008-04-22 Toshiba Corporation System and method for caching directory data in a networked computer environment
EP1577776B1 (en) * 2004-03-18 2007-05-02 Alcatel Lucent Method and apparatus for data synchronization in a distributed data base system
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US20080028033A1 (en) 2006-07-28 2008-01-31 Kestrelink Corporation Network directory file stream cache and id lookup
US8370456B2 (en) 2006-09-22 2013-02-05 Microsoft Corporation Intelligent pre-fetching using compound operations
US7996421B2 (en) * 2007-01-03 2011-08-09 International Business Machines Corporation Method, computer program product, and system for coordinating access to locally and remotely exported file systems
US20080192582A1 (en) * 2007-02-14 2008-08-14 Now Is Forever, Llc. Timepiece suggestive of orbital motion
JP5076736B2 (ja) * 2007-08-27 2012-11-21 日本電気株式会社 計算機システム、ストレージ、アクセス制御方法およびアクセス制御用プログラム
US8296420B2 (en) * 2009-09-18 2012-10-23 Hitachi, Ltd. Method and apparatus for constructing a DHT-based global namespace
US8589553B2 (en) 2010-09-17 2013-11-19 Microsoft Corporation Directory leasing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100185704A1 (en) * 2009-01-15 2010-07-22 Microsoft Corporation Client-based caching of remote files

Also Published As

Publication number Publication date
AU2011302396A1 (en) 2013-03-21
US8589553B2 (en) 2013-11-19
EP2616950A4 (en) 2017-06-07
JP5809275B2 (ja) 2015-11-10
US9292539B2 (en) 2016-03-22
HK1206119A1 (en) 2015-12-31
AU2011302396B2 (en) 2014-07-10
EP3637275B1 (en) 2021-03-31
CN102521224A (zh) 2012-06-27
US20150149505A1 (en) 2015-05-28
US20140040332A1 (en) 2014-02-06
EP2616950A2 (en) 2013-07-24
EP3637275A1 (en) 2020-04-15
EP2616950B1 (en) 2019-12-25
CN104268242A (zh) 2015-01-07
WO2012036938A3 (en) 2012-07-05
CN104268242B (zh) 2018-04-10
US9092450B2 (en) 2015-07-28
US20120072596A1 (en) 2012-03-22
MX2013002933A (es) 2013-06-28
RU2596986C2 (ru) 2016-09-10
KR20130107280A (ko) 2013-10-01
KR101841311B1 (ko) 2018-03-22
CN102521224B (zh) 2014-10-29
WO2012036938A2 (en) 2012-03-22
CA2809133A1 (en) 2012-03-22
RU2013111824A (ru) 2014-09-20
BR112013006347A2 (pt) 2016-06-28

Similar Documents

Publication Publication Date Title
JP5809275B2 (ja) ディレクトリのリース
US11388251B2 (en) Providing access to managed content
JP6955108B2 (ja) コンテンツアイテムを同期させるためのコミットプロトコル
US9977811B2 (en) Presenting availability statuses of synchronized objects
US8965862B2 (en) Directory oplock
KR20080081276A (ko) 디스크 기반 캐시
US20150106468A1 (en) Storage system and data access method
WO2009082938A1 (fr) Procédé, système et appareil de contrôle d'affaire
JP4247975B2 (ja) データ管理方法、データ管理システム、およびそのためのプログラムならびに記録媒体
KR20170125665A (ko) M2M/IoT 플랫폼에서의 시맨틱 정보 관리 방법
JP2006185463A (ja) ゲートウェイ装置

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130712

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140731

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140731

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150421

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150717

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150910

R150 Certificate of patent or registration of utility model

Ref document number: 5809275

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