JP4263421B2 - サーバレス分散ファイルシステム - Google Patents
サーバレス分散ファイルシステム Download PDFInfo
- Publication number
- JP4263421B2 JP4263421B2 JP2002086870A JP2002086870A JP4263421B2 JP 4263421 B2 JP4263421 B2 JP 4263421B2 JP 2002086870 A JP2002086870 A JP 2002086870A JP 2002086870 A JP2002086870 A JP 2002086870A JP 4263421 B2 JP4263421 B2 JP 4263421B2
- Authority
- JP
- Japan
- Prior art keywords
- directory
- computer
- file
- group
- certificate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
- G06F16/1774—Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/825—Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/956—Hierarchical
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータネットワークおよびファイルシステムに関し、より詳細には、サーバレス分散ファイルシステム(a serverless distributed file system)に関する。
【0002】
【従来の技術】
ファイルシステムは、コンピュータシステム上に記憶されたファイルおよび他のデータオブジェクトを管理する。ファイルシステムは元来、コンピュータのオペレーティングシステム中に構築され、常駐する記憶媒体上にローカルに記憶されたファイルへのアクセスを容易にする。コンピュータがネットワーク化されると、いくつかのファイル記憶機能は、個々のユーザマシンから専用の記憶サーバへオフロードされ、これらのユーザマシンに代って専用記憶サーバが多数のファイルを記憶する。ファイルが必要になると、ユーザマシンは、単にサーバにファイルを要求した。このサーバベースのアーキテクチャにおいて、ネットワークを介して遠隔に、記憶サーバに記憶されたファイルの管理およびアクセスを容易にするようにファイルシステムが拡張された。
【0003】
【発明が解決しようとする課題】
今日、ファイル記憶は、中央記憶サーバ上にファイルを記憶するよりも、ネットワーク化されたさまざまなコンピュータ上にファイルを記憶するモデルへと移行している。サーバのないアーキテクチャは、ファイルシステムに新たな課題を提起している。具体的な1つの課題は、多くの異なるコンピュータ上に分散したファイルを、コンピュータのいくつかを任意の時刻にアクセス不能にするにもかかわらず、高い信頼性で記憶し、アクセスできる方法で管理し、同時に、無許可ユーザによるファイルへのアクセスを防止することに関する。
【0004】
本発明は、サーバレス分散ファイルシステムのこれらの課題に取り組み、有効な解決方法を提供する。
【0005】
【課題を解決するための手段】
本明細書には、サーバレス分散ファイルシステムを開示する。
【0006】
一態様によれば、ファイルとディレクトリは、サーバレス分散ファイルシステム内で異なる方法で管理される。ディレクトリは、ビザンチンフォルトトレラントグループ(Byzantine-fault-tolerant groups)を使用して管理され、一方、ファイルは、ビザンチンフォルトトレラントグループを使用せずに管理される。これは、対応するディレクトリエントリのコピーよりも少ない数のファイルコピーを記憶する結果、性能が向上する。
【0007】
他の態様によれば、ファイルシステムは、階層的名前空間を使用してファイルを記憶する。ファイルは、複数のコンピュータを横断して分散され、これら複数のコンピュータの各々は、クライアントコンピュータおよびサーバコンピュータとして動作することができ、他のコンピュータを信用する必要がない。
【0008】
他の態様によれば、ファイルシステム内の1または複数のディレクトリを管理する責任が、ディレクトリグループに割り当てられる。ディレクトリグループの各メンバは、システムに参加したコンピュータであり、ディレクトリグループは、各ディレクトリ中のオブジェクト(例えばファイルおよびディレクトリ)へのアクセスを制御する複数のロック(locks)を使用することができる。ロックは、オブジェクトのオープンを制御する第1のロックセット、およびオブジェクト中のデータへのアクセスを制御する第2のロックセットを含む。
【0009】
【発明の実施の形態】
本明細書を通して、同じ構成要素および/または特徴を参照するのに同じ符号を使用した。
【0010】
以下の議論は、ネットワーク化された複数のコンピュータ上で稼動し、中央サーバまたはサーバ群にファイルを記憶するのではなしに、これらのネットワーク化されたコンピュータ上にファイルを記憶する、共生(symbiotic)、サーバレス(serverless)、分散ファイルシステムを対象とする。共生とは、マシンが相互に協力はするが、完全には信用しないことを意味する。このファイルシステムは、ディスク記憶装置を直接には管理せず、オペレーティングシステムに組み込まれたファイルシステム(例えば、Windows(登録商標) NTのファイルシステム)などの、ローカルマシン上に存在するファイルシステムに依存する。
【0011】
本明細書の議論では、公開鍵、暗号化およびディジタル署名に言及する。公開鍵暗号とは一般に、ひとまとめに鍵対と呼ばれる公開鍵と秘密鍵の使用を指す。実体(例えば、ユーザ、ソフトウェアアプリケーションなど)は、秘密鍵を秘密にしておき、公開鍵を他の実体に公開する。データは一般に平文と呼ばれ、暗号化アルゴリズムおよび公開鍵を使用して暗号化することができる。この場合、暗号化した結果(一般に暗号文と呼ばれる)は、対応する秘密鍵を知らなければ簡単には復号できないが、対応する秘密鍵を知っていれば比較的に簡単に復号することができる。同様に、暗号化アルゴリズムおよび秘密鍵を使用してデータにディジタル署名することができる。この場合、署名は、対応する公開鍵を使用して簡単に検証できるが、秘密鍵がなければ簡単に生成することができない。本明細書の議論は、読者が暗号法の基本的な理解を有することを前提とする。暗号法の基本については、Bruce Schneier著「Applied Cryptography :Protocols, algorithms, and Source Code in C」、John Wiley & Sons社刊、1994年(または第2版、1996年)を参照されたい。
【0012】
(サーバレス分散ファイルシステム)
図1に、サーバレス分散ファイルシステムをサポートする例示的なネットワーク環境100を示す。4台のクライアントコンピューティング装置102、104、106および108が、データ通信ネットワーク110を介して相互に結合されている。4台のコンピューティング装置を図示したが、ネットワーク環境100には、さまざまな数(4台を越えるまたは4台未満)の装置を含めることができる。
【0013】
ネットワーク110は、多種多様なデータ通信ネットワークのうちの1つを表す。ネットワーク110は、公的部分(例えばインターネット)、私的部分(例えば企業内ローカルエリアネットワーク(LAN))、あるいは公的部分と私的部分との組合せを含むことができる。ネットワーク110は、有線および無線媒体を含む従来のさまざまな通信媒体のうち、1または複数の媒体を使用して実現することができる。公衆のおよび私有のプロトコルを含むさまざまな通信プロトコルのいずれかを使用して、ネットワーク110経由でデータを伝達することができる。このようなプロトコルの例にはTCP/IP、IPX/SPX、NetBEUIなどがある。
【0014】
コンピューティング装置102〜108は、広範囲にわたるコンピューティング装置の1つを表し、互いに同じ装置であってもよいし、または異なる装置であってもよい。装置102〜108は例えば、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドまたはポケットコンピュータ、パーソナルディジタルアシスタント(PDA)、携帯電話、インターネット機器、家庭用電子装置、ゲーム機などである。
【0015】
2台以上の装置102〜108が動作して、サーバレス分散ファイルシステムを実現する。サーバレス分散ファイルシステムに参加する実際の装置は、その時々で変更することができる。すなわち、新たな装置をシステムに追加し、他の装置をシステムから除くことができる。分散ファイルシステムを実現する(分散ファイルシステムに参加する)各装置102〜106は、ローカル記憶または分散記憶として使用するよう割り当てられた大容量記憶装置(例えば、ハードディスクドライブ)の部分を有する。ローカル記憶は、ユーザが、分散ファイルシステム構造にではなく、自分のローカルマシン上に記憶しておきたいデータに対して使用される。分散記憶部分は、その装置(または他の装置)のユーザが分散ファイルシステム構造に記憶しておきたいデータに対して使用される。
【0016】
図1に示した例では、ネットワーク110に接続されたある装置が、分散部分とローカル部分の両方を含む1または複数の大容量記憶装置を有する。分散またはローカル記憶に割り当てられる量は、装置ごとに異なる。例えば装置102では、ローカル部分122に比べて分散システム部分120に大きな割合が割り当てられており、装置104は、ローカル部分126とほぼ同じサイズの分散システム部分124を含み、装置106では、ローカル部分130に比べて分散システム部分128に小さな割合が割り当てられている。記憶域の複数部分の分離は、記憶装置単位で実施し(例えば、1台のハードドライブを分散システムで使用するように指定し、別のハードドライブをローカル使用専用に指定する)、および/または単一の記憶装置内で実施する(例えば、1台のハードドライブの一部分を分散システムで使用するように指定し、別の部分をローカル使用向けに指定する)ことができる。分散記憶またはローカル記憶に割り当てる量は、その時々で変更することができる。コンピューティング装置108などのネットワーク110に接続された他の装置が、分散ファイルシステムのいずれの部分をも実現せず、したがってその大容量記憶装置内に、分散システムが使用するように割り振られた部分を持たないことがある。したがって装置108は、ローカル部分132だけしか持たない。
【0017】
分散ファイルシステム150は、異なるコンピューティング装置102〜106に1または複数のファイルコピーを記憶するように動作する。コンピュータのユーザが新たなファイルを作成したとき、ユーザは、自分のコンピューティング装置のローカル部分にファイルを記憶するのか、または分散ファイルシステムにファイルを記憶するのかを選択することができる。分散ファイルシステム150に記憶する場合には、ファイルが、1台または数台の装置102〜106の大容量記憶装置の分散システム部分に記憶される。ファイルを作成したユーザは一般に、どの装置102〜106上にファイルを記憶するかを制御することができず、そのファイルがどの装置102〜106上に記憶されたかも知ることができない。さらに、複製された複数のファイルコピーが保存され、たとえファイルが保存されているコンピューティング装置102〜106のうちの1台が使用できない(例えば、パワーダウンまたは誤動作しているなど)場合であっても、ユーザが続いてファイルを検索することができる。
【0018】
分散ファイルシステム150は、各装置102〜106上の1または複数のコンポーネントによって実現され、これによってファイルシステムを調整する中央サーバの必要性が排除される。これらコンポーネントは、特定のファイルをどこに記憶するか、いくつのファイルコピーを作成して異なる装置上に記憶するかなどを決定するように動作する。どの装置にどのファイルが記憶されるかは多くの因子によって決まり、これには、分散ファイルシステム内の装置数、各装置からファイルシステムに割り振られた記憶空間、保存するファイルコピーの数、暗号法上安全な乱数、装置上にすでに記憶されているファイルの数などが含まれる。したがって、この分散ファイルシステムによってユーザは、正確にどのコンピューティング装置上にファイルが記憶されているのかを一切知らなくとも、ファイル(フォルダまたはディレクトリも同様に)を作成し、アクセスすることができる。
【0019】
分散ファイルシステム150は、システム150内の多数のコンピュータをサポートするため、拡張が容易であるように設計される。システム150内の装置上のコンポーネントが使用するプロトコルおよびデータ構造は、システム内のコンピュータの数と釣り合うようには設計されず、これによって、多数のコンピュータに合わせて容易に拡張することができる。
【0020】
ファイルシステムによって記憶されるファイルは、各装置102〜106に分散され、暗号化された形態で記憶される。新しいファイルが作成されると、他の装置に伝達して記憶する前に、ファイルを作成した装置がファイルを暗号化する。新しいファイルのディレクトリエントリ(ファイル名を含んでいる)も、他の装置に伝達され記憶される。他の装置は、暗号化されたファイルを記憶する装置と同じである必要はない(一般には異なる装置に記憶される)。さらに、新しいフォルダまたはディレクトリが作成された場合も、ディレクトリエントリ(フォルダ名またはディレクトリ名を含んでいる)が他の装置に伝達され記憶される。本明細書においてディレクトリエントリは、ファイルシステムのディレクトリに追加することができ、ファイル名とディレクトリ名(またはフォルダ名)の両方を含む、任意のエントリを指す。
【0021】
分散ファイルシステム150は、1台の装置102〜106上に記憶されたデータを無許可ユーザが読めないように設計される。したがって、装置102が作成し、装置104に記憶されたファイルを、装置104のユーザは(許可を得ない限り)読むことができない。このようなセキュリティを実現するため、ファイルの内容、ディレクトリエントリ中の全てのファイル名およびディレクトリ名が暗号化され、許可されたユーザだけに復号鍵が与えられる。したがって、装置102が作成したファイルを装置104は記憶することができるが、装置104のユーザがそのファイルの許可されたユーザでない限り、ファイルの内容も、そのディレクトリエントリ中のファイル名も復号することができない(したがって読むことができない)。
【0022】
分散ファイルシステム150は、1または複数の名前空間ルートを有し、各名前空間ルートのもとに複数のサブツリーを有する階層的記憶構造を使用する。異なるサブツリーの管理を異なるコンピュータ群に委任し、これによって名前空間ルートまたは特定のサブツリーを管理するコンピュータの負担が過大になるのを防ぐことができる。
【0023】
分散ファイルシステム150はさらに、ファイルの記憶とファイルに対応するディレクトリエントリの記憶を異なる方法で管理する。システム150内に記憶されるファイルは複製され、システム内の異なる複数のコンピュータ上に保存される。さらに、そのファイルに対してディレクトリエントリが生成され、システム内の異なる複数のコンピュータ上に保存される。保存されるファイルコピーの数よりも多くのディレクトリエントリが保存される。一実施態様では、ディレクトリエントリが、ビザンチンフォルトトレラントグループの一部であるコンピュータ上に記憶される。これについては後に詳細に論じる。
【0024】
分散ファイルシステム150はさらに、ディレクトリおよびファイルの読取りまたは書込みを制御することができるディレクトリ/ファイルロック機構を使用する。ビザンチングループ内のコンピュータとともに使用すると、使用されたロック機構は、ローカルに実行することができるオペレーションの数を増やすことによって、ディレクトリグループによるアクションを要求することなく、性能を向上させようとする。これについては後に詳細に論じる。
【0025】
分散ファイルシステム150内の全てのコンピュータ102〜106は、3つの機能を有することができる。すなわち、ローカルユーザのクライアントとなり、システム内に記憶された暗号化されたファイルコピーの保管場所となり、1または複数のディレクトリを維持する一群のコンピュータのメンバとなることができる。
【0026】
一般に、コンピュータ102〜106のユーザが所与のディレクトリ内のファイルを開くと、そのコンピュータは、ビザンチンフォルトトレラントプロトコルを使用して、そのディレクトリを集合的に管理している一組のコンピュータ(「ビザンチングループ」または「ディレクトリグループ」と呼ばれる)にリクエストを送る。ビザンチングループは、そのコンピュータにファイルロックを許可し、そのファイルにローカル更新を実施し(書込みロックの場合)、続いてそれらの更新をビザンチングループへプッシュすることを可能にする。コンピュータが最近このファイルにアクセスしていた場合、このコンピュータはおそらく、暗号化されたファイル内容のコピーをローカルキャッシュ内に有し、そのためコンピュータは、キャッシュされているコピーを検索し、それを復号するだけでよく、その後、コンピュータはファイルの読取りまたは書込みを開始することができる。コンピュータが最近に、ファイルの現行バージョンにアクセスしていない場合、コンピュータは、そのファイルを記憶したコンピュータの1つから暗号化されたファイルのコピーを検索する。どのコンピュータが現行コピーを保持しているかについての情報は、ロック許可とともにビザンチングループによって提供される。ファイルを記憶した1台または数台のコンピュータがダウンしている場合には、別のコンピュータからファイルを検索する。ビザンチングループはさらに、取り込んだファイルを確認するためコンピュータが使用する、ファイル内容の暗号ハッシュを提供する。
【0027】
(ファイルの暗号化)
ファイルは、「収束化暗号(convergent encryption)」として知られる技術を使用して暗号化される。収束化暗号は、以下の2つの特性を有する。第1に、暗号化可能な2またはそれ以上のオブジェクトが同一である場合、それらを暗号化して個々の暗号オブジェクトを提供するのに異なる暗号化鍵を使用する場合でも、暗号化鍵のいくつかにアクセスし、暗号化可能なオブジェクトが同一であることを、暗号オブジェクトを調べて決定する必要がない。第2に、2またはそれ以上の暗号化可能なオブジェクトが同一であり、それらを異なる暗号化鍵で暗号化する場合、全ての暗号オブジェクトを記憶するのに必要な総記憶空間は、暗号化可能な単一のオブジェクトを記憶するのに必要な空間に各々の異なった暗号化鍵に対する一定量の記憶域を加えたものに比例する。
【0028】
コ一般に、ンバージェント暗号化によれば、ファイルF(または他の暗号化可能オブジェクトの任意のタイプ)は、一方向ハッシュ関数h(例えばSHA、MD5など)を使用してハッシュされ、ハッシュ値h(F)を生成する。次いで、対称暗号(例えばRC4、RC2など)を使用し、ハッシュ値を鍵として、すなわちEh(F)(F)としてファイルFを暗号化する。次に、この暗号化されたファイルへの読取りアクセスが許可された各許可ユーザに対して、読取りアクセス制御エントリを作成する。書込みアクセス制御は、そのファイルのディレクトリエントリを記憶したディレクトリサーバによって統率される。読取りアクセス制御エントリは、任意の数の鍵K1、K2、...、Kmを用いて、ファイルのハッシュ値h(F)を暗号化し、EK1(h(F))、EK2(h(F))、...、EKm(h(F))を得ることによって、形成される。一実施態様では、各々の鍵Kが、非対称暗号(例えばRSA)の公開/秘密鍵対のユーザの公開鍵である。
【0029】
収束化暗号では、サーバレス分散ファイルシステム150の間で、ファイルの1つの暗号化バージョンが記憶され、複製される。ファイルの暗号化バージョンとともに、アクセスを有する許可ユーザ数に応じた1または複数のアクセス制御エントリが記憶される。したがって、分散ファイルシステム150内のファイルは以下の構造を有する。
[Eh(F)(F), <EK1(h(F))>, <EK2(h(F))>, ..., <EKm(h(F))>]
収束化暗号の1つの利点は、暗号化されたファイルをファイルシステムが評価して、復号に訴えることなく(したがって暗号化鍵を知らなくても)、それが他のファイルと同一かどうかを決定することができる点である。許可ユーザのアクセス制御エントリを残りのファイルに追加することによって、不要な複製ファイルを除去することができる。他の利点は、おそらくギガバイトに達する暗号化されたファイルに比べて、アクセス制御エントリのサイズが非常に小さいことである。その結果、各々のファイルに記憶されるオーバヘッド情報の量が小さくなる。これは、ファイルを記憶するために使用される総記憶空間が、暗号化された単一のファイルを記憶するのに必要な空間に、そのファイルの各追加の許可された読者に対する一定量の記憶域を加えたものに比例するという特性を可能にする。
【0030】
収束化暗号の詳細については、Douceur他の名義で2000年5月5日に出願され、Microsoft Corporationに譲渡された「Encryption Systems and Methods for Identifying and Coalescing Identical Objects Encrypted with different Keys」という名称の同時係属米国特許出願第09/565821号を参照されたい。この出願は、参照によって本明細書に組み込まれる。
【0031】
(ディレクトリエントリの暗号化)
ディレクトリエントリ中のファイル名およびディレクトリ名は、「排他的暗号(exclusive encryption)」と呼ばれるプロセスを使用して暗号化する。排他的暗号は、ディレクトリエントリ中のファイル名およびディレクトリ名を暗号化された形で記憶することを可能にし、これによって無許可ユーザが、ファイル名またはディレクトリ名に基づいて情報を不適切に獲得することを防ぐ。さらに、排他的暗号は、以下の3つの特性を有する。第1に、1つのディレクトリ内の暗号化されたエントリは、同じ名前に復号されることがない。第2に、1つのディレクトリ内の暗号化されたエントリが全て、構文上合法な名前に復号される。第3に、ディレクトリを維持するディレクトリグループが、エントリの平文名にアクセスすることができない。したがってファイルシステム150は、ディレクトリ内の2つのエントリが同じ名前の暗号化でないこと、およびディレクトリ内の全てのエントリが構文上合法な名前の暗号化であることを保証することができ、同時に、ディレクトリを維持する装置が、エントリの平文名にアクセスできないことを保証する。
【0032】
排他的暗号によれば一般に、平文名(ディレクトリエントリ中のファイル名またはディレクトリ名)が新しい名前にマップされる。マップされた名前は、任意選択で、ディケシファイ(decasified)された(大文字と小文字の区別をしない)名前と対応する大文字小文字情報にディケシファイされ、大文字と小文字の区別をしない複製名前検出が可能になる。マップ(および任意選択でディケシファイ)された名前は、次いで符号化され、暗号化される。この暗号化された名前(および任意選択で付随する大文字小文字情報)は、ディレクトリエントリの管理に責任を負うディレクトリグループに(例えば後に詳細に論じるパス名に基づいて)転送される。
【0033】
排他的暗号の詳細については、Douceur他の名義で2001年1月17日に出願され、Microsoft Corporationに譲渡された「Exclusive Encryption for a Secure Directory Service」という名称の同時係属米国特許出願第09/764962号を参照されたい。この出願は、参照によって本明細書に組み込まれる。
【0034】
(ファイルフォーマット)
図1のサーバレス分散ファイルシステム150のファイルフォーマットは、基本データストリームとメタデータストリームの2つの部分から成る。基本データストリームは、複数のブロックに分割されたファイルを含む。各ブロックは、対称暗号(例えばRC4)および暗号化鍵としてブロックのハッシュを使用して暗号化される。メタデータストリームは、ヘッダ、基本データストリーム中の暗号化されたブロックに索引を付けるための構造、およびいくつかのユーザ情報を含む。
【0035】
索引付けツリー構造は、各々のブロックのリーフノードを定義する。各リーフノードは、関連ブロックの復号に使用するアクセス値、および他のブロックとは独立に暗号化されたブロックを検証するのに使用する検証値から成る。一実施態様では、アクセス値は、ファイルブロックをハッシュし、得られたハッシュ値を、対称暗号およびランダムに生成された鍵を使用して暗号化することによって形成される。次いでこの鍵を、非対称暗号(例えばRSA)および暗号化鍵としてユーザの公開鍵を使用して暗号化する。検証値は、一方向ハッシュ関数(例えばSHA)を使用して、暗号化された関連ブロックをハッシュすることによって形成する。
【0036】
ファイルのサイズに応じて、索引付け構造は、リーフノードをツリーブロックにグループ分けし、各ツリーブロックのハッシュ値を計算することによって形成された中間ノードを含むことができる。これらの中間ノードは、ブロックに再びセグメント化することができ、各ブロックをハッシュして次のノードを形成することができる。これを、ルートノードに到達するまで所望の回数繰り返すことができる。次いで、ルートノードをハッシュし、このハッシュ値を、メタデータヘッダおよびユーザ情報とともに使用して、ファイル全体の検証値を生み出す。一実施態様では、この全体ファイル検証値には、ユーザの署名が署名される。あるいは、このような署名なしでファイルを構築することもできる。
【0037】
このファイルフォーマットは、ランダムに生成された鍵または任意のユーザ鍵についての知識なしで個々のファイルブロックを検証することをサポートする。ファイルのブロックを検証するため、ファイルシステムは任意選択で、全体ファイル検証値上の署名を評価し(存在する場合)、全体ファイル検証値がルートブロックのハッシュ、メタデータヘッダおよびユーザ情報と一致するかどうかをチェックし、次いで、検証する目的ブロックに関連した適当なリーフノードまでツリーを横断する。ファイルシステムが目的ブロックをハッシュし、ハッシュがリーフノードに含まれるアクセス値と一致する場合、そのブロックは本物である。
【0038】
このファイルフォーマットはさらに、他のブロックを妨害することなく個々のブロックから読み取り、個々のブロックへ書き込むことをサポートする。このファイルフォーマットは、広大な非データ領域を有する粗なファイルに資する。
【0039】
ファイルフォーマットの詳細については、Bolosky他の名義で2001年3月21日に出願され、Microsoft Corporationに譲渡された「On-Disk File Format for a Serverless Distributed File System」という名称の同時係属米国特許出願第09/814259号を参照されたい。この出願は、参照によって本明細書に組み込まれる。
【0040】
(コンピューティング装置のアーキテクチャ)
図2に、図1の分散ファイルシステム150に参加しているコンピューティング装置102〜106のうちの1台を表す例示的なコンピューティング装置200の論理的構成要素を示す。コンピューティング装置200は、サーバコンポーネント202、クライアントコンポーネント204、メモリ206、大容量記憶装置208および分散ファイルシステムインタフェース210を含む。典型的には、コンピューティング装置200は、追加の構成要素(例えばプロセッサ)を含むが、図面が乱雑にならないよう図2には、それらの追加構成要素を図示しない。さまざまなハードウェアおよびソフトウェアコンポーネントを有するより一般的なコンピュータアーキテクチャを後に図3を参照して説明する。
【0041】
メモリ206は、RAM、ROM、フラッシュメモリなどの従来の任意の揮発性および/または不揮発性メモリとすることができる。大容量記憶装置208は、磁気ディスク、光ディスク、フラッシュメモリなどの従来の任意の不揮発性記憶装置とすることができる。大容量記憶装置208は、分散システム部分とローカル部分とに区画されている。図2には、大容量記憶装置208が1つしか示されていないが、コンピューティング装置200は、(異なるタイプまたは全て同じタイプの)複数の記憶装置208を含むことができる。
【0042】
コンピューティング装置200は、サーバレス分散ファイルシステム内で使用することを目的としたものであり、これに沿って、サーバコンポーネント202とクライアントコンポーネント204とを含む。サーバコンポーネント202は、記憶装置208に記憶された(または記憶する)ファイルまたはディレクトリエントリに関係する要求に装置200が応答しているときに、要求を処理し、クライアントコンポーネント204は、分散ファイルシステム内に記憶された(または記憶する)ファイルまたはディレクトリのために、装置200による要求の発行を処理する。クライアントコンポーネント204とサーバコンポーネント202は互いに独立に動作する。したがって、クライアントコンポーネント204が記憶中のファイルを、サーバコンポーネント202が大容量記憶装置208に記憶するといった状況も起こる可能性がある。
【0043】
クライアントコンポーネント204は、コンピューティング装置150に代って、ファイルおよびディレクトリの作成、記憶、検索、読取り、書込み、変更および検証目的のサーバレス分散ファイルシステム150へのアクセスを、インタフェース210とともに管理する記憶/検索制御モジュール220を含む。制御モジュール220は、ディレクトリグループ探索モジュール222を使用して、特定のファイルまたはディレクトリの管理に責任を負うディレクトリグループを識別し、ファイル暗号化モジュール226を使用してファイルを暗号化し、ディレクトリ暗号化モジュール228を使用して、ディレクトリエントリ中のファイル名およびディレクトリ名を暗号化する。これらのモジュールの動作については後に詳細に論じる。
【0044】
サーバコンポーネント202は、分散システム制御モジュール250、複製識別子252およびサブツリー委任モジュール254を含む。分散システム制御モジュール250は、暗号化されたファイル240へのアクセスを管理する。分散システム制御モジュール250は、大容量記憶装置208と通信して、暗号化されたファイル240を記憶/検索する。分散システム制御モジュール250はさらに、コンピューティング装置200(あるいはサーバレス分散ファイルシステム内の他の場所)に記憶されたディレクトリエントリ(図示せず)のレコードを、メモリ206および/または大容量記憶装置208内に維持する。サブツリー委任モジュール254は、サブツリーを他のディレクトリグループに委任するように動作する。これについては後に詳細に論じる。
【0045】
複製識別子252は、分散ファイルシステム内の暗号化された同一のファイルの識別を助ける。フォルトトレラント目的の意図的な複製ではない複製を見つけると、複製識別子252は、制御モジュール250に通知し、制御モジュール250は、この複製ファイルを排除し、排除されたファイルへのアクセス制御エントリを残りのファイルに追加する。
【0046】
図3に、分散ファイルシステムの実現に使用する、より一般的なコンピュータ環境300を示す。コンピュータ環境300は、コンピューティング環境の一例に過ぎず、コンピュータおよびネットワークアーキテクチャの使用または機能の範囲に関して何らかの制限を暗示しようとするものではない。コンポーネントの包含(または排除)、あるいは例示的なコンピュータ環境300内に示したコンポーネントの結合または組合せに関して、コンピュータ環境300が要件を有すると解釈してはならない。
【0047】
コンピュータ環境300は、コンピュータ302の形態の汎用コンピューティング装置を含む。コンピュータ302のコンポーネントには、1または複数のプロセッサまたは処理ユニット304、システムメモリ306、およびシステムメモリ306にプロセッサ304を含むさまざまなシステムコンポーネントを結合するシステムバス308が含まれる。ただしこれらに限定されるわけではない。
【0048】
システムバス308は、メモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッドグラフィクスポート、およびさまざまなバスアーキテクチャを使用したプロセッサまたはローカルバスを含むいくつかのタイプのバス構造のうち、任意の1または複数のバス構造を表す。このようなアーキテクチャには例えば、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、およびMezzanineバスとしても知られるPeripheral Component Interconnects(PCI)バスが含まれる。
【0049】
コンピュータ302は一般に、さまざまなコンピュータ読取り可能な媒体を含む。このような媒体は、コンピュータ302がアクセス可能な任意の使用可能媒体であり、揮発性および不揮発性媒体と、取外し可能および取外し不能媒体とを含む。
【0050】
システムメモリ306は、ランダムアクセスメモリ(RAM)310などの揮発性メモリ、および/またはリードオンリーメモリ(ROM)312などの不揮発性メモリの形態のコンピュータ読取り可能な媒体を含む。ROM312には、スタートアップ時などに、コンピュータ302の要素間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム(BIOS)314が記憶されている。RAM310は一般に、処理ユニット304が即座にアクセス可能なおよび/または現在操作中の、データおよび/またはプログラムモジュールを含む。
【0051】
コンピュータ302はさらに、取外し可能/取外し不能の揮発性/不揮発性コンピュータ記憶媒体を含むことができる。例えば図3には、取外し不能な不揮発性磁気媒体(図示せず)の読取り/書込み用のハードディスクドライブ316、取外し可能な不揮発性磁気ディスク320(例えば「フロッピー(登録商標)ディスク)の読取り/書込み用の磁気ディスクドライブ318、およびCD−ROM、DVD−ROMなどの取外し可能な不揮発性光ディスク324の読取り/書込み用の光ディスクドライブ322が示されている。ハードディスクドライブ316、磁気ディスクドライブ318および光ディスクドライブ322は、1または複数のデータ媒体インタフェース360によってシステムバス308に接続されている。あるいは、ハードディスクドライブ316、磁気ディスクドライブ318および光ディスクドライブ322を、1または複数のインタフェース(図示せず)によってシステムバス308に接続することもできる。
【0052】
これらのディスクドライブおよびその関連コンピュータ読取り可能な媒体は、コンピュータ302のコンピュータ読取り可能な命令、データ構造、プログラムモジュールおよびその他のデータの不揮発性記憶を提供する。この例には、ハードディスク316、取外し可能磁気ディスク320および取外し可能光ディスク324を示したが、コンピュータがアクセス可能なデータを記憶することができる、磁気カセットまたは他の磁気記憶装置、フラッシュメモリカード、CD−ROM、ディジタルバーサタイルディスク(DVD)または他の光記憶装置、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的に消去可能なプログラマブルリードオンリーメモリ(EEPROM)などの他のタイプのコンピュータ読取り可能な媒体を利用しても、この例示的なコンピューティングシステムおよび環境を実現できることを理解されたい。
【0053】
ハードディスク316、磁気ディスク320、光ディスク324、ROM312および/またはRAM310上には、例えば、オペレーティングシステム326、1または複数のアプリケーションプログラム328、他のプログラムモジュール330およびプログラムデータ332を含む、任意の数のプログラムモジュールを記憶することができる。オペレーティングシステム326、1または複数のアプリケーションプログラム328、他のプログラムモジュール330およびプログラムデータ332(またはこれらの組合せ)はそれぞれ、分散ファイルシステムをサポートする常駐コンポーネントの全部または一部を実現することができる。
【0054】
ユーザは、キーボード334、ポインティングデバイス336(例えば「マウス」)などの入力装置を介して、コマンドおよび情報をコンピュータ302に入力することができる。他の入力装置338(具体的には図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、衛星アンテナ、シリアルポートおよび/またはスキャナなどが含まれる。これらの入力装置およびその他の入力装置は、システムバス308に結合された入出力インタフェース340を介して処理ユニット304に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)などの他のインタフェースおよびバス構造によって接続することもできる。
【0055】
モニタ342または他のタイプのディスプレイ装置を、ビデオアダプタ344などのインタフェースを介してシステムバス308に接続することもできる。モニタ342の他に、出力周辺装置として、入出力インタフェース340を介してコンピュータ302に接続することができるスピーカ(図示せず)、プリンタ346などのコンポーネントを含めることができる。
【0056】
コンピュータ302は、リモートコンピューティング装置348などの1台または数台のリモートコンピュータへの論理接続を使用した、ネットワーク化された環境で動作することができる。リモートコンピューティング装置348は例えば、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピア装置または他の一般的なネットワークノードなどである。リモートコンピューティング装置348は、コンピュータ302に関して本明細書で説明した要素および特徴の多くまたは全てを含むことができるポータブルコンピュータとして示されている。
【0057】
コンピュータ302とリモートコンピュータ348の間の論理接続は、ローカルエリアネットワーク(LAN)350および一般的なワイドエリアネットワーク(WAN)352として図示されている。このようなネットワーキング環境は、事業所、企業内コンピュータネットワーク、イントラネットおよびインターネットでよく見られる。
【0058】
LANネットワーキング環境で実現するとき、コンピュータ302は、ネットワークインタフェースまたはネットワークアダプタ354を介してローカルネットワーク350に接続される。WANネットワーキング環境で実現するとき、コンピュータ302は一般に、ワイドネットワーク352を介して通信を確立するためのモデム356またはその他の手段を含む。モデム356は、コンピュータ302の内部または外部に設置することができ、入出力インタフェース340または他の適当な機構を介してシステムバス308に接続することができる。図示のネットワーク接続は例示的なものであり、コンピュータ302と348の間に通信リンクを確立する他の手段を使用することもできることを理解されたい。
【0059】
コンピューティング環境300に示したようなネットワーク化された環境では、コンピュータ302に関して図示したプログラムモジュールまたはその一部分を、リモートメモリ記憶装置に記憶することができる。例えば、リモートコンピュータ348の記憶装置上に、リモートアプリケーションプログラム358が常駐する。図示の目的上、アプリケーションプログラムおよびオペレーティングシステムなどの他の実行可能プログラムコンポーネントを別個のブロックとして示したが、このようなプログラムおよびコンポーネントはさまざまな時刻に、コンピューティング装置302のさまざまな記憶コンポーネントに存在し、コンピュータのデータプロセッサによって実行されることを理解されたい。
【0060】
分散ファイルシステム150の一実施態様は、1台または数台のコンピュータあるいはその他の装置によって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で記述することができる。プログラムモジュールは一般に、特定のタスクを実行し、または特定の抽象データ型を実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。典型的には、さまざまな実施形態で、プログラムモジュールの機能を希望に応じて結合し、または分散させることができる。
【0061】
暗号化されたファイルのファイルフォーマットの一実施態様を、ある形態のコンピュータ読取り可能な媒体上に記憶し、またはある形態のコンピュータ読取り可能な媒体を横断して伝送することができる。コンピュータ読取り可能な媒体は、コンピュータがアクセス可能な任意の使用可能媒体とすることができる。コンピュータ読取り可能な媒体は例えば、「コンピュータ記憶媒体」および「通信媒体」を含む。ただしこれらに限定されるわけではない。
【0062】
「コンピュータ記憶媒体」は、コンピュータ読取り可能な命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するため任意の方法または技術で実現された、揮発性および不揮発性の取外し可能および取外し不能媒体を含む。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、ディジタルバーサタイルディスク(DVD)または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を記憶するのに使用することができ、コンピュータがアクセス可能な他の任意の媒体が含まれる。ただしこれらに限定されるわけではない。
【0063】
「通信媒体」は一般に、搬送波などの被変調データ信号または他の移送機構中に、コンピュータ読取り可能な命令、データ構造、プログラムモジュールまたは他のデータを具体化する。通信媒体にはさらに任意の情報送達媒体が含まれる。用語「被変調データ信号」は、信号中に情報を符号化するような方法で、その1または複数の特徴が設定または変更された信号を意味する。通信媒体には例えば、有線ネットワーク、直接有線接続などの有線媒体、音響、RF、赤外線などの無線媒体が含まれる。ただしこれらに限定されるわけではない。上記の任意の媒体の組合せもコンピュータ読取り可能な媒体の範囲に含まれる。
【0064】
(階層的記憶構造)
分散ファイルシステム150は、1または複数の名前空間ルートを含む階層的ファイル記憶構造を使用する。名前空間ルートはそれぞれ、1または複数のディレクトリまたはフォルダサブツリーをサポートすることができ、各サブツリーは、1または複数の追加のサブツリーをサポートすることができる。ディレクトリは、ゼロまたは1つ以上のファイル、および/またはゼロまたは1つ以上の他のディレクトリを保持することができる、シミュレートされたファイルフォルダと見ることができる。サブツリーは、1または複数のディレクトリを指し、ルートを含み(名前空間ルートを含むこともできる)、サブツリーのルートからサブツリーの全てのメンバへのパスがサブツリー自体の中にあるという特性を有する。図4に、ディレクトリA、B、C、D、E、F、G、H、J、I、M、K、Lを含む複数のサブツリーを有する名前空間ルートを含む、例示的な階層的名前空間400を示す。名前空間ルートのサブツリーには一般に、これよりも多くのディレクトリが含まれるが、説明しやすいように図4には少数のディレクトリだけを示した。
【0065】
各々のサブツリーは、1台または数台のコンピュータから成る、ディレクトリグループと呼ぶ一群のコンピュータによって管理される。本明細書では主に、サブツリーを管理するディレクトリグループとして論じるが、1または複数のディレクトリグループが、名前空間内の任意のディレクトリセットを管理することができる。図2の制御モジュール250など、コンピュータの1または複数のモジュールが、そのコンピュータが割り当てられたサブツリーを管理するディレクトリサービスを実現する責任を負う。一実施態様では、各ディレクトリグループが、後に詳細に論じるビザンチンフォルトトレラントグループ(単にビザンチングループとも呼ぶ)である。しかしディレクトリグループが、ビザンチンフォルトトレラントグループである必要はなく、他のグルーピングを使用することもできる。
【0066】
図4の実線は、ディレクトリ間の関係を示し、どのディレクトリがどのディレクトリのサブディレクトリであるかを識別する。例えば、ディレクトリCは、ディレクトリBのサブディレクトリである。あるディレクトリを、そのサブディレクトリの「親」ディレクトリと呼ぶことができる。例えば、ディレクトリBを、ディレクトリCの親ディレクトリと呼ぶことができる。
【0067】
図4の破線の囲みはそれぞれ、特定の破線の中に含まれるディレクトリを管理するディレクトリグループを示す。したがってこの例示的な名前空間400では、ルート名前空間がディレクトリグループ402によって管理され、ディレクトリA、B、C、FおよびGがディレクトリグループ404によって管理され、ディレクトリDおよびEがディレクトリグループ406によって管理され、ディレクトリHおよびJがディレクトリグループ408によって管理され、ディレクトリK、I、LおよびMがディレクトリグループ410によって管理される。
【0068】
特定のディレクトリまたは名前空間を管理するディレクトリグループは、そのディレクトリに記憶された各ファイルのディレクトリエントリ、ならびにそのディレクトリ内の各サブディレクトリのディレクトリエントリを維持する責任を負う。ファイルのディレクトリエントリの各々は、分散ファイルシステム150内の、そのファイルが記憶された1台または数台のコンピュータを識別する。サブディレクトリのディレクトリエントリの各々は、そサブディレクトリを管理する責任を負ったディレクトリグループを識別する。ディレクトリエントリは、作成、変更およびアクセスのタイムスタンプ、読取り/書込みアクセス制御リスト、複製位置のセット、ファイルサイズなどの追加の情報を含むことができる。
【0069】
各ディレクトリグループは、名前空間ルートおよび/または名前空間内の1または複数のサブツリーを管理する責任を負う。各ディレクトリグループはさらに、1または複数の追加のサブツリーを識別し、それらの追加のサブツリーの管理責任を他のディレクトリグループに委任することができる。例えば、ディレクトリDおよびEは元々、ディレクトリグループ404によって管理されていたが、後に、ディレクトリグループ406に委任された。
【0070】
ディレクトリグループはいつでも、サブツリーを別のディレクトリグループに委任することを決定することができる。一実施態様では、この決定が作業負荷に基づき、ディレクトリグループは、自身が過負荷になりつつあると判定したときにサブツリーの委任を決定する。ディレクトリグループは、自身が過負荷になりつつあるいことをさまざまな因子を使用して判定することができ、例示的な一実施態様では、各ディレクトリグループは、予想されるマシン1台あたりの平均ディレクトリ数(例えば10,000程度)にほぼ等しいサイズのサブツリーを管理しようとする。
【0071】
サブツリーを委任する先のディレクトリグループは、さまざまな方法で決定することができる。一実施態様では、委任を実行する側のディレクトリグループが、分散ファイルシステム150内の知っているコンピュータの中からランダムに選択し、選択したコンピュータを、サブツリーを委任する先の新しいディレクトリグループとして使用する。他のさまざまな因子をこの選択プロセスに影響させることができる(例えば、可用性の低いコンピュータは選択しない、最近にサブツリーを委任したコンピュータは選択しないなど)。
【0072】
ディレクトリグループは、1または複数のメンバによってディジタル署名された委任証明書を生成することによって、特定のサブツリーを委任することができる。複数のメンバが委任証明書に署名する状況では、署名プロセスをさまざまな形式で実施することができる。一実施態様では、各メンバは、委任証明書のコピーに署名する。他の実施態様では、委任証明書に繰り返し署名される(例えば、1つのメンバが証明書に署名し、次いで、ディジタル署名されたこの証明書に他のメンバが署名する)。ディジタル署名を検証するときに検証者がその順番を知っていさえすれば、異なるメンバが証明書に署名する順番は重要ではない(例えば、署名順を用いて検証者を前もってプログラムしておくこと、または順番を識別する情報を証明書に含めることができる)。以下に、4つの署名者によって繰り返し署名された例示的な証明書を示す。
σS4(σS3(σS2(σS1(DC))))
ここで、DCは、ディジタル署名される委任証明書を表し、σSi()は、署名者iが()の内容にディジタル署名したことを指示する。
【0073】
一実施態様では、ディレクトリグループのメンバ(コンピュータ)の数が、設計者が許容できるようにしたいと考える障害コンピュータの数によって決まる。本明細書では障害コンピュータが、アクセス不能のコンピュータ(例えば電源が切られた、または誤動作しているコンピュータ)、または不正使用されたコンピュータ(例えば、悪意あるユーザまたはプログラムがコンピュータにアクセスし、適当な応答を与えるまたは不適切なデータを与えるなど、問合せに対して不適切に応答することができるコンピュータ)を指す。具体的な1つの例では、f台の障害コンピュータを許容するために、ディレクトリグループは、3f+1台のコンピュータを含む。さらにこの例では、少なくともf+l台のコンピュータが委任証明書にディジタル署名する。
【0074】
各々の名前空間ルートには、認証局(CA)から取得した証明書が関連づけられている。認証局は、名前空間の作成を検証する信用機関である。サブツリーに関連づけられた各委任証明書は、カレントサブツリーから、ゼロまたは1つ以上の他のサブツリーを介してCAが署名した名前空間ルート証明書までさかのぼる証明書のチェーンを含む。したがって、各委任証明書には、そのサブツリーを管理することを許可されたディレクトリグループであることを(CAが署名した証明書までさかのぼる証明書のチェーンを確立することによって)証明する複数の証明書が関連づけられている。
【0075】
委任証明書は、さまざまな構成要素を含むことができ、一実施態様では委任証明書が、(1)委任を実行するディレクトリグループが管理しているサブツリーのルートよりも下にある、委任するパスの識別、(2)委任を実行するディレクトリグループに委任されたサブツリーのルートの識別、(3)委任するサブツリーの識別、および(4)サブツリーを委任する先のグループのメンバの識別を含む。サブツリーおよびパスメンバの識別はさまざまであり、実際のディレクトリ名(例えばディレクトリA、B、C、Dなどの名前)、あるいは識別番号(例えば、Globally Unique Identifier(GUID))とすることができる。識別番号を使用すると、ディレクトリ名が変更された場合に、委任証明書を作成し直す必要性を回避することができる。
【0076】
図4を参照して委任証明書の例を見てみる。ディレクトリグループ402は、グループ402が名前空間ルートを管理する権限を有することを証明する証明書をCAから取得する。この証明書は以下の形式をとる。
σOurCA(″Root″,GUIDRoot,DG402) (1)
ここで、σOurCAは、この証明書がCA「OurCA」によって署名されたことを指示し、″Root″は名前空間ルートの名前、GUIDRootは名前空間ルートのGlobally Unique Identifierであり、DG402は、ディレクトリグループ402のメンバの名前(または他の識別子)を表す。
【0077】
ディレクトリグループ402がディレクトリAから始まるサブツリーをディレクトリグループ404に委任すると決定すると、ディレクトリグループ402は、ディレクトリグループ404のメンバに渡す委任証明書を生成する。この委任証明書は、先の証明書(1)ならびに以下の証明書を含む。
σDG402(GUIDRoot/A,GUIDA,DG404) (2)
ここで、σDG402は、ディレクトリグループ402のメンバがこの証明書に署名したことを指示し、GUIDRoot/Aは、ディレクトリグループ402に委任されたサブツリーのルートのGUID(GUIDRoot)とディレクトリグループ404に委任されるパス(/A)、GUIDAは、委任されるサブツリー(すなわちディレクトリAから始まるサブツリー)のGlobally Unique Identifierであり、DG404は、ディレクトリグループ404のメンバの名前(または他の識別子)を表す。
【0078】
同様に、ディレクトリグループ404がディレクトリDから始まるサブツリーをディレクトリグループ406に委任すると決定すると、ディレクトリグループ404は、ディレクトリグループ406のメンバに渡す委任証明書を生成する。この委任証明書は、先の証明書(1)および(2)、ならびに以下の証明書を含む。
σDG404(GUIDA/B/C/D,GUIDD,DG406) (3)
ここで、σDG404は、ディレクトリグループ404のメンバがこの証明書に署名したことを指示し、GUIDA/B/C/Dは、ディレクトリグループ404に委任されたサブツリーのルートのGUID(GUIDA)とディレクトリグループ406に委任されるパス(/B/C/D)、GUIDDは、委任されるサブツリー(すなわちディレクトリDから始まるサブツリー)のGlobally Unique Identifierであり、DG406は、ディレクトリグループ406のメンバの名前(または他の識別子)を表す。
【0079】
図示の例では、委任証明書が、特定のサブツリー内の各ディレクトリに対して発行されるのではなく、委任ポイントで発行される。例えば、委任証明書は、A(サブツリーの最上位ディレクトリ)に対して発行されるのであって、/A/Bまたは/A/B/Cに対して発行されるのではない。
【0080】
図5は、サブツリーの管理責任を他のディレクトリグループに委任する例示的なプロセス500を示す流れ図である。プロセス500は、サブツリーの管理責任の委任を実行しているディレクトリグループ内のコンピュータのサブツリー委任モジュール254によって実行される。最初に、サブツリーを委任する先の一群のコンピュータを識別する(アクト502)。そのサブツリーに対する委任証明書を生成し(アクト504)、委任するグループの1または複数のメンバがディジタル署名する(アクト506)。次いで、そのサブツリーの管理責任を委任する先のコンピュータ群に、ディジタル署名された委任証明書を発行する(アクト508)。
【0081】
図4に戻る。分散ファイルシステム150内の各コンピュータは、名前空間内のパス名のあるサブセットを、そのパス名を管理するディレクトリグループにマップするローカルキャッシュ(例えば図2のキャッシュ260)を維持する。例えば、ある特定のコンピュータのキャッシュが、パス名/A、/A/B、/A/B/C、/A/Fおよび/A/F/Gを、ディレクトリグループ404にマップするマッピングを含む。コンピュータは、それらのキャッシュの中にさまざまなマッピングを有することができるが、典型的には、ディレクトリグループ(ディレクトリグループ402)を管理する名前空間ルートに、名前空間ルートをマッピングすることを少なくとも含む。
【0082】
パス名から管理ディレクトリグループへのマッピングを維持することによって、コンピュータが、ディレクトリグループ探索プロセスの少なくとも一部分を、名前空間ルートを管理しているディレクトリグループ(およびおそらく他のディレクトリグループ)にアクセスする必要なしに、それ自体でローカルに実行することができる。例えば、あるコンピュータが、パス名/A/B/foo.txtを有する「foo.txt」と呼ばれるファイルにアクセスすることを希望しており、コンピュータがそのローカルキャッシュに、ディレクトリグループ404に対するパス名のマッピングを有すると仮定する。この例では、コンピュータが、ディレクトリBの中のファイルを管理し、したがってファイルfoo.txtを管理するディレクトリグループ404内のメンバを、自身のローカルキャッシュから容易に識別することができる。したがって、コンピュータは、ファイル「foo.txt」の位置を決定するのにどのコンピュータにアクセスすべきか(すなわち、パス名/A/Bのディレクトリエントリをどのコンピュータが管理しているか)を、ディレクトリグループ402または404にアクセスする必要なしに、キャッシュの中の情報に基づいて決定する。
【0083】
コンピュータがディレクトリグループへのパス名全体をマップするだけの十分な情報を、ローカルキャッシュ中に有していない場合、コンピュータは、そのキャッシュに存在するそのパス名の最も長いプリフィックスのマッピングを見つける。次いでコンピュータは、最も長いプリフィックスの最後のディレクトリを管理するディレクトリグループにアクセスして、パス名の残りの部分および委任証明書を、できるだけ多く管理するディレクトリグループを決定する。ディレクトリグループにアクセスし、委任証明書を取得するこのプロセスは、適当なマッピングが見つかるまで続けられる。
【0084】
例えば、あるコンピュータが、パス名/A/B/C/D/foo2.txtを有する「foo2.txt」と呼ばれるファイルにアクセスすることを希望しており、コンピュータがそのローカルキャッシュに、ディレクトリグループ404に対するパス名のマッピングは持っているが、ディレクトリグループ406に対しては持っていないと仮定する。コンピュータはパス名を見て、そのキャッシュの中にあるパス名(/A/B/C)における最も長いプリフィックスに対するマッピングを見つけ、ディレクトリの管理に責任を負うディレクトリグループ、すなわちディレクトリグループ404にアクセスする。コンピュータは、ディレクトリグループ404のメンバに、パス名/A/B/C/D/foo2.txtの関連サブツリーの委任証明書、すなわちディレクトリグループ406の委任証明書を問い合せる。ディレクトリグループ404のメンバは、問い合せたコンピュータにこの委任証明書を戻し、このコンピュータは、委任証明書を(例えば署名したコンピュータの公開鍵に基づいて)検証することができる。受け取られた委任証明書は、ディレクトリ/Dの管理に責任を負うディレクトリグループを識別し、そのためコンピュータは、ファイル「foo2.txt」がある場所を決定するために、そのディレクトリグループにアクセスすればよいことを知る。このように、ファイル「foo2.txt」の位置を決定するためにどのコンピュータにアクセスすべきかを決定することには、ディレクトリグループ404のメンバにアクセスすることが含まれるが、この決定のためにディレクトリグループ402のメンバへアクセスする必要はない。
【0085】
図6は、特定のパス名の管理に責任を負うディレクトリグループを探索する例示的なプロセス600を示す流れ図である。プロセス600は、探索中のパス名にアクセスすることを希望するコンピュータのディレクトリグループ探索モジュール222(図2)によって実行される。最初に、ディレクトリグループへのマッピングのローカルキャッシュにアクセスし(アクト602)、このキャッシュにパス名の最も長いプリフィックスに対するマッピングを見つけ出す(アクト604)。次いで、パス名全体がマップされているかどうかに基づいて処理を続行する(アクト606)。パス名全体がマップされている場合、ディレクトリグループ探索プロセスは完了となる(アクト608)。しかし、パス名全体がマップされていない場合には、パス名の最後にマップされたプリフィックスを管理するグループのメンバから、関連サブツリーの委任証明書を取得する(アクト610)。次いで、受け取った委任証明書を検証する(アクト612)。委任証明書が正しく検証されないか、または委任証明書を取得することができない場合には、アクト610へ戻り、グループの別のメンバを選択して問い合せる。最後にマップされたプリフィックスを管理しているグループの少なくとも1つのメンバが正常に機能している限り、このプロセスは最後には成功する。最後にマップされたプリフィックスを管理しているグループのメンバが1つも正常に機能していない場合、プロセスは、有効なより短いプリフィックスを探すか、または名前空間ルートへ戻る。委任証明書のチェーンが検証されたら、証明書からのパス名マッピング情報をローカルキャッシュに追加する(アクト614)。次いで、プロセスはアクト606へ戻る。このときの最も長いプリフィックスは、以前の最も長いプリフィックスに新しい関連サブツリー情報を連結したものになる(例えば、パス名が/A/B/C/D/E/F、以前の最も長いプリフィックスが/A/B、新しい関連サブツリーが/C/Dである場合、新しい最も長いプリフィックスは/A/B/C/Dとなる)。次いで、パス名全体がマップされるまで、アクト606、610、612および614を繰り返す。異なるディレクトリの管理を異なるディレクトリグループ上へ分離することによって、管理責任は、異なる複数のコンピュータに分散する。これによって、特定のコンピュータ、特に名前空間ルートのディレクトリグループおよび名前空間ルートに最も近いディレクトリグループのコンピュータにかかる管理負担は低減する。例えば、特定のパス名をルートノードから解析する必要はなく、そのローカルキャッシュを介して、そのパス名の途中までは拾い上げることができる。
【0086】
(ディレクトリおよびファイルの複製および記憶)
図1の分散ファイルシステム150は、ディレクトリエントリの記憶とディレクトリエントリに対応するファイルの記憶を異なる方法で管理する。システム150内に記憶するファイルは複製され、システム150内の異なる複数のコンピュータに保存される。さらに、そのファイルに対するディレクトリエントリが生成され、ビザンチンフォルトトレラントグループの一部分であるシステム150内の異なる複数のコンピュータに保存される。ディレクトリエントリは、後に詳細に論じるように、ファイルが保存されるよりも多くのコンピュータに保存される。
【0087】
ファイルおよびディレクトリエントリを記憶する本明細書に記載のさまざまな処理を、先に論じた階層的記憶構造とともに使用することができる。しかし、ファイルおよびディレクトリエントリを記憶する本明細書に記載のさまざまな処理を、階層的記憶構造を使用しないシステムで使用することもできる。
【0088】
ビザンチンフォルトトレラントグループは、たとえそのうちのいくつかのコンピュータに障害(故障または他の理由で使用できない)があっても、情報を記憶し、かつ/または他のアクションを実行するのに使用することができる一群のコンピュータである。コンピュータは、コンピュータを操作する悪意のユーザ、コンピュータ上で走る悪意のプログラムなど、さまざまな方法で危険にさらされる。これらのコンピュータからは、リクエストへの応答を拒否する、リクエストに対して不正確なまたは不要な情報で故意に応答するなど、任意のタイプの振舞いを観察することができる。このようなコンピュータの存在にもかかわらず、ビザンチンフォルトトレラントグループは、情報を正確に記憶し、かつ/または他のアクションを実行することができる。ビザンチングループは当業者に周知であり、したがって、本発明に関する場合を除き、さらに論じることはしない。
【0089】
当業者には周知のとおり、あるタイプの計算では、f台の故障コンピュータの存在にもかかわらず(故障コンピュータは危険にさらされ、またはパワーダウンなどの他の理由で使用不能である)、正確に動作できるようにするためには、ビザンチンフォルトトレラントグループが、少なくとも3f+1台のコンピュータを含んでいなければならない。分散ファイルシステム150では、ディレクトリエントリが、ビザンチンフォルトトレラントグループの3f+1台のコンピュータに記憶され、ファイル自体は、f+1台のコンピュータ(ディレクトリエントリが記憶された同じコンピュータのうちの1台または数台とすることができる)に記憶される。
【0090】
図7に、ファイルおよび対応するディレクトリエントリをサーバレス分散ファイルシステム内に記憶する例示的な記憶を示す。ファイルシステム700(例えば図1のサーバレス分散ファイルシステム150)は、12台のコンピュータ702、704、706、708、710、712、714、716、718、720、722および724を含む。システム700の設計者が、2台のコンピュータの故障を許容できるようにしたいと考えているとすると、ビザンチンフォルトトレラントグループは、少なくとも7台((3×2)+l)のコンピュータを含まなければならない。コンピュータ702〜714を含むビザンチングループ726が示されている。
【0091】
ファイル728をファイルシステム700に記憶するときには、対応するディレクトリエントリ730が、適当なディレクトリグループ(ファイル728のパス名に基づいてファイルが記憶されたディレクトリの管理に責任を負うディレクトリグループ)内のコンピュータによって記憶される。ディレクトリエントリ730に対する図7のディレクトリグループは、ビザンチングループ726であり、そのため、ディレクトリエントリ730は、ビザンチングループ726の正常に機能している各々のコンピュータ702〜714上に記憶される。したがってディレクトリエントリ730は、最大7台の異なるコンピュータ上に記憶される。一方、ファイル728は複製され、3台のコンピュータ(コンピュータ716、720および724)にそれぞれ記憶される。図示のとおり、ファイル728を記憶したコンピュータが、ビザンチングループ726のコンピュータである必要はなく、一般に、ビザンチングループ726のコンピュータではない(ただし、任意選択で、ファイル728が記憶された1台または数台のコンピュータがビザンチングループ726のコンピュータであってもよい)。
【0092】
各ディレクトリエントリは、対応するファイルの名前、ファイルが記憶されたコンピュータの識別、およびファイルの内容がディレクトリエントリに対応するかどうかを検証することを可能にするファイル検証データを含む。ファイル検証データは、異なるさまざまな形式をとることができ、一実施態様では、ファイル検証データが、MD5(Message Digest5)、SHA−1(Secure Hash Algorithm-1)などの暗号法上安全なハッシュ関数をファイルに適用することによって生成されたハッシュ値である。記憶装置からファイルを検索するとき、検索するコンピュータは、ハッシュ値を再生成し、その値をディレクトリエントリ中のハッシュ値と比較して、コンピュータが正確なファイルを受け取ったことを検証することができる。他の実施態様では、ファイル検証データが、ファイル識別番号(例えばファイルの一意識別子)、ファイルのバージョン番号、およびファイル上に署名があるユーザの名前を結合したものである。
【0093】
図8は、サーバレス分散ファイルシステムにファイルを記憶する例示的なプロセスを示す流れ図である。最初に、クライアントコンピューティング装置が新しいファイル記憶要求を受け取る(アクト802)。クライアントは、ファイルおよびファイル名を暗号化し、ファイル内容のハッシュを生成する(アクト804)。クライアントは、暗号化されたファイル名およびファイル内容ハッシュを、ディレクトリエントリを作成するよう求める要求とともに、適当なビザンチンフォルトトレラントディレクトリグループに送る(アクト806)。ディレクトリグループは、要求の有効性を、例えば、ファイル名が既存の名前と競合しないこと、およびクライアントが要求の内容を実行する許可を有することを検証することによって、調べる(アクト808)。要求が有効と認められなかった場合、要求は失敗に終わる(アクト810)。しかし、要求が有効と認められた場合には、ディレクトリグループが、この新しいファイルのディレクトリエントリを生成する(アクト812)。ディレクトリグループはさらに、この新しいファイルの複製セットを決定し、その複製セットを、新しく生成されたディレクトリエントリに追加する(アクト814)。ファイルの複製も生成し(アクト816)、ファイルシステム内の複数のコンピュータに保存する(アクト818)。
【0094】
ビザンチングループにディレクトリエントリを記憶し、このエントリにファイル検証データを含めることによって、フォルトトレランス(最大f故障まで)が維持される。しかし、ファイルをディレクトリとは別に記憶し、ファイルへのアクセスにビザンチン操作を使用しないことによって、記憶空間の必要量およびビザンチン操作が低減される。例えば、ディレクトリエントリは、100バイト程度であるのに対して、ファイル自体は、数千または数十億バイトにもなる。
【0095】
(ディレクトリおよびファイルのロック機構)
図1の分散ファイルシステム150の各オブジェクト(例えばディレクトリおよびファイル)は、一組の専用ロックに関連づけられている。これらのロックは、アプリケーションが実行したいオペレーションのタイプに基づいて、そのオペレーションを実行するためにアプリケーションがディレクトリまたはファイルを開くことができるか否かを決定するのに使用される。ロックは、ロックのタイプおよび競合のレベルによって決まる特定の時間範囲を有するリース(lease)と見ることができる。例えば、書込みロックの時間範囲は数分であり、一方、読取りロックの時間範囲は数日にもなる。アプリケーションが、オブジェクトに対してオペレーションを実行したいとき、このアプリケーションを実行中のクライアントコンピュータは、そのオペレーションを実行するのに必要なロックをすでに有しているかどうかを調べる。必要なロックを持っていない場合には、そのオブジェクトの管理に責任を負うディレクトリグループから適当なロックを要求する。所望のオペレーションを実行し終えると、アプリケーションは任意選択で、取得したロックを解放し、あるいはロックが自動的に期限切れになるか、または管理ディレクトリグループによってロックがリコールされるまで、ロックを保持する。
【0096】
特定のディレクトリに対して、そのディレクトリを実装するビザンチンフォルトトレラントグループが、そのディレクトリ内の全てのファイル、そのディレクトリのサブディレクトリの名前、およびそのディレクトリ自体を削除する権利に対するロックを制御する。ロック機構は、適当なファイルおよびディレクトリの幅広い(細分性の粗い)ロックを、要求しているクライアントコンピュータに許可しようとし、クライアントコンピュータは、ロックを取得するのに複数のビザンチンメッセージを要求するのではなく、1回のビザンチンロックの取得で多くの読取りおよび/または更新を処理することができる。
【0097】
図示の例では、ロック機構が10個の異なるロック、すなわち読取り、書込みク、オープン読取り(Open Read)、オープン書込み(Open Write)、オープン削除(Open Delete)、非共用読取り(Not Shared Read)、非共用書込み(Not Shared Write)、非共用削除(Not Shared Delete)、挿入、および排他のロックを使用する。読取りおよび書込みロックは、オブジェクト中のデータ(例えばファイルの内容)へのアクセスを制御するのに使用される。オープン読取り、オープン書込み、オープン削除、非共用読取り、非共用書込み、および非共用削除ロックは、オブジェクトのオープンを制御するのに使用される。挿入および排他ロックは特殊用途のロックである。これらの10個のロックについては後にさらに詳細に論じる。アプリケーションは、実行したいオペレーションに応じて、これらのロックの中から適当なものを要求する。
【0098】
[読取りロック]読取りロックは、アプリケーションが関連ファイルを読み取ることができるようにアプリケーションが要求する。読取りロックは、書込みロックとともに、ディレクトリグループがファイル中のデータを矛盾なしに保つことを可能にする。
【0099】
[書込みロック]書込みロックは、アプリケーションが関連ファイルに書き込む(ファイルを更新するとも言う)ことができるようにアプリケーションが要求する。書込みロックは、読取りロックとともに、ディレクトリグループがファイル中のデータを矛盾なしに保つことを可能にする。
【0100】
アプリケーションがオブジェクトを開きたいとき、ディレクトリグループは、2つのチェックを実行する。(1)アプリケーションが求めているモードが、すでにそのオブジェクトを開いている他のアプリケーションと競合するかどうか、および(2)アプリケーションがオブジェクトを共用する気があるオペレーションが、他のアプリケーションがそのオブジェクトをすでに開き、そのオブジェクトを共用する気があることを指示したオペレーションと競合するかどうかをチェックする。10個のロックのうち、オープン読取り、オープン書込み、オープン削除、オープン非共用読取り、オープン非共用書込み、およびオープン非共用削除の6つのロックが、このチェックをサポートすることに向けられる。これらのロックは、オブジェクトを開く能力をアプリケーションに許可するのに使用されるが、そのオブジェクトのデータを取得できることを保証するとは限らない(データにアクセスするためには、(アプリケーションが実行したいオペレーションのタイプに応じて)読取りロックまたは書込みロックを取得する)。
【0101】
[オープン読取りロック]オープン読取りロックは、読取りのためアプリケーションが関連オブジェクトを開くことができるよう、アプリケーションが要求する。
【0102】
[オープン書込みロック]オープン書込みロックは、書込みのためアプリケーションが関連オブジェクトを開くことができるよう、アプリケーションが要求する。
【0103】
[オープン削除ロック]オープン削除ロックは、削除のため、アプリケーションが関連オブジェクトを開くことができるよう、アプリケーションが要求する。
【0104】
[オープン非共用読取りロック]オープン非共用読取りロックは、アプリケーションがオブジェクトを読み取る能力を他のアプリケーションと共用したくないときにアプリケーションが要求する。
【0105】
[オープン非共用書込みロック]オープン非共用書込みロックは、アプリケーションがオブジェクトに書き込む能力を他のアプリケーションと共用したくないときにアプリケーションが要求する。
【0106】
[オープン非共用削除ロック]オープン非共用削除ロックは、アプリケーションがオブジェクトを削除する能力を他のアプリケーションと共用したくないときにアプリケーションが要求する。
【0107】
サポートされる他の2つのロックが挿入ロックおよび排他ロックである。
【0108】
[挿入ロック]挿入ロックは、ディレクトリ内のオブジェクトに対して特定の名前を作成するためにアプリケーションが要求する。挿入ロックの許可は、特定の名前を有するオブジェクトを作成する許可をアプリケーションに与える。挿入ロックは、同じオブジェクト名を有する他の挿入ロック、およびディレクトリの排他ロックと競合する。
【0109】
[排他ロック]排他ロックは、上述した9つのロック全てを取得するためにアプリケーションが要求し、ディレクトリ内に存在することができる(しかしまだ存在しない)各々の可能な名前の挿入ロックを含む。ディレクトリの排他ロックは、そのディレクトリのファイルまたはサブディレクトリの排他ロックを意味せず、ディレクトリの名前空間だけを意味する。排他ロックは、先に論じた9つのロックのそれぞれと競合する。
【0110】
異なるさまざまなロック間には、さまざまな競合が存在する。表1は、例示的な一実施態様におけるロック間の競合を示す競合マトリックスである。表1では以下の省略形を使用した:Ins(挿入)、Excl(排他)、O−R(オープン読取り)、O−W(オープン書込み)、O−D(オープン削除)、O−!R(オープン非共用読取り)、O−!W(オープン非共用書込み)およびO−!D(オープン非共用削除)。表1の欄の中の「X」は、対応する2つのロック間の競合を示す。例えば、オープン読取りは、オープン非共用読取りと競合するが、オープン非共用書込みとは競合しない。
【0111】
【表1】
【0112】
図9は、特定のオブジェクトを開くことを許可するかどうか決定する例示的なプロセスを示す流れ図である。図9のプロセスは、その特定のオブジェクトの管理に責任を負うディレクトリグループによって実現される。図9のプロセスでは、特定のオブジェクトを開くことを要求しているクライアントが、所望のオブジェクトを開くのに必要なロックをまだ持っていないと仮定する。最初に、識別された特定のロックを有するオブジェクトにアクセスするリクエストを受け取る(アクト902)。選択されたロックが意味するモードが、別のクライアントに許可されたロックと競合するかどうかに関するチェックが、ディレクトリグループによって実施される(アクト904)。例えば、このリクエストが、読取りのためオブジェクトを開くリクエストであり、他のアプリケーションが、非共用読取りロックを有するこのオブジェクトをすでに開いている場合、選択されたロックが意味するモード(オープン読取り)は、そのオブジェクトをすでに開いている他のアプリケーションと競合する。ディレクトリグループは、競合するロックをクライアントに発行したかどうかを知っているだけで、そのクライアントが現在、オブジェクトへのアプリケーションのアクセスを可能にするためにそのロックを使用しているかどうかを知らないので、いくつかのケースでは、アクト904のチェックを実施するのに、ロックを現在保持しているクライアントがそれを放棄する気があるかどうかを尋ねる必要がある。
【0113】
アクト904のチェックで競合が識別されなかった場合、要求されたロックが許可され、選択したロックを有するファイルをアプリケーションが開くことができるようになり(アクト906)、アクト902のリクエストが許可される。次いで、これらのロックが許可されたこと、およびそれら許可されたクライアントが、ディレクトリグループによって保存され(アクト908)、後続のリクエストに対して競合を決定し、必要に応じてロックのリコールを試みることができる。
【0114】
しかし、アクト904のチェックで競合が識別された場合には、競合するロックを保持しているクライアントに、それらを戻すよう求めるリクエストが発行される(アクト910)。次いで、要求されたロックが全て戻されたかどうかに関するチェックが実施される(アクト912)。要求されたロックが全て戻された場合には、要求のロックが許可され、選択したロックを有するファイルをアプリケーションが開くことができるようになり(アクト906)、これらのロックが記録される(アクト908)。一方、要求されたロックのうち戻されないロックがある場合には、ディレクトリグループは、このオープンリクエストを拒絶する(アクト914)。
【0115】
1台だけのクライアントコンピュータが名前空間のある領域にアクセスするときに性能を向上させる試みにおいて、ファイルシステム150は、アプリケーション(またはクライアント)が近い将来に、追加の関連ロックを要求する可能性が高いとの前提のもとに、クライアント上で実行中のアプリケーションが要求するよりも広い範囲のロックを発行することができる。例えば、アプリケーションがファイル/A/B/C/foo.txtを開く場合、クライアントは、このファイルに対するロックを要求する。ディレクトリグループがそのロックを許可する場合、ディレクトリグループはそのロックを、/A/B/Cのディレクトリロックにアップグレードすることができる(例えば、過去の実施に基づいて、ディレクトリ上の競合がまれであるとディレクトリグループが判定した場合)。次いでアプリケーションが、同じディレクトリ内の別のファイルを開く場合、クライアントは、ディレクトリグループから他のロックを要求する必要なしにそのファイルを開くことができる。
【0116】
クライアントのロックリクエストが、他のクライアントに許可された既存のロックと競合した場合、ディレクトリグループは、(例えば、アクト914でリクエストを拒絶するのではなく)アクト910で、新しいリクエストと競合しないロックに、以前に発行されたロックをダウングレードすることを試みることができる。ロックのアップグレードの結果、クライアントは、要求していないロックを保持するので、ロックのダウングレードが成功する可能性は一般に低くない。このロックリコールに失敗した場合、リクエストは拒絶される。
【0117】
ファイルシステム内のオブジェクトにさまざまなオペレーションを実行することができる。表2に、より一般的ないくつかのオペレーション、およびオペレーションを実行するためにアプリケーションが要求するロックを記載する。
【0118】
【表2】
【0119】
ファイルへの変更は、そのコンピュータによってローカルに実施され、次いでファイルは(暗号化された後に)は、そのファイルの管理に対して責任を負うディレクトリグループにプッシュバックされる。この情報は、ディレクトリグループ内のさまざまなコンピュータに記憶され、更新されたファイルは、適当なコンピュータに記憶される。
【0120】
(結語)
以上の説明では、構造上の特徴および/または方法論的行為に特有の言葉を使用したが、添付の請求項に定義した発明は、記載した特定の特徴または行為に限定されないことを理解されたい。これらの特定の特徴および行為は、本発明を実現する例示的な形態として開示したものである。
【図面の簡単な説明】
【図1】サーバレス分散ファイルシステムをサポートする例示的なネットワーク環境を示す図である。
【図2】分散ファイルシステムに参加している図1の装置のうちの1台を表す例示的なコンピューティング装置の論理的構成要素を示す図である。
【図3】図1の分散ファイルシステムを実現するのに使用される、より一般的なコンピュータ環境を示す図である。
【図4】複数のサブツリーを有する名前空間ルートを含む、例示的な階層的名前空間を示す図である。
【図5】サブツリーの管理責任を他のディレクトリグループに委任する例示的なプロセスを示す流れ図である。
【図6】特定のパス名の管理に責任を負うディレクトリグループを探索する例示的なプロセスを示す流れ図である。
【図7】サーバレス分散ファイルシステム内でのファイルおよび対応するディレクトリエントリの例示的な記憶を示す図である。
【図8】サーバレス分散ファイルシステム内にファイルを記憶する例示的なプロセスを示す流れ図である。
【図9】特定のオブジェクトのオープンを許可するか否かを決定する例示的なプロセスを示す流れ図である。
【符号の説明】
100 ネットワーク環境
102,104,106,108 クライアントコンピューティング装置
110 データ通信ネットワーク
120,124,128 分散システム部分
122,126,130,132 ローカル部分
150 分散ファイルシステム
700 ファイルシステム
702,704,706,708,710,712,714,716,718,720,722,724 コンピュータ
726 ビザンチングループ
728 ファイル
730 ディレクトリエントリ
Claims (10)
- ファイルを記憶するのに使用する階層的名前空間のサブツリーを管理する1または複数のコンピュータからなるディレクトリグループを決定する方法であって、
第1のディリクトリを管理する第1のディレクトリグループのコンピュータが、前記第1のディレクトリのサブツリーの一部の管理を委任する第2のディレクトリグループのコンピュータを選択するステップと、
前記第1のディレクトリグループのコンピュータが、前記サブツリーの委任証明書を生成するステップであって、前記委任証明書は、
第3のディレクトリグループのコンピュータが、前記サブツリーの名前空間ルートの管理に責任を負うことを証明する、第1のディジタル署名された証明書と、
前記第2のディレクトリグループのコンピュータの権限を、前記名前空間ルートまでさかのぼって、前記第3のディレクトリグループのコンピュータの証明書と関連付けることを可能にする、第2のディジタル署名された証明書とを含む、ステップと、
前記第1のディレクトリグループのコンピュータが、前記委任証明書にディジタル署名するステップと、
前記第1のディレクトリグループのコンピュータが、前記第2のディレクトリグループのコンピュータに前記委任証明書を発行するステップと
を備えたことを特徴とする方法。 - 前記委任証明書にディジタル署名することは、前記委任証明書に、複数のコンピュータがディジタル署名させることを備えたことを特徴とする請求項1に記載の方法。
- 前記第2のディレクトリグループのコンピュータは、ビザンチンフォルトトレラントグループを構成することを特徴とする請求項1に記載の方法。
- 前記第1および第2のディジタル署名された証明書は、
委任されるサブツリーのルートの識別と、
前記委任されるサブツリーの識別と、
前記サブツリーを管理するディレクトリグループのメンバの識別と
を含むことを特徴とする請求項1に記載の方法。 - 前記第2のディレクトリグループのコンピュータは、前記第1のディレクトリグループのコンピュータに含まれていることを特徴とする請求項4に記載の方法。
- 前記第1のディジタル署名された証明書は、認証局(CA)によってディジタル署名された証明書であることを特徴とする請求項1に記載の方法。
- 前記委任証明書は、前記第2のディジタル署名された証明書から前記第1のディジタル署名された証明書への、証明書のチェーンの確立を可能にする、ディジタル署名された1または複数の追加の証明書を含むことを特徴とする請求項1に記載の方法。
- サーバレス分散ファイルシステムにおいて、ファイルを記憶するのに使用する階層的名前空間のサブツリーを管理する1または複数のコンピュータからなるディレクトリグループを決定する、第1のディリクトリを管理する第1のディレクトリグループのコンピュータであって、
プロセッサと、
該プロセッサに結合されたメモリとを備え、
該メモリに格納されたプログラム命令を、前記プロセッサが実行すると、
前記第1のディレクトリのサブツリーの一部の管理を委任する第2のディレクトリグループのコンピュータを識別するステップと、
前記サブツリーの委任証明書を生成するステップであって、前記委任証明書は、
第3のディレクトリグループのコンピュータが、前記サブツリーの名前空間ルートの管理に責任を負うことを証明する、第1のディジタル署名された証明書と、
前記第2のディレクトリグループのコンピュータの権限を、前記名前空間ルートまでさかのぼって、前記第3のディレクトリグループのコンピュータの証明書と関連付けることを可能にする、第2のディジタル署名された証明書とを含む、ステップと、
前記委任証明書にディジタル署名するステップと、
前記第2のディレクトリグループのコンピュータに前記委任証明書を発行するステップと
を実行することを特徴とするコンピュータ。 - 前記第2のディレクトリグループのコンピュータは、ビザンチンフォルトトレラントグループを構成することを特徴とする請求項8に記載のコンピュータ。
- 前記第1および第2のディジタル署名された証明書は、
委任されるサブツリーのルートの識別と、
前記委任されるサブツリーの識別と、
前記サブツリーを管理するディレクトリグループのメンバの識別と
を含むことを特徴とする請求項8に記載のコンピュータ。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US27890501P | 2001-03-26 | 2001-03-26 | |
US60/278,905 | 2001-03-26 | ||
US10/005,629 US7062490B2 (en) | 2001-03-26 | 2001-12-05 | Serverless distributed file system |
US10/005,629 | 2001-12-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002358226A JP2002358226A (ja) | 2002-12-13 |
JP4263421B2 true JP4263421B2 (ja) | 2009-05-13 |
Family
ID=26674567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002086870A Expired - Fee Related JP4263421B2 (ja) | 2001-03-26 | 2002-03-26 | サーバレス分散ファイルシステム |
Country Status (7)
Country | Link |
---|---|
US (4) | US7062490B2 (ja) |
EP (3) | EP1246061B1 (ja) |
JP (1) | JP4263421B2 (ja) |
CN (1) | CN1322449C (ja) |
AT (3) | ATE468561T1 (ja) |
DE (3) | DE60228782D1 (ja) |
HK (1) | HK1050065B (ja) |
Families Citing this family (373)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6158010A (en) * | 1998-10-28 | 2000-12-05 | Crosslogix, Inc. | System and method for maintaining security in a distributed computer network |
US20050015608A1 (en) | 2003-07-16 | 2005-01-20 | Pkware, Inc. | Method for strongly encrypting .ZIP files |
US20060143250A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US8230482B2 (en) * | 2000-03-09 | 2012-07-24 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060173848A1 (en) * | 2000-03-09 | 2006-08-03 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US7844579B2 (en) * | 2000-03-09 | 2010-11-30 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US8959582B2 (en) | 2000-03-09 | 2015-02-17 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US6879988B2 (en) | 2000-03-09 | 2005-04-12 | Pkware | System and method for manipulating and managing computer archive files |
US20060143252A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060155731A1 (en) * | 2000-03-09 | 2006-07-13 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060143714A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US7765580B2 (en) * | 2000-12-22 | 2010-07-27 | Entrust, Inc. | Method and apparatus for providing user authentication using a back channel |
US6625604B2 (en) * | 2001-03-09 | 2003-09-23 | Hewlett-Packard Development Company, L.P. | Namespace service in a distributed file system using a database management system |
US20030217333A1 (en) * | 2001-04-16 | 2003-11-20 | Greg Smith | System and method for rules-based web scenarios and campaigns |
US7761449B2 (en) * | 2001-08-09 | 2010-07-20 | Hewlett-Packard Development Company, L.P. | Self-disentangling data storage technique |
US6687701B2 (en) * | 2001-09-25 | 2004-02-03 | Hewlett-Packard Development Company, L.P. | Namespace management in a distributed file system |
US20030115292A1 (en) * | 2001-10-24 | 2003-06-19 | Griffin Philip B. | System and method for delegated administration |
US7143113B2 (en) * | 2001-12-21 | 2006-11-28 | Cybersoft, Inc. | Apparatus, methods and articles of manufacture for securing and maintaining computer systems and storage media |
US7661134B2 (en) * | 2001-12-21 | 2010-02-09 | Cybersoft, Inc. | Apparatus, methods and articles of manufacture for securing computer networks |
US7409396B2 (en) * | 2002-02-08 | 2008-08-05 | Pitts William M | Method for creating an extensible content distribution framework |
US20030182559A1 (en) * | 2002-03-22 | 2003-09-25 | Ian Curry | Secure communication apparatus and method for facilitating recipient and sender activity delegation |
US20040030731A1 (en) * | 2002-04-03 | 2004-02-12 | Liviu Iftode | System and method for accessing files in a network |
WO2003093964A1 (en) * | 2002-05-01 | 2003-11-13 | Bea Systems, Inc. | Enterprise application platform |
US7725560B2 (en) | 2002-05-01 | 2010-05-25 | Bea Systems Inc. | Web service-enabled portlet wizard |
US8028077B1 (en) * | 2002-07-12 | 2011-09-27 | Apple Inc. | Managing distributed computers |
US7840806B2 (en) * | 2002-10-16 | 2010-11-23 | Enterprise Information Management, Inc. | System and method of non-centralized zero knowledge authentication for a computer network |
US8239917B2 (en) * | 2002-10-16 | 2012-08-07 | Enterprise Information Management, Inc. | Systems and methods for enterprise security with collaborative peer to peer architecture |
US7428751B2 (en) * | 2002-12-05 | 2008-09-23 | Microsoft Corporation | Secure recovery in a serverless distributed file system |
US7290105B1 (en) * | 2002-12-16 | 2007-10-30 | Cisco Technology, Inc. | Zero overhead resource locks with attributes |
JPWO2004055675A1 (ja) * | 2002-12-18 | 2006-04-20 | 富士通株式会社 | ファイル管理装置、ファイル管理プログラム、ファイル管理方法およびファイルシステム |
US7181701B2 (en) * | 2003-01-03 | 2007-02-20 | Microsoft Corporation | Glanceable information system and method |
US7792121B2 (en) * | 2003-01-03 | 2010-09-07 | Microsoft Corporation | Frame protocol and scheduling system |
US7865536B1 (en) | 2003-02-14 | 2011-01-04 | Google Inc. | Garbage collecting systems and methods |
US6917975B2 (en) * | 2003-02-14 | 2005-07-12 | Bea Systems, Inc. | Method for role and resource policy management |
US8831966B2 (en) | 2003-02-14 | 2014-09-09 | Oracle International Corporation | Method for delegated administration |
US7222119B1 (en) * | 2003-02-14 | 2007-05-22 | Google Inc. | Namespace locking scheme |
US7591000B2 (en) | 2003-02-14 | 2009-09-15 | Oracle International Corporation | System and method for hierarchical role-based entitlements |
US7653930B2 (en) * | 2003-02-14 | 2010-01-26 | Bea Systems, Inc. | Method for role and resource policy management optimization |
US7840614B2 (en) | 2003-02-20 | 2010-11-23 | Bea Systems, Inc. | Virtual content repository application program interface |
US7293286B2 (en) | 2003-02-20 | 2007-11-06 | Bea Systems, Inc. | Federated management of content repositories |
US7483904B2 (en) * | 2003-02-20 | 2009-01-27 | Bea Systems, Inc. | Virtual repository content model |
US7810036B2 (en) | 2003-02-28 | 2010-10-05 | Bea Systems, Inc. | Systems and methods for personalizing a portal |
US20040230917A1 (en) * | 2003-02-28 | 2004-11-18 | Bales Christopher E. | Systems and methods for navigating a graphical hierarchy |
US20040230557A1 (en) * | 2003-02-28 | 2004-11-18 | Bales Christopher E. | Systems and methods for context-sensitive editing |
US7769794B2 (en) | 2003-03-24 | 2010-08-03 | Microsoft Corporation | User interface for a file system shell |
US7823077B2 (en) | 2003-03-24 | 2010-10-26 | Microsoft Corporation | System and method for user modification of metadata in a shell browser |
US7240292B2 (en) | 2003-04-17 | 2007-07-03 | Microsoft Corporation | Virtual address bar user interface control |
US7627552B2 (en) | 2003-03-27 | 2009-12-01 | Microsoft Corporation | System and method for filtering and organizing items based on common elements |
US7421438B2 (en) | 2004-04-29 | 2008-09-02 | Microsoft Corporation | Metadata editing control |
US7712034B2 (en) | 2003-03-24 | 2010-05-04 | Microsoft Corporation | System and method for shell browser |
US7890960B2 (en) * | 2003-03-26 | 2011-02-15 | Microsoft Corporation | Extensible user context system for delivery of notifications |
US7827561B2 (en) | 2003-03-26 | 2010-11-02 | Microsoft Corporation | System and method for public consumption of communication events between arbitrary processes |
US7650575B2 (en) | 2003-03-27 | 2010-01-19 | Microsoft Corporation | Rich drag drop user interface |
US7499925B2 (en) * | 2003-03-27 | 2009-03-03 | Microsoft Corporation | File system for displaying items of different types and from different physical locations |
US7925682B2 (en) | 2003-03-27 | 2011-04-12 | Microsoft Corporation | System and method utilizing virtual folders |
US20040230896A1 (en) * | 2003-05-16 | 2004-11-18 | Dethe Elza | Method and system for enabling collaborative authoring of hierarchical documents with unique node identifications |
US7716187B2 (en) * | 2003-05-21 | 2010-05-11 | Microsoft Corporation | System and method for transparent storage reorganization |
JP2005032130A (ja) * | 2003-07-10 | 2005-02-03 | Sony Corp | データ管理装置、およびデータ管理方法、並びにコンピュータ・プログラム |
US7010657B2 (en) * | 2003-07-21 | 2006-03-07 | Motorola, Inc. | Avoiding deadlock between storage assignments by devices in a network |
US7603547B2 (en) * | 2003-10-10 | 2009-10-13 | Bea Systems, Inc. | Security control module |
US8024335B2 (en) | 2004-05-03 | 2011-09-20 | Microsoft Corporation | System and method for dynamically generating a selectable search extension |
US7181463B2 (en) * | 2003-10-24 | 2007-02-20 | Microsoft Corporation | System and method for managing data using static lists |
US8818950B2 (en) * | 2004-01-22 | 2014-08-26 | Symantec Corporation | Method and apparatus for localized protected imaging of a file system |
US20050188295A1 (en) * | 2004-02-25 | 2005-08-25 | Loren Konkus | Systems and methods for an extensible administration tool |
US7774601B2 (en) | 2004-04-06 | 2010-08-10 | Bea Systems, Inc. | Method for delegated administration |
US7246138B2 (en) | 2004-04-13 | 2007-07-17 | Bea Systems, Inc. | System and method for content lifecycles in a virtual content repository that integrates a plurality of content repositories |
US7236989B2 (en) | 2004-04-13 | 2007-06-26 | Bea Systems, Inc. | System and method for providing lifecycles for custom content in a virtual content repository |
US7236990B2 (en) | 2004-04-13 | 2007-06-26 | Bea Systems, Inc. | System and method for information lifecycle workflow integration |
US7236975B2 (en) * | 2004-04-13 | 2007-06-26 | Bea Systems, Inc. | System and method for controlling access to anode in a virtual content repository that integrates a plurality of content repositories |
US7213103B2 (en) | 2004-04-22 | 2007-05-01 | Apple Inc. | Accessing data storage systems without waiting for read errors |
US7657846B2 (en) | 2004-04-23 | 2010-02-02 | Microsoft Corporation | System and method for displaying stack icons |
US7694236B2 (en) | 2004-04-23 | 2010-04-06 | Microsoft Corporation | Stack icons representing multiple objects |
US7992103B2 (en) | 2004-04-26 | 2011-08-02 | Microsoft Corporation | Scaling icons for representing files |
US8707209B2 (en) | 2004-04-29 | 2014-04-22 | Microsoft Corporation | Save preview representation of files being created |
US7496583B2 (en) * | 2004-04-30 | 2009-02-24 | Microsoft Corporation | Property tree for metadata navigation and assignment |
US8108430B2 (en) | 2004-04-30 | 2012-01-31 | Microsoft Corporation | Carousel control for metadata navigation and assignment |
JP4570626B2 (ja) * | 2004-05-03 | 2010-10-27 | リサーチ イン モーション リミテッド | 再生可能なセッションキーを生成するためのシステムおよび方法 |
WO2005107130A1 (en) | 2004-05-04 | 2005-11-10 | Research In Motion Limited | Challenge response system and method |
WO2005114486A1 (en) * | 2004-05-21 | 2005-12-01 | Computer Associates Think, Inc. | Method for selecting a processor for query execution |
US20050278552A1 (en) * | 2004-06-14 | 2005-12-15 | Vincent Delisle | Secure virtual account |
US7661135B2 (en) * | 2004-08-10 | 2010-02-09 | International Business Machines Corporation | Apparatus, system, and method for gathering trace data indicative of resource activity |
US7546601B2 (en) * | 2004-08-10 | 2009-06-09 | International Business Machines Corporation | Apparatus, system, and method for automatically discovering and grouping resources used by a business process |
US20060036579A1 (en) * | 2004-08-10 | 2006-02-16 | Byrd Stephen A | Apparatus, system, and method for associating resources using a time based algorithm |
US20060059118A1 (en) * | 2004-08-10 | 2006-03-16 | Byrd Stephen A | Apparatus, system, and method for associating resources using a behavior based algorithm |
US7630955B2 (en) * | 2004-08-10 | 2009-12-08 | International Business Machines Corporation | Apparatus, system, and method for analyzing the association of a resource to a business process |
US20060036602A1 (en) * | 2004-08-13 | 2006-02-16 | Unangst Marc J | Distributed object-based storage system that stores virtualization maps in object attributes |
US7783670B2 (en) * | 2004-11-18 | 2010-08-24 | Bea Systems, Inc. | Client server conversion for representing hierarchical data structures |
US20060129589A1 (en) * | 2004-12-10 | 2006-06-15 | Micro Electronics, Inc. | System and method of securing computer-readable media |
US7783664B2 (en) * | 2004-12-17 | 2010-08-24 | Microsoft Corporation | Method and system for protecting the consistency of information in a distributed file system |
US7383503B2 (en) * | 2005-02-23 | 2008-06-03 | Microsoft Corporation | Filtering a collection of items |
US20060236253A1 (en) * | 2005-04-15 | 2006-10-19 | Microsoft Corporation | Dialog user interfaces for related tasks and programming interface for same |
US8490015B2 (en) | 2005-04-15 | 2013-07-16 | Microsoft Corporation | Task dialog and programming interface for same |
US8522154B2 (en) | 2005-04-22 | 2013-08-27 | Microsoft Corporation | Scenario specialization of file browser |
US8195646B2 (en) | 2005-04-22 | 2012-06-05 | Microsoft Corporation | Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information |
WO2006127596A2 (en) | 2005-05-20 | 2006-11-30 | Hillcrest Laboratories, Inc. | Dynamic hyperlinking approach |
US7523146B2 (en) | 2005-06-21 | 2009-04-21 | Apple Inc. | Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment |
US8495015B2 (en) | 2005-06-21 | 2013-07-23 | Apple Inc. | Peer-to-peer syncing in a decentralized environment |
US7665028B2 (en) | 2005-07-13 | 2010-02-16 | Microsoft Corporation | Rich drag drop user interface |
WO2007016787A2 (en) * | 2005-08-09 | 2007-02-15 | Nexsan Technologies Canada Inc. | Data archiving system |
US8019988B2 (en) * | 2005-08-22 | 2011-09-13 | The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of The University Of Oregon | Security protocols for hybrid peer-to-peer file sharing networks |
US8666957B2 (en) * | 2005-08-29 | 2014-03-04 | Hewlett-Packard Development Company, L.P. | Method or apparatus for locking shared data |
US7953734B2 (en) | 2005-09-26 | 2011-05-31 | Oracle International Corporation | System and method for providing SPI extensions for content management system |
US7818344B2 (en) | 2005-09-26 | 2010-10-19 | Bea Systems, Inc. | System and method for providing nested types for content management |
US7752205B2 (en) | 2005-09-26 | 2010-07-06 | Bea Systems, Inc. | Method and system for interacting with a virtual content repository |
US7917537B2 (en) | 2005-09-26 | 2011-03-29 | Oracle International Corporation | System and method for providing link property types for content management |
WO2007062258A2 (en) * | 2005-11-28 | 2007-05-31 | Storagedna, Inc. | Distributed file system with file fragmentation |
TWI301021B (en) * | 2005-12-27 | 2008-09-11 | Ind Tech Res Inst | File distribution and access system and method for file management |
US7650514B2 (en) | 2005-12-30 | 2010-01-19 | Microsoft Corporation | Scalable leases |
US7574457B2 (en) * | 2006-01-13 | 2009-08-11 | Microsoft Corporation | Non-mutating tree-structured file identifiers |
US8103642B2 (en) * | 2006-02-03 | 2012-01-24 | Oracle International Corporation | Adaptive region locking |
US7797670B2 (en) * | 2006-04-14 | 2010-09-14 | Apple Inc. | Mirrored file system |
JP4912026B2 (ja) * | 2006-04-27 | 2012-04-04 | キヤノン株式会社 | 情報処理装置、情報処理方法 |
KR101381551B1 (ko) | 2006-05-05 | 2014-04-11 | 하이버 인크 | 그룹 기반의 완료 및 증분 컴퓨터 파일 백업 시스템, 프로세스 및 장치 |
US9250972B2 (en) * | 2006-06-19 | 2016-02-02 | International Business Machines Corporation | Orchestrated peer-to-peer server provisioning |
US20070299864A1 (en) * | 2006-06-24 | 2007-12-27 | Mark Strachan | Object storage subsystem computer program |
US20080010246A1 (en) * | 2006-07-06 | 2008-01-10 | Curtis Bryce A | System and method for providing operating system component version verification |
GB0613930D0 (en) * | 2006-07-13 | 2006-08-23 | Irvine David | Perpetual data |
US7860826B2 (en) | 2006-08-04 | 2010-12-28 | Apple Inc. | Method and system for using global equivalency sets to identify data during peer-to-peer synchronization |
US7689547B2 (en) * | 2006-09-06 | 2010-03-30 | Microsoft Corporation | Encrypted data search |
US20080065704A1 (en) * | 2006-09-12 | 2008-03-13 | Microsoft Corporation | Data and replica placement using r-out-of-k hash functions |
US8463852B2 (en) | 2006-10-06 | 2013-06-11 | Oracle International Corporation | Groupware portlets for integrating a portal with groupware systems |
US20080104146A1 (en) * | 2006-10-31 | 2008-05-01 | Rebit, Inc. | System for automatically shadowing encrypted data and file directory structures for a plurality of network-connected computers using a network-attached memory with single instance storage |
US8266105B2 (en) * | 2006-10-31 | 2012-09-11 | Rebit, Inc. | System for automatically replicating a customer's personalized computer system image on a new computer system |
US8126851B2 (en) * | 2006-10-31 | 2012-02-28 | Rebit, Inc. | System for automatically recovering a computer memory using shadowed data and file directory structures |
CA2668074A1 (en) * | 2006-10-31 | 2008-05-08 | David Schwaab | System for automatically shadowing data and file directory structures that are recorded on a computer memory |
WO2008065347A2 (en) * | 2006-12-01 | 2008-06-05 | David Irvine | Mssan |
GB2446170A (en) * | 2006-12-01 | 2008-08-06 | David Irvine | Shared access to private files in a distributed network |
GB2444344A (en) * | 2006-12-01 | 2008-06-04 | David Irvine | File storage and recovery in a Peer to Peer network |
WO2008065348A2 (en) * | 2006-12-01 | 2008-06-05 | David Irvine | Perpetual data |
US7657769B2 (en) | 2007-01-08 | 2010-02-02 | Marcy M Scott | N-way synchronization of data |
FR2912520B1 (fr) * | 2007-02-13 | 2009-05-15 | Stg Interactive Sa | Procede de gestion de fichiers. |
US8885832B2 (en) | 2007-03-30 | 2014-11-11 | Ricoh Company, Ltd. | Secure peer-to-peer distribution of an updatable keyring |
US8046328B2 (en) | 2007-03-30 | 2011-10-25 | Ricoh Company, Ltd. | Secure pre-caching through local superdistribution and key exchange |
US20080307446A1 (en) * | 2007-06-08 | 2008-12-11 | Microsoft Corporation | Interoperable Managed and Unmanaged Code in a Document Environment |
US7941411B2 (en) | 2007-06-29 | 2011-05-10 | Microsoft Corporation | Memory transaction grouping |
US8156164B2 (en) | 2007-07-11 | 2012-04-10 | International Business Machines Corporation | Concurrent directory update in a cluster file system |
US8887297B2 (en) | 2007-07-13 | 2014-11-11 | Microsoft Corporation | Creating and validating cryptographically secured documents |
US8019727B2 (en) * | 2007-09-26 | 2011-09-13 | Symantec Corporation | Pull model for file replication at multiple data centers |
JP2009128980A (ja) * | 2007-11-20 | 2009-06-11 | Hitachi Ltd | 通信装置 |
CN101187930B (zh) * | 2007-12-04 | 2010-06-09 | 浙江大学 | 分布式文件系统虚拟目录及命名空间的实现方法 |
US8607311B2 (en) * | 2007-12-21 | 2013-12-10 | Microsoft Corporation | Delegation in logic-based access control |
US8438618B2 (en) * | 2007-12-21 | 2013-05-07 | Intel Corporation | Provisioning active management technology (AMT) in computer systems |
US8010560B2 (en) * | 2007-12-21 | 2011-08-30 | Microsoft Corporation | Abducing assertion to support access query |
US8588425B1 (en) | 2007-12-27 | 2013-11-19 | Emc Corporation | Encryption key recovery in the event of storage management failure |
US8799681B1 (en) | 2007-12-27 | 2014-08-05 | Emc Corporation | Redundant array of encrypting disks |
US8839344B2 (en) * | 2008-01-28 | 2014-09-16 | Microsoft Corporation | Access policy analysis |
US9830278B1 (en) | 2008-03-06 | 2017-11-28 | EMC IP Holding Company LLC | Tracking replica data using key management |
US9456054B2 (en) | 2008-05-16 | 2016-09-27 | Palo Alto Research Center Incorporated | Controlling the spread of interests and content in a content centric network |
US20090319991A1 (en) * | 2008-06-20 | 2009-12-24 | Microsoft Corporation | Managed code type equivalence |
US8738580B2 (en) * | 2008-07-23 | 2014-05-27 | Nvidia Corporation | Copying files from one directory to another |
US8255430B2 (en) * | 2008-08-26 | 2012-08-28 | Caringo, Inc. | Shared namespace for storage clusters |
US9996572B2 (en) * | 2008-10-24 | 2018-06-12 | Microsoft Technology Licensing, Llc | Partition management in a partitioned, scalable, and available structured storage |
SE533007C2 (sv) | 2008-10-24 | 2010-06-08 | Ilt Productions Ab | Distribuerad datalagring |
US8255373B2 (en) * | 2008-10-24 | 2012-08-28 | Microsoft Corporation | Atomic multiple modification of data in a distributed storage system |
CN101527736A (zh) * | 2009-04-09 | 2009-09-09 | 中兴通讯股份有限公司 | 分布式文件系统中业务内容处理、更新方法与装置 |
US9455992B2 (en) * | 2009-06-12 | 2016-09-27 | Microsoft Technology Licensing, Llc | Trusted hardware component for distributed systems |
JP2012531674A (ja) | 2009-06-26 | 2012-12-10 | シンプリヴィティ・コーポレーション | ノンユニフォームアクセスメモリにおけるスケーラブルなインデックス付け |
US8478799B2 (en) | 2009-06-26 | 2013-07-02 | Simplivity Corporation | Namespace file system accessing an object store |
US20110022662A1 (en) | 2009-07-23 | 2011-01-27 | International Business Machines Corporation | Event triggered notifications for collaborative processes |
US9063784B2 (en) * | 2009-09-03 | 2015-06-23 | International Business Machines Corporation | Opening a temporary object handle on a resource object |
US8645327B2 (en) * | 2009-09-30 | 2014-02-04 | Apple Inc. | Management of access to data distributed across multiple computing devices |
US9536109B2 (en) * | 2009-10-21 | 2017-01-03 | International Business Machines Corporation | Method and system for administering a secure data repository |
US8923293B2 (en) | 2009-10-21 | 2014-12-30 | Palo Alto Research Center Incorporated | Adaptive multi-interface use for content networking |
US20110213711A1 (en) * | 2010-03-01 | 2011-09-01 | Entrust, Inc. | Method, system and apparatus for providing transaction verification |
JP2011188029A (ja) * | 2010-03-04 | 2011-09-22 | Fujitsu Ltd | 電子署名装置、電子署名方法及びコンピュータプログラム |
JP4995296B2 (ja) * | 2010-03-11 | 2012-08-08 | 株式会社日立製作所 | 計算機システムおよびキャッシュ制御方法 |
US8510552B2 (en) * | 2010-04-07 | 2013-08-13 | Apple Inc. | System and method for file-level data protection |
EP2387200B1 (en) | 2010-04-23 | 2014-02-12 | Compuverde AB | Distributed data storage |
GB2486462B (en) * | 2010-12-16 | 2019-04-24 | Maidsafe Found | Distributed file system |
WO2012094330A1 (en) | 2011-01-03 | 2012-07-12 | Planetary Data LLC | Community internet drive |
US8972747B2 (en) * | 2011-01-26 | 2015-03-03 | Hewlett-Packard Development Company, L.P. | Managing information in a document serialization |
JP2012177962A (ja) * | 2011-02-25 | 2012-09-13 | Hitachi Consumer Electronics Co Ltd | 光ディスク装置 |
US9652469B2 (en) | 2011-06-04 | 2017-05-16 | Microsoft Technology Licensing, Llc | Clustered file service |
US8627431B2 (en) | 2011-06-04 | 2014-01-07 | Microsoft Corporation | Distributed network name |
CN102915421B (zh) * | 2011-08-04 | 2013-10-23 | 腾讯科技(深圳)有限公司 | 文件的扫描方法及系统 |
US8997124B2 (en) | 2011-09-02 | 2015-03-31 | Compuverde Ab | Method for updating data in a distributed data storage system |
US8769138B2 (en) | 2011-09-02 | 2014-07-01 | Compuverde Ab | Method for data retrieval from a distributed data storage system |
US9021053B2 (en) | 2011-09-02 | 2015-04-28 | Compuverde Ab | Method and device for writing data to a data storage system comprising a plurality of data storage nodes |
US8650365B2 (en) | 2011-09-02 | 2014-02-11 | Compuverde Ab | Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes |
US8645978B2 (en) | 2011-09-02 | 2014-02-04 | Compuverde Ab | Method for data maintenance |
US9626378B2 (en) | 2011-09-02 | 2017-04-18 | Compuverde Ab | Method for handling requests in a storage system and a storage node for a storage system |
US9436699B2 (en) | 2011-09-12 | 2016-09-06 | Microsoft Technology Licensing, Llc | Techniques for efficient file operations |
EP2634991B1 (en) * | 2012-02-28 | 2017-08-02 | Alcatel Lucent | Content-centric networking |
US10191959B1 (en) * | 2012-06-20 | 2019-01-29 | Amazon Technologies, Inc. | Versioned read-only snapshots of shared state in distributed computing environments |
US9280546B2 (en) | 2012-10-31 | 2016-03-08 | Palo Alto Research Center Incorporated | System and method for accessing digital content using a location-independent name |
US9400800B2 (en) | 2012-11-19 | 2016-07-26 | Palo Alto Research Center Incorporated | Data transport by named content synchronization |
US10430839B2 (en) | 2012-12-12 | 2019-10-01 | Cisco Technology, Inc. | Distributed advertisement insertion in content-centric networks |
US9116849B2 (en) * | 2013-03-13 | 2015-08-25 | Intel Corporation | Community-based de-duplication for encrypted data |
US9978025B2 (en) | 2013-03-20 | 2018-05-22 | Cisco Technology, Inc. | Ordered-element naming for name-based packet forwarding |
US9753792B2 (en) * | 2013-03-20 | 2017-09-05 | Nec Europe Ltd. | Method and system for byzantine fault tolerant data replication |
US9935791B2 (en) | 2013-05-20 | 2018-04-03 | Cisco Technology, Inc. | Method and system for name resolution across heterogeneous architectures |
US9444722B2 (en) | 2013-08-01 | 2016-09-13 | Palo Alto Research Center Incorporated | Method and apparatus for configuring routing paths in a custodian-based routing architecture |
GB2517913A (en) * | 2013-08-30 | 2015-03-11 | Ibm | Remote data storage |
US9407549B2 (en) | 2013-10-29 | 2016-08-02 | Palo Alto Research Center Incorporated | System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers |
US9525735B2 (en) * | 2013-10-30 | 2016-12-20 | Futurewei Technologies, Inc. | Lock elevation in a distributed file storage system |
US9276840B2 (en) | 2013-10-30 | 2016-03-01 | Palo Alto Research Center Incorporated | Interest messages with a payload for a named data network |
US9401864B2 (en) | 2013-10-31 | 2016-07-26 | Palo Alto Research Center Incorporated | Express header for packets with hierarchically structured variable-length identifiers |
US10129365B2 (en) | 2013-11-13 | 2018-11-13 | Cisco Technology, Inc. | Method and apparatus for pre-fetching remote content based on static and dynamic recommendations |
US10101801B2 (en) | 2013-11-13 | 2018-10-16 | Cisco Technology, Inc. | Method and apparatus for prefetching content in a data stream |
US9311377B2 (en) | 2013-11-13 | 2016-04-12 | Palo Alto Research Center Incorporated | Method and apparatus for performing server handoff in a name-based content distribution system |
US10089655B2 (en) | 2013-11-27 | 2018-10-02 | Cisco Technology, Inc. | Method and apparatus for scalable data broadcasting |
US9503358B2 (en) | 2013-12-05 | 2016-11-22 | Palo Alto Research Center Incorporated | Distance-based routing in an information-centric network |
US20150188910A1 (en) * | 2013-12-26 | 2015-07-02 | Iswind Digital Engineering Inc. | Policy group based file protection system, file protection method thereof, and computer readable medium |
US9379979B2 (en) | 2014-01-14 | 2016-06-28 | Palo Alto Research Center Incorporated | Method and apparatus for establishing a virtual interface for a set of mutual-listener devices |
US10172068B2 (en) | 2014-01-22 | 2019-01-01 | Cisco Technology, Inc. | Service-oriented routing in software-defined MANETs |
US10098051B2 (en) | 2014-01-22 | 2018-10-09 | Cisco Technology, Inc. | Gateways and routing in software-defined manets |
US9374304B2 (en) | 2014-01-24 | 2016-06-21 | Palo Alto Research Center Incorporated | End-to end route tracing over a named-data network |
US9954678B2 (en) | 2014-02-06 | 2018-04-24 | Cisco Technology, Inc. | Content-based transport security |
US9678998B2 (en) | 2014-02-28 | 2017-06-13 | Cisco Technology, Inc. | Content name resolution for information centric networking |
US10089651B2 (en) | 2014-03-03 | 2018-10-02 | Cisco Technology, Inc. | Method and apparatus for streaming advertisements in a scalable data broadcasting system |
US9836540B2 (en) | 2014-03-04 | 2017-12-05 | Cisco Technology, Inc. | System and method for direct storage access in a content-centric network |
US9473405B2 (en) | 2014-03-10 | 2016-10-18 | Palo Alto Research Center Incorporated | Concurrent hashes and sub-hashes on data streams |
US9391896B2 (en) | 2014-03-10 | 2016-07-12 | Palo Alto Research Center Incorporated | System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network |
US9626413B2 (en) | 2014-03-10 | 2017-04-18 | Cisco Systems, Inc. | System and method for ranking content popularity in a content-centric network |
US9407432B2 (en) | 2014-03-19 | 2016-08-02 | Palo Alto Research Center Incorporated | System and method for efficient and secure distribution of digital content |
US9916601B2 (en) | 2014-03-21 | 2018-03-13 | Cisco Technology, Inc. | Marketplace for presenting advertisements in a scalable data broadcasting system |
US9363179B2 (en) | 2014-03-26 | 2016-06-07 | Palo Alto Research Center Incorporated | Multi-publisher routing protocol for named data networks |
US10264071B2 (en) | 2014-03-31 | 2019-04-16 | Amazon Technologies, Inc. | Session management in distributed storage systems |
US9274710B1 (en) | 2014-03-31 | 2016-03-01 | Amazon Technologies, Inc. | Offset-based congestion control in storage systems |
US9602424B1 (en) | 2014-03-31 | 2017-03-21 | Amazon Technologies, Inc. | Connection balancing using attempt counts at distributed storage systems |
US9519510B2 (en) | 2014-03-31 | 2016-12-13 | Amazon Technologies, Inc. | Atomic writes for multiple-extent operations |
US9449008B1 (en) | 2014-03-31 | 2016-09-20 | Amazon Technologies, Inc. | Consistent object renaming in distributed systems |
US9772787B2 (en) | 2014-03-31 | 2017-09-26 | Amazon Technologies, Inc. | File storage using variable stripe sizes |
US9363086B2 (en) | 2014-03-31 | 2016-06-07 | Palo Alto Research Center Incorporated | Aggregate signing of data in content centric networking |
US9495478B2 (en) | 2014-03-31 | 2016-11-15 | Amazon Technologies, Inc. | Namespace management in distributed storage systems |
US9294558B1 (en) | 2014-03-31 | 2016-03-22 | Amazon Technologies, Inc. | Connection re-balancing in distributed storage systems |
US10372685B2 (en) | 2014-03-31 | 2019-08-06 | Amazon Technologies, Inc. | Scalable file storage service |
US9569459B1 (en) | 2014-03-31 | 2017-02-14 | Amazon Technologies, Inc. | Conditional writes at distributed storage services |
US9779015B1 (en) | 2014-03-31 | 2017-10-03 | Amazon Technologies, Inc. | Oversubscribed storage extents with on-demand page allocation |
US9716622B2 (en) | 2014-04-01 | 2017-07-25 | Cisco Technology, Inc. | System and method for dynamic name configuration in content-centric networks |
US9390289B2 (en) * | 2014-04-07 | 2016-07-12 | Palo Alto Research Center Incorporated | Secure collection synchronization using matched network names |
US10075521B2 (en) | 2014-04-07 | 2018-09-11 | Cisco Technology, Inc. | Collection synchronization using equality matched network names |
US9473576B2 (en) | 2014-04-07 | 2016-10-18 | Palo Alto Research Center Incorporated | Service discovery using collection synchronization with exact names |
US9451032B2 (en) | 2014-04-10 | 2016-09-20 | Palo Alto Research Center Incorporated | System and method for simple service discovery in content-centric networks |
US9992281B2 (en) | 2014-05-01 | 2018-06-05 | Cisco Technology, Inc. | Accountable content stores for information centric networks |
US9609014B2 (en) | 2014-05-22 | 2017-03-28 | Cisco Systems, Inc. | Method and apparatus for preventing insertion of malicious content at a named data network router |
US9455835B2 (en) | 2014-05-23 | 2016-09-27 | Palo Alto Research Center Incorporated | System and method for circular link resolution with hash-based names in content-centric networks |
US9276751B2 (en) | 2014-05-28 | 2016-03-01 | Palo Alto Research Center Incorporated | System and method for circular link resolution with computable hash-based names in content-centric networks |
US9537719B2 (en) | 2014-06-19 | 2017-01-03 | Palo Alto Research Center Incorporated | Method and apparatus for deploying a minimal-cost CCN topology |
US9516144B2 (en) | 2014-06-19 | 2016-12-06 | Palo Alto Research Center Incorporated | Cut-through forwarding of CCNx message fragments with IP encapsulation |
US9218407B1 (en) | 2014-06-25 | 2015-12-22 | Pure Storage, Inc. | Replication and intermediate read-write state for mediums |
US9426113B2 (en) | 2014-06-30 | 2016-08-23 | Palo Alto Research Center Incorporated | System and method for managing devices over a content centric network |
US9699198B2 (en) | 2014-07-07 | 2017-07-04 | Cisco Technology, Inc. | System and method for parallel secure content bootstrapping in content-centric networks |
US9621354B2 (en) | 2014-07-17 | 2017-04-11 | Cisco Systems, Inc. | Reconstructable content objects |
US9959156B2 (en) | 2014-07-17 | 2018-05-01 | Cisco Technology, Inc. | Interest return control message |
US9590887B2 (en) | 2014-07-18 | 2017-03-07 | Cisco Systems, Inc. | Method and system for keeping interest alive in a content centric network |
US9729616B2 (en) | 2014-07-18 | 2017-08-08 | Cisco Technology, Inc. | Reputation-based strategy for forwarding and responding to interests over a content centric network |
US9535968B2 (en) | 2014-07-21 | 2017-01-03 | Palo Alto Research Center Incorporated | System for distributing nameless objects using self-certifying names |
US9882964B2 (en) | 2014-08-08 | 2018-01-30 | Cisco Technology, Inc. | Explicit strategy feedback in name-based forwarding |
US9729662B2 (en) | 2014-08-11 | 2017-08-08 | Cisco Technology, Inc. | Probabilistic lazy-forwarding technique without validation in a content centric network |
US9503365B2 (en) | 2014-08-11 | 2016-11-22 | Palo Alto Research Center Incorporated | Reputation-based instruction processing over an information centric network |
US9391777B2 (en) | 2014-08-15 | 2016-07-12 | Palo Alto Research Center Incorporated | System and method for performing key resolution over a content centric network |
US9800637B2 (en) | 2014-08-19 | 2017-10-24 | Cisco Technology, Inc. | System and method for all-in-one content stream in content-centric networks |
US9467492B2 (en) | 2014-08-19 | 2016-10-11 | Palo Alto Research Center Incorporated | System and method for reconstructable all-in-one content stream |
US9497282B2 (en) | 2014-08-27 | 2016-11-15 | Palo Alto Research Center Incorporated | Network coding for content-centric network |
US10204013B2 (en) | 2014-09-03 | 2019-02-12 | Cisco Technology, Inc. | System and method for maintaining a distributed and fault-tolerant state over an information centric network |
US9553812B2 (en) | 2014-09-09 | 2017-01-24 | Palo Alto Research Center Incorporated | Interest keep alives at intermediate routers in a CCN |
US10069933B2 (en) | 2014-10-23 | 2018-09-04 | Cisco Technology, Inc. | System and method for creating virtual interfaces based on network characteristics |
US9590948B2 (en) | 2014-12-15 | 2017-03-07 | Cisco Systems, Inc. | CCN routing using hardware-assisted hash tables |
US9536059B2 (en) | 2014-12-15 | 2017-01-03 | Palo Alto Research Center Incorporated | Method and system for verifying renamed content using manifests in a content centric network |
US10237189B2 (en) | 2014-12-16 | 2019-03-19 | Cisco Technology, Inc. | System and method for distance-based interest forwarding |
US9846881B2 (en) | 2014-12-19 | 2017-12-19 | Palo Alto Research Center Incorporated | Frugal user engagement help systems |
US9473475B2 (en) | 2014-12-22 | 2016-10-18 | Palo Alto Research Center Incorporated | Low-cost authenticated signing delegation in content centric networking |
US10003520B2 (en) | 2014-12-22 | 2018-06-19 | Cisco Technology, Inc. | System and method for efficient name-based content routing using link-state information in information-centric networks |
US9660825B2 (en) | 2014-12-24 | 2017-05-23 | Cisco Technology, Inc. | System and method for multi-source multicasting in content-centric networks |
US9832291B2 (en) | 2015-01-12 | 2017-11-28 | Cisco Technology, Inc. | Auto-configurable transport stack |
US9954795B2 (en) | 2015-01-12 | 2018-04-24 | Cisco Technology, Inc. | Resource allocation using CCN manifests |
US9602596B2 (en) | 2015-01-12 | 2017-03-21 | Cisco Systems, Inc. | Peer-to-peer sharing in a content centric network |
US9916457B2 (en) | 2015-01-12 | 2018-03-13 | Cisco Technology, Inc. | Decoupled name security binding for CCN objects |
US9946743B2 (en) | 2015-01-12 | 2018-04-17 | Cisco Technology, Inc. | Order encoded manifests in a content centric network |
US9462006B2 (en) | 2015-01-21 | 2016-10-04 | Palo Alto Research Center Incorporated | Network-layer application-specific trust model |
JP6545966B2 (ja) | 2015-01-27 | 2019-07-17 | ルネサスエレクトロニクス株式会社 | 中継装置、端末装置および通信方法 |
US9552493B2 (en) | 2015-02-03 | 2017-01-24 | Palo Alto Research Center Incorporated | Access control framework for information centric networking |
US10108624B1 (en) * | 2015-02-04 | 2018-10-23 | Amazon Technologies, Inc. | Concurrent directory move operations using ranking rules |
US10333840B2 (en) | 2015-02-06 | 2019-06-25 | Cisco Technology, Inc. | System and method for on-demand content exchange with adaptive naming in information-centric networks |
US10075401B2 (en) | 2015-03-18 | 2018-09-11 | Cisco Technology, Inc. | Pending interest table behavior |
US10346367B1 (en) | 2015-04-30 | 2019-07-09 | Amazon Technologies, Inc. | Load shedding techniques for distributed services with persistent client connections to ensure quality of service |
US9860317B1 (en) | 2015-04-30 | 2018-01-02 | Amazon Technologies, Inc. | Throughput throttling for distributed file storage services with varying connection characteristics |
CN104933144B (zh) * | 2015-06-19 | 2018-03-30 | 中国科学院计算技术研究所 | 一种并行网络文件系统中保证数据有效性的系统及其方法 |
US10116605B2 (en) | 2015-06-22 | 2018-10-30 | Cisco Technology, Inc. | Transport stack name scheme and identity management |
US10075402B2 (en) | 2015-06-24 | 2018-09-11 | Cisco Technology, Inc. | Flexible command and control in content centric networks |
US10701038B2 (en) | 2015-07-27 | 2020-06-30 | Cisco Technology, Inc. | Content negotiation in a content centric network |
US9986034B2 (en) | 2015-08-03 | 2018-05-29 | Cisco Technology, Inc. | Transferring state in content centric network stacks |
US10610144B2 (en) | 2015-08-19 | 2020-04-07 | Palo Alto Research Center Incorporated | Interactive remote patient monitoring and condition management intervention system |
US9529923B1 (en) | 2015-08-28 | 2016-12-27 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
WO2017040313A1 (en) * | 2015-08-28 | 2017-03-09 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
RS61196B1 (sr) * | 2015-08-28 | 2021-01-29 | Swirlds Inc | Postupci i uređaj za distribuiranu bazu podataka unutar mreže |
US9390154B1 (en) | 2015-08-28 | 2016-07-12 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
US10747753B2 (en) | 2015-08-28 | 2020-08-18 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
US9832123B2 (en) | 2015-09-11 | 2017-11-28 | Cisco Technology, Inc. | Network named fragments in a content centric network |
US10355999B2 (en) | 2015-09-23 | 2019-07-16 | Cisco Technology, Inc. | Flow control with network named fragments |
US10313227B2 (en) | 2015-09-24 | 2019-06-04 | Cisco Technology, Inc. | System and method for eliminating undetected interest looping in information-centric networks |
US9977809B2 (en) | 2015-09-24 | 2018-05-22 | Cisco Technology, Inc. | Information and data framework in a content centric network |
US10454820B2 (en) | 2015-09-29 | 2019-10-22 | Cisco Technology, Inc. | System and method for stateless information-centric networking |
US10263965B2 (en) | 2015-10-16 | 2019-04-16 | Cisco Technology, Inc. | Encrypted CCNx |
US9794238B2 (en) | 2015-10-29 | 2017-10-17 | Cisco Technology, Inc. | System for key exchange in a content centric network |
US9807205B2 (en) | 2015-11-02 | 2017-10-31 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary |
US10009446B2 (en) | 2015-11-02 | 2018-06-26 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary learning |
US10021222B2 (en) | 2015-11-04 | 2018-07-10 | Cisco Technology, Inc. | Bit-aligned header compression for CCN messages using dictionary |
US10097521B2 (en) | 2015-11-20 | 2018-10-09 | Cisco Technology, Inc. | Transparent encryption in a content centric network |
US9912776B2 (en) | 2015-12-02 | 2018-03-06 | Cisco Technology, Inc. | Explicit content deletion commands in a content centric network |
US10097346B2 (en) | 2015-12-09 | 2018-10-09 | Cisco Technology, Inc. | Key catalogs in a content centric network |
US10078062B2 (en) | 2015-12-15 | 2018-09-18 | Palo Alto Research Center Incorporated | Device health estimation by combining contextual information with sensor data |
US10257271B2 (en) | 2016-01-11 | 2019-04-09 | Cisco Technology, Inc. | Chandra-Toueg consensus in a content centric network |
US9949301B2 (en) | 2016-01-20 | 2018-04-17 | Palo Alto Research Center Incorporated | Methods for fast, secure and privacy-friendly internet connection discovery in wireless networks |
US10305864B2 (en) | 2016-01-25 | 2019-05-28 | Cisco Technology, Inc. | Method and system for interest encryption in a content centric network |
KR101772554B1 (ko) | 2016-02-02 | 2017-08-30 | 주식회사 코인플러그 | 파일에 대한 노터리 서비스를 제공하고 상기 노터리 서비스를 사용하여 기록된 파일에 대한 검증을 수행하는 방법 및 서버 |
US10043016B2 (en) | 2016-02-29 | 2018-08-07 | Cisco Technology, Inc. | Method and system for name encryption agreement in a content centric network |
US10038633B2 (en) | 2016-03-04 | 2018-07-31 | Cisco Technology, Inc. | Protocol to query for historical network information in a content centric network |
US10051071B2 (en) | 2016-03-04 | 2018-08-14 | Cisco Technology, Inc. | Method and system for collecting historical network information in a content centric network |
US10742596B2 (en) | 2016-03-04 | 2020-08-11 | Cisco Technology, Inc. | Method and system for reducing a collision probability of hash-based names using a publisher identifier |
US10003507B2 (en) | 2016-03-04 | 2018-06-19 | Cisco Technology, Inc. | Transport session state protocol |
US10235374B2 (en) * | 2016-03-08 | 2019-03-19 | International Business Machines Corporation | Key-value store for managing user files based on pairs of key-value pairs |
US9832116B2 (en) | 2016-03-14 | 2017-11-28 | Cisco Technology, Inc. | Adjusting entries in a forwarding information base in a content centric network |
US10212196B2 (en) | 2016-03-16 | 2019-02-19 | Cisco Technology, Inc. | Interface discovery and authentication in a name-based network |
US10067948B2 (en) | 2016-03-18 | 2018-09-04 | Cisco Technology, Inc. | Data deduping in content centric networking manifests |
US11436656B2 (en) | 2016-03-18 | 2022-09-06 | Palo Alto Research Center Incorporated | System and method for a real-time egocentric collaborative filter on large datasets |
US10091330B2 (en) | 2016-03-23 | 2018-10-02 | Cisco Technology, Inc. | Interest scheduling by an information and data framework in a content centric network |
US10545927B2 (en) | 2016-03-25 | 2020-01-28 | Amazon Technologies, Inc. | File system mode switching in a distributed storage service |
US10474636B2 (en) | 2016-03-25 | 2019-11-12 | Amazon Technologies, Inc. | Block allocation for low latency file systems |
US10033639B2 (en) | 2016-03-25 | 2018-07-24 | Cisco Technology, Inc. | System and method for routing packets in a content centric network using anonymous datagrams |
US10140312B2 (en) | 2016-03-25 | 2018-11-27 | Amazon Technologies, Inc. | Low latency distributed storage service |
US10320760B2 (en) | 2016-04-01 | 2019-06-11 | Cisco Technology, Inc. | Method and system for mutating and caching content in a content centric network |
US9930146B2 (en) | 2016-04-04 | 2018-03-27 | Cisco Technology, Inc. | System and method for compressing content centric networking messages |
US10425503B2 (en) | 2016-04-07 | 2019-09-24 | Cisco Technology, Inc. | Shared pending interest table in a content centric network |
US10027578B2 (en) | 2016-04-11 | 2018-07-17 | Cisco Technology, Inc. | Method and system for routable prefix queries in a content centric network |
US10404450B2 (en) | 2016-05-02 | 2019-09-03 | Cisco Technology, Inc. | Schematized access control in a content centric network |
US10320675B2 (en) | 2016-05-04 | 2019-06-11 | Cisco Technology, Inc. | System and method for routing packets in a stateless content centric network |
US10547589B2 (en) | 2016-05-09 | 2020-01-28 | Cisco Technology, Inc. | System for implementing a small computer systems interface protocol over a content centric network |
US10063414B2 (en) | 2016-05-13 | 2018-08-28 | Cisco Technology, Inc. | Updating a transport stack in a content centric network |
US10084764B2 (en) | 2016-05-13 | 2018-09-25 | Cisco Technology, Inc. | System for a secure encryption proxy in a content centric network |
US9646029B1 (en) | 2016-06-02 | 2017-05-09 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
US10103989B2 (en) | 2016-06-13 | 2018-10-16 | Cisco Technology, Inc. | Content object return messages in a content centric network |
US10305865B2 (en) | 2016-06-21 | 2019-05-28 | Cisco Technology, Inc. | Permutation-based content encryption with manifests in a content centric network |
US10148572B2 (en) | 2016-06-27 | 2018-12-04 | Cisco Technology, Inc. | Method and system for interest groups in a content centric network |
US10009266B2 (en) | 2016-07-05 | 2018-06-26 | Cisco Technology, Inc. | Method and system for reference counted pending interest tables in a content centric network |
US9992097B2 (en) | 2016-07-11 | 2018-06-05 | Cisco Technology, Inc. | System and method for piggybacking routing information in interests in a content centric network |
US10122624B2 (en) | 2016-07-25 | 2018-11-06 | Cisco Technology, Inc. | System and method for ephemeral entries in a forwarding information base in a content centric network |
US10069729B2 (en) | 2016-08-08 | 2018-09-04 | Cisco Technology, Inc. | System and method for throttling traffic based on a forwarding information base in a content centric network |
US10956412B2 (en) | 2016-08-09 | 2021-03-23 | Cisco Technology, Inc. | Method and system for conjunctive normal form attribute matching in a content centric network |
US10033642B2 (en) | 2016-09-19 | 2018-07-24 | Cisco Technology, Inc. | System and method for making optimal routing decisions based on device-specific parameters in a content centric network |
US10212248B2 (en) | 2016-10-03 | 2019-02-19 | Cisco Technology, Inc. | Cache management on high availability routers in a content centric network |
US10218704B2 (en) | 2016-10-06 | 2019-02-26 | Cisco Technology, Inc. | Resource access control using named capabilities |
US10447805B2 (en) | 2016-10-10 | 2019-10-15 | Cisco Technology, Inc. | Distributed consensus in a content centric network |
US10135948B2 (en) | 2016-10-31 | 2018-11-20 | Cisco Technology, Inc. | System and method for process migration in a content centric network |
LT3539026T (lt) | 2016-11-10 | 2022-03-25 | Swirlds, Inc. | Būdai ir aparatas paskirstytajai duomenų bazei, apimančiai anonimines įvestis |
KR101765423B1 (ko) | 2016-11-18 | 2017-08-07 | 경희대학교 산학협력단 | 폐기능 검사장치 및 그 방법 |
US10243851B2 (en) | 2016-11-21 | 2019-03-26 | Cisco Technology, Inc. | System and method for forwarder connection information in a content centric network |
KR102454779B1 (ko) | 2016-12-19 | 2022-10-13 | 스월즈, 인크. | 이벤트들의 삭제를 가능하게 하는 분산 데이터베이스를 위한 방법 및 장치 |
US10579598B2 (en) | 2017-01-03 | 2020-03-03 | International Business Machines Corporation | Global namespace for a hierarchical set of file systems |
US10579587B2 (en) | 2017-01-03 | 2020-03-03 | International Business Machines Corporation | Space management for a hierarchical set of file systems |
US10649955B2 (en) | 2017-01-03 | 2020-05-12 | International Business Machines Corporation | Providing unique inodes across multiple file system namespaces |
US10592479B2 (en) | 2017-01-03 | 2020-03-17 | International Business Machines Corporation | Space management for a hierarchical set of file systems |
US10585860B2 (en) | 2017-01-03 | 2020-03-10 | International Business Machines Corporation | Global namespace for a hierarchical set of file systems |
US10657102B2 (en) | 2017-01-03 | 2020-05-19 | International Business Machines Corporation | Storage space management in union mounted file systems |
US10540323B2 (en) | 2017-05-30 | 2020-01-21 | Western Digital Technologies, Inc. | Managing I/O operations in a storage network |
AU2018300147B2 (en) | 2017-07-11 | 2020-07-16 | Hedera Hashgraph, Llc | Methods and apparatus for efficiently implementing a distributed database within a network |
US10348487B2 (en) | 2017-07-20 | 2019-07-09 | International Business Machines Corporation | Game data offloading to a blockchain |
KR102188667B1 (ko) | 2017-11-01 | 2020-12-08 | 스월즈, 인크. | 고속 카피가능 데이터베이스를 효율적으로 구현하기 위한 방법들 및 장치 |
US10671370B2 (en) * | 2018-05-30 | 2020-06-02 | Red Hat, Inc. | Distributing file system states |
KR20220011161A (ko) | 2019-05-22 | 2022-01-27 | 스월즈, 인크. | 분산 데이터베이스에서 상태 증명들 및 원장 식별자들을 구현하기 위한 방법들 및 장치 |
US11411746B2 (en) * | 2019-05-24 | 2022-08-09 | Centrality Investments Limited | Systems, methods, and storage media for permissioned delegation in a computing environment |
US11296981B2 (en) * | 2019-06-24 | 2022-04-05 | Amazon Technologies, Inc. | Serverless packet processing service with configurable exception paths |
US11088944B2 (en) | 2019-06-24 | 2021-08-10 | Amazon Technologies, Inc. | Serverless packet processing service with isolated virtual network integration |
US11201915B1 (en) | 2019-06-28 | 2021-12-14 | Amazon Technologies, Inc. | Providing virtual server identity to nodes in a multitenant serverless execution service |
CN110515655B (zh) * | 2019-08-27 | 2023-04-18 | 内蒙古工业大学 | 一种数据指令分析方法 |
US11038699B2 (en) * | 2019-08-29 | 2021-06-15 | Advanced New Technologies Co., Ltd. | Method and apparatus for performing multi-party secure computing based-on issuing certificate |
US11153195B1 (en) | 2020-06-08 | 2021-10-19 | Amazon Techologies, Inc. | Packet processing service configuration change propagation management |
US11669498B2 (en) | 2020-07-24 | 2023-06-06 | EMC IP Holding Company LLC | Facilitating exclusive local locks on a distributed file system |
US11216316B1 (en) * | 2020-07-27 | 2022-01-04 | EMC IP Holding Company LLC | Facilitating object deletion based on delete lock contention in distributed file systems |
CN113438210B (zh) * | 2021-06-04 | 2023-04-07 | 上海焜耀网络科技有限公司 | 一种数据传输处理方法、装置和电子设备 |
CN114048185B (zh) * | 2021-11-18 | 2022-09-02 | 北京聚存科技有限公司 | 一种分布式文件系统中海量小文件透明打包存储与访问的方法 |
US20240311341A1 (en) * | 2023-03-16 | 2024-09-19 | Microsoft Technology Licensing, Llc | Using timed oplocks to determine whether a file is eligible for dehydration |
Family Cites Families (148)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4644542A (en) * | 1984-10-16 | 1987-02-17 | International Business Machines Corporation | Fault-tolerant atomic broadcast methods |
US4979188A (en) | 1988-04-29 | 1990-12-18 | Motorola, Inc. | Spectrally efficient method for communicating an information signal |
US6345288B1 (en) | 1989-08-31 | 2002-02-05 | Onename Corporation | Computer-based communication system and method using metadata defining a control-structure |
EP0489861B1 (en) | 1989-09-01 | 1997-07-09 | Amdahl Corporation | Operating system and data base |
US5202982A (en) | 1990-03-27 | 1993-04-13 | Sun Microsystems, Inc. | Method and apparatus for the naming of database component files to avoid duplication of files |
JP3059467B2 (ja) | 1990-07-17 | 2000-07-04 | シャープ株式会社 | ファイル管理装置 |
US5317728A (en) | 1990-09-07 | 1994-05-31 | International Business Machines Corporation | Storage management of a first file system using a second file system containing surrogate files and catalog management information |
US5269016A (en) * | 1990-09-24 | 1993-12-07 | Charles Stark Draper Laboratory, Inc. | Byzantine resilient fault tolerant shared memory data processing system |
JP2534430B2 (ja) * | 1992-04-15 | 1996-09-18 | インターナショナル・ビジネス・マシーンズ・コーポレイション | フォ―ルト・トレランスのあるコンピュ―タ・システム出力の合致を達成するための方法 |
US5745902A (en) | 1992-07-06 | 1998-04-28 | Microsoft Corporation | Method and system for accessing a file using file names having different file name formats |
US5627996A (en) | 1992-08-19 | 1997-05-06 | At&T | Method and apparatus for accessing the same computer file using different file name formats |
US5555388A (en) * | 1992-08-20 | 1996-09-10 | Borland International, Inc. | Multi-user system and methods providing improved file management by reading |
US5553235A (en) | 1992-10-23 | 1996-09-03 | International Business Machines Corporation | System and method for maintaining performance data in a data processing system |
US5452447A (en) * | 1992-12-21 | 1995-09-19 | Sun Microsystems, Inc. | Method and apparatus for a caching file server |
US5285497A (en) | 1993-04-01 | 1994-02-08 | Scientific Atlanta | Methods and apparatus for scrambling and unscrambling compressed data streams |
US5371794A (en) * | 1993-11-02 | 1994-12-06 | Sun Microsystems, Inc. | Method and apparatus for privacy and authentication in wireless networks |
US5588147A (en) * | 1994-01-14 | 1996-12-24 | Microsoft Corporation | Replication facility |
US5483652A (en) * | 1994-01-24 | 1996-01-09 | Digital Equipment Corporation | Mechanism for locating without search discrete application resources known by common name only in a distributed network computing environment |
US5974141A (en) | 1995-03-31 | 1999-10-26 | Mitsubishi Corporation | Data management system |
US5564037A (en) | 1995-03-29 | 1996-10-08 | Cheyenne Software International Sales Corp. | Real time data migration system and method employing sparse files |
WO1996032685A1 (en) | 1995-04-11 | 1996-10-17 | Kinetech, Inc. | Identifying data in a data processing system |
US5812776A (en) | 1995-06-07 | 1998-09-22 | Open Market, Inc. | Method of providing internet pages by mapping telephone number provided by client to URL and returning the same in a redirect command by server |
WO1997004389A1 (en) | 1995-07-20 | 1997-02-06 | Novell, Inc. | Transaction synchronization in a disconnectable computer and network |
US6122378A (en) | 1995-09-13 | 2000-09-19 | Hitachi, Ltd. | Data compression/encryption method and system |
US5680611A (en) | 1995-09-29 | 1997-10-21 | Electronic Data Systems Corporation | Duplicate record detection |
US5778395A (en) * | 1995-10-23 | 1998-07-07 | Stac, Inc. | System for backing up files from disk volumes on multiple nodes of a computer network |
US6023506A (en) | 1995-10-26 | 2000-02-08 | Hitachi, Ltd. | Data encryption control apparatus and method |
US6577734B1 (en) * | 1995-10-31 | 2003-06-10 | Lucent Technologies Inc. | Data encryption key management system |
JPH103421A (ja) * | 1995-11-20 | 1998-01-06 | Matsushita Electric Ind Co Ltd | 仮想ファイル管理システム |
US5978805A (en) | 1996-05-15 | 1999-11-02 | Microcom Systems, Inc. | Method and apparatus for synchronizing files |
US5915096A (en) | 1996-05-31 | 1999-06-22 | Sun Microsystems, Inc. | Network browsing system and method |
US5740361A (en) | 1996-06-03 | 1998-04-14 | Compuserve Incorporated | System for remote pass-phrase authentication |
US5901227A (en) * | 1996-06-20 | 1999-05-04 | Novell, Inc. | Method and apparatus for implementing partial and complete optional key escrow |
KR19980024086A (ko) * | 1996-09-03 | 1998-07-06 | 니시무로 타이조 | 컴퓨터 시스템 및 화일 관리 방법 |
US5950209A (en) | 1996-10-02 | 1999-09-07 | Alcatel Usa Sourcing, L.P. | Software release control system and method |
US5758359A (en) | 1996-10-24 | 1998-05-26 | Digital Equipment Corporation | Method and apparatus for performing retroactive backups in a computer system |
US5909540A (en) | 1996-11-22 | 1999-06-01 | Mangosoft Corporation | System and method for providing highly available data storage using globally addressable memory |
US6026474A (en) * | 1996-11-22 | 2000-02-15 | Mangosoft Corporation | Shared client-side web caching using globally addressable memory |
US6185574B1 (en) * | 1996-11-27 | 2001-02-06 | 1Vision, Inc. | Multiple display file directory and file navigation system for a personal computer |
US6160552A (en) | 1997-01-09 | 2000-12-12 | Sun Microsystems, Inc. | Method and apparatus for managing multiple hierarchical lists within a browser |
US6317774B1 (en) | 1997-01-09 | 2001-11-13 | Microsoft Corporation | Providing predictable scheduling of programs using a repeating precomputed schedule |
US5950198A (en) | 1997-03-24 | 1999-09-07 | Novell, Inc. | Processes and apparatuses for generating file correspondency through replication and synchronization between target and source computers |
GB9706400D0 (en) | 1997-03-27 | 1997-05-14 | British Telecomm | Distributed computing |
US6122631A (en) | 1997-03-28 | 2000-09-19 | International Business Machines Corporation | Dynamic server-managed access control for a distributed file system |
US6256675B1 (en) | 1997-05-06 | 2001-07-03 | At&T Corp. | System and method for allocating requests for objects and managing replicas of objects on a network |
JP3821537B2 (ja) | 1997-05-20 | 2006-09-13 | 富士通株式会社 | データ通信システム |
FR2763769B1 (fr) | 1997-05-21 | 1999-07-23 | Alsthom Cge Alcatel | Procede destine a permettre une communication cryptee directe entre deux terminaux de reseau radiomobile et agencements de station et de terminal correspondants |
US5913217A (en) | 1997-06-30 | 1999-06-15 | Microsoft Corporation | Generating and compressing universally unique identifiers (UUIDs) using counter having high-order bit to low-order bit |
JP3657396B2 (ja) * | 1997-07-07 | 2005-06-08 | 株式会社日立製作所 | 鍵管理システム、鍵管理装置、情報暗号化装置、情報復号化装置、およびプログラムを記憶した記憶媒体 |
US5987477A (en) | 1997-07-11 | 1999-11-16 | International Business Machines Corporation | Parallel file system and method for parallel write sharing |
US5963963A (en) | 1997-07-11 | 1999-10-05 | International Business Machines Corporation | Parallel file system and buffer management arbitration |
US5940841A (en) | 1997-07-11 | 1999-08-17 | International Business Machines Corporation | Parallel file system with extended file attributes |
US6032216A (en) * | 1997-07-11 | 2000-02-29 | International Business Machines Corporation | Parallel file system with method using tokens for locking modes |
US5960446A (en) | 1997-07-11 | 1999-09-28 | International Business Machines Corporation | Parallel file system and method with allocation map |
US6067545A (en) | 1997-08-01 | 2000-05-23 | Hewlett-Packard Company | Resource rebalancing in networked computer systems |
US5968121A (en) | 1997-08-13 | 1999-10-19 | Microsoft Corporation | Method and apparatus for representing and applying network topological data |
US6405315B1 (en) | 1997-09-11 | 2002-06-11 | International Business Machines Corporation | Decentralized remotely encrypted file system |
US5991414A (en) | 1997-09-12 | 1999-11-23 | International Business Machines Corporation | Method and apparatus for the secure distributed storage and retrieval of information |
US6493804B1 (en) * | 1997-10-01 | 2002-12-10 | Regents Of The University Of Minnesota | Global file system and data storage device locks |
US6125372A (en) | 1997-10-03 | 2000-09-26 | Hewlett-Packard Company | Server system and method of updating server software |
US6032151A (en) | 1997-11-17 | 2000-02-29 | Sun Microsystems, Inc. | Database system employing polymorphic entry and entry matching |
US6167449A (en) | 1997-11-19 | 2000-12-26 | Apple Computer, Inc. | System and method for identifying and locating services on multiple heterogeneous networks using a query by type |
US6338057B1 (en) | 1997-11-24 | 2002-01-08 | British Telecommunications Public Limited Company | Information management and retrieval |
US6208659B1 (en) | 1997-12-22 | 2001-03-27 | Nortel Networks Limited | Data processing system and method for providing personal information in a communication network |
US5953729A (en) | 1997-12-23 | 1999-09-14 | Microsoft Corporation | Using sparse file technology to stage data that will then be stored in remote storage |
US6260040B1 (en) | 1998-01-05 | 2001-07-10 | International Business Machines Corporation | Shared file system for digital content |
US6807632B1 (en) * | 1999-01-21 | 2004-10-19 | Emc Corporation | Content addressable information encapsulation, representation, and transfer |
US6029168A (en) * | 1998-01-23 | 2000-02-22 | Tricord Systems, Inc. | Decentralized file mapping in a striped network file system in a distributed computing environment |
US6560706B1 (en) | 1998-01-26 | 2003-05-06 | Intel Corporation | Interface for ensuring system boot image integrity and authenticity |
US6185304B1 (en) | 1998-02-23 | 2001-02-06 | International Business Machines Corporation | Method and apparatus for a symmetric block cipher using multiple stages |
US6047283A (en) | 1998-02-26 | 2000-04-04 | Sap Aktiengesellschaft | Fast string searching and indexing using a search tree having a plurality of linked nodes |
US6173293B1 (en) * | 1998-03-13 | 2001-01-09 | Digital Equipment Corporation | Scalable distributed file system |
US6725373B2 (en) | 1998-03-25 | 2004-04-20 | Intel Corporation | Method and apparatus for verifying the integrity of digital objects using signed manifests |
US6098079A (en) | 1998-04-02 | 2000-08-01 | Mitsubishi Electric Information Technology Center America, Inc. (Ita) | File version reconciliation using hash codes |
US6311165B1 (en) | 1998-04-29 | 2001-10-30 | Ncr Corporation | Transaction processing systems |
US6145094A (en) * | 1998-05-12 | 2000-11-07 | Sun Microsystems, Inc. | Transaction locks for high availability |
US6263348B1 (en) | 1998-07-01 | 2001-07-17 | Serena Software International, Inc. | Method and apparatus for identifying the existence of differences between two files |
US6185569B1 (en) | 1998-06-29 | 2001-02-06 | Microsoft Corporation | Linked data structure integrity verification system which verifies actual node information with expected node information stored in a table |
US6240416B1 (en) | 1998-09-11 | 2001-05-29 | Ambeo, Inc. | Distributed metadata system and method |
US6510426B1 (en) | 1998-09-30 | 2003-01-21 | International Business Machines Corporation | Method and apparatus for compacting a metadatas stream in a data processing system |
US6356355B1 (en) | 1998-09-30 | 2002-03-12 | International Business Machines Corporation | Method and apparatus in a data processing system for generating metadata streams with per page data |
US6463535B1 (en) | 1998-10-05 | 2002-10-08 | Intel Corporation | System and method for verifying the integrity and authorization of software before execution in a local platform |
JP4527882B2 (ja) | 1998-10-07 | 2010-08-18 | アドビ・システムズ・インコーポレーテッド | データ項目に対するアクセスを配布する方法及びシステム |
US6324544B1 (en) * | 1998-10-21 | 2001-11-27 | Microsoft Corporation | File object synchronization between a desktop computer and a mobile device |
US7065540B2 (en) * | 1998-11-24 | 2006-06-20 | Oracle International Corporation | Managing checkpoint queues in a multiple node system |
US6233606B1 (en) * | 1998-12-01 | 2001-05-15 | Microsoft Corporation | Automatic cache synchronization |
US6295538B1 (en) | 1998-12-03 | 2001-09-25 | International Business Machines Corporation | Method and apparatus for creating metadata streams with embedded device information |
US6601171B1 (en) * | 1999-02-18 | 2003-07-29 | Novell, Inc. | Deputization in a distributed computing system |
US6269080B1 (en) | 1999-04-13 | 2001-07-31 | Glenayre Electronics, Inc. | Method of multicast file distribution and synchronization |
US7346920B2 (en) * | 2000-07-07 | 2008-03-18 | Sonic Solutions, A California Corporation | System, method and article of manufacture for a common cross platform framework for development of DVD-Video content integrated with ROM content |
US6370547B1 (en) | 1999-04-21 | 2002-04-09 | Union Oil Company Of California | Database correlation method |
US6546415B1 (en) * | 1999-05-14 | 2003-04-08 | Lucent Technologies Inc. | Network management system using a distributed namespace |
US6516350B1 (en) | 1999-06-17 | 2003-02-04 | International Business Machines Corporation | Self-regulated resource management of distributed computer resources |
US6556998B1 (en) * | 2000-05-04 | 2003-04-29 | Matsushita Electric Industrial Co., Ltd. | Real-time distributed file system |
US6477544B1 (en) * | 1999-07-16 | 2002-11-05 | Microsoft Corporation | Single instance store for file systems |
US7152165B1 (en) | 1999-07-16 | 2006-12-19 | Intertrust Technologies Corp. | Trusted storage systems and methods |
US6389433B1 (en) * | 1999-07-16 | 2002-05-14 | Microsoft Corporation | Method and system for automatically merging files into a single instance store |
US6466978B1 (en) * | 1999-07-28 | 2002-10-15 | Matsushita Electric Industrial Co., Ltd. | Multimedia file systems using file managers located on clients for managing network attached storage devices |
GB2352942B (en) | 1999-08-04 | 2001-10-03 | 3Com Corp | Method and apparatus for fetching sparsely indexed MIB tables in managed network systems |
US6976165B1 (en) | 1999-09-07 | 2005-12-13 | Emc Corporation | System and method for secure storage, transfer and retrieval of content addressable information |
US6415372B1 (en) | 1999-09-15 | 2002-07-02 | Emc Coropration | Rolling back storage subsystem reconfigurations |
US7444390B2 (en) * | 1999-10-20 | 2008-10-28 | Cdimensions, Inc. | Method and apparatus for providing a web-based active virtual file system |
US6788769B1 (en) | 1999-10-13 | 2004-09-07 | Emediacy, Inc. | Internet directory system and method using telephone number based addressing |
US7092380B1 (en) | 1999-10-22 | 2006-08-15 | Cisco Technology, Inc. | Method and system for providing voice communication over data networks |
US6990578B1 (en) | 1999-10-29 | 2006-01-24 | International Business Machines Corp. | Method and apparatus for encrypting electronic messages composed using abbreviated address books |
US6748538B1 (en) | 1999-11-03 | 2004-06-08 | Intel Corporation | Integrity scanner |
US6671821B1 (en) * | 1999-11-22 | 2003-12-30 | Massachusetts Institute Of Technology | Byzantine fault tolerance |
WO2001039043A2 (en) * | 1999-11-23 | 2001-05-31 | Microsoft Corporation | Content-specific filename systems |
JP2001184249A (ja) | 1999-12-27 | 2001-07-06 | Fujitsu Ltd | 分散処理システム,共有ファイルシステム操作装置,及び、コンピュータ可読媒体 |
US6654888B1 (en) * | 1999-12-31 | 2003-11-25 | International Business Machines Corporation | Installing and controlling trial software |
US6996072B1 (en) * | 2000-01-19 | 2006-02-07 | The Phonepages Of Sweden Ab | Method and apparatus for exchange of information in a communication network |
US6484186B1 (en) | 2000-02-15 | 2002-11-19 | Novell, Inc. | Method for backing up consistent versions of open files |
US6704730B2 (en) | 2000-02-18 | 2004-03-09 | Avamar Technologies, Inc. | Hash file system and method for use in a commonality factoring system |
US7412462B2 (en) * | 2000-02-18 | 2008-08-12 | Burnside Acquisition, Llc | Data repository and method for promoting network storage of data |
US6993653B1 (en) | 2000-02-22 | 2006-01-31 | International Business Machines Corporation | Identity vectoring via chained mapping records |
US6952737B1 (en) | 2000-03-03 | 2005-10-04 | Intel Corporation | Method and apparatus for accessing remote storage in a distributed storage cluster architecture |
US6584564B2 (en) * | 2000-04-25 | 2003-06-24 | Sigaba Corporation | Secure e-mail system |
US20010039548A1 (en) | 2000-04-27 | 2001-11-08 | Yoshitake Shinkai | File replication system, replication control method, and storage medium |
US6775703B1 (en) * | 2000-05-01 | 2004-08-10 | International Business Machines Corporation | Lease based safety protocol for distributed system with multiple networks |
US20020016174A1 (en) * | 2000-05-03 | 2002-02-07 | Gibson Eric J. | Use of telephone numbers as domain names and as applied in portable electronic devices |
US20020103818A1 (en) | 2000-05-04 | 2002-08-01 | Kirkfire, Inc. | Information repository system and method for an internet portal system |
US6721880B1 (en) * | 2000-05-31 | 2004-04-13 | Lucent Technologies Inc. | Method and apparatus for maintaining configuration information in a computing environment |
US6535894B1 (en) | 2000-06-01 | 2003-03-18 | Sun Microsystems, Inc. | Apparatus and method for incremental updating of archive files |
US6947556B1 (en) | 2000-08-21 | 2005-09-20 | International Business Machines Corporation | Secure data storage and retrieval with key management and user authentication |
US7010689B1 (en) | 2000-08-21 | 2006-03-07 | International Business Machines Corporation | Secure data storage and retrieval in a client-server environment |
AU2002312508B2 (en) | 2000-09-11 | 2008-01-17 | Agami Systems, Inc. | Storage system having partitioned migratable metadata |
US7051028B2 (en) | 2000-11-15 | 2006-05-23 | Ndsu-Research Foundation | Concurrency control in high performance database systems |
US20020066022A1 (en) * | 2000-11-29 | 2002-05-30 | Brad Calder | System and method for securing an application for execution on a computer |
US20020095580A1 (en) | 2000-12-08 | 2002-07-18 | Brant Candelore | Secure transactions using cryptographic processes |
US20020073082A1 (en) | 2000-12-12 | 2002-06-13 | Edouard Duvillier | System modification processing technique implemented on an information storage and retrieval system |
US6965683B2 (en) | 2000-12-21 | 2005-11-15 | Digimarc Corporation | Routing networks for use with watermark systems |
US6928426B2 (en) | 2000-12-30 | 2005-08-09 | Intel Corporation | Method and apparatus to improve file management |
US7562110B2 (en) * | 2001-01-11 | 2009-07-14 | F5 Networks, Inc. | File switch and switched file system |
US7047420B2 (en) * | 2001-01-17 | 2006-05-16 | Microsoft Corporation | Exclusive encryption |
US7263714B2 (en) | 2001-01-18 | 2007-08-28 | Blackarrow, Inc. | Providing content interruptions |
US20020099784A1 (en) * | 2001-01-25 | 2002-07-25 | Tran Trung M. | System and method for storing and retrieving bookmark information |
GB2383853A (en) * | 2001-01-26 | 2003-07-09 | Xmg Ltd | A method system and apparatus for networking devices over an asynchronous network such as the internet |
US7043637B2 (en) | 2001-03-21 | 2006-05-09 | Microsoft Corporation | On-disk file format for a serverless distributed file system |
US6981138B2 (en) | 2001-03-26 | 2005-12-27 | Microsoft Corporation | Encrypted key cache |
US6988124B2 (en) | 2001-06-06 | 2006-01-17 | Microsoft Corporation | Locating potentially identical objects across multiple computers based on stochastic partitioning of workload |
US6751627B2 (en) | 2001-07-23 | 2004-06-15 | Networks Associates Technology, Inc. | Method and apparatus to facilitate accessing data in network management protocol tables |
US7313694B2 (en) * | 2001-10-05 | 2007-12-25 | Hewlett-Packard Development Company, L.P. | Secure file access control via directory encryption |
US7000141B1 (en) | 2001-11-14 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | Data placement for fault tolerance |
US6996714B1 (en) | 2001-12-14 | 2006-02-07 | Cisco Technology, Inc. | Wireless authentication protocol |
US7464268B2 (en) * | 2002-10-17 | 2008-12-09 | At&T Intellectual Property I, L.P. | Customizable instant messaging private tags |
US7428751B2 (en) | 2002-12-05 | 2008-09-23 | Microsoft Corporation | Secure recovery in a serverless distributed file system |
EP1613078A1 (en) | 2003-03-07 | 2006-01-04 | Matsushita Electric Industrial Co., Ltd. | Encryption device, decryption device, and data reproduction device |
GB0717587D0 (en) | 2007-09-10 | 2007-10-17 | Mediares Ltd | Systems and methods relating to encryption and decryption |
-
2001
- 2001-12-05 US US10/005,629 patent/US7062490B2/en not_active Expired - Lifetime
-
2002
- 2002-03-12 DE DE60228782T patent/DE60228782D1/de not_active Expired - Lifetime
- 2002-03-12 AT AT09006551T patent/ATE468561T1/de not_active IP Right Cessation
- 2002-03-12 DE DE60236472T patent/DE60236472D1/de not_active Expired - Lifetime
- 2002-03-12 EP EP02005657A patent/EP1246061B1/en not_active Expired - Lifetime
- 2002-03-12 EP EP09006551A patent/EP2085884B1/en not_active Expired - Lifetime
- 2002-03-12 AT AT07011973T patent/ATE431945T1/de not_active IP Right Cessation
- 2002-03-12 DE DE60232424T patent/DE60232424D1/de not_active Expired - Lifetime
- 2002-03-12 EP EP07011973A patent/EP1830272B1/en not_active Expired - Lifetime
- 2002-03-12 AT AT02005657T patent/ATE408189T1/de not_active IP Right Cessation
- 2002-03-22 CN CNB021078505A patent/CN1322449C/zh not_active Expired - Fee Related
- 2002-03-26 JP JP2002086870A patent/JP4263421B2/ja not_active Expired - Fee Related
-
2003
- 2003-03-27 HK HK03102231.2A patent/HK1050065B/zh not_active IP Right Cessation
-
2004
- 2004-10-06 US US10/959,701 patent/US7505970B2/en not_active Expired - Fee Related
- 2004-12-17 US US11/016,388 patent/US7240060B2/en not_active Expired - Fee Related
-
2009
- 2009-01-29 US US12/361,678 patent/US8112452B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
HK1050065A1 (en) | 2003-06-06 |
EP1830272A2 (en) | 2007-09-05 |
EP2085884A3 (en) | 2009-09-02 |
ATE468561T1 (de) | 2010-06-15 |
US7062490B2 (en) | 2006-06-13 |
US20050102268A1 (en) | 2005-05-12 |
US20090132552A1 (en) | 2009-05-21 |
EP1246061B1 (en) | 2008-09-10 |
DE60228782D1 (de) | 2008-10-23 |
HK1050065B (zh) | 2009-05-29 |
DE60232424D1 (de) | 2009-07-02 |
US7240060B2 (en) | 2007-07-03 |
EP1246061A3 (en) | 2007-12-05 |
EP1830272A3 (en) | 2008-03-12 |
US20050044092A1 (en) | 2005-02-24 |
ATE408189T1 (de) | 2008-09-15 |
ATE431945T1 (de) | 2009-06-15 |
EP2085884A2 (en) | 2009-08-05 |
DE60236472D1 (de) | 2010-07-01 |
US8112452B2 (en) | 2012-02-07 |
CN1322449C (zh) | 2007-06-20 |
US7505970B2 (en) | 2009-03-17 |
EP1246061A2 (en) | 2002-10-02 |
EP2085884B1 (en) | 2010-05-19 |
JP2002358226A (ja) | 2002-12-13 |
EP1830272B1 (en) | 2009-05-20 |
US20020188605A1 (en) | 2002-12-12 |
CN1379339A (zh) | 2002-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4263421B2 (ja) | サーバレス分散ファイルシステム | |
JP5075236B2 (ja) | サーバーレス分散ファイルシステムにおけるセキュアリカバリ | |
US7886364B2 (en) | Encrypted key cache | |
EP2176984B1 (en) | Creating and validating cryptographically secured documents | |
US7401220B2 (en) | On-disk file format for a serverless distributed file system | |
US7478243B2 (en) | On-disk file format for serverless distributed file system with signed manifest of file modifications | |
US8681995B2 (en) | Supporting DNS security in a multi-master environment | |
US20070067332A1 (en) | Distributed, secure digital file storage and retrieval | |
CN112311830B (zh) | 基于云存储的Hadoop集群的多租户认证系统及方法 | |
Amnefelt et al. | Keso-A scalable, reliable and secure read/write peer-to-peer file system | |
Santhosh et al. | A novel revocation management for distributed environment: a detailed study |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050323 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050323 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080520 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080820 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080912 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081212 |
|
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: 20090113 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090212 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4263421 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140220 Year of fee payment: 5 |
|
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 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |