JP4297790B2 - 物理的ストレージを抽象するプラグ可能なアーキテクチャを有するパーシステントなキーと値とのリポジトリ - Google Patents

物理的ストレージを抽象するプラグ可能なアーキテクチャを有するパーシステントなキーと値とのリポジトリ Download PDF

Info

Publication number
JP4297790B2
JP4297790B2 JP2003584961A JP2003584961A JP4297790B2 JP 4297790 B2 JP4297790 B2 JP 4297790B2 JP 2003584961 A JP2003584961 A JP 2003584961A JP 2003584961 A JP2003584961 A JP 2003584961A JP 4297790 B2 JP4297790 B2 JP 4297790B2
Authority
JP
Japan
Prior art keywords
component
node
repository
client
plug
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 - Lifetime
Application number
JP2003584961A
Other languages
English (en)
Other versions
JP2005522787A5 (ja
JP2005522787A (ja
Inventor
チャテルジー,スロジット
クマー,ラージ
クライトン,ジョナサン
シュリバスタバ,アローク
ジョシ,サメール
Original Assignee
オラクル・インターナショナル・コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2005522787A publication Critical patent/JP2005522787A/ja
Publication of JP2005522787A5 publication Critical patent/JP2005522787A5/ja
Application granted granted Critical
Publication of JP4297790B2 publication Critical patent/JP4297790B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Description

関連出願
この出願は、その内容全体がすべての目的のためにここに援用される以下の米国仮特許出願の優先権を主張する。
米国仮特許出願第60/370,963号、「グローバル名前空間内の個人化された内容」(Personalized Content Within a Global Namespace)、2002年4月8日出願
米国仮特許出願第60/372,186号、「グローバル名前空間内の個人化された内容に対するアプローチ」(Approach for Personalized Content Within a Global Namespace)、2002年4月12日出願。
発明の分野
この発明はデータリポジトリに関し、より具体的には、キーと値のペアを記憶するためのリポジトリに関する。
発明の背景
多くの種類の情報は一般にキーと値のペアの形で記憶され、このペアの「キー」部分はラベルであり、ペアの「値」部分はそのラベルに関連する値を提供する。たとえば、コンピュータシステムのコンフィギュレーションについての情報は、そのコンピュータシステムにおけるダイナミックメモリの量が512メガバイトであることを示すために以下のキーと値のペア、つまり(“メモリ”,512M)を含むかもしれない。
通常、大量のキーと値のペアを記憶する必要があるソフトウェアプログラムまたはシステムは、その情報を記憶するためのリポジトリを含み、そのリポジトリを管理するための論理を含む。そのようなリポジトリがコンフィギュレーションデータを記憶するために使用される場合、リポジトリはしばしばレジストリと呼ばれる。
キーと値のペアのリポジトリを必要とする各プログラムまたはシステムがそれ自体のリポジトリを実現し、管理する場合、結果として、専用リポジトリの急増と作業の莫大な複写とが生じる。この問題に対処するため、キーと値のペアのリポジトリの設計者たちは、自身のリポジトリにアプリケーションプログラムインターフェイス(API)を公開して、あるサードパーティのアプリケーションが自身のリポジトリを利用できるようにし得る。たとえば、オペレーティングシステムが、そのオペレーティングシステム用に設計されたサードパーティのアプリケーションに、そのオペレーティングシステムによって管理されるリポジトリにキーと値のペアを記憶させるようにしてもよい。
残念ながら、そのような「開放された」リポジトリは一般的な解決策を提供しない。なぜなら、それらは通常、特定のプラットフォームまたはストレージサブシステムに結合されており、したがって汎用のキーと値のペアのリポジトリとして移植または使用できないためである。それらはそれらが使用される環境およびプラットフォームについてのある仮定を用いて設計されているため、それらは一般に、それらの仮定に準拠しないアプリケーションまたはシステムによる使用には利用できない。
この発明を、限定のためではなく例示のために、添付図面の図に示す。図中、同様の参照番号は同様の要素を指す。
発明の詳細な説明
キーと値のペアの共有リポジトリにクラスタにわたるアクセスを提供するための方法およびシステムが説明される。以下の記載では、説明の目的のため、この発明の完全な理解を提供するために多くの特定の詳細が述べられる。しかしながら、この発明がこれらの特定の詳細なしで実践されてもよいことは明らかである。他の点では、この発明を不必要に不明瞭にしないよう、周知の構造および装置はブロック図の形で示される。
機能的概要
どの特定のプラットフォームまたはストレージサブシステムにもそのユーザを限定しないアーキテクチャを用いてキーと値のペアを管理するための手法が提供される。一局面によれば、リポジトリは、リポジトリが使用される環境およびプラットフォームに基づいてアーキテクチャが変わる必要がないことから、移殖性がある(ポータブルである)。むしろ、プラットフォームに特有のアーキテクチャの部分は、リポジトリのストレージ抽象層にあるプラグインに限定されている。プラグインの各々はリポジトリの他の層に同じストレージ抽象インターフェイスを公開するが、他のプラグインとは異なるプラットフォームまたはストレージサブシステムと相互作用するよう実現される。
加えて、アーキテクチャのプラグ可能な性質は、プラットフォーム間共通のポータビリティをもたらす。たとえば、リポジトリは、ソラリス/サン(Solaris/Sun)、AIX/IBM、HPUX/HP、ウィンドウズ(登録商標)/デル(Windows(登録商標)/Dell)といったかなり多数の普及オペレーティングシステム/ハードウェアの組合せにおいて使用される場合がある。したがって、1つのプラットフォームから別のプラットフォームへ移殖されるのに応答して、リポジトリは、単にプラグインを変更してパーシステントなストレージ動作を呼び出してもよい。
一局面によれば、リポジトリの性能は、キーと値のペア情報のマスタキャッシュおよびキーと値のペア情報のローカルキャッシュを保持することによって高まる。一実施例によれば、単一のローカルキャッシュが各ノード上で管理され、任意の所与のノード上のキャッシュに関連するクライアントはリポジトリによって命令されない。たとえば、あるノード用のキャッシュが、リポジトリを最もよく使用するそのノード上のクライアントに、そのクライアントにリポジトリへの適切な呼び出しを行なわせることによって関連付けられてもよい。
システム概要
図1を参照すると、それは、この発明の一実施例に従った、キーと値のペアの共有リポジトリ118へのクラスタにわたるアクセスを提供するためのシステムを示すブロック図である。具体的には、図1は、2つのノード102および104を含むクラスタ100を示している。このシステムの説明を簡略化するために、2ノードクラスタ実施例を示す。しかしながら、ここに説明されるこの発明および手法は、どの特定数のノードを有するクラスタにも限定されない。
「クラスタ」という用語はここでは、互いに通信可能なノードの任意の組を指すために使用されている。クラスタは、たとえば、ネットワーク化されたコンピュータのグループを含み得る。状況によっては、クラスタはクラスタ管理ソフトウェアによってユニットとして管理される。クラスタ管理ソフトウェアは、キーと値のペアのリポジトリ118を利用可能なソフトウェアシステムの一例である。具体的には、クラスタ管理ソフトウェアは
、クラスタ管理ソフトウェアによって管理されるクラスタのコンフィギュレーションについての情報を記憶するために、キーと値のペアのリポジトリ118をクラスタレジストリとして使用してもよい。しかしながら、クラスタ管理ソフトウェアは、リポジトリ118を利用するかもしれないクライアントのほんの一例である。この発明はどの特定数のクライアントにも限定されない。むしろ、多くの状況では、多数の異なるタイプのクライアントがリポジトリ118を使用する。
再度図1を参照すると、ノード102はリポジトリ118の2つのクライアント106、108を含み、一方、ノード104はリポジトリ118の1つのクライアント110を含んでいる。クライアント106、108および110は、それらが関与しているキーと値のペアを管理するためにリポジトリ118のサービスを要求するため、「クライアント」と呼ばれる。クライアント106、108および110は一般に、キーと値のペアのストレージを要求する任意の形のソフトウェアプログラムを表わしており、どの特定の種類のソフトウェアプログラムにも限定されない。
図1に示す実施例では、リポジトリ118は数層の機能性を含んでいる。具体的には、リポジトリ118は、API層112、サービス抽象層114、メッセージングおよびキャッシュ層116、ストレージ抽象層150、およびストレージサブシステム160を含んでいる。一般に、API層112は、クライアントがリポジトリ118のキーと値のペアを記憶、アクセスおよび管理する呼び出しを行なえるようにする、全クライアント106、108および110への共通インターフェイスを提示する。以下により詳細に説明されるように、API層112内のルーチンは、キーと値のペアを永続的に記憶するために最終的に使用される実際のストレージサブシステム160とは独立したインターフェイスを、クライアント106、108および110に公開する。
サービス抽象層114は、API層112でのルーチンによって受取られた呼び出しをいかに処理するかを決定するルーチンを含んでいる。メッセージングおよびキャッシュ層116は、リポジトリ118の構成要素によってリポジトリ118の他の構成要素と通信するために呼び出され得るルーチンを含んでいる。加えて、メッセージングおよびキャッシュ層116は、クライアントが出した要求すべてがストレージサブシステム160へのアクセスをもたらすことにはならないように、キーと値のペアのキャッシュを管理するためのルーチンを含んでいる。
ストレージ抽象層150はプラグイン152および154を含む。各プラグインは、層114および116のルーチンに、同じストレージアクセスAPIを公開する。しかしながら、共通のストレージAPIを実現するルーチンは、プラグインに関連するストレージサブシステムの種類に基づき、プラグインにより異なる。ストレージサブシステム160は、キーと値のペアを記憶可能な任意の形の永続的ストレージシステムを表わしている。これらの層の各々を、以下により詳細に説明する。
マスタ構成要素およびキャッシング構成要素
一実施例によれば、リポジトリ118の一構成要素は、マスタ構成要素として指定される。マスタ構成要素のメッセージングおよびキャッシュ層116におけるルーチンは、ストレージ抽象層150に独占的にアクセスする。マスタ構成要素は、リポジトリ118からの情報のマスタキャッシュも管理する。図1に示す実施例では、構成要素174がマスタ構成要素である。したがって、構成要素174のメッセージングおよびキャッシュ層116におけるルーチンはマスタキャッシュ148を管理し、ストレージ抽象層150に存在するプラグイン152および154に独占的にアクセスする。
クラスタの各ノードは、単一の「キャッシング構成要素」も含む。あるノード用のキャ
ッシング構成要素は、リポジトリ118からの情報のキャッシュを保持する。キャッシング構成要素に関連するクライアントは、ここでは「キャッシングレベルクライアント」と呼ばれる。一実施例によれば、マスタ構成要素は、マスタ構成要素が存在するノード用のキャッシング構成要素である。
図示された実施例では、構成要素172はノード102用のキャッシング構成要素であり、そのようなものとしてキャッシュ138を管理する。構成要素172に関連するクライアント108は、ノード102用のキャッシングレベルクライアントである。ノード102上に同様に存在する構成要素170はキャッシング構成要素ではなく、したがって、リポジトリ118からの情報のそれ自体のキャッシュを保持していない。
一実施例によれば、クライアントは、クライアントが行なったAPI層112のルーチンへの呼び出しを介してリポジトリ118に渡された情報に基づいて、その関連する構成要素をキャッシング構成要素として確立する。たとえば、クライアント108は、適切な呼び出しをAPI130に行なうことによって、それ自体をノード102用のキャッシングレベルクライアントとして確立してもよい。呼び出しは、構成要素172がノード102用のキャッシング構成要素となるべきであることを示す値をAPI130に渡してもよい。
キャッシングレベルクライアントは通常、キャッシング構成要素によって管理されるキャッシュにより速くアクセスするので、特定のノード上のキャッシングレベルクライアントは、リポジトリを最もよく使用するクライアントであることが好ましい。たとえば、クライアント106およびクライアント108は2つの異なる種類のクライアントを表わし、クライアント108はリポジトリ118をよく使用し、クライアント106はリポジトリ118をほとんど使用しない、といった状況では、クライアント108がキャッシングレベルクライアントとして選択される。クライアント108はその場合、構成要素172がノード102用のキャッシング構成要素となるように構成要素172に適切な呼び出しを行なうよう設計され得る。
代替的な一実施例によれば、ノード102上のクライアントの実際のリポジトリの使用がモニターされて、リポジトリ118を最もよく使用している構成要素がキャッシング構成要素として動的に選択されてもよい。そのような実施例では、ルーチンは、構成要素に関連するクライアントの変化するアクセスパターンに基づいて、キャッシング責任を一構成要素から別の構成要素へ動的に渡すためにさえ提供され得る。
書込動作がリポジトリに対して行なわれる際にキャッシュを管理するためにさまざまな手法が使用され得る。たとえば、ある実施例は書込動作中にキャッシュを保持する「ライトスルー」アプローチを用いるかもしれない。この発明は、書込動作中にキャッシュを管理するどの特定のアプローチにも限定されない。
図1に示す実施例では、クラスタ100は、ストレージ抽象層150と相互作用する権利を有する単一のマスタ構成要素174を有する。抽象層150は単一のマスタ構成要素174からアクセスされるため、リソース共有および並行処理制御に関連するさまざまな問題が回避され得る。しかしながら、代替的な実施例は、ストレージ抽象層150と直接相互作用する権利を有する複数のマスタ構成要素を含むかもしれない。そのようなシステムにおける潜在的に有害な相互作用を回避するために、さまざまな並行処理制御手法が使用されてもよい。たとえば、キーの名前空間は区分化されてもよく、各マスタ構成要素は名前空間の区画のうちの1つに割当てられる。そのような実施例では、各マスタ構成要素は、マスタ構成要素に割当てられた名前空間区画内に当てはまるキーに関与する動作についてのみ、ストレージ抽象層150へのアクセスが許可されてもよい。
API層
キーと値のペアを管理するためにリポジトリ118を使用したいクライアントは、API層112におけるルーチンを呼び出すことによってそれを行なう。一実施例によれば、API層112のルーチンは、リポジトリ118によってサポートされる全動作のためにインターフェイスを公開する。一実施例では、API層112のルーチンはパラメータ検証およびエラーチェックを行なう。API層112のルーチンになされた呼び出しがAPI層112で行なわれる試験に通ると、呼び出しはサービス抽象層114の適切なルーチンに渡される。
API層112のルーチンは、そのようなクライアントの開発者たちにコードライブラリの形で提供されてもよい。開発者たちはその場合、自身のクライアントに、コードライブラリ内のルーチンを呼び出すコードを含めてもよい。コードライブラリは次に、クライアントコードがコンパイルされる時点でクライアントコードと静的にリンクされるか、または実行時にクライアントコードに動的にリンクされてもよい。
一実施例によれば、API層112によって公開されるインターフェイスは、多数のプログラミング言語用のインターフェイスを含んでいてもよい。たとえば、API層112は、JAVA(登録商標)プログラミング言語で書かれた、またはJAVA(登録商標)プログラミング言語と互換性のあるクライアントによって使用されるJAVA(登録商標)APIと、Cプログラミング言語で書かれた、またはCプログラミング言語と互換性があるクライアントによって使用される「C」言語APIとの双方を公開してもよい。
代替的な一実施例によれば、API層112はC言語インターフェイスのみを公開し、リポジトリ118は、他の言語で書かれたクライアントから受取られた呼び出しに基づいてAPI層112へ呼び出しを行なうための1つ以上の追加モジュールを含む。そのようなモジュールは、ある言語のクライアントからの呼び出しを、API層112によって公開されたインターフェイスにサポートされる言語での呼び出しに、効果的に変換する。たとえば、そのようなモジュールは、Java(登録商標)ベースのクライアントにJAVA(登録商標)ベースのリポジトリAPIを公開し、次にJNIラッパーを用いて、JAVA(登録商標)ベースのリポジトリAPIを介してなされた呼び出しを、API層112によって公開された「C」ベースのリポジトリインターフェイスへの、モジュールによる呼び出しに変換してもよい。
サービス抽象層
サービス抽象層114は、クライアントからなされた呼び出しをいかに処理するかを決定する。さまざまな要因が、任意の所与の呼び出しがいかに扱われるかを決定し得る。そのような要因は、たとえば、呼び出しを行なうクライアントの識別情報、呼び出しに適用可能なアクセスモード、呼び出しによって要求される動作の種類を含む。アクセスモードを、以下により詳細に説明する。
これらの要因に依存して、サービス抽象層114のルーチンは、リポジトリ118の異なる構成要素に要求を送るために、ローカルキャッシュにアクセスし、マスタキャッシュにアクセスし、または、メッセージングおよびキャッシュ層116のメッセージングルーチンに呼び出しを行なう。サービス抽象層114の呼び出されたルーチンがキャッシング構成要素またはマスタ構成要素内にない場合、サービス抽象層114の呼び出されたルーチンは、メッセージングおよびキャッシュ層116のルーチンを呼び出して、要求をローカルキャッシング構成要素に渡す。
サービス抽象層114の呼び出されたルーチンがキャッシング構成要素内にある場合、
サービス抽象層114の呼び出されたルーチンはローカルキャッシュをチェックして、キャッシュが要求に返答するための情報を含んでいるかどうかを確かめる。ローカルキャッシュが要求に返答するための情報を含んでいない場合、サービス抽象層114の呼び出されたルーチンは、メッセージングおよびキャッシュ層116のルーチンを呼び出して、要求をマスタ構成要素に渡す。
サービス抽象層114の呼び出されたルーチンがマスタ構成要素内にある場合、サービス抽象層114の呼び出されたルーチンはマスタキャッシュをチェックして、キャッシュが要求に返答するための情報を含んでいるかどうかを確かめる。マスタキャッシュが要求に返答するための情報を含んでいない場合、サービス抽象層114の呼び出されたルーチンは、メッセージングおよびキャッシュ層116のルーチンを呼び出し、ストレージサブシステム160のうちの1つの永続的なストレージから情報を検索するためにストレージ抽象層150の適切なプラグインを呼び出す。
一実施例によれば、サービス抽象層114のルーチンからメッセージングおよびキャッシュ層116のメッセージングルーチンになされた呼び出しはすべて、処理状態を把握していない。そのような実施例では、サービス抽象層114がメッセージングおよびキャッシュ層116内のメッセージングルーチンを介して送る各メッセージは、所望の動作を行なうのに必要な情報をすべて含んでいる。
一実施例によれば、キャッシング構成要素およびマスタ構成要素のサービス抽象層114のルーチンは、クライアントを認証する責任を有する。認証動作中、ルーチンはクライアントが「信頼できる」かどうかを判断する。「信頼できる」とされなかったクライアントは、ある種の動作を行なうことを許可されない。
メッセージングおよびキャッシュ層
メッセージングおよびキャッシュ層116は、キャッシュにアクセスしてキャッシュを管理するためのルーチンと、リポジトリ118の他の構成要素と通信するためのルーチンとを含む。一実施例によれば、キャッシングルーチンは各ノードの一構成要素にしか使用されない。ノード上の他の構成要素は、キャッシュを管理している構成要素に要求を送ることによって間接的にキャッシュを使用する。
一実施例によれば、キャッシングルーチンがいかにして要求を満たすかは、キャッシングルーチンを呼び出すルーチンには完全にトランスペアレントである。具体的には、要求を受取ると、キャッシングルーチンは、それが管理するキャッシュをチェックする。キャッシュが要求を満たすのに必要な情報を含んでいる場合、キャッシングルーチンはその情報をキャッシュから検索して、その情報を呼び出しルーチンに提供する。しかしながら、キャッシュが要求を満たすのに必要な情報を含んでいない場合、キャッシングルーチンは必要な情報を他の手段で獲得する。たとえば、キャッシングルーチンがキャッシング構成要素に属している場合、キャッシングルーチンは、メッセージングルーチンを呼び出して、必要な情報をマスタ構成要素から要求してもよい。キャッシングルーチンがマスタ構成要素に属している場合、キャッシングルーチンは適切なストレージ抽象層のプラグインを呼び出して、要求された情報をストレージサブシステムから検索してもよい。キャッシングルーチンは、それが管理するキャッシュに情報を記憶させてもよく、加えて、要求された情報を呼び出しルーチンに戻してもよい。
一実施例によれば、メッセージングおよびキャッシュ層116のメッセージングルーチンは、少なくともメッセージがクラスタ内のプラットフォーム境界を横断しなければならない場合に、要求をネットワークバイトオーダで送信するよう構成されている。たとえば、ノード102が第1のプラットフォーム上で起動し、ノード104が第2のプラットフ
ォーム上で起動していると仮定する。そのような筋書きでは、ノード102のメッセージングルーチンは、ノード104上のメッセージングルーチンに、メッセージをネットワークバイトオーダで送信する。同様に、ノード104上のメッセージングルーチンは、ノード102上のメッセージングルーチンに、メッセージをネットワークバイトオーダで送信する。プラットフォーム境界を越えてメッセージをネットワークバイトオーダで送信することにより、送信側によって送信されるメッセージは、送信側とは異なるプラットフォーム上に存在する受信側によって正確に再構築され得る。
ストレージ抽象層
一実施例によれば、ストレージ抽象層150に設けられたルーチンは、どの種類のバックエンドストレージが、リポジトリ118により管理されるキーと値のペア情報を永続的に記憶するために使用されているかを完全に抽象する。たとえば、プラグイン152がプラグイン154とはまったく異なるストレージサブシステムで動作するよう設計されていても、プラグイン152およびプラグイン154は双方とも、マスタ構成要素174のメッセージングおよびキャッシュ層116のキャッシングルーチンに、同一のインターフェイスを公開する。プラグイン152および154が同じインターフェイスをキャッシングルーチンに公開する一方、そのインターフェイスを実現するルーチンの論理は、プラグインがどの種類のバックエンドストレージと相互作用するよう設計されているかに基づいて、まったく異なっていてもよい。
重大なことに、プラットフォームに特有の論理はすべて、ストレージ抽象層150のプラグインに含まれているため、リポジトリ118の他のすべての層でのルーチンはプラットフォームに特有のものでも、ストレージサブシステムに特有のものでもない。したがって、リポジトリ118を使用するクライアントはプラットフォームに特有の設計詳細から効果的に隔離され、クライアントおよびリポジトリ118の上層構成要素が双方ともプラットフォーム間でポータブルであるようにする。
ストレージ抽象層150は共通のインターフェイスを公開する1つ以上のプラグインを用いて実現されているため、リポジトリ118は、どの特定のバックエンドサブシステムまたはプラットフォームにも限定されない。公開された共通インターフェイスに関連する機能性を提供できる任意のサブシステムおよびプラットフォームが使用されてもよい。そのようなバックエンドプラットフォームは、LDAP、MSCS、共有ロウデバイス、ロウデバイス、および/または、何も共有しないクラスタ、クラスタファイルシステム(CFS)および分散型コンフィギュレーションリポジトリ内のプライベートファイルシステムファイルを含んでいてもよいが、それらに限定されない。
リポジトリ118が、パーシステントなストレージ上のキーと値のペアへのアクセスを必要とする動作を実行するよう要求されると、ストレージ抽象層150へ呼び出しが(通常、マスタ構成要素のメッセージングおよびキャッシュ層のキャッシングルーチンから)なされる。一実施例によれば、リポジトリ118は、さまざまな可能な要因の1つ以上に基づいて、呼び出すべき特定のプラグインを選択する。たとえば、リポジトリ118は、アドミニストレータによって値が設定可能な環境変数を含んでいてもよく、環境変数の値は、リポジトリ118により管理されるデータをパーシステントに記憶するためにどの種類のストレージサブシステムが使用されるべきかを示す。また、これに代えて、リポジトリ118は、リポジトリ118の特定のインストールにどのストレージサブシステムが利用できるかを検出する発見論理を含んでいてもよい。1種類のサブシステムしか利用できない場合には、その種類のサブシステムに関連するプラグインが選択される。いくつかの種類が利用できる場合には、リポジトリ118は、さまざまな他の考慮事項に基づいて、利用できる種類の中から選択してもよい。これらの考慮事項は、ストレージサブシステム160におけるストレージ容量または利用可能な自由空間を含み得るが、それらに限定さ
れない。一旦選択されると、適切なプラグインが揮発性メモリに動的にロードされてもよく、プラグイン内のルーチンが呼び出されてもよい。
各プラグインは異なる種類のバックエンドストレージシステムと相互作用するよう設計されているため、プラグインの選択は、リポジトリ118によって管理されるキーと値のペアがパーシステントに記憶されるバックエンドプラットフォームの性質を決定する。たとえば、対象となるキーと値のペアが、共有されたストレージ装置上に配置されるべきである場合、プラグイン152のルーチンが呼び出されてもよい。対象となるキーと値のペアが、LDAPサーバによって管理されるストレージサブシステム内で管理されるべきである場合、プラグイン154の対応するルーチンが呼び出されてもよい。一実施例によれば、プラグイン152および154によって公開されるインターフェイスが同一であるため、呼び出されたルーチン名および呼び出しのパラメータは、双方の場合において同じであり、それにより、ストレージサブシステム160の性質を、クライアント106、108および110、ならびにリポジトリ118の上層のルーチンにトランスペアレントにしている。
ストレージ抽象層150によって公開されるインターフェイスにより、ストレージ抽象層150の外部の処理は、インターフェイスを介してストレージ抽象層150のルーチンに呼び出しを行ない、リポジトリ118に求められるさまざまな機能を行なうようになる。一実施例では、リポジトリ118は、ノードに依存したキーをサポートする。具体的には、リポジトリ118の多数のクライアント(ノード102上のクライアント106および108、ならびにノード104上のクライアント110)は各々、キーと値のペアを記憶することを望んでいるかもしれず、この場合、各クライアントが使用するキーネームは同じであるが、そのキーネームについて異なるノード上で各クライアントが使用する値は異なっていてもよい。たとえば、各クライアントは、“背景色”=X(ここで、Xは青、緑または紫のうちのいずれか1つであればよい)というキーと値のペアを記憶することを望んでいるかもしれない。ノードに依存したキーを使用して、リポジトリ118は、各クライアントに対し、クライアントがたまたま起動しているノードに依存して「背景色」用の値を別個に記憶する。この例については、ノード102上のクライアント106および108は背景色キーに対して同じ値を認めるが、ノード104上のクライアント110は同じ背景色キーに対して異なる値を認める。
例示的な要求シーケンス
一実施例によれば、リポジトリ118によって管理される情報についての要求は、まず、同じノード上に存在するキャッシュを要求元としてチェックすることにより処理される。情報がローカルノードキャッシュにない場合、マスタキャッシュがチェックされる。情報がマスタキャッシュにない場合、永続的なストレージから情報を検索するようストレージ抽象層150に呼び出しがなされる。
たとえば、リポジトリ118によって管理され、かつ現在どのキャッシュにも存在していないあるキーと値のペアをクライアント106が要求していると仮定する。一実施例によれば、クライアント106のためにそのキーと値のペアを検索する動作は、以下のように進行する。
まず、クライアント106は、API層112のルーチン(API120)を呼び出して、所望のキーと値のペアの読出しを要求する。API120はその要求をサービス抽象層114のルーチン(SVC ABST122)に送る。SVC ABST122はこの要求をどう取扱うかを判断する。この例では、SVC ABST122は、この要求をノード102にとってローカルなキャッシュに送るべきであると判断する。構成要素170はノード102のキャッシング構成要素ではないため、要求をキャッシュに送ることは、
構成要素170が別の構成要素172と通信することを伴う。この通信を達成するため、要求は構成要素170のメッセージングおよびキャッシュ層116のルーチン(MSG124)に渡される。
MSG124は、キャッシング構成要素172のメッセージングおよびキャッシュ層116のルーチン(MSG134)に要求を通信する。MSG134は、キャッシング構成要素172のサービス抽象層114のルーチン(SVC ABST132)まで要求を渡す。SVC ABST132は、キャッシュ138が要求された情報を含むかどうかを判断するためにキャッシュ138を検査すべきであると判断する。SVC ABST132は、メッセージングおよびキャッシュ層116のルーチンに適切な呼び出しを行なう。
情報がローカルキャッシュ138内で見つからない場合、MSG134からマスタ構成要素174のメッセージングおよびキャッシュ層116のルーチン(MSG144)にメッセージが送られる。MSG144は要求をマスタ構成要素174のサービス抽象層114のルーチン(SVC ABST142)まで渡す。SVC ABST142は、キャッシュ148が要求された情報を含むかどうかを判断するためにマスタキャッシュ148を検査すべきであると判断する。SVC ABST142は、メッセージングおよびキャッシュ層116のルーチンに適切な呼び出しを行なう。
情報がマスタキャッシュ148内で見つからない場合、ストレージ抽象層150の適切なプラグイン(たとえばプラグイン152)にメッセージが送られる。プラグイン152は、要求された情報が、ストレージサブシステム160のうちの1つのパーシステントなストレージからキャッシュ148へと検索されるようにする。MSG144は次に、要求された情報を戻すことによってMSG134からの呼び出しを戻す。MSG134は、情報がキャッシュ138に記憶されるようにし、要求された情報を戻すことによってMSG124からの呼び出しを戻す。
MSG124は情報をSVC ABST122に戻し、それは次に情報をAPI120に戻す。最後に、API120は要求された情報をクライアント106へ送る。
要求された情報がキャッシュ138に記憶されたため、ノード102上の任意のクライアントによる同じ情報に対するその後の要求は、データをキャッシュ138から検索することによって取扱われてもよい。要求された情報がマスタキャッシュ148に記憶されたため、ローカルにキャッシュされた情報を持たないノード上のクライアントによる同じ情報に対するその後の要求は、データをマスタキャッシュ148から検索することによって取扱われてもよい。
アクセスモード
一実施例によれば、API層112に提供されたルーチンは、4つのアクセスモードのうちのいずれか1つでアクセスされてもよい。クライアントは、たとえば、モードを示すパラメータ値をルーチンに渡すことによって、ある特定のアクセスモードをAPI層112のルーチンに示してもよい。そのようなパラメータを各呼び出しでAPI層112に渡すよりもむしろ、クライアントがAPI層112に行なう最初の呼び出しが「初期化ルーチン」への所望のモードを特定してもよい。初期化ルーチンはハンドルをクライアントに戻してもよく、それをクライアントは次に用いて、API層112への将来の呼び出しすべてを行なう。ハンドルは、クライアントのアクセスモードを示すデータに関連付けられてもよい。したがって、その後の呼び出しすべてにおいてハンドルを渡すことは、その後の呼び出しを処理するルーチンに、それらの呼び出しに応じるために使用すべきアクセスモードについて効果的に知らせる。
一実施例によれば、同じクライアントの異なるモジュールは、リポジトリ118に異なるアクセスモードでアクセスしてもよい。たとえば、クライアント108内の第1のモジュールはリポジトリ118に読出し専用モードでアクセスし、一方、クライアント108内の別のモジュールはリポジトリ118にキャッシングアクセスモードでアクセスしてもよい。同様に、クライアントは、API層112に適切な呼び出しを行なうことによって、あるアクセスモードから別のアクセスモードへ遷移してもよい。
ある特定のクライアントが要求するアクセスモードは、クライアントの役割、および/またはクライアントが実行を意図する動作の種類によって命令される。一実施例によれば、リポジトリ118によってサポートされるモードは、インストールモード、読出し専用アクセスモード、キャッシングアクセスモード、およびデフォルトアクセスモードを含む。
インストールモード:インストールモードは、クライアント(通常、リポジトリインストールプログラム)がリポジトリを作成または再作成する動作を行なうために使用するモードである。一実施例によれば、インストールモードは一度に1つのクライアントにしか保持されず、他のすべてのクライアントが任意のリポジトリ動作を行なわないようにする。
読出し専用アクセスモード:読出し専用アクセスモードを要求することにより、クライアントは、それが読出し専用動作のみを行なっていることを示す。クライアントに対して読出し専用アクセスモードで動作を行なう場合、リポジトリ118内の並行処理制御論理はすべて無効にされる/回避される。したがって、動作は一般に、書込動作を可能とするモードで実行される場合よりも速く、かつより少ないオーバーヘッドで実行され得る。読出し動作は概して他の読出し動作とのアクセス競合を引起こさないため、読出し専用アクセスモードは多数のクライアントによって並行して共有されてもよい。
一実施例によれば、リポジトリ118は、リポジトリ118内での動作中、クラスタコンフィギュレーションソフトウェアを用いて並行処理制御のうちの一部を行なう。そのようなクラスタコンフィギュレーションソフトウェアはまた、リポジトリ118を用いてクラスタ100用の立上げ情報を記憶してもよい。そのような実施例では、クラスタコンフィギュレーションソフトウェアは、読出し専用アクセスモードを用いて、クラスタ100が立上げられている間にクラスタコンフィギュレーション情報にアクセスし、クラスタコンフィギュレーションソフトウェアがそれ自体十分に初期化されるまで、クラスタコンフィギュレーションソフトウェアの並行処理制御ルーチンが確実に実行されないようにする。
キャッシングアクセスモード:キャッシングアクセスモードは、クライアントが使用する構成要素を、あるノード用のキャッシング構成要素として確立するために、クライアントが使用するモードである。たとえば、構成要素172は、クライアント108が構成要素172をキャッシングアクセスモードで初期化することに応答して、ノード102のキャッシング構成要素として確立される。クライアント108が構成要素172を初期化する呼び出しを行なうと、リソースがキャッシュ138用に割当てられてもよい。読出し動作がキャッシングアクセスモードで行なわれると、サービス抽象層114内のルーチンはメッセージングおよびキャッシュ層116のキャッシングルーチンを呼び出して、キャッシュ138内で要求された情報を検索する。
デフォルトアクセスモード:デフォルトアクセスモードは、(1)キャッシング構成要素に関連付けられていないクライアント、および(2)インストールモードまたは読出し専用アクセスモードを必要とする動作を実行していないクライアントによって使用される
モードである。デフォルトアクセスモードで動作を行なうと、サービス抽象層114のルーチンは、メッセージングおよびキャッシュ層116のメッセージングルーチンを用いて、読出された要求をローカルキャッシング構成要素へ送る。
一実施例によれば、クライアントはあるモードから別のモードへと遷移可能である。そのような遷移は、たとえば、前の呼び出しでAPI層のルーチンへ渡されたものとは異なるアクセスモードパラメータ値をその後の呼び出しでAPI層のルーチンに渡すことによって開始されてもよい。さらに別の実施例によれば、単一のクライアント処理の異なるスレッドまたはモジュールは、異なるアクセスモードを使用してもよい。たとえば、あるクライアントの第1のモジュールにおけるすべての呼び出しが、あるアクセスモード値をAPI層ルーチンに渡してあるアクセスモードを獲得し、一方、同じクライアントの第2のモジュールにおけるすべての呼び出しが、異なるアクセスモード値をAPI層ルーチンに渡して異なるアクセスモードを獲得してもよい。
ハードウェア概要
図2は、この発明の一実施例が実現され得るコンピュータシステム200を示すブロック図である。コンピュータシステム200は、情報を通信するためのバス202または他の通信メカニズムと、情報を処理するためにバス202と結合されたプロセッサ204とを含む。コンピュータシステム200はまた、プロセッサ204により実行されるべき命令および情報を記憶するためにバス202に結合される、ランダムアクセスメモリ(RAM)または他のダイナミックストレージ装置などのメインメモリ206を含む。メインメモリ206は、プロセッサ204により実行されるべき命令の実行中に、一時的な変数または他の中間情報を記憶するためにも使用されてもよい。コンピュータシステム200はさらに、プロセッサ204用の命令およびスタティック情報を記憶するためにバス202に結合された読出し専用メモリ(ROM)208または他のスタティックストレージ装置を含む。磁気ディスクまたは光ディスクなどのストレージ装置210が、情報および命令を記憶するために提供され、バス202に結合されている。
コンピュータシステム200は、バス202を介して、情報をコンピュータユーザに表示するためのブラウン管(CRT)といったディスプレイ212に結合されてもよい。英数字キーおよび他のキーを含む入力装置214が、情報およびコマンド選択をプロセッサ204に通信するためにバス202に結合される。ユーザ入力装置の別の例は、マウス、トラックボール、またはカーソル方向キーなどのカーソル制御216であり、方向情報およびコマンド選択をプロセッサ204に通信し、ディスプレイ212上のカーソルの動きを制御する。この入力装置は通常、2つの軸、つまり第1の軸(たとえばx)および第2の軸(たとえばy)において2つの自由度を有しており、それによりこの装置は平面における場所を特定することができる。
この発明は、ここに説明された手法を実現するためのコンピュータシステム200の使用に関する。この発明の一実施例によれば、これらの手法は、プロセッサ204がメインメモリ206に含まれる1つ以上の命令の1つ以上のシーケンスを実行するのに応答して、コンピュータシステム200によって行なわれる。そのような命令は、ストレージ装置210などの別のコンピュータ読取可能な媒体からメインメモリ206に読込まれてもよい。メインメモリ206に含まれる命令のシーケンスの実行により、プロセッサ204は、ここに説明されたプロセスステップを行なうようになる。代替的な実施例では、この発明を実現するために、ソフトウェアの命令の代わりに、またはソフトウェア命令と組合せて、配線接続回路が使用されてもよい。このため、この発明の実施例は、配線接続回路とソフトウェアとのどの特定の組合せにも限定されない。
ここで用いられるような「コンピュータ読取可能な媒体」という用語は、プロセッサ2
04に実行用に命令を提供することに関与するあらゆる媒体を指す。そのような媒体は、不揮発性媒体、揮発性媒体、および通信媒体を含むもののそれらに限定されない多くの形態をとり得る。不揮発性媒体は、たとえば、ストレージ装置210などの光ディスクまたは磁気ディスクを含む。揮発性媒体は、メインメモリ206などのダイナミックメモリを含む。通信媒体は、バス202を構成する配線を含む、同軸ケーブル、銅線および光ファイバを含む。通信媒体は、電波および赤外線データ通信中に発生するものなどの音波または光波の形もとり得る。
コンピュータ読取可能な媒体の一般的な形態は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、または任意の他の磁気媒体、CD−ROM、任意の他の光媒体、パンチカード、紙テープ、孔のパターンを有する任意の他の物理的媒体、RAM、PROM、EPROM、FLASH−EPROM、任意の他のメモリチップまたはカートリッジ、以下に記載されるような搬送波、またはコンピュータがそこから読出し可能な任意の他の媒体を含む。
コンピュータ読取可能な媒体のさまざまな形態は、1つ以上の命令の1以上のシーケンスをプロセッサ204に実行用に保持することに関与していてもよい。たとえば、命令はまず、遠隔コンピュータの磁気ディスク上に保持されてもよい。遠隔コンピュータは命令をそのダイナミックメモリにロードし、電話回線を通してモデムを用いて命令を送ることができる。コンピュータシステム200にとってローカルなモデムは、電話回線上のデータを受信し、赤外線送信機を用いてデータを赤外線信号に変換することができる。赤外線検出器は赤外線信号で搬送されたデータを受信することができ、適切な回路がそのデータをバス202上に配置することができる。バス202はそのデータをメインメモリ206へ搬送し、そこからプロセッサ204が命令を検索して実行する。メインメモリ206によって受信された命令は、プロセッサ204による実行の前または後のいずれかで、ストレージ装置210に随意に記憶されてもよい。
コンピュータシステム200は、バス202に結合された通信インターフェイス218も含む。通信インターフェイス218は、ローカルネットワーク222に接続されたネットワークリンク220に双方向データ通信結合を提供する。たとえば、通信インターフェイス218は、データ通信接続を対応する種類の電話回線に提供するデジタル総合サービス網(ISDN)カードまたはモデムであってもよい。別の例として、通信インターフェイス218は、データ通信接続を互換性があるLANに提供するローカルエリアネットワーク(LAN)カードであってもよい。無線リンクも実現可能である。そのような任意の実現化例では、通信インターフェイス218は、さまざまな種類の情報を表わすデジタルデータストリームを搬送する電気信号、電磁信号または光信号を送信および受信する。
ネットワークリンク220は通常、1つ以上のネットワークを介して他のデータ装置へデータ通信を提供する。たとえば、ネットワークリンク220は、ローカルネットワーク222を介して、ホストコンピュータ224へ、またはインターネットサービスプロバイダ(ISD)226により運営されるデータ装置へ、接続を提供してもよい。ISP226は次に、現在一般に「インターネット」228と呼ばれている全世界的パケットデータ通信ネットワークを介して、データ通信サービスを提供する。ローカルネットワーク222およびインターネット228は双方とも、電気信号、電磁信号または光信号を使用してデジタルデータストリームを搬送する。コンピュータシステム200へ、またはコンピュータシステム200からデジタルデータを搬送する、さまざまなネットワークを通る信号と、ネットワークリンク220上の、および通信インターフェイス218を通る信号とは、情報を伝達する搬送波の例示的な形態である。
コンピュータシステム200は、ネットワーク、ネットワークリンク220および通信
インターフェイス218を通して、メッセージを送信し、プログラムコードを含むデータを受信する。インターネットの例では、サーバ230は、アプリケーションプログラムについて要求されたコードを、インターネット228、ISP226、ローカルネットワーク222および通信インターフェイス218を介して送信してもよい。
受信されたコードは、それが受信されたときにプロセッサ204によって実行されてもよく、および/または、後での実行のためにストレージ装置210または他の不揮発性ストレージに記憶されてもよい。このように、コンピュータシステム200は、搬送波の形をしたアプリケーションコードを獲得し得る。
前述の明細書において、この発明を、その特定の実施例を参照して説明してきた。しかしながら、この発明のより幅広い精神および範囲を逸脱することなく、さまざまな修正および変更がそれになされてもよいことは明らかである。明細書および図面は、したがって、限定的な意味というよりもむしろ例示的な意味において考察されるべきである。
この発明の一実施例に従ったキーと値のペアのリポジトリのブロック図である。 この発明の実施例が実現され得るコンピュータシステムのブロック図である。

Claims (14)

  1. キーと値のペアを記憶するための、プロセッサを含む1つ以上のコンピュータ装置によって実行される方法であって、
    前記1つ以上のコンピュータ装置が、キーと値のペア情報をリポジトリに記憶し、アクセスするよう、クライアントが呼び出しを行なう際に介するリポジトリインターフェイスを、アプリケーションプログラミング層で公開するステップと、
    前記1つ以上のコンピュータ装置が、前記リポジトリインターフェイスを介して、第1のノード上の第1の構成要素において、動作を実行する要求を、第1のノード上のクライアントから受取るステップとを含み、第1の構成要素は第1のクライアントと論理的に接続され、前記方法はさらに、
    第1の構成要素において要求を受取ることに応答して、前記1つ以上のコンピュータ装置が、第1の構成要素が第1のノード用のキャッシング構成要素として指定されているかどうかを判断するステップと、
    第1の構成要素が第1のノード用のキャッシング構成要素として指定されていないと判断することに応答して、前記1つ以上のコンピュータ装置が、第1のノード上の第2の構成要素が第1のノード用のキャッシング構成要素として指定されているかどうかを判断するステップとを含み、第2の構成要素は第1のノード上の第2のクライアントと論理的に接続され、前記方法はさらに、
    前記1つ以上のコンピュータ装置が、第2の構成要素が第1のノード用のキャッシング構成要素として指定されていると判断することに応答して、前記要求により必要とされる要求ペア情報が第1のノード上のローカルキャッシュに含まれているかどうかを、第2の構成要素において判断するステップと、
    前記要求ペア情報が第1のノード上のローカルキャッシュに含まれていないと判断することに応答して、前記1つ以上のコンピュータ装置が、第2のノード上の第3の構成要素がマスタ構成要素として指定されているかどうかを判断するステップとを含み、第2のノードは第1のノードとは別個であり、第3の構成要素は第2のノード上の第3のクライアントと論理的に接続され、前記方法はさらに、
    第3の構成要素がマスタ構成要素として指定されていると判断することに応答して、前記1つ以上のコンピュータ装置が、第3の構成要素において以下のステップを実行するステップを含み、以下のステップは、
    ストレージ抽象層の共通のインターフェイスを介して複数のプラグインのうちの1つを呼び出すことによって、前記リポジトリインターフェイスを介して行なわれた呼び出しに応じるステップと、
    動作を実行する要求を受取るステップと、
    前記動作の実行中にアクセスするために、前記複数のプラグインのうちのどの特定のプラグインが、ストレージサブシステムの種類に対応するかを判断するステップと、
    ストレージサブシステムの前記種類に対応する特定のプラグインを動的にロードするステップと、
    前記共通のインターフェイスを介して前記特定のプラグインに1つ以上の呼び出しを行なうことによって前記動作を実行するステップとを含み、
    前記複数のプラグインの各プラグインは、前記要求ペア情報にアクセスするために前記共通のインターフェイスを公開し、
    前記複数のプラグインの各プラグインは、前記共通のインターフェイスを介して行なわれた呼び出しに応答して、ある特定の種類のストレージサブシステムと相互作用するよう設計されており、
    各プラグインが相互作用するストレージサブシステムは、前記複数のプラグインの他の各々が相互作用するストレージサブシステムとは異なる種類のストレージサブシステムである、方法。
  2. 前記1つ以上のコンピュータ装置が、前記リポジトリの第3の構成要素をマスタ構成要素として指定するステップと、
    クラスタの複数のノードにわたって広がっている構成要素において、前記1つ以上のコンピュータ装置が、前記複数のノード上に存在するクライアントから前記リポジトリインターフェイスを介して呼び出しを受取るステップと、
    前記1つ以上のコンピュータ装置が、不揮発性ストレージへのアクセスを要求するすべての呼び出しを前記マスタ構成要素に転送するステップとをさらに含み、
    マスタ構成要素は、前記共通のインターフェイスを介してプラグインを呼び出すステップを行なうことが許可された前記リポジトリの唯一の構成要素である、請求項1に記載の方法。
  3. 前記1つ以上のコンピュータ装置が、クライアントから前記リポジトリインターフェイスを介して要求を受取るステップと、
    前記共通のインターフェイスを介して、前記要求ペア情報について呼び出しを行なう前に、前記1つ以上のコンピュータ装置が、マスタキャッシュにおいて前記要求ペア情報を検索するステップとをさらに含む、請求項1に記載の方法。
  4. 第1のクライアントは第1のノード上に存在し、マスタキャッシュは第2のノード上に存在し、
    前記方法は、前記マスタキャッシュにおいて前記要求ペア情報を検索するステップの前に、前記1つ以上のコンピュータ装置が、前記第1のノード上のローカルキャッシュ上で前記要求ペア情報を検索するステップをさらに含む、請求項3に記載の方法。
  5. 第1のノードは前記リポジトリの複数の構成要素を含み、
    前記方法はさらに、
    前記1つ以上のコンピュータ装置が、前記複数の構成要素の1つの構成要素のみをキャッシング構成要素として確立するステップと、
    前記1つ以上のコンピュータ装置が、前記第1の構成要素が前記キャッシング構成要素ではない場合、前記第1の構成要素から前記キャッシング構成要素にメッセージが送られるようにして、前記キャッシング構成要素に前記要求ペア情報について前記ローカルキャッシュを検索させるステップとを含む、請求項4に記載の方法。
  6. 前記1つ以上のコンピュータ装置が、前記リポジトリインターフェイスを実現するルーチンを含むコードライブラリを作成するステップと、
    前記1つ以上のコンピュータ装置が、前記コードライブラリをクライアントコードにリンクさせて、前記クライアントコードにおけるルーチンが、前記コードライブラリの前記ルーチンを呼び出すことによって前記リポジトリを使用できるようにするステップとをさらに含む、請求項1に記載の方法。
  7. 前記1つ以上のコンピュータ装置が、前記リポジトリインターフェイスの一部を実現するルーチンを介して、クライアントから呼び出しを受取るステップと、
    前記1つ以上のコンピュータ装置が、前記呼び出しにおけるパラメータの値に基づいて、前記クライアントと論理的に接続された前記リポジトリの構成要素を、前記リポジトリ用のキャッシュを管理する責任を負うキャッシング構成要素として確立するかどうかを判断するステップとをさらに含む、請求項1に記載の方法。
  8. キーと値のペアを記憶するための命令を保持するコンピュータ読取可能な媒体であって、前記命令は、
    キーと値のペア情報をリポジトリに記憶し、アクセスするよう、クライアントが呼び出しを行なう際に介するリポジトリインターフェイスを、アプリケーションプログラミング層で公開するステップと、
    前記リポジトリインターフェイスを介して、第1のノード上の第1の構成要素において、動作を実行する要求を、第1のノード上のクライアントから受取るステップとを含み、第1の構成要素は第1のクライアントと論理的に接続され、前記命令はさらに、
    第1の構成要素において要求を受取ることに応答して、第1の構成要素が第1のノード用のキャッシング構成要素として指定されているかどうかを判断するステップと、
    第1の構成要素が第1のノード用のキャッシング構成要素として指定されていないと判断することに応答して、第1のノード上の第2の構成要素が第1のノード用のキャッシング構成要素として指定されているかどうかを判断するステップとを含み、第2の構成要素は第1のノード上の第2のクライアントと論理的に接続され、前記命令はさらに、
    第2の構成要素が第1のノード用のキャッシング構成要素として指定されていると判断することに応答して、前記要求により必要とされる要求ペア情報が第1のノード上のローカルキャッシュに含まれているかどうかを、第2の構成要素において判断するステップと、
    前記要求ペア情報が第1のノード上のローカルキャッシュに含まれていないと判断することに応答して、第2のノード上の第3の構成要素がマスタ構成要素として指定されているかどうかを判断するステップとを含み、第2のノードは第1のノードとは別個であり、第3の構成要素は第2のノード上の第3のクライアントと論理的に接続され、前記命令はさらに、
    第3の構成要素がマスタ構成要素として指定されていると判断することに応答して、第3の構成要素において以下のステップを実行するステップを含み、以下のステップは、
    ストレージ抽象層の共通のインターフェイスを介して複数のプラグインのうちの1つを呼び出すことによって、前記リポジトリインターフェイスを介して行なわれた呼び出しに応じるステップと、
    動作を実行する要求を受取るステップと、
    前記動作の実行中にアクセスするために、前記複数のプラグインのうちのどの特定のプラグインが、ストレージサブシステムの種類に対応するかを判断するステップと、
    ストレージサブシステムの前記種類に対応する特定のプラグインを動的にロードするステップと、
    前記共通のインターフェイスを介して前記特定のプラグインに1つ以上の呼び出しを行なうことによって前記動作を実行するステップとを含み、
    前記複数のプラグインの各プラグインは、前記要求ペア情報にアクセスするために前記共通のインターフェイスを公開し、
    前記複数のプラグインの各プラグインは、前記共通のインターフェイスを介して行なわれた呼び出しに応答して、ある特定の種類のストレージサブシステムと相互作用するよう設計されており、
    各プラグインが相互作用するストレージサブシステムは、前記複数のプラグインの他の各々が相互作用するストレージサブシステムとは異なる種類のストレージサブシステムである、コンピュータ読取可能な媒体。
  9. 前記リポジトリの第3の構成要素をマスタ構成要素として指定するステップと、
    クラスタの複数のノードにわたって広がっている構成要素において、前記複数のノード上に存在するクライアントから前記リポジトリインターフェイスを介して呼び出しを受取るステップと、
    不揮発性ストレージへのアクセスを要求するすべての呼び出しを前記マスタ構成要素に転送するステップとを行なうための命令をさらに含み、
    マスタ構成要素は、前記共通のインターフェイスを介してプラグインを呼び出すステップを行なうことが許可された前記リポジトリの唯一の構成要素である、請求項に記載のコンピュータ読取可能な媒体。
  10. クライアントから前記リポジトリインターフェイスを介して要求を受取るステップと、
    前記共通のインターフェイスを介して、前記要求ペア情報について呼び出しを行なう前に、マスタキャッシュにおいて前記要求ペア情報を検索するステップとを行なうための命令をさらに含む、請求項に記載のコンピュータ読取可能な媒体。
  11. 第1のクライアントは第1のノード上に存在し、マスタキャッシュは第2のノード上に存在し、
    前記コンピュータ読取可能な媒体は、前記マスタキャッシュにおいて前記要求ペア情報を検索するステップの前に、前記第1のノード上のローカルキャッシュ上で前記要求ペア情報を検索するステップを行なうための命令をさらに含む、請求項10に記載のコンピュータ読取可能な媒体。
  12. 第1のノードは前記リポジトリの複数の構成要素を含み、
    前記コンピュータ読取可能な媒体はさらに、
    前記複数の構成要素の1つの構成要素のみをキャッシング構成要素として確立するステップと、
    前記第1の構成要素が前記キャッシング構成要素ではない場合、前記第1の構成要素から前記キャッシング構成要素にメッセージが送られるようにして、前記キャッシング構成要素に前記要求ペア情報について前記ローカルキャッシュを検索させるステップとを行なうための命令を含む、請求項11に記載のコンピュータ読取可能な媒体。
  13. 前記リポジトリインターフェイスを実現するルーチンを含むコードライブラリを作
    成するステップと、
    前記コードライブラリをクライアントコードにリンクさせて、前記クライアントコードにおけるルーチンが、前記コードライブラリの前記ルーチンを呼び出すことによって前記リポジトリを使用できるようにするステップとを行なうための命令をさらに含む、請求項に記載のコンピュータ読取可能な媒体。
  14. 前記リポジトリインターフェイスの一部を実現するルーチンを介して、クライアントから呼び出しを受取るステップと、
    前記呼び出しにおけるパラメータの値に基づいて、前記クライアントと論理的に接続された前記リポジトリの構成要素を、前記リポジトリ用のキャッシュを管理する責任を負うキャッシング構成要素として確立するかどうかを判断するステップとを行なうための命令をさらに含む、請求項に記載のコンピュータ読取可能な媒体。
JP2003584961A 2002-04-08 2003-03-26 物理的ストレージを抽象するプラグ可能なアーキテクチャを有するパーシステントなキーと値とのリポジトリ Expired - Lifetime JP4297790B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US37096302P 2002-04-08 2002-04-08
US37218602P 2002-04-12 2002-04-12
US10/253,088 US7096213B2 (en) 2002-04-08 2002-09-23 Persistent key-value repository with a pluggable architecture to abstract physical storage
PCT/US2003/009407 WO2003088093A2 (en) 2002-04-08 2003-03-26 Key-value repository with a pluggable architecture

Publications (3)

Publication Number Publication Date
JP2005522787A JP2005522787A (ja) 2005-07-28
JP2005522787A5 JP2005522787A5 (ja) 2006-03-30
JP4297790B2 true JP4297790B2 (ja) 2009-07-15

Family

ID=28678885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003584961A Expired - Lifetime JP4297790B2 (ja) 2002-04-08 2003-03-26 物理的ストレージを抽象するプラグ可能なアーキテクチャを有するパーシステントなキーと値とのリポジトリ

Country Status (6)

Country Link
US (2) US7096213B2 (ja)
EP (1) EP1493105B1 (ja)
JP (1) JP4297790B2 (ja)
CN (1) CN100410929C (ja)
CA (1) CA2480459C (ja)
WO (1) WO2003088093A2 (ja)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050220286A1 (en) * 2001-02-27 2005-10-06 John Valdez Method and apparatus for facilitating integrated access to communications services in a communication device
CN101324902A (zh) * 2001-12-28 2008-12-17 国际商业机器公司 实时数据入库
US7445196B2 (en) * 2002-02-20 2008-11-04 Universal Consumer Products, Inc. Plastic fencing simulative of wrought iron
US7136867B1 (en) 2002-04-08 2006-11-14 Oracle International Corporation Metadata format for hierarchical data storage on a raw storage device
US8271530B2 (en) * 2002-04-08 2012-09-18 Oracale International Corporation Method and mechanism for managing and accessing static and dynamic data
US7672945B1 (en) 2002-04-08 2010-03-02 Oracle International Corporation Mechanism for creating member private data in a global namespace
US7058639B1 (en) 2002-04-08 2006-06-06 Oracle International Corporation Use of dynamic multi-level hash table for managing hierarchically structured information
US7900052B2 (en) 2002-11-06 2011-03-01 International Business Machines Corporation Confidential data sharing and anonymous entity resolution
US8620937B2 (en) * 2002-12-27 2013-12-31 International Business Machines Corporation Real time data warehousing
EP1584035B1 (en) 2002-12-31 2015-04-15 International Business Machines Corporation Authorized anonymous authentication
US7200602B2 (en) * 2003-02-07 2007-04-03 International Business Machines Corporation Data set comparison and net change processing
EP1631908A4 (en) * 2003-03-24 2012-01-25 Ibm SECURE COORDINATED IDENTIFICATION METHOD, SYSTEM AND PROGRAM
US7467384B2 (en) * 2004-02-20 2008-12-16 Microsoft Corporation Uniform resource discovery with multiple computers
US20050192927A1 (en) * 2004-02-20 2005-09-01 Microsoft Corporation Uniform resource discovery and activation
US7921419B2 (en) * 2004-05-12 2011-04-05 Oracle International Corporation Method and mechanism for managing incompatible changes in a distributed system
US7779022B2 (en) * 2004-09-01 2010-08-17 Oracle International Corporation Efficient retrieval and storage of directory information system knowledge referrals
US7792860B2 (en) * 2005-03-25 2010-09-07 Oracle International Corporation System for change notification and persistent caching of dynamically computed membership of rules-based lists in LDAP
US8204831B2 (en) 2006-11-13 2012-06-19 International Business Machines Corporation Post-anonymous fuzzy comparisons without the use of pre-anonymization variants
US7903819B2 (en) * 2007-09-07 2011-03-08 Yahoo! Inc. Memory efficient storage of large numbers of key value pairs
US8336047B2 (en) * 2008-08-25 2012-12-18 International Business Machines Corporation Provisioning virtual resources using name resolution
CN102043645B (zh) * 2009-10-20 2014-01-08 阿里巴巴集团控股有限公司 一种加载插件的方法及装置
US8402106B2 (en) * 2010-04-14 2013-03-19 Red Hat, Inc. Asynchronous future based API
US20110276744A1 (en) 2010-05-05 2011-11-10 Microsoft Corporation Flash memory cache including for use with persistent key-value store
US9053032B2 (en) 2010-05-05 2015-06-09 Microsoft Technology Licensing, Llc Fast and low-RAM-footprint indexing for data deduplication
US8935487B2 (en) 2010-05-05 2015-01-13 Microsoft Corporation Fast and low-RAM-footprint indexing for data deduplication
US9208472B2 (en) 2010-12-11 2015-12-08 Microsoft Technology Licensing, Llc Addition of plan-generation models and expertise by crowd contributors
US9110936B2 (en) 2010-12-28 2015-08-18 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication
US8832111B2 (en) * 2010-12-30 2014-09-09 Facebook, Inc. Distributed cache for graph data
KR101398959B1 (ko) 2012-06-28 2014-05-27 엘아이지넥스원 주식회사 플러그인을 이용한 인터페이스 방법 및 장치
US9069979B2 (en) * 2012-09-07 2015-06-30 Oracle International Corporation LDAP-based multi-tenant in-cloud identity management system
US9838370B2 (en) 2012-09-07 2017-12-05 Oracle International Corporation Business attribute driven sizing algorithms
KR102044023B1 (ko) * 2013-03-14 2019-12-02 삼성전자주식회사 키 값 기반 데이터 스토리지 시스템 및 이의 운용 방법
US9870168B1 (en) * 2014-12-22 2018-01-16 Emc Corporation Key-value store with internal key-value storage interface
US10013353B2 (en) 2015-02-23 2018-07-03 Red Hat, Inc. Adaptive optimization of second level cache
US10061629B2 (en) * 2015-07-22 2018-08-28 Optumsoft, Inc. Compact binary event log generation
US9767028B2 (en) * 2015-10-30 2017-09-19 Advanced Micro Devices, Inc. In-memory interconnect protocol configuration registers
US10261913B2 (en) 2017-04-20 2019-04-16 Alibaba Group Holding Limited Persistent memory for key-value storage
CN107196920B (zh) * 2017-04-28 2019-07-30 中国人民解放军信息工程大学 一种面向无线通信系统的密钥产生分配方法
US10572161B2 (en) * 2017-11-15 2020-02-25 Samsung Electronics Co., Ltd. Methods to configure and access scalable object stores using KV-SSDs and hybrid backend storage tiers of KV-SSDs, NVMe-SSDs and other flash devices
US10403351B1 (en) 2018-02-22 2019-09-03 Advanced Micro Devices, Inc. Save and restore scoreboard
US11507392B2 (en) * 2020-02-26 2022-11-22 Red Hat, Inc. Automatically configuring computing clusters
CN113326033B (zh) * 2021-06-09 2023-08-11 北京八分量信息科技有限公司 一种带有多种语言API的key-value存储系统
US11914563B2 (en) 2022-03-24 2024-02-27 Oracle International Corporation Data structure generation system for analyzing logs
US11822939B2 (en) * 2022-03-24 2023-11-21 Oracle International Corporation Collaborative analysis system for analyzing logs

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US5555388A (en) 1992-08-20 1996-09-10 Borland International, Inc. Multi-user system and methods providing improved file management by reading
US5504892A (en) 1994-09-08 1996-04-02 Taligent, Inc. Extensible object-oriented file system
FR2735261B1 (fr) * 1995-06-08 1997-07-11 France Telecom Procede de realisation d'un paiement utilisant un gestionnaire de comptes
US6105025A (en) 1996-03-08 2000-08-15 Oracle Corporation Method for using an index as a workspace for deferred enforcement of uniqueness constraints
US5727950A (en) 1996-05-22 1998-03-17 Netsage Corporation Agent based instruction system and method
US5822526A (en) * 1996-06-03 1998-10-13 Microsoft Corporation System and method for maintaining and administering email address names in a network
US5901214A (en) * 1996-06-10 1999-05-04 Murex Securities, Ltd. One number intelligent call processing system
US6067584A (en) 1996-09-09 2000-05-23 National Instruments Corporation Attribute-based system and method for configuring and controlling a data acquisition task
US6016499A (en) 1997-07-21 2000-01-18 Novell, Inc. System and method for accessing a directory services respository
US6523041B1 (en) * 1997-07-29 2003-02-18 Acxiom Corporation Data linking system and method using tokens
US6073140A (en) * 1997-07-29 2000-06-06 Acxiom Corporation Method and system for the creation, enhancement and update of remote data using persistent keys
US6766327B2 (en) * 1997-07-29 2004-07-20 Acxiom Corporation Data linking system and method using encoded links
US6073129A (en) * 1997-12-29 2000-06-06 Bull Hn Information Systems Inc. Method and apparatus for improving the performance of a database management system through a central cache mechanism
US6345382B1 (en) 1998-02-12 2002-02-05 International Business Machines Corporation Run-time customization in object-oriented design
US6298419B1 (en) * 1998-03-26 2001-10-02 Compaq Computer Corporation Protocol for software distributed shared memory with memory scaling
US6915307B1 (en) * 1998-04-15 2005-07-05 Inktomi Corporation High performance object cache
US6122629A (en) * 1998-04-30 2000-09-19 Compaq Computer Corporation Filesystem data integrity in a single system image environment
GB9811574D0 (en) 1998-05-30 1998-07-29 Ibm Indexed file system and a method and a mechanism for accessing data records from such a system
US6748374B1 (en) * 1998-12-07 2004-06-08 Oracle International Corporation Method for generating a relational database query statement using one or more templates corresponding to search conditions in an expression tree
US6327594B1 (en) 1999-01-29 2001-12-04 International Business Machines Corporation Methods for shared data management in a pervasive computing environment
US6393415B1 (en) * 1999-03-31 2002-05-21 Verizon Laboratories Inc. Adaptive partitioning techniques in performing query requests and request routing
US6578045B1 (en) * 1999-04-20 2003-06-10 Microsoft Corporation System and method for retrieving registry data
US6421662B1 (en) 1999-06-04 2002-07-16 Oracle Corporation Generating and implementing indexes based on criteria set forth in queries
US7308426B1 (en) * 1999-08-11 2007-12-11 C-Sam, Inc. System and methods for servicing electronic transactions
US6442748B1 (en) * 1999-08-31 2002-08-27 Accenture Llp System, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environment
US6738775B2 (en) * 1999-11-30 2004-05-18 Base One International Corp. Database communication system and method for communicating with a database
CN1114164C (zh) * 1999-12-27 2003-07-09 英业达集团(上海)电子技术有限公司 互联网电子读物的下载与加密方法
AU2762001A (en) * 2000-01-05 2001-07-16 Iprivacy Llc Method and system for private shipping to anonymous users of a computer network
US20010044787A1 (en) * 2000-01-13 2001-11-22 Gil Shwartz Secure private agent for electronic transactions
AU2001236864A1 (en) * 2000-02-11 2001-08-20 Arun K. Subramaniam System and method for providing anonymous internet transaction
AU2001241609A1 (en) * 2000-02-23 2001-09-03 Capital One Financial Corporation Systems and methods for providing anonymous financial transactions
US7412422B2 (en) * 2000-03-23 2008-08-12 Dekel Shiloh Method and system for securing user identities and creating virtual users to enhance privacy on a communication network
US6826626B1 (en) * 2000-07-21 2004-11-30 Clear Blue Technologies Management, Inc. Method of and apparatus for rapid retrieval of data in a content distribution network
WO2002025588A2 (en) * 2000-09-21 2002-03-28 Md Online Inc. Medical image processing systems
US7043760B2 (en) * 2000-10-11 2006-05-09 David H. Holtzman System and method for establishing and managing relationships between pseudonymous identifications and memberships in organizations
US6981257B2 (en) 2001-01-19 2005-12-27 Teubner Russell W System, method and apparatus to allow communication between CICS and non-CICS software applications
US20020133537A1 (en) * 2001-03-12 2002-09-19 Whizz Technology Ltd. Server cluster and server-side cooperative caching method for use with same
US20040139125A1 (en) * 2001-06-05 2004-07-15 Roger Strassburg Snapshot copy of data volume during data access
US6950833B2 (en) * 2001-06-05 2005-09-27 Silicon Graphics, Inc. Clustered filesystem
US20030004819A1 (en) * 2001-06-28 2003-01-02 International Business Machines Corporation Anonymous email guarantor processing
CN1320483C (zh) * 2001-09-21 2007-06-06 泛伺服公司 用于在多节点环境中实施日志处理的系统和方法
US20030088656A1 (en) * 2001-11-02 2003-05-08 Wahl Mark F. Directory server software architecture
US8321543B2 (en) * 2002-03-04 2012-11-27 International Business Machines Corporation System and method for determining weak membership in set of computer nodes
US6901401B2 (en) * 2002-03-21 2005-05-31 International Business Machines Corporation System and method for database integrity via local database lockout
US8271530B2 (en) 2002-04-08 2012-09-18 Oracale International Corporation Method and mechanism for managing and accessing static and dynamic data
DE10219916A1 (de) * 2002-05-03 2003-12-04 Infineon Technologies Ag Testanordnung mit Testautomat und integriertem Schaltkreis sowie Verfahren zur Ermittlung des Zeitverhaltens eines integrierten Schaltkreises
US6954524B2 (en) * 2002-06-07 2005-10-11 Sbc Properties, L.P. System and method for implementing and accessing call forwarding services
US7103616B1 (en) * 2003-02-19 2006-09-05 Veritas Operating Corporation Cookie-based directory name lookup cache for a cluster file system
US7197632B2 (en) * 2003-04-29 2007-03-27 International Business Machines Corporation Storage system and cluster maintenance
US7783741B2 (en) 2003-11-17 2010-08-24 Hardt Dick C Pseudonymous email address manager
US20050125461A1 (en) * 2003-12-08 2005-06-09 International Business Machines Corporation Version control of metadata
US7383285B1 (en) 2005-03-08 2008-06-03 Unisys Corporation Method for exposing hierarchical table structures and relationships to OLE DB applications
US20070022314A1 (en) * 2005-07-22 2007-01-25 Pranoop Erasani Architecture and method for configuring a simplified cluster over a network with fencing and quorum
US7653682B2 (en) * 2005-07-22 2010-01-26 Netapp, Inc. Client failure fencing mechanism for fencing network file system data in a host-cluster environment

Also Published As

Publication number Publication date
AU2003220549A1 (en) 2003-10-27
US20030191739A1 (en) 2003-10-09
US20060195450A1 (en) 2006-08-31
CN1659547A (zh) 2005-08-24
US7617218B2 (en) 2009-11-10
CA2480459A1 (en) 2003-10-23
CN100410929C (zh) 2008-08-13
JP2005522787A (ja) 2005-07-28
WO2003088093A2 (en) 2003-10-23
WO2003088093A3 (en) 2004-03-25
CA2480459C (en) 2010-01-19
EP1493105A2 (en) 2005-01-05
EP1493105B1 (en) 2019-03-13
US7096213B2 (en) 2006-08-22

Similar Documents

Publication Publication Date Title
JP4297790B2 (ja) 物理的ストレージを抽象するプラグ可能なアーキテクチャを有するパーシステントなキーと値とのリポジトリ
US7567985B1 (en) Mechanism for implementing a sparse file system for an operating system partition
US6549996B1 (en) Scalable multiple address space server
US7584228B1 (en) System and method for duplication of virtual private server files
US7882227B2 (en) Mechanism for implementing file access control across a network using labeled containers
US7203774B1 (en) Bus specific device enumeration system and method
US7062516B2 (en) Methods, systems, and articles of manufacture for implementing a runtime logging service storage infrastructure
US20040068563A1 (en) Method, system, and program for managing locks enabling access to a shared resource
US7664725B2 (en) Method and apparatus for transparently mapping a request to open a data file
US20040226023A1 (en) Interprocess communication within operating system partitions
US7885975B2 (en) Mechanism for implementing file access control using labeled containers
US8938554B2 (en) Mechanism for enabling a network address to be shared by multiple labeled containers
US8015215B2 (en) Delegation in a file system with distributed components
JP2001517836A (ja) 1つの記憶媒体の名称空間を別の記憶媒体の名称空間に移植する場合に既定のアクションを実行するシステムおよび方法
US20230214361A1 (en) Container system, method of dynamically mounting host data to container, and application program for the same
US7188120B1 (en) System statistics virtualization for operating systems partitions
US7933875B2 (en) File system with distributed components
JPH08115288A (ja) 通信管理方法
US7831623B2 (en) Method, system, and article of manufacture for storing device information
US7827194B2 (en) Access to shared disk device on storage area network
KR20200131375A (ko) 서버 애플리케이션 컨테이너화 방법 및 이를 수행하는 컴퓨터 시스템
AU2003220549B2 (en) Key-value repository with a pluggable architecture
US7870276B1 (en) Interface plugin
US20230315549A1 (en) Resource management method and computing system
US12032516B1 (en) File-level snapshot access service

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060208

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090217

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4297790

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

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120424

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130424

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

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140424

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term