JP2014524610A - トークン・ベースのファイル動作 - Google Patents

トークン・ベースのファイル動作 Download PDF

Info

Publication number
JP2014524610A
JP2014524610A JP2014525031A JP2014525031A JP2014524610A JP 2014524610 A JP2014524610 A JP 2014524610A JP 2014525031 A JP2014525031 A JP 2014525031A JP 2014525031 A JP2014525031 A JP 2014525031A JP 2014524610 A JP2014524610 A JP 2014524610A
Authority
JP
Japan
Prior art keywords
file
data
request
response
token
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.)
Withdrawn
Application number
JP2014525031A
Other languages
English (en)
Other versions
JP2014524610A5 (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 JP2014524610A publication Critical patent/JP2014524610A/ja
Publication of JP2014524610A5 publication Critical patent/JP2014524610A5/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

トークン・ベース・ファイル動作を可能にする実施形態について記載する。クライアントは、ファイル・アクセス・プロトコルにしたがってフォーマットされた特殊なオフロード・ファイル動作を要求することができる。このファイル動作は、オフロード・リード動作でもオフロード・ライト動作でもよい。オフロード・リード動作では、クライアントは、格納されているファイルからデーターまたはその一部を論理的に読み出すことを要求する。応答して、ファイル・サーバーは、論理的に読み出されたデーターを表すトークンを含む応答を供給する。実施形態の中には、何らかの理由でデーターの全てを表すトークンを供給することができない場合、ファイル・サーバーが要求されたデーターの全て未満を表すトークンと共に応答を戻す場合もある。次いで、トークンは、後続のオフロード・ライト動作において、クライアントによって使用することができる。実施形態では、トークンは、サーバーおよびクライアントに跨がって安全にそして確実に使用することができる不変のデーターを表す。
【選択図】図1

Description

従来技術
[0001] 大量のデーターをコピーする従前の方法では、データーはソース・ファイルからローカルRAMに読み込まれ、次いで同じバイトがRAMから逆に宛先ファイルに書き込まれる。
このプロセスでは、コピーの完了にはデーターがローカルRAMに入ることさえも本質的に必要でない場合でも、データーがローカルRAMを含む経路を進むことが必要になる。最終的なソースと最終的な宛先との間でデーターが辿ることができる経路があり、この経路が信頼があってこちらの方が速い場合、ローカルRAMを通る回り道は不要になる。この問題は、信頼があってより速い経路とローカルRAM経由の経路との間における速度差が大きいと一層深刻になる。現在、サーバー・メッセージ・ブロック(SMB)ファイル・サーバーのような、一部のファイル・サーバーは、ソース・ファイルの範囲を宛先ファイルの範囲にコピーすることを、クライアントに許可している。しかしながら、同じファイル・サーバーにおいて開いているファイル間でデーターをコピーするときの限度というような、複数の制限がある。また、SMBファイル・サーバーは、ソースおよび宛先範囲双方を指定する1つのコマンドを発行することしか、クライアントに許可しない。多くの場合、コピーを行うにはリードおよびライトを別々に使用するようにクライアント・コード構造が設定されるが、SMBファイル・サーバーがデーターの範囲をコピーするために設ける現在の方法とは調和しない。
[0002] 実施形態が作られたのは、これらおよびその他の考察に関してである。また、比較的具体的な問題について説明したが、実施形態は、背景において特定した具体的な問題を解決することに限定されるのではないことは言うまでもない。
[0003] この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断するときに補助として用いられることを意図するのでもない。
[0004] トーク・ベースのファイル動作を可能にする実施形態について記載する。この実施形態は、クライアントがファイル・サーバーとのセッションを作ることを考慮に入れている。セッションは、任意のファイル・アクセス・プロトコルを使用して作ることができ、一例にはサーバー・メッセージ・ブロック(SMB)プロトコルが含まれる。セッションが作られた後、クライアントはこのファイル・アクセス・プロトコルにしたがってフォーマットされた特殊なオフロード・ファイル動作を要求することができる。このファイル動作は、リード動作でもライト動作でもよい。オフロード・リード動作では、クライアントは、ファイル・サーバーにアクセス可能なファイル記憶システムに格納されているファイルからファイル・データーを読み出すことを要求する。その代わりに、ファイル・サーバーは、そのデーター・ファイルを表すトークンを含む応答を供給する。実施形態の中には、何らかの理由でファイル・データーの全てを表すトークンを供給することができない場合、ファイル・サーバーがファイル・データーの全て未満を表すトークンと共に応答を戻す場合もある。次いで、トークンは、後続のオフロード・ライト動作、または他の関連動作(例えば、必要になった場合、後にトークンによって表されるデーターを得る)において、クライアントによって使用することができる。実施形態では、トークンは、サーバーおよびクライアントに跨がって安全にそして確実に使用することができる不変のデーターを表す。
[0005] 実施形態は、コンピューター・プロセス、計算システム、あるいはコンピューター・プログラム製品またはコンピューター読み取り可能媒体のような製造品目として実現することができる。コンピューター・プログラム製品は、コンピューター・システムによって読み取ることができ、コンピューター・プロセスを実行するための命令のコンピューター・プログラムをエンコードしたコンピューター記憶媒体とすることができる。また、コンピューター・プログラム製品は、計算システムによって読み取り可能であり、コンピューター・プロセスを実行するための命令のコンピューター・プログラムをエンコードした、搬送波上の伝搬信号であることもできる。
[0006] 以下の図を参照して、非限定的かつ非網羅的な実施形態について説明する。
図1は、実施形態を実現するために使用することができるシステムを示す。 図2は、実施形態にしたがって、ファイル・アクセス・プロトコルを使用するトークン・ベース・ファイル動作に関与するクライアントおよびサーバーのブロック図を示す。 図3は、実施形態にしたがって、オフロード・ファイル動作を処理する動作フローを示す。 図4は、実施形態にしたがってオフロード・リード要求を処理する動作フローを示す。 図5は、実施形態にしたがってオフロード・ライト要求を処理する動作フローを示す。 図6は、実施形態にしたがってオフロード・ファイル動作を要求する動作フローを示す。 図7は、実施形態を実現するのに適した計算環境のブロック図である。
[0014] 添付図面を参照して種々の実施形態について更に詳しく説明する。添付図面は、本明細書の一部をなし、具体的な実施形態例を示す。しかしながら、実施形態は、多くの異なる形態でも実現することができ、本明細書において示される実施形態に限定されるように解釈してはならない。むしろ、本開示が周到で完全であり、実施形態の範囲を全て当業者に伝えるように、これらの実施形態が提示されるのである。実施形態は、方法、システム、またはデバイスとして実施することもできる。したがって、実施形態は、ハードウェアの実現例、全体的にソフトウェアの実現例、またはソフトウェアおよびハードウェアの形態を組み合わせた実現例という形態をなすことができる。以下の詳細な説明は、したがって、限定的な意味で捕らえてはならない。
[0015] 図1は、実施形態を実現するために使用することができるシステム100を示す。システム100は、クライアント102および104ならびにサーバー106を含む。クライアント102および104は、ネットワーク108を介して、サーバー106と通信する。サーバー106は、クライアント102および104におけるアプリケーションによってアクセスされる情報を格納する。クライアント102および104は、クライアント102および104における情報にアクセスするために、サーバー106とのセッションを作る。図1ではサーバー106と通信するものとしてクライアント102および104のみが示されているが、他の実施形態では、2つよりも多いクライアントがサーバー106からの情報にアクセスすることもできる。
[0016] 実施形態では、クライアント102および104におけるアプリケーションが、アプリケーションに対して透過的なファイル・システムに、ファイル情報を要求する。ファイル情報は、サーバー106におけるファイル・システムから引き出される。一実施形態では、サーバー106におけるこのようなファイル・システムは、リモート・ファイル・システムである。他の実施形態では、サーバー106におけるファイル・システムは分散型ファイル・システムである。本明細書において開示する実施形態にしたがって、本開示の主旨および範囲から逸脱することなく、複数のタイプのファイル・システムを使用することができる。更に、図示されていないが、実施形態の中には、1つのサーバー106の代わりに、サーバーが、例えば、サーバー・クラスターの一部である複数のサーバーの内の1つであってもよい場合もある。他の実施形態では、サーバーは、サーバー・クラスターの一部ではない複数のサーバーの内の1つでもよい。このような実施形態における複数のファイル・サーバーは、クライアント102および104に対して、冗長性および情報、例えば、ファイル情報の高い可用性を提供する。
[0017] 一実施形態では、クライアント102および104は、サーバー106におけるリモート・ファイル・システムに格納されているファイルに対して実行される複数のファイル動作を送ることができる。クライアント102および104は、ファイルに対して実行されるファイル動作の要求をフォーマットするために、ファイル・アクセス・プロトコルを使用する。このファイル・アクセス・プロトコルは、ネットワーク・ファイル・システム(NFS)、またはサーバー・メッセージ・ブロック(SMB)プロトコルの一バージョンというような、任意のしかるべきプロトコルであればよい。実施形態によれば、クライアントは、正規のリードおよびライト・ファイル動作を送ることに加えて、オフロード・リード動作およびオフロード・ライト動作も要求することができる。これらは、トークン・ベース動作である。以下で更に詳しく説明するが、オフロード・ファイル動作は、実際のデーターをネットワークを介してクライアント102または104のいずれかにおけるローカルRAMに送る(transfer)ことを必要とせずに、大量のデーターをクライアント102および104によって動かすことを可能にする。
[0018] 一実施形態を例示すると、クライアント102がサーバー106とのセッションを作る要求を送ることができる。例えば、クライアント102は、サーバー・メッセージ・ブロック(SMB)プロトコルの一バージョンを使用して、サーバー106に格納されているファイル・システムにアクセスするために、サーバー106とのセッションを作ることができる。セッションを作るには、クライアント102とサーバー106との間において送信される複数のネゴシエート要求および応答の交換が必要になる場合がある。SMBプロトコルのバージョンでは、具体的に定められたネゴシエート・パケットがあり、これらを使用して、セッションの間に使用されるプロトコルの正確なバージョンをネゴシエートし、更にクライアント、例えば、102およびサーバー、例えば、106の双方の能力を互いに通知する(advertise)。一実施形態では、ネゴシエート・パケットは、サーバー106がトークン・ベース・ファイル動作、即ち、オフロード・リードおよびオフロード・ライト・コマンドを扱うことができることの指示を含むこともできる。これによって、クライアントは、所望であれば、オフロード・ファイル動作をサーバーに要求してもよいことを知ることができる。
[0019] 以上の例を続けると、セッションが作られた後、クライアント102は、サーバー106におけるファイル・システムにおいてファイルを開くために、SMBプロトコルにしたがってフォーマットされたメッセージを送ることができる。サーバーは、ファイル開放のためのハンドルで応答することができる。次いで、クライアント102は、SMBプロトコルにしたがってフォーマットされたオフロード・リード動作を要求し、ファイルからのファイル・データーを要求することができる。一実施形態では、クライアントは、オフロード・リード動作においてファイルの一部からのデーターを要求する。オフロード・リード動作要求は、トークン・ベース・リード動作である。
[0020] クライアント102からの要求に応答して、サーバー106は、SMBプロトコルにしたがってフォーマットされた応答を、クライアント102が要求したファイル・データーを表すトークンと共に送る。実施形態の中には、サーバー106が、トークンを生成し、同じファイル・データーを要求しているかもしれないクライアント104のような、他のクライアントからの任意の要求にわたって、トークンがファイル・データーを一貫して表すことを保証する役割を担うことができる場合もある。他の実施形態では、ファイル・サーバーはクライアントからの任意の要求を、基礎ファイル記憶システムに渡すのでもよい。これらの実施形態では、基礎ファイル記憶システムが、クライアント102によって要求されたファイル・データーを表すトークンを生成する役割を担う。いずれの実施形態でも、サーバー106は、クライアント102に対する応答をトークンと共に送る。トークンを生成するとき、実施形態は、例えば、トークンを作るために使用されるソース・ファイルの範囲が連続的でない場合でも、トークンが作られてもよいことを考慮に入れている。このような実施形態では、このようなソース範囲からのデーターは、論理的に繋がれ、トークンによって表される1つの論理範囲のデーターとなる。実施形態の中には、実現例が内部的にトークンを具体的なソース範囲と関連付けるとよい場合もあり、このようなソース範囲は互いに連続的でなくてもよい。
[0021] トークンは、不変のデーター、即ち、クライアント102が要求するファイル・データーを表す。したがって、クライアント102は、サーバー106によって戻されたトークンを使用して、他のファイル動作を実行することができる。例えば、後の時点において、クライアント102は、トークンを使用してデーターを他のファイルに書き込むことができる。この例では、クライアント102は、SMBプロトコルにしたがってフォーマットされたオフロード・ライト動作を要求することができ、このオフロード・ライト動作もトークン・ベース・ファイル動作である。このオフロード・ライト動作は、クライアント102に以前に供給されたトークンを含むことができる。オフロード・ライト動作は、トークンによって表されるファイル・データーを、サーバー106における他のファイルに書き込むことを要求することができる。この要求を受けたことに応答して、サーバー106は、一実施形態では、次に要求を処理して、トークンによって表されるファイル・データーをサーバー106における他のファイルに書き込む。他の実施形態では、要求を受けたことに応答して、サーバー106は最初に受信したトークンの有効性を判断し、トークンが有効である場合、次にトークンによって表されるファイル・データーを、サーバー106における他のファイルに書き込む。先に注記したように、トークンが基礎ファイル記憶システムまたはそれよりも下位のレイヤー(1つまたは複数)によって生成される実施形態では、サーバー106は単にオフロード・ライト要求を基礎ファイル記憶システムに渡すだけであり、次いで基礎ファイル記憶システムがこの要求を処理して、ファイル・データーを他のファイルに書き込む。サーバー106は、次に、応答をクライアント102に送り、オフロード・ライトが成功であったか否か示す。「ファイル」データーに言及するが、他の実施形態は、トークンが任意のタイプのデーターを表すことを考慮に入れている。例えば、実施形態は、トークンが、ファイル、ボリューム、ディスク、ボリューム・スナップショット、ディスク・スナップショット、ブロブ・ストア等のような、任意の記憶コンテナから得られたものであることを考慮に入れている。「ファイル・データー」という用語は、本明細書では、例示の目的に限って使用されているのであり、限定を意図するのではない。更に、以上で説明した実施形態は、オフロード・ライト動作が、トークンによって表されるファイル・データーをサーバー106における他のファイルに書き込むことを要求することを考慮に入れているが、他の実施形態は、オフロード・ライト動作が、トークンによって表されるファイル・データーの一部をサーバー106における他のファイルに書き込むことを要求することを考慮に入れている。
[0022] 加えて、以上で説明した実施形態は、オフロード・ライト動作が、以前にクライアント102に供給されたトークンを含むことを考慮に入れているが、他の実施形態は、クライアント102が、周知のトークンを、オフロード・ライト動作でのトークンとして使用することを考慮に入れている。例えば、ゼロ・トークンのような周知のトークンが、以前の対応するオフロード・リードが全くなくても、データー(ゼロのような)を書き込むために使用されてもよい。
[0023] 実施形態の中には、ファイル・サーバー106がクライアントによって要求されたファイル・データーの全てに対してトークを作ることができない場合もある。これが起こり得るのは、例えば、クライアント104のような他のクライアントが、クライアント102が要求したファイル・データーのファイルのある部分にロックをかけた場合である。これらの実施形態では、サーバー106は短縮応答(truncated response)を送ることもできる。即ち、応答は、クライアント102が要求したファイル・データーの一部のみを表すトークンを含む。つまり、実施形態では、この応答が示すのは、トークンが、オフロード・リード要求において要求された第1データーの全て未満を表すということである。実施形態の中には、このトークンが不連続なデーター範囲を表すことができる場合もある。しかしながら、他の実施形態では、トークンは連続するデーター範囲を表すことができるが、オフロード・リード要求においてクライアント102が要求したファイル・データーよりも少ない場合もある。これらの実施形態では、サーバーの応答は、短縮応答において送られたトークンによって表されるファイル・データーの部分の指示を含む。
[0024] 実施形態の中には短縮オフロード・リード応答を考慮に入れているものもあるが、本開示の実施形態は短縮オフロード・ライトも考慮に入れている。先に説明したように、オフロード・ライト動作は、関連するトークンによって表されるデーターが、サーバー、例えば、サーバー106における他のファイルに書き込まれることを要求することができる。この要求を受けたことに応答して、サーバー106は次にこの要求を処理して、トークンによって表されるファイル・データーをサーバー106における他のファイルに書き込む。実施形態では、サーバー106は、トークンによって表されるデーターの全てを他のファイルに書き込むことができない。その結果、実施形態では、オフロード・ライトは短縮される場合があり、「書き込み長」は、例えば、書き込むことを要求された長さ未満になる。例えば、サイズの制約のために、トークンによって表されるデーターの全てを他のファイルに書き込む能力が制限される場合がある。他の実施形態では、ファイルの一部に書き込みのロックがかけられていると、このファイルの部分が書き込まれることが妨げられるであろう。また、処理エラー、または他のタイプのエラーも、トークンによって表されるデーターの一部が他のファイルに書き込まれない原因になり得る。更に、トークンが部分的に転化されていること、または部分的に無効であることもあり、その場合サーバー106はこのデーターの転化した部分/無効の部分を他のファイルに首尾良く書き込むことはできない。本明細書に開示される実施形態によれば、本開示の主旨や範囲から逸脱することなく、他の理由でも、トークンによって表されるデーターの全てが他のファイルに書き込まれることが妨げられることがある。短縮オフロード・ライトを必要とする実施形態では、短縮オフロード・ライト応答をサーバー106からクライアント102に送り、例えば、データーの一部が他のファイルに書き込まれなかったことを示すことができる。このような指示は、実施形態では、例えば、フラグまたは他のインディケーターの使用によって行うことができる。更に、実施形態では、短縮オフロード・ライト応答は、実際に書き込まれたデーター量を示す。
[0025] 以上の説明は、図1に示した実施形態がどのように動作することができるかについての一例に過ぎない。以下で更に詳しく説明するように、実施形態は異なるステップまたは動作を伴うこともできる。これらは、任意の適したソフトウェアまたはハードウェア・コンポーネントを使用して実現することができる。
[0026] これより図2に移ると、図2は、クライアント202、クライアント204、サーバー206、およびサーバー208を含むソフトウェア環境200のブロック図を示す。また、ファイル情報が格納されるファイル・ストレージ210も示されている。
[0027] 図2に示すように、クライアント202およびクライアント204は、各々、ファイル情報を要求することができるアプリケーションを含む。このアプリケーションは、例えば、ワープロ・アプリケーション、表計算アプリケーション、ブラウザー・アプリケーション、またはファイルに対するアクセスを要求する任意の他のアプリケーションとすることができる。図2に示す実施形態では、ファイルは、ファイル・ストレージ210内部に格納されているファイル・システムに配置される。図2は、本明細書において開示する一実施形態にしたがって、サーバー206および208に共有ストレージ能力を与えるファイル・ストレージ210を示すが、他の実施形態は他の記憶手段を有する。例えば、サーバー206およびサーバー208は、各々、それら自体の記憶手段を有することもでき、この記憶手段は、実施形態にしたがって、着脱型(detached)でも据え付け型(attached)でもよい。更に他の実施形態では、サーバー206およびサーバー208は、各々、それら自体の記憶手段を有し、ファイル・ストレージ210の使用によって記憶能力を共有させることもできる。本明細書において開示する実施形態によれば、本開示の主旨および範囲から逸脱することなく、複数のタイプのストレージを使用することができる。更に、クライアント202およびクライアント204は、各々、アプリケーションからのファイル要求をファイル・サーバーにリディレクトするリディレクターも含み、ファイル・サーバーはリモート・ファイル・システムへのアクセスを与える。リディレクターは、ファイル・アクセス・プロトコルを使用して、ファイル・サーバーと通信する。実施形態の中には、ファイル・アクセス・プロトコルがNFSまたはSMBプロトコルの一バージョンであるとよい場合がある。例示の目的に限って、クライアント202およびクライアント204におけるリディレクターが、SMB2のような、SMBプロトコルの一バージョンを使用してファイル・サーバーと通信することを仮定して、図2について説明する。しかしながら、実施形態はSMBプロトコルの使用に限定されるのではない。
[0028] 図2では、サーバー206および208は、各々がファイル・サーバーを含むように示されている。先に注記したように、ファイル・サーバーは、クライアント202およびクライアント204におけるリディレクターと通信するために、SMBプロトコルの一バージョンを使用することができる。また、サーバー206および208の各々は、ファイル・データーを表すトークンを生成するトークン生成モジュールも含む。加えて、ファイル・ストレージ210も、ファイル・データーを表すトークンを生成するトークン生成モジュールを含む。
[0029] クライアントとサーバーとの間においてセッションを作るためのSMBプロトコルの使用は、クライアント202におけるリディレクターのようなリディレクターがネゴシエート要求をサーバー206のようなファイル・サーバーに送ることから開始する。リディレクターおよびファイル・サーバーは、セッションに使用されるSMBのバージョンをネゴシエートするために、ネゴシエート・パケットを交換する。加えて、このネゴシエーションの間に、能力(capabilities)も交換することができる。一実施形態では、サーバー206は、ファイル・サーバーからクライアントに送られるネゴシエート応答パケット内に能力フラグを含み、ファイル・サーバーがオフロード・ファイル動作の使用をサポートすることを、クライアントに示すことができる。他の実施形態では、クライアント202およびサーバー206は、単にSMBプロトコルのバージョンをネゴシエートすることもでき、このとき、当該バージョンがオフロード・ファイル動作の使用に対するサポートを含むことを理解している。更に他の実施形態では、オフロード・ファイル動作が試されるときに、プロトコルの一バージョンがオフロード・ファイル動作をサポートするという判断が行われる。例えば、クライアント202がオフロード・リード(またはオフロード・ライト)動作を要求するとしてもよい。サーバー206がオフロード・ファイル動作をサポートする場合、サーバー206はこの要求の処理を進める。サーバー206がオフロード・ファイル動作をサポートしない場合、サーバー206は、要求されたオフロード・ファイル動作を実行できないことを示す応答をクライアント202に送る。例えば、一実施形態では、サーバー206がオフロード・ファイル動作をサポートしない場合、サーバー206は、エラー・メッセージおよび/またはこれを示すフラグでクライアント202に応答する。
[0030] 一旦ネゴシエーションが完了すると、クライアント202におけるリディレクターおよびファイル・サーバー206はセッションを作る。クライアント・リディレクターは、次いで、ファイル・アクセス要求をファイル・サーバーに送ることができる。一実施形態では、クライアント202におけるリディレクターは、ファイルにおいて開放を要求する。サーバー206は、この開放に対するハンドルを含む応答を供給する。次いで、クライアント202は、このハンドルを使用して、オフロード・リード動作を要求することができる。実施形態では、オフロード・リード動作は、SMBプロトコルにしたがってフォーマットされる。実施形態の中には、オフロード・リードおよびオフロード・ライト動作が、SMBプロトコル接続を使用して送られることもあり、他のファイル・システム制御コマンド(FSCTL)と同様に、コマンドをSMB2入力/出力制御(IOCTL)要求内にカプセル化する。以下に、実施形態においてオフロード・リード動作を要求するために使用することができる構造の一例を示す。
Figure 2014524610
[0031] 先に示したように、オフロード・リード動作を要求するためにクライアントによって使用される構造は、複数のフィールドを含むことができる。実施形態では、サーバーに対する存続時間(time to live)示唆(suggestion)を含むことができる。言い換えると、このフィールドは、サーバーが送るトークンに対して示唆される寿命を示すことができる。また、この構造は、クライアントが要求するファイル・データーのファイル・オフセットおよびコピー長も含む。
[0032] この要求に応答して、サーバー206は応答を返送する。以下に、オフロード・リード動作に対して応答するために使用することができる構造の一例を示す。
Figure 2014524610
[0033] 先に示したように、この応答は、実施形態では、クライアント202が要求したファイル・データーを表すトークンを含む。また、このトークンは、実施形態では、当該トークンによって表されるファイル・データーの長さも含む。
[0034] 実施形態の中には、サーバー206が、オフロード・リード要求に対して、失敗、即ち、このリード要求が十分に処理されなかったことの指示で応答することができる場合がある。以下に、追加情報をクライアントに示すためにオフロード・リード応答においてサーバーによって設定することができる3つのフラグを示す。
Figure 2014524610
[0035] 以上に示す2番目のフラグは、ファイルが小さすぎたために要求が失敗したことを示す。小さなファイルに対するファイル・データー・ペイロードが、別個のクラスターに格納されるのではなく、直接ファイル・レコードに格納されるという状況がある可能性がある。このようなファイルに対しては、対応する小さなオフロード・リードから得られる効率は殆どないので、このようなファイルに対する小さなオフロード・リードを扱うのではなく、ソース・ファイル・システムは、オフロード・リードをやり過ごす(fail)ことができ、応答は、先に定められた2番目のフラグを含むことができる。このフラグは、ファイル・データーが小さすぎるために要求が失敗したことを示す。先に定められた最初のフラグは、オフロード・リード応答によって示される転送長(transfer length)を超える残りのデーターは、全てゼロを含むことを示す。最後に、3番目のフラグは、サーバーが、オフロード・リード要求によって示される転送長を超えるオフロード・リード要求は成功しないと判断した状況において使用することができる。3番目のフラグは、クライアントが要求するデーターの内、現在のオフロード・リード応答によって示される範囲を超える分に対して、サーバーがトークンを供給できないことを示す。図示されてないが、オフロード・リード応答は、戻される一部(sub-portion)が不連続データー(単にオフセット0からの連続バイト・カウントの代わりに)を表すことの指示というような、情報を提供することもできる。実施形態では、オフロード・リード要求は、オフロード・リードが成功することができる次の後続ソース・オフセットに関するヒントも含むことができる。以上で示した3つのフラグは当該フラグに対して数値を含むが、これらの数値は例示の目的に限って提供されたに過ぎない。他の数値または一般的な値も、実施形態にしたがって、本開示の主旨および範囲から逸脱することなく、使用することができる。
[0036] 一旦クライアント202が、以前のオフロード・リード要求によってまたは何らかの他の手段によって、トークンを受信したなら、クライアント202は、オフロード・ライト要求をサーバー206に発行することができる。以下に、実施形態においてクライアントがオフロード・ライト要求を送るために使用することができる構造の一例を示す。
Figure 2014524610
[0037] 以上の例において示したように、オフロード・ライトの構造は、コピーする宛先ファイルのオフセット、コピーするデーターの長さ、およびトークンによって表される、データー内においてコピーを開始するオフセットを含む。また、トークンも含まれ、サーバーまたは他の手段によって受信されたのでもよい。
[0038] オフロード・ライト要求に応答して、サーバー206はオフロード・ライト要求を発行する。オフロード・ライト応答においてサーバー206によって使用されるための構造の一例を以下に示す。
Figure 2014524610
[0039] 実施形態の中には、サーバー206がオフロード・ライト要求に失敗で応答することができる場合もある。例えば、オフロード・ライト動作が失敗する可能性があるのは、要求されたファイルが小さいファイルである、例えば、定められたサイズ閾値未満であるときである。以下に、ファイル情報が小さすぎたために要求が失敗したことを示すために、オフロード・ライト応答においてサーバーによって設定することができるフラグの例を示す。先に注記したように、小さいファイルは、大きいファイルとは異なる方法でそのデーターを格納する場合があり、このような小さなファイルに対して発行されたオフロード要求は、やり過ごす方が適していることもあり得る。何故なら、実際のファイル・データーの代わりにトークンを使用することから殆ど効率が得られないからである。他の実施形態では、オフロード・ライト動作が失敗する可能性があるのは、オフロード・ライトの受信先とデーター・ソースとの間におけるリンクが遅いときである。このような実施形態では、ファイル・システムは、オフロード・ライト動作に応答するか否か決定するときに、リンク・ステータス・チェックを実行することができる。このような事例では、サーバー206はオフロード・ライト要求をやり過ごすことができる。更に他の実施形態では、サーバー206は、トークンが無効であることから、要求をやり過ごすこともできる。例えば、トークンが期限切れである場合、これは無効であろう。無効/期限切れのトークンのためにサーバーが要求をやり過ごす場合、サーバー206は、オフロード・ライト要求に対して失敗で応答することができ、この場合、例えば、トークンが無効または期限切れであったために要求が失敗したことを示すために、オフロード・ライト応答においてサーバーによってフラグ(フラグ例として以下で示すような)を設定することができる。このタイプのフラグは、このライト動作の単なる再試行はうまくいかないこと、そして新たなトークンを生成するためには読み出しし直さなければならないことのヒントとして、クライアントに対して作用することができる(即ち、失敗は、リンクの一時的な遅さによるのではなく、例えば、トークンが無効であったためである)。代替実施形態では、所与のトークンがもはや有効でないことを示すために、具体的なステータスを戻すこともできる。つまり、実施形態は、トークンがもはや有効でないことを示すために、リターン・ステータスを使用することを考慮に入れており、一方他の実施形態は、このような指示を与えるためにフラグを使用することを考慮に入れている。更に他の実施形態は、このような指示を与えるために、フラグおよびリターン・ステータスの双方を使用することを考慮に入れている。例えば、トークンの期限切れによる短縮(truncations)のときに、エラー・コードの代わりに、同じトークン(1つまたは複数)を使用してオフロード・ライトの残りを再試行しても無駄であることを示すために、フラグ、例えば、OFFLOAD_WRITE_FLAG_TOKEN_INVALIDと共に、短縮値を含む成功を、FSCTLのコーラーに戻す動作を行うことができる。本開示の主旨および範囲から逸脱することなく、本明細書において開示する実施形態によれば、複数の他のタイプの条件のために、オフロード・ライトの失敗に至ることもある。
Figure 2014524610
[0040] 以上で示したフラグは、当該フラグに対する数値を含むが、これらの数値は例示の目的に限って提供されたに過ぎない。他の数値または一般的な値も、実施形態にしたがって、本開示の主旨および範囲から逸脱することなく、使用することができる。
[0041] 更に、実施形態の中には、先に説明したように、オフロード・ライトが短縮されることを考慮に入れているものもあり、この場合、書き込み長は、例えば、書き込みを要求された長さよりも短い。このような実施形態では、サーバーは、短縮オフロード・ライト応答で、オフロード・ライト要求に応答し、書き込むことが要求されたデーターの一部だけが実際に書き込まれたことを示す。
[0042] 実施形態では、オフロード・リードおよびライト動作において使用されるトークンは、ある規格にしたがってフォーマットされる。例えば、小型コンピューター・システム・インターフェース(SCSI)規格は、一実施形態にしたがって、使用することができるトークン・フォーマットの定義を提供することができる。とりわけ、高速コンピューター・インターフェース仕様および/または規格を含む複数のタイプの規格も、本明細書において開示する実施形態にしたがって、本開示の主旨および範囲から逸脱することなく使用することができる。SCSI規格は一例として示したに過ぎない。標準的なフォーマットの使用により、異なるデーター・アクセス・プロトコルを使用する他のサーバーとトークンを相互動作可能にすることができる。
[0043] 実施形態では、サーバー206は、以前にオフロード・リードが(サーバーからまたは任意のソースから)なかった場合でも、オフロード・ライト・コマンドに指定された周知のトークン値を認識し使用することができる。例えば、サーバー206は、ゼロを含む範囲を表す周知のトークンを戻すことができる。クライアント202は、これを、ソース・ファイルの基礎範囲がゼロであること、そしてこのトークンに関連するデーターが全てゼロであることを示すものとして解釈する。他の実施形態では、正常に読み取られたときにファイル・システムがゼロを戻す場合のように、オフロード・リード要求に応答して、ゼロ・トークンを戻すこともできる。このような状況が発生する可能性があるのは、例えば、ファイルの疎な範囲が読み取られる場合である。更に他の実施形態では、サーバー206は、割り当てを取り消されたトークンのような、他の周知のトークンも受け入れることができる。
[0044] サーバーにおいてトークンを生成するためにトークン・ジェネレーターを使用する実施形態では、オフロード・リード要求から戻されるトークンは、情報をサーバー206に要求する任意のクライアントによって使用可能である。つまり、クライアント204はクライアント202からトークンを受信するのでもよく、そしてオフロード・ライト動作をサーバー206に要求するためにこのトークンを使用することができる。クライアント間でトークンが渡される実施形態では、クライアントはそれらが選択した任意のプロトコルまたはトランスポートによってこのようなトークンを渡すことができる。クライアント間でトークンを渡すモードは、トークン自体には関係ない。したがって、トークンはサーバー206との異なる接続に跨がって使用可能であり、これらの接続は異なるクライアントによって作ることができる。このように、サーバー206は、ファイル・ストレージ210がオフロード・リードおよびライト動作をサポートするか否かには関係なく、オフロード・リード要求および一部のオフロード・ライト要求にサービスする(service)ことができる。オフロード・ライトにおいてサーバー206に供給されるトークンは、クライアントが現在開いているハンドルを有するファイルから得られたものである必要はなく、更にクライアントがアクセスすることができるファイルから得られたものである必要もない。クライアントは、少なくともトークンが得られた時点においてそのトークンが得られたファイル(1つまたは複数)にアクセスすることができる他のクライアントを介して間接的にトークンを得ることもできる。1つの接続を介して1つの共有(share)、たとえば、ファイル共有から読み取られたオフロード・リードによってクライアントによって得られたトークンは、クライアントによって異なる共有または異なる接続に対して発行されたオフロード・ライトにおいて、首尾良く使用することができる。
[0045] 実施形態では、トークンは複数のサーバーに跨がって使用可能であるとよい。即ち、トークンは、本来そのトークンが発生したサーバーでなくても、そのサーバーにおいて使用されてもよい。言い換えると、トークンがサーバー206、サーバー208、またはファイル・ストレージ210において生成されるとき、このようなトークンは、そのトークンを受け入れることを決定した任意のサーバーにおいて使用することができる。例えば、先の実施形態では、クライアント202によって送られたオフロード・リード要求がファイル・ストレージ210に渡されるのでもよく、ファイル・ストレージ210は、このオフロード・リード要求に対してトークンを生成する。後の時点において、クライアント202がサーバー208に接続した場合、サーバー206へのその接続によって既に供給されているトークンを使用して、オフロード・ライト動作のような他の動作を実行することができる。この例では、サーバー208は任意のオフロード・ライト動作を、元来このトークンを作ったファイル・ストレージ210に渡す。このように、トークンは、複数のサーバーに跨がって使用可能にすることができる。この実施形態は、例えば、共有ストレージを使用するサーバー・クラスターがファイル・サービスをクライアントに提供するために使用される状況において使用することができる。
[0046] 認めることができるであろうが、環境200についての以上の説明は、本明細書において説明する実施形態を限定することは意図していない。図2およびその説明は、単に一部の実施形態の実現例を例示することを意図するに過ぎない。他の実施形態では、オフロード動作が1つ以上のファイルおよび1つ以上のトークンを伴ってもよい。つまり、実施形態は、図2において示され説明されたものには限定されない。例えば、オフロード・リードが、1つのファイルまたは複数のファイルの複数のセグメントを、1つのトークンまたは複数のトークンを含むオフロード・リード応答によって読み取ることを考慮に入れてもよい。同様に、実施形態の中には、オフロード・ライト動作が、1つ以上のファイルに関連する1つ以上のトークンを識別できる場合もある。
[0047] 図3、図4、図5、および図6は、実施形態による動作フロー300および400を示す。動作フロー300および400は、任意の適した計算環境において実行することができる。例えば、これらの動作フローは、図1および図2に示したようなシステムおよび環境によって実行することができる。したがって、動作フロー300および400の説明は、図1および図2のコンポーネントの内少なくとも1つに言及することもある。しかしながら、このような図1および図2のコンポーネントに対する言及はいずれも、説明のために過ぎず、図1および図2の実現例は、動作フロー300および400の非限定的な環境であることは理解されてしかるべきである。
[0048] 更に、動作フロー300および400は、特定の順序で順次図示および説明されるが、他の実施形態では、これらの動作は異なる順序で、複数回、および/または並列に実行することもできる。更に、実施形態によっては、1つ以上の動作を省略すること、または組み合わせることもできる。
[0049] 実施形態では、図3に示すフロー300は、少なくとも部分的に、サーバー、例えば、サーバー206(図2)において実行しているファイル・サーバーによって実行することができる。フロー300は、動作302において開始し、ファイル・サーバーへの接続要求が受け取られる。動作302において受け取られる要求は、ファイル・サーバーを介してアクセス可能なリモート・ファイル・システムに格納されているファイル情報にアクセスするために、ファイル・サーバーとのセッションを作る要求である。この要求は、クライアント、例えば、クライアント202および204(図2)によって送ることができる。動作302の後、フロー300は動作304に移り、セッションが作られたことを示す応答が送られる。実施形態の中には、動作302および304において送られる要求および応答が、クライアントとサーバーとの間でセッションをネゴシエートするために交換される複数のメッセージの内一部であってもよい場合がある。メッセージの交換は、オフロード・ファイル動作にサービスするフィル・サーバーの能力を含む、能力の交換を含むことができる。
[0050] 動作フロー300は動作304から動作306に移り、ファイルを開く第2要求が受け取られる。この要求は、ファイル内部の情報にアクセスするために、クライアントによって送られる。動作306から、フローは動作308に移り、応答がクライアントに送られ、ファイルへのアクセスを付与する。この応答は、応答においてファイル・サーバーによって供給されるファイル識別子を含むことができる。
[0051] 次いで、フロー300は動作310に移り、オフロード動作の要求が受け取られる。このオフロード動作は、トークンによって表されるファイル・データーを要求するオフロード・リード動作、または宛先ファイルに書き込まれるファイル・データーを表すトークンを含むオフロード・ライト動作であってもよい。この動作がオフロード・リード動作である場合、フローはAに移り、図4に続く。
[0052] 図4に示すように、フロー300は判断312に移り、オフロード・リード動作において要求されるデーターを全てトークンによって表すことができるか否か判定を行う。この判断312は、実施形態では、複数の異なる判定を伴うことができる。例えば、オフロード・リード動作において要求されたデーターの任意の部分が、他のクライアントによる排他的使用のためにロックされているか否かについて、判定を行うことができる。これらの状況では、サーバーが、要求されたデーターの全てを表すトークンを供給することができない場合もある。判断312において、要求されたデーターの全てを1つのトークンによって表すことは不可能であるという判定が行われた場合、フローはNOを通って動作314に移り、トークンを含む短縮応答が送られる。この短縮応答は、応答において供給されているトークンが、オフロード・リード要求において要求されたデーターの全てを表すのではないことを示す。また、この応答は、応答におけるトークンによって表されるデーターの範囲も示すことができる。動作314の後、フローは316において終了する。
[0053] 判断312において、要求されたデーターの全てが1つのトークンによって表すことができるという判定が行われた場合、動作318において、オフロード・リード要求において要求されたファイル・データーの全てを表すトークンを含む応答が送られる。次いで、フロー300は316において終了する。
[0054] 実施形態の中には、サーバーがトークンの供給元でなくてもよい場合もある。これらの実施形態では、破線で示す代替動作が、判断312、動作314、および/または動作318の代わりに実行されるとよい。破線で示す動作は、トークンの生成が下位レイヤー、例えば、基礎ファイル記憶レベル(1つまたは複数)において行われる実施形態において実行される。これらの実施形態では、フロー300は、判断312の代わりに、クエリー320に移る。クエリー320において、オフロード・リード動作が短縮されるか否か判定を行う。オフロード・リードが短縮される場合、例えば、要求されたデーターの長さに対する調節が行われ、プロセス300はYESに進んで、調節または短縮322を行う。サーバーが全く調節を行わない場合、プロセス300はNOに進んで、要求を変更しないままにしておく(321)。次に、プロセス300は動作323に進み、オフロード・リード要求がサーバーから、ファイル記憶コンポーネントまたはトークンを生成する役割を担う他のモジュールというような、下位レイヤーに渡される。
[0055] 動作323の後、フロー300はクエリー324に移り、ファイル・ストレージ(またはトークンを生成する役割を果たす他のコンポーネント)が短縮リード動作を実行するか否か判定を行う。短縮が行われない場合、プロセス300はNOに進み下位レイヤーによって要求を処理する(325)。次いで、トークンを含む応答がサーバーによって受信され(326)、動作326において受信される応答は、オフロード・リード動作において要求されたファイル・データーの少なくとも一部を表すトークン(1つまたは複数)を含む。このトークンは、ファイル・ストレージによって使用される任意のしかるべきフォーマットにしたがってフォーマットすることができる。一実施形態では、トークンは、予め定められたSCSIフォーマットにしたがってフォーマットされる。次いで、一実施形態にしたがって、トークン(1つまたは複数)を含む応答は、サーバーによってクライアント329に送られる。他の実施形態では、トークン(1つまたは複数)を含む応答は、直接ファイル・ストレージ、または他の下位レイヤーから、例えば、クライアントに送られる。
[0056] クエリー324に戻り、先に説明したように、トークンを生成する役割を果たすファイル・ストレージまたは他のコンポーネントが、要求されたデーターの全てを含む応答を供給するか否か判定を行う。例えば、一実施形態では、ファイル・ストレージが、オフロード・リード要求において要求されたデーターの全てを供給することができない場合もある。先に説明したように、完全な読み取りを妨げる記憶コンテナに対するロックを含む複数の理由により、短縮オフロード・リード応答になる場合があり得る。ファイル・ストレージが要求されたデーターの一部のみを供給する場合、プロセス300はYESから動作327に進み、下位レイヤー、例えば、ファイル・ストレージによって要求が処理され、短縮応答が供給される。一実施形態では、次に、トークンを含む短縮応答が、クライアントに送る(329)ために、サーバーにおいて受信される(328)。他の実施形態では、トークンを含む応答は直接ファイル・ストレージまたはトークンを生成する役割を果たす他のコンポーネントからクライアントに渡される。実施形態では、受信された短縮応答328は、要求が1つ以上のレイヤーによって短縮されたことを示す。例えば、応答は、トークンが、オフロード・リード要求において要求されたデーターの全て未満を表すことを示す。他の実施形態では、短縮応答328は、要求が短縮されたことの指示を与えない。次いで、フロー300は動作316において終了する。他の実施形態(図示せず)では、サーバーが、ファイル・ストレージから受信したときに、そして既にファイル・ストレージによってデーターが短縮されていると判断した場合であっても、更に応答におけるデーターを短縮することを決定することもできる。このような実施形態では、このような短縮は、動作326および328の後で、トークンを含む短縮応答をクライアント動作329に渡す前に行うとよい。認めることができようが、動作320〜329は、サーバーが単に下位のトークン供給元への受け渡し役として動作するときにのみ実行される。図4に示す実施形態では、トークン供給元はファイル記憶システムである。実施形態の中には、ファイル記憶システムが、次に、オフロード要求を更に下位のトークン供給元に渡す場合もある。実施形態では、任意のレイヤーが、要求を下位層に送る前または後に、短縮することができる。例えば、実施形態は、サーバーが要求を下位レイヤー、例えば、ファイル・ストレージに渡し、この下位レイヤーから応答を受信し、次いでトークン(1つまたは複数)を含む応答をクライアントに送る前に、サーバーが更に短縮を実行するか否か判定することを考慮に入れている。しかしながら、実施形態によっては、下位レイヤー(1つまたは複数)に送る前に要求を短縮する方が効率的である場合もある。先に説明したように、フロー300は、実施形態にしたがって実行することができる動作フローの一例に過ぎない。実施形態は、図3〜図5に関して行った具体的な説明には限定されず、追加の動作を含むこともできる。例えば、図示した動作ステップは、他のステップに組み合わせること、および/または並び替えることも可能である。更に、例えば、もっと少ないステップまたはもっと多いステップを使用することもできる。
[0057] 再度図3を参照すると、動作310において、動作がオフロード・ライト動作である場合、フローはBに移り、図5に続く。認めることができようが、オフロード・ライト動作は、データーを表すトークンを含む。トークンは、本開示の主旨および範囲から逸脱することなく、本明細書において開示する実施形態にしたがって、複数のタイプの記憶コンテナから得ることができる。例えば、トークンは、ファイル、ボリューム、ディスク、ボリューム・スナップショット、ディスク・スナップショット、ブロブ・ストア等から得ることができる。一実施形態では、トークンは、ソース・ファイルからこのトークンにデーターをコピーすることによって作られる。他の実施形態では、トークンは、ソース・ファイルから、トークンに関連する保持エリアにデーターをコピーすることによって、作られる。つまり、作られたトークンは、ソース・ファイルとは独立であり、論理的にデーターのそれ自体の読み取り専用コンテナとなる。図5に示すように、フローは動作310から動作330に移り、オフロード・ライト動作においてトークンに関連するデーターが特定される。
[0058] 動作330においてデーターが特定された後、フロー300はクエリー331に移り、全ての要求データーを、例えば、サーバーによって、宛先ファイルに書き込むことができるか否か判定を行う。全ての要求データーを書き込むことができる場合、プロセス300はYESに進み、トークンによって表されるデーターを宛先ファイル332に書き込む。即ち、トークンによって表されるデーターの要求された部分が、オフロード・ライト要求において要求された特定の位置に書き込まれる。成功または失敗を示す応答、そして実施形態によっては、宛先ファイルに書き込まれるデーター量が、動作334において、クライアントに送られる。次いで、フロー300は316において終了する。一方、要求データーの全てを宛先ファイルに書き込むことができない場合、例えば、プロセス300はNOに進んで、動作336において短縮データーを書き込む。この場合、要求されたデーターの一部が書き込まれる。要求データーの一部が書き込まれたことを示す短縮ライト応答が、次に、動作338においてクライアントに送られる。次いで、フロー300は316において終了する。
[0059] 先に注記したように、実施形態の中には、サーバーがトークンの供給元でなくてもよい場合もある。これらの実施形態では、図5において破線で示す代替動作を、動作330〜338の代わりに実行することができる。破線の動作は、トークンの生成が下位レイヤー、例えば、ファイル記憶レベル以下で行われる実施形態において実行される。これらの実施形態では、フロー300は、動作330の代わりに、クエリー340に移る。クエリー340において、下位レイヤー、例えば、基礎ファイル・ストレージに渡す前に、サーバーにおいてオフロード・ライトが短縮されるか否か判定が行われる。オフロード・ライトが短縮される場合、プロセス300はYESに進み調節または短縮を行う(344)。サーバーが何の調節も行わない場合、フロー300はNOに進み、オフロード・ライト要求を変更しないままにしておく(342)。次に、プロセス300は動作346に進み、オフロード・ライト要求(トークンを含む)が、サーバーから、ファイル記憶コンポーネントまたはオフロード・ライト要求を扱う役割を担う他のモジュールのような、下位レイヤーに渡される。
[0060] オフロード・ライト要求を下位レイヤー(1つまたは複数)に渡した後(346)、フロー300はクエリー348に進み、下位レイヤー、例えば、ファイル・ストレージが短縮ライト動作を実行するか否か判定を行う。短縮が行われない場合、プロセス300はNOから動作350に移り、下位レイヤーがライト要求を処理する。この処理は、例えば、要求におけるトークンに関連するデーターを特定し、トークンによって表されるデーターを宛先ファイルに書き込むことを含む。下位レイヤーが短縮ライトを実行する場合、プロセス300はYESから下位レイヤー短縮および処理動作352に進み、要求データーの一部が、例えば、宛先ファイルに書き込まれる。下位レイヤー(1つまたは複数)によるオフロード・ライト要求の処理に続いて、オフロード・ライト要求が、サーバーにおいて、下位レイヤーから受け取られる(354)。実施形態では、この応答は、トークンによって表されるデーターが宛先ファイルに首尾良く書き込まれたか否か、そしてどの位のデーターが書き込まれたかを示す。他の実施形態では、オフロード・ライト要求は、ファイル・ストレージ、またはオフロード・ライト要求を扱う役割を担う他のコンポーネントから直接クライアントに渡される。
[0061] 図5に戻り、本開示の実施形態にしたがって、サーバーにおいてオフロード・ライト応答が受信され(354)、クエリー356は、次に、データーの全てが宛先に書き込まれたか否か、またはライトが短縮されたか否か判定を行う。ライトが短縮された場合、要求データーの一部が宛先に書き込まれたことになり、プロセス300はYESに進み、短縮ライト応答358をクライアントに渡す。次いで、フロー300は316において終了する。クエリー356に戻り、要求データーの全てが宛先に書き込まれたとクエリー356において判定された場合、プロセス300はNOから動作360に進み、基礎ファイル記憶システムからの応答がクライアントに渡される。次いで、フロー300は316において終了する。
[0062] このように、実施形態では、要求がファイル・ストレージのような下位レイヤーに渡される場合であっても、サーバー自体がライトを短縮することもできる。例えば、サーバーは、実施形態によれば、書き込み要求を処理する時間が所定の閾値を超える場合、ライトを短縮することができる。実施形態では、サーバーは、要求を下位レイヤーに渡す前にライトを短縮する。例えば、短縮は、オフロード・ライト要求をファイル・ストレージに送る前に行うことができる。他の実施形態では、サーバーは、下位レイヤー、例えば、ファイル・ストレージによる処理の後に、ライトを短縮する。先に論じたように、フロー300は、実施形態にしたがって実行することができる動作フローの一例に過ぎない。実施形態は、図3〜図5に関して以上で行った具体的な説明に限定されるのではなく、追加の動作を含むこともできる。例えば、図示した動作ステップを他のステップに組み合わせること、および/または並び替えることもできる。更に、例えば、もっと少ないステップまたはもっと多いステップを使用することもできる。
[0063] 図6に移ると、動作フロー400は、オフロード・ファイル動作を要求するステップを示す。実施形態では、フロー400は、クライアント202および204(図2)のようなクライアントにおけるリディレクターによって実行することができる。これらのリディレクターは、ファイル・システムにおけるファイルにアクセスするために、ファイル・サーバーと通信している。クライアントは、実施形態では、SMBプロトコルの一バージョンまたはNFSの位置バージョンというような、ファイル・アクセス・プロトコルを使用して、ファイル・サーバーと通信する。
[0064] フロー400は、動作402において開始し、ファイル・サーバーに接続する要求が送られる。動作402において送られる要求は、ファイル・サーバーを介してアクセス可能なファイル・システムに格納されているファイル情報にアクセスするために、ファイル・サーバーとのセッションを作るための要求である。この要求は、サーバー、例えば、サーバー206(図2)におけるファイル・サーバーに送ることができる。この要求は、SMBまたはNFSの一バージョンのような、ファイル・アクセス・プロトコルにしたがってフォーマットされる。
[0065] 動作402の後、フロー400は動作404に移り、セッションが作られたことを示す応答が受信される。実施形態の中には、動作402および404が、クライアントとサーバーとの間でセッションをネゴシエートするために交換される複数のメッセージの内一部であってもよい場合がある。メッセージの交換は、オフロード・ファイル動作にサービスするフィル・サーバーの能力を含む、能力の交換を含むことができる。
[0066] 動作フローは動作404から動作406に移り、ファイルを開く要求が送られる。フロー400は動作406から動作408に移り、ファイルへのアクセスを付与する応答が受信される。動作408から、フローは動作410に移り、クライアントはオフロード・リード要求を送る。このオフロード・リード要求は、要求されたファイル・データーの一部を示す。また、このオフロード・リード要求は、本質的に、データーが、オフロード・リード要求に応答して送られるトークンによって表されることを要求する。動作412において、トークンを含むオフロード・リード応答が受信される。
[0067] 実施形態では、動作410においてオフロード・リード要求を送ったクライアントは、リード要求においてそれが要求できるデーターについて、何らかの制限を受けることもある。例えば、実施形態では、クライアントが一部のデーターをローカルにキャッシュした場合、そのリード要求を送る前に、キャッシュされているあらゆる「ダーティ」データーをフラッシュする(flush)。オフロード・リードを送る前に、キャッシュされているダーティ・データーをサーバーにフラッシュし損ねると、オフロード・リードが、古い(stale)データーを表すトークンを供給するという結果になる可能性がある。実施形態の中には、クライアント自体がオフロード・リードを短縮できる場合もある。言い換えると、ファイル・データーの全範囲を要求せず、これによってダーティなキャッシュ・データーを除外することもできる。
[0068] 動作412に続いて、クライアントは動作414においてオフロード・ライト要求を送ることができる。フロー400は、動作414が動作412の直後にくることを示すが、これは例示の目的のために過ぎないことは言うまでもない。他の実施形態では、フロー400を実行するクライアントが、データーを表すトークンを他の何らかの手段から受信する場合、動作414において送られたオフロード・ライト要求は、動作410において送られた要求のような、任意のオフロード・リード要求の前に実行することができる。
[0069] 実施形態では、動作414においてオフロード・ライト要求を送ったクライアントも、オフロード・ライト要求において送ることができるデーターに関して何らかの制限を受けることもある。オフロード・ライトが、トークン・データーを、ダーティ・データーをキャッシュしている宛先オフセットに書き込むことが許されると、キャッシュされているダーティ・データーがストレージに書き戻されるときに、このキャッシュされているダーティ・データーが、オフロード・ライトによって書き込まれたデーターを後に誤って上書きすることになる。オフロード・ライトを送るクライアントは、キャッシュされているダーティ・データーをクライアントが保持する位置のオフセットに対するライト要求はいずれも、送ることを回避すればよい。実施形態によれば、クライアントは、オフロード・ライト自体を短縮するのでもよく、またはキャッシュされているダーティ・データーがオフロード・ライトの宛先のオフセットと重複するときは、キャッシュされているダーティ・データーを破棄するのでもよく、またはクライアントがオフロード・ライトを実行しなくてもよい。
[0070] オフロード・ライト要求が動作414において送られた後、フロー400は動作416に移り、オフロード・ライト要求に対する応答が受信される。この応答は、オフロード・ライト要求において送られたトークンが首尾良く宛先ファイルに書き込まれたか否かを示すことができる。データーが部分的に書き込まれたかもしれない実施形態では、動作416において受信される応答は、首尾良く書き込まれたデーターの部分を注記し、データーの全てが宛先ファイルに書き込まれたのではないことを示す。
[0071] 破線で示す動作418は、実施形態によってはフロー400の実行中の任意の時点において実行される。図6に示す実施形態では、動作418は動作416の後に示されているが、実施形態は必ずしもこの順序に限定されるとは限らない。フロー400を実行するクライアントが、トークンに関連する実際のデーターを要求する実施形態では、 動作418に進む(sent)。即ち、このクライアントは、オフロード・リード要求を送ることによってまたは何らかの他の手段によってそれが受信したトークンを所持することができる。しかしながら、クライアントは、例えば、実際のデーターを要求しているアプリケーションにデーターを供給するために、トークンに関連する実際のデーターを必要とする場合がある。これらの実施形態では、動作418は、トークンに関連するデーターの一部を引き出す要求を送ることができる。クライアントは、実際のデーターを供給することができるサーバーに、データーを引き出す要求を送る。応答して、クライアントは実際のデーターを受信し、このデーターを、実際のデーターを要求するアプリケーションに供給することができる。これは、実施形態において一部のクライアントによって実行することができる1つの追加動作に過ぎない。フロー400は420において終了する。
[0072] 先に注記したように、フロー300および400は、実施形態にしたがって実行することができる動作フローの一例に過ぎない。実施形態は、図3〜図6に関して先に行った具体的な説明には限定されず、追加の動作を含むこともできる。更に、図示した動作ステップを他のステップと組み合わせること、および/または並び替えることもできる。更に、例えば、もっと少ないステップまたはもっと多いステップを使用することもできる。
[0073] 図7は、一般的なコンピューター・システム700を示す。これは、本明細書において説明した実施形態を実現するために使用することができる。コンピューター・システム700は、計算環境の一例に過ぎず、コンピューターおよびネットワーク・アーキテクチャーの使用範囲や機能について何ら限定を示唆しようとするのでもない。また、コンピューター・システム700が、コンピューター・システム例700において図示されているコンポーネントのいずれの1つまたは組み合わせに関しても何らかの依存性や要件を有するように解釈してはならない。実施形態では、システム700は、図1に関して先に説明したクライアントおよび/またはサーバーとして使用することができる。
[0074] システム700は、その最も基本的な構成では、通例少なくとも1つの処理ユニット702とメモリー704とを含む。計算デバイスの正確な構成およびタイプに依存して、メモリー704は揮発性(RAMのような)、不揮発性(ROM、フラッシュ・メモリー等のような)、または何らかの組み合わせとすることができる。この最も基本的な構成は、図7において破線706によって示されている。システム・メモリー704は、ストレージ708のようなストレージを含むファイル記憶システムに格納することができるデーター720を表すトークン723のようなデーターを格納する。
[0075] コンピューター読み取り可能媒体という用語は、本明細書において使用する場合、コンピューター記憶媒体を含むことができる。コンピューター記憶媒体は、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含むことができ、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、または他のデーターというような情報の格納のための任意の方法または技術で実現される。システム・メモリー704、リムーバブル・ストレージ、および非リムーバブル・ストレージ708は全て、コンピューター記憶媒体の例である(即ち、メモリー・ストレージ)。コンピューター記憶媒体は、RAM、ROM、電子的消去可能なリード・オンリー・メモリー(EEPROM)、フラッシュ・メモリーまたは他のメモリー技術、CD−ROM、ディジタル・バーサタイル・ディスク(DVD)または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の時期記憶デバイス、あるいは情報を格納するために使用することができ計算デバイス700によってアクセスすることができる任意の他の媒体を含むことができるが、これらに限定されるのではない。このようなコンピューター記憶媒体はいずれも、デバイス700の一部であってもよい。また、計算デバイス700は、キーボード、マウス、ペン、サウンド入力デバイス、タッチ入力デバイス等のような入力デバイス(1つまたは複数)714も含むことができる。ディスプレイ、スピーカー、プリンター等のような出力デバイス(1つまたは複数)716も含むことができる。以上のデバイスは例であり、他のものを使用してもよい。
[0076] コンピューター読み取り可能媒体という用語は、本明細書において使用する場合、通信媒体も含むことができる。通信媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュールまたは他のデーターによって、搬送波のような変調データー信号または他の伝達メカニズム(transport mechanism)において具体化することができ、任意の情報配信媒体を含む。「変調データー信号」という用語は、当該信号において情報をエンコードするようなやり方で、1つ以上の特性が設定または変更されている信号を記述することができる。一例として、そして限定ではなく、通信媒体は、有線ネットワークまたは直接有線接続のような有線媒体と、音響、無線周波(RF)、赤外線、および他のワイヤレス媒体のようなワイヤレス媒体とを含むことができる。
[0077] 本明細書にわたって、「一実施形態」または「実施形態」に言及したが、特定の説明された特徴、構造、または特性が少なくとも1つの実施形態に含まれることを意味する。つまり、このような句の使用は、単に1つよりも多い実施形態に言及することができる。更に、説明した特徴、構造、または特性は、1つ以上の実施形態では、任意の適したやり方で組み合わせることもできる。
[0078] しかしながら、関連技術における当業者であれば、実施形態は、前述の具体的な詳細の内1つ以上がなくても、あるいは他の方法、リソース、材料等を用いても実施できることを認めることができよう。その一方で、周知の構造、リソース、または動作を詳細に示さず説明しなかったのは、単に実施形態の形態を曖昧にするのを避けるためである。
[0079] 以上、実施形態例および用途について例示および説明したが、実施形態は以上で説明した構成およびリソースそのものに限定されるのではないことは言うまでもない。当業者には明白な種々の変更、変化、および変形は、特許請求する実施形態の範囲から逸脱することなく、本明細書において開示した方法およびシステムの構成、動作、および詳細において行うことができる。

Claims (10)

  1. トークン・ベース・ファイル動作を行うコンピューター実装方法であって、
    ファイル・システムにおける情報にアクセスするために、ファイル・サーバーにおいて、前記ファイル・サーバーに接続することを求める第1要求を受けるステップと、
    前記ファイル・サーバーから第1応答を送るステップであって、前記応答が、前記ファイル・システムにおける前記情報へのアクセスを可能にするために、クライアントとのセッションを作る、ステップと、
    前記ファイル・サーバーにおいて、前記ファイルからのファイル情報にアクセスするために前記ファイル・システムにおいてファイルを開くことを求める第2要求を受けるステップと、
    前記第2要求を受けたことに応答して、前記ファイル・サーバーが前記クライアントに第2応答を送り、前記ファイルへのアクセスを付与するステップと、
    前記ファイル・サーバーにおいて、前記ファイルの一部からの第1データーのオフロード・リードを求める第3要求を受けるステップであって、前記第3要求が、ファイル・アクセス・プロトコルにしたがってフォーマットされる、ステップと、
    前記第3要求を受けたことに応答して、前記ファイル・サーバーが、前記第1データーを表すトークンと共に第3応答を送るステップであって、前記第1データーが論理的に前記ファイルの前記一部から読み出され、前記第3応答が前記ファイル・アクセス・プロトコルにしたがってフォーマットされる、ステップと、
    を含む、方法。
  2. 請求項1記載の方法において、前記第3要求が、前記ファイルから読み出される第1データーと、前記ファイルから読み出される第2データーとを示し、前記第3応答が、前記第1データーを表す前記トークンと、前記第2データーを表す第2トークンとを含む、方法。
  3. 請求項1記載の方法において、前記第3要求が、第1ファイルの第1部分と第2ファイルの第2部分とを示し、前記第3応答が、前記第1ファイルの前記第1部分から論理的に読み出された第1データーを表す前記トークンと、前記第2ファイルの前記第2部分から論理的に読み出された第2データーを表す第2トークンとを含む、方法。
  4. 請求項1記載の方法であって、更に、
    前記ファイル・サーバーにおいて、前記第1データーの要求された部分の第2ファイルへのオフロード・ライトを求める第4要求を受けるステップであって、前記第4要求が、前記トークンを含み、前記ファイル・アクセス・プロトコルにしたがってフォーマットされる、ステップと、
    前記第4要求を受けたことに応答して、前記ファイル・サーバーが、
    前記第1データーの前記要求された部分を前記第2ファイルに書き込むステップと、
    前記第1データーの前記要求された部分が前記第2ファイルに書き込まれたことを示す第4応答を送るステップであって、前記第4応答が前記ファイル・アクセス・プロトコルにしたがってフォーマットされる、ステップと、
    を含む、方法。
  5. 請求項1記載の方法であって、更に、
    前記ファイル・サーバーにおいて、前記第1データーの要求された部分の第2ファイルへのオフロード・ライトを求める第4要求を受けるステップであって、前記第4要求が前記トークンを含み、前記ファイル・アクセス・プロトコルにしたがってフォーマットされる、ステップと、
    前記第4要求を受けたことに応答して、前記ファイル・サーバーが、
    前記第1データーの前記要求された部分の内第1部分を前記第2ファイルに書き込むステップであって、前記要求された部分の前記第1部分が、前記第1データーの前記要求された部分の全て未満である、ステップと、
    前記第1データーの前記要求された部分の内前記第1部分が前記第2ファイルに書き込まれたことを示す第4応答を送るステップであって、前記第4応答が、前記ファイル・アクセス・プロトコルにしたがってフォーマットされる、ステップと、
    を含む、方法。
  6. コンピューター実行可能命令を含むコンピューター読み取り可能記憶媒体であって、前記コンピューター実行可能命令をプロセッサーによって実行すると、トークン・ベース・ファイル動作を要求する方法を実行し、前記方法が、
    ファイル・システムにおける情報にアクセスするために、ファイル・サーバーに接続することを求める第1要求をクライアントによって送るステップと、
    第1応答を受信するステップであって、前記応答が、前記ファイル情報へのアクセスを可能にするために前記クライアントとのセッションを作る、ステップと、
    前記ファイル・システムにおいてファイルを開くことを求める第2要求を送るステップと、
    前記ファイルへのアクセスを付与する第2応答を受信するステップと、
    トークンによって表されるデーターの第1部分のファイルへのオフロード・ライトを求める第3要求を送るステップであって、前記第3要求が、サーバー・メッセージ・ブロック(SMB)プロトコルの一バージョンにしたがってフォーマットされ、前記データーを表す前記トークンを含む、ステップと、
    応答を受信するステップと、
    を含む、コンピューター読み取り可能記憶媒体。
  7. 請求項6記載のコンピューター読み取り可能記憶媒体において、前記応答が、前記データーの第2部分が前記ファイルに首尾良く書き込まれたことを示し、前記第2部分が、前記第1部分におけるデーターの全て未満を表す、コンピューター読み取り可能記憶媒体。
  8. 請求項6記載のコンピューター読み取り可能記憶媒体であって、更に、
    第2ファイルの一部からの第2データーのオフロード・リードを求める第4要求を送るステップであって、前記第4要求が、前記SMBプロトコルの前記バージョンにしたがってフォーマットされる、ステップと、
    前記第2データーを表すトークンと共に第4応答を受信するステップであって、前記第4応答が、前記SMBプロトコルの前記バージョンにしたがってフォーマットされる、ステップと、
    を含む、コンピューター読み取り可能記憶媒体。
  9. トークン・ベース・ファイル動作を可能にするシステムであって、
    少なくとも1つのサーバーを含み、このサーバーが、
    コンピューター実行可能命令を実行するように構成された少なくとも1つのプロセッサーと、
    前記コンピューター実行可能命令を格納する少なくとも1つのコンピューター読み取り可能媒体と、
    を含み、前記少なくとも1つのプロセッサーによって前記コンピューター実行可能命令を実行すると、ファイル・サーバーを設け、このファイル・サーバーが、
    ファイルの一部からデーターのオフロード・リードを求める要求を受け、前記要求が、サーバー・メッセージ・ブロック(SMB)プロトコルの一バージョンにしたがってフォーマットされ、
    前記要求を受けたことに応答して、前記ファイル・サーバーが、前記データーを表すトークンと共に応答を送り、前記応答が、前記SMBプロトコルの前記バージョンにしたがってフォーマットされる、
    ように構成された、システム。
  10. 請求項9記載のシステムにおいて、前記システムが、更に、
    少なくとも1つのクライアントを含み、このクライアントが、
    コンピューター実行可能命令を実行するように構成された少なくとも1つのプロセッサーと、
    前記コンピューター実行可能命令を格納する少なくとも1つのコンピューター読み取り可能記憶媒体と、
    を含み、前記少なくとも1つのプロセッサーによって前記コンピューター実行可能命令を実行すると、
    前記ファイルの前記一部からのデーターの前記オフロード・リードを求める前記要求を送り、
    前記データーを表す前記トークンと共に前記応答を受信する、システム。
JP2014525031A 2011-08-10 2012-07-19 トークン・ベースのファイル動作 Withdrawn JP2014524610A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/207,014 2011-08-10
US13/207,014 US20130041985A1 (en) 2011-08-10 2011-08-10 Token based file operations
PCT/US2012/047261 WO2013022582A2 (en) 2011-08-10 2012-07-19 Token based file operations

Publications (2)

Publication Number Publication Date
JP2014524610A true JP2014524610A (ja) 2014-09-22
JP2014524610A5 JP2014524610A5 (ja) 2015-09-10

Family

ID=47669148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014525031A Withdrawn JP2014524610A (ja) 2011-08-10 2012-07-19 トークン・ベースのファイル動作

Country Status (11)

Country Link
US (1) US20130041985A1 (ja)
EP (1) EP2742432A4 (ja)
JP (1) JP2014524610A (ja)
KR (1) KR20140051293A (ja)
CN (1) CN103733187A (ja)
AU (1) AU2012294797A1 (ja)
BR (1) BR112014002869A2 (ja)
CA (1) CA2844312A1 (ja)
MX (1) MX2014001628A (ja)
RU (1) RU2014104499A (ja)
WO (1) WO2013022582A2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092149B2 (en) 2010-11-03 2015-07-28 Microsoft Technology Licensing, Llc Virtualization and offload reads and writes
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US9817582B2 (en) 2012-01-09 2017-11-14 Microsoft Technology Licensing, Llc Offload read and write offload provider
US9355036B2 (en) 2012-09-18 2016-05-31 Netapp, Inc. System and method for operating a system to cache a networked file system utilizing tiered storage and customizable eviction policies based on priority and tiers
US9071585B2 (en) 2012-12-12 2015-06-30 Microsoft Technology Licensing, Llc Copy offload for disparate offload providers
US9251201B2 (en) 2012-12-14 2016-02-02 Microsoft Technology Licensing, Llc Compatibly extending offload token size
US9110661B2 (en) * 2012-12-28 2015-08-18 International Business Machines Corporation Mobile device offloading task to a peer device and receiving a completed task when energy level is below a threshold level
US9380114B1 (en) * 2013-06-27 2016-06-28 Emc Corporation Techniques for peer messaging across multiple storage processors of a data storage array
US9300692B2 (en) 2013-08-27 2016-03-29 Netapp, Inc. System and method for implementing data migration while preserving security policies of a source filer
US9311314B2 (en) 2013-08-27 2016-04-12 Netapp, Inc. System and method for migrating data from a source file system to a destination file system with use of attribute manipulation
WO2015031540A1 (en) * 2013-08-27 2015-03-05 Netapp, Inc. Asynchronous file system migration
US10860529B2 (en) 2014-08-11 2020-12-08 Netapp Inc. System and method for planning and configuring a file system migration
US9311331B2 (en) 2013-08-27 2016-04-12 Netapp, Inc. Detecting out-of-band (OOB) changes when replicating a source file system using an in-line system
US9304997B2 (en) 2013-08-27 2016-04-05 Netapp, Inc. Asynchronously migrating a file system
US20160041996A1 (en) 2014-08-11 2016-02-11 Netapp, Inc. System and method for developing and implementing a migration plan for migrating a file system
CN103595720B (zh) * 2013-11-15 2017-07-07 华为技术有限公司 卸载数据传输方法、装置和客户端
US10628380B2 (en) 2014-07-24 2020-04-21 Netapp Inc. Enabling data replication processes between heterogeneous storage systems
CN104462403B (zh) * 2014-12-11 2018-03-02 华为技术有限公司 文件截断方法和装置
US10740298B2 (en) * 2016-10-12 2020-08-11 Microsoft Technology Licensing, Llc File synchronization with reduced conflicts in computing systems
CN111107059A (zh) * 2019-11-29 2020-05-05 彩虹无人机科技有限公司 一种无人机多协议传输数据解析方法
KR20210067468A (ko) * 2019-11-29 2021-06-08 삼성전자주식회사 무선 통신 시스템에서 데이터를 오프로딩하기 위한 방법 및 장치
US20210342307A1 (en) * 2020-05-01 2021-11-04 EMC IP Holding Company LLC Token-based offload data transfer with synchronous replication

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275867B1 (en) * 1995-09-12 2001-08-14 International Business Machines Corporation Operation-partitioned off-loading of operations in a distributed environment
US6385701B1 (en) * 1999-11-19 2002-05-07 International Business Machines Corporation Method, system and program products for sharing data between varied clients using token management
JP4271967B2 (ja) * 2003-03-10 2009-06-03 株式会社日立製作所 分散ファイルシステム及び分散ファイルシステムの運用方法
US7617216B2 (en) * 2005-09-07 2009-11-10 Emc Corporation Metadata offload for a file server cluster
US8347373B2 (en) * 2007-05-08 2013-01-01 Fortinet, Inc. Content filtering of remote file-system access protocols
US20080065835A1 (en) * 2006-09-11 2008-03-13 Sun Microsystems, Inc. Offloading operations for maintaining data coherence across a plurality of nodes
US7916870B2 (en) * 2006-11-03 2011-03-29 Verizon Patent And Licensing Inc. Systems and methods for document control using public key encryption
US20080155051A1 (en) * 2006-12-23 2008-06-26 Simpletech, Inc. Direct file transfer system and method for a computer network
CN101572660B (zh) * 2008-04-30 2013-06-05 北京明朝万达科技有限公司 一种防止数据泄密的综合控制方法
US9323681B2 (en) * 2008-09-18 2016-04-26 Avere Systems, Inc. File storage system, cache appliance, and method
TWI405211B (zh) * 2008-11-04 2013-08-11 Phison Electronics Corp 快閃記憶體儲存系統、控制器與資料保護方法
US20120079583A1 (en) * 2010-09-23 2012-03-29 Microsoft Corporation Offload reads and writes
US20120144501A1 (en) * 2010-12-03 2012-06-07 Salesforce.Com, Inc. Regulating access to protected data resources using upgraded access tokens

Also Published As

Publication number Publication date
MX2014001628A (es) 2014-05-28
EP2742432A4 (en) 2015-03-18
WO2013022582A3 (en) 2013-06-13
US20130041985A1 (en) 2013-02-14
BR112014002869A2 (pt) 2017-02-21
EP2742432A2 (en) 2014-06-18
RU2014104499A (ru) 2015-08-20
WO2013022582A2 (en) 2013-02-14
AU2012294797A1 (en) 2014-02-27
CN103733187A (zh) 2014-04-16
CA2844312A1 (en) 2013-02-14
KR20140051293A (ko) 2014-04-30

Similar Documents

Publication Publication Date Title
JP2014524610A (ja) トークン・ベースのファイル動作
KR101923245B1 (ko) 투명한 장애 극복 기법
US7480654B2 (en) Achieving cache consistency while allowing concurrent changes to metadata
US9692823B2 (en) Inter-protocol copy offload
US8589553B2 (en) Directory leasing
US7730258B1 (en) System and method for managing hard and soft lock state information in a distributed storage system environment
US8015146B2 (en) Methods and systems for assisting information processing by using storage system
US20080271130A1 (en) Minimizing client-side inconsistencies in a distributed virtual file system
US20180060143A1 (en) Distributed shared log storage system having an adapter for heterogenous big data workloads
US8135918B1 (en) Data de-duplication for iSCSI
CN102520877A (zh) 卸载读和写
US9009196B2 (en) Discovery and client routing to database nodes
US11841842B2 (en) Method and system for using external content type object types
US20100011177A1 (en) Method for migration of synchronous remote copy service to a virtualization appliance
CN113746641B (zh) 一种基于分布式存储的odx协议处理方法
WO2019000423A1 (zh) 一种数据存储方法及设备
US7260576B2 (en) Implementing a distributed file system that can use direct connections from client to disk
TW200809597A (en) Method and system for device to request and operate an external buffer provided from the host
CN116049320B (zh) 一种基于本地化访问的分布式数据库设计方法及系统

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150513

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150721

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150721

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160822

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20160923