JP2005502957A - 厳密に一回のキャッシュフレームワーク - Google Patents

厳密に一回のキャッシュフレームワーク Download PDF

Info

Publication number
JP2005502957A
JP2005502957A JP2003527615A JP2003527615A JP2005502957A JP 2005502957 A JP2005502957 A JP 2005502957A JP 2003527615 A JP2003527615 A JP 2003527615A JP 2003527615 A JP2003527615 A JP 2003527615A JP 2005502957 A JP2005502957 A JP 2005502957A
Authority
JP
Japan
Prior art keywords
server
host server
servers
network
jms
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.)
Pending
Application number
JP2003527615A
Other languages
English (en)
Other versions
JP2005502957A5 (ja
Inventor
ディーン バーナード ジェイコーブズ
エリック ハルパーン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEA Systems Inc
Original Assignee
BEA Systems Inc
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
Priority claimed from US10/234,693 external-priority patent/US6826601B2/en
Priority claimed from US10/234,597 external-priority patent/US7113980B2/en
Application filed by BEA Systems Inc filed Critical BEA Systems Inc
Publication of JP2005502957A publication Critical patent/JP2005502957A/ja
Publication of JP2005502957A5 publication Critical patent/JP2005502957A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)

Abstract

クラスター化されたネットワーク内のオブジェクトを管理するためのシステムは、データオブジェクト(208)の少なくとも1つのコピーを包含するファイルシステム(212)を含む。本システムは、ファイルシステム(212)と通信するいくつかのクラスター化されたサーバを含むことができる。リードサーバが選択され、それは、ホストサーバ(206)を選択するための分散型合意アルゴリズムを含み、アルゴリズムのラウンドを実行中にマルチキャスティングを利用する。選択されたホストサーバ(206)は、ローカルキャッシュなどにデータオブジェクト(208)のコピーを含むことができ、クラスター内の任意の他のサーバにローカルコピー(208)へのアクセスを提供する。また、ホストサーバ(206)によってホスティングされた項目に対して為されたいかなる変更もファイルシステム(202)において更新することができる。ホストサーバ(206)がオブジェクトをホスティングすることができなくなった場合、分散型合意アルゴリズムを使用して新しいホストを選択することができる。他のサーバ(216、218)は、次に、マルチキャストメッセージングによって新しいホストについて通知される。

Description

【技術分野】
【0001】
優先権の請求
本出願は、本明細書に組み込まれる以下の出願に対する優先権を請求するものである。
2001年9月6日出願のディーン・バーナード・ヤコブズ及びエリック・ハルパーンに付与された「厳密に一回のキャッシュフレームワーク」という名称の米国特許仮出願第60/317,718号、
2002年9月4日出願のディーン・バーナード・ヤコブズ及びエリック・ハルパーンに付与された「厳密に一回のキャッシュフレームワーク」という名称の米国特許出願、
2001年9月6日出願のディーン・バーナード・ヤコブズ及びエリック・ハルパーンに付与された「厳密に一回のJMS通信」という名称の米国特許仮出願第60/317,566号、及び
2002年9月4日出願のディーン・バーナード・ヤコブズ及びエリック・ハルパーンに付与された「厳密に一回のJMS通信」という名称の米国特許出願。
著作権の通知
本特許文書の開示内容の一部は、著作権の保護を受ける材料を含む。著作権所有者は、特許開示に関する特許文書の何人による複製に関しても、それが特許商標事務所の特許ファイル又は記録にある場合には異議はないが、それ以外は全ての著作権を保有する。
相互参照例
以下の米国特許出願は、相互参照されて本明細書において引用により組み込まれる。
2001年7月16日に出願のディーン・バーナード・ヤコブズ、リト・クレイマー、及びアナンサン・バラ・スリニバサンに付与された「データ複製プロトコル」という名称の米国特許出願号第60/305,986号。
本発明は、オブジェクトをネットワーククラスター内のサーバ間に分配するための技術に関する。
【背景技術】
【0002】
分散型コンピュータシステムにおいては、いくつかのサーバ及び/又はネットワーキングノードが協働する必要がある場合が多い。マシンが単一のエンティティとして機能することができるようにマシン間で共有すべきネットワーキング情報が通常存在するので、これらのサーバ及びノードは調整されるべきである。マシン調整の一般的な手法は、リソース及び効率に関して非常に経費が掛かる可能性がある。
【0003】
一般に、ノード間で伝達されるいくつかのメッセージがあると考えられるので、ノードが同意するように何らかの同期化が必要である。しかし、この同期化要件は、クラスター化されたネットワーキング環境では望ましくないかもしれない。多くのクラスター化された環境においては、このようないかなる同期化要件を課すことも単に回避される。しかし、同意が必要な用途も存在する。
【0004】
同意が必要とされる1つの場合においては、クラスターが独占的なアクセスを望むことがある装置が存在することができる。1つのこのような装置は、ファイルシステム上のトランザクションログである。トランザクションが進行中の時は常に、永続的な方法で保存する必要があるいくつかのオブジェクトがあり、それによって、故障が起こった場合にその永続的保存オブジェクトを回復することができる。
【0005】
1ヵ所に保存する必要があるこれらのオブジェクトについては、通常、そのクラスター又はドメイン内の各サーバ上で作動するトランザクションモニタがあり、それは、次にローカルファイルシステムを使用してそのオブジェクトにアクセスする。各サーバは、永続性に関する問題がほとんどないか又は全くないように独自のトランザクションマネージャを有することができる。従って、各サーバがトランザクションマネージャを有するので調整の必要もない。
【発明の開示】
【発明が解決しようとする課題】
【0006】
例えば、各々がトランザクションマネージャを有する3つのサーバを含むクラスターが存在することができる。これらのサーバの1つは、クラスターがそのサーバを利用することができなくなるような故障又は他の問題が発生する可能性がある。故障したサーバは、特定のトランザクションログにアクセス可能な唯一のサーバであるために、その特定のログ内の全てのトランザクションは、クラスターがそのサーバを利用することができるようになるまで再び回復することはできない。サーバに関する問題は、解決するのにかなりの時間が掛かる可能性があるために、ログの回復は、難しいか又は少なくとも非効率的なものになる可能性がある。重大なサーバ上の問題には、サーバ上のマザーボードからの短絡又は電源の消耗の発生などを挙げることができる。
【課題を解決するための手段】
【0007】
本発明は、ネットワーク上又はクラスター内のサーバに記憶することができるような、オブジェクトを管理するためのシステムを含む。本システムは、クラスターの内側又は外側に位置することができる、ファイルシステム又は「Java(登録商標)メッセージサービス」構成要素のようなデータソース、アプリケーション、又はサービスを含む。本システムは、高速ネットワーク接続などを通じてファイルシステム又はアプリケーションと通信するいくつかのサーバを含むことができる。
【0008】
本システムは、他のサーバが同意することができるようなリードサーバ(lead server)を含む。リードサーバは、ハードウエアクラスター又はソフトウエアクラスター内に含めることができる。本システムは、ハードウエアクラスターマシンに内蔵されたアルゴリズムのような、サーバの中からリードサーバを選択するためのアルゴリズムを含むことができる。リードサーバは、それ自体、「Paxos」アルゴリズムのようなホストサーバを選択するための分散型合意アルゴリズムを含むことになる。リードサーバを選択するのに使用されるアルゴリズムは、ホストサーバを選択するのに使用されるアルゴリズムと異なるか又は同じものとすることができる。
【0009】
ホストサーバは、ローカルキャッシュに記憶することができるのような項目又はオブジェクトのコピーを含むことができる。ホストサーバは、ネットワーク上又はクラスター内の任意のサーバへローカルコピーアクセスを提供することができる。ホストサーバはまた、ファイルシステムに記憶されたオブジェクトに対して唯一のアクセスポイント、又は、アプリケーション又はサービスに対して唯一のアクセスポイントを与えることができる。また、ホストサーバがキャッシュに入れるか、ホスティングするか、又は所有する項目に対して行われた任意の変更は、ファイルシステム、アプリケーション、又はサービス内で更新することができる。
【0010】
ホストサーバがオブジェクトをホスティングすることができなくなった場合、分散型合意アルゴリズムを使用して新しいホストを選択することができる。その後、新しいホストは、ファイルシステム又はサービスからそのオブジェクトの必要なデータを引き抜くことができる。新しいサーバがそのオブジェクトをホスティングすることを、クラスター内の他のサーバに通知することができる。サーバへの通知は、2地点間接続又はマルチキャスティングなどによる任意の適切な手段によって行うことができる。
【発明を実施するための最良の形態】
【0011】
本発明によるシステムは、データオブジェクトを所有するサーバがサーバクラスターに対して利用不能になった時のような利用可能性に関する問題の解決策を提供することができる。1つのこのような解決策は、データオブジェクトの所有権を引き継ぐためのクラスター内の別のサーバを考慮するものである。しかし、両方のサーバ上にデータオブジェクトを複製する必要なくデータオブジェクトを両方のサーバにアクセス可能にする際に問題が生じる。
【0012】
ファイルシステム、データストア、又はデータベース(全てを総称して「ファイルシステム」という)がデータを永続的に記憶するためにクラスターによって使用され、また、ファイルシステムが1つよりも多いサーバからアクセス可能である場合、第2のサーバは、オブジェクトを所有する第1のサーバが問題に遭遇した場合に自動的にデータオブジェクトアクセスのタスクを引き継ぐことができる。代替的に、その項目の所有権を取るようにサーバに命令するためにクラスター又はクラスター内のサーバによって利用されるアルゴリズムが存在することが可能である。しかし、別の根本的な問題には、どのサーバが現在リソース又はオブジェクトを所有するかをクラスターに同意させること、又は、サーバ間の「合意」を達成することが絡んでくる。
【0013】
図1は、トランザクションログ114などのオブジェクトがファイルシステム112に記憶される、本発明によるクラスターシステム100の一例を示す。ファイルシステム112には、クラスター110内の全てのサーバ106、116、及び118がアクセス可能であるが、一度にこれらのサーバの1つだけがログ114にアクセス可能である。クラスター110内のサーバ間のホストサーバ106は、ログ114のコピー108を記憶するか、又は、ファイルシステム112内でログ114に対する全てのアクセスを提供するなどにより、ログ114を「所有する」又は「ホスティングする」ことになる。クラスター110内の他のいずれかのサーバ116及び118は、ログのコピー108にアクセスすることができ、及び/又は、ホストサーバ106を通じてログ114にアクセス可能である。例えば、クライアント又はブラウザ102は、クラスター110内のサーバ116に方向付けられたネットワーク104に対する要求を行うことができる。そのサーバは、ネットワーク104を通じてホストサーバ106上のトランザクションログのコピー108にアクセス可能である。トランザクションログを更新する必要がある場合は、ファイルシステム112上のオリジナルログ114と共にコピー108を更新することができる。
【0014】
サーバは、例えばデータオブジェクトのリポジトリーとして機能する時、データオブジェクトのコピーをローカルキャッシュに記憶してそのコピーをクラスター内の他のサーバに利用可能にするか、又は、クラスター内の全ての他のサーバがホストサーバを通じてオブジェクトにアクセスする必要があるように、ファイルシステム、サービス、又はアプリケーション内のオブジェクトへの直接アクセスを有する唯一のサーバになるなどにより、そのオブジェクトを「所有する」又は「ホスティングする」ことができる。これによって、サーバクラスター内にオブジェクトが確実に「厳密に一回」存在する。
【0015】
図3は、オブジェクトのホスティングを確立するために使用することができる1つの処理300を示す。ホストサーバは、「Paxos」アルゴリズムのような分散型合意アルゴリズム302を使用して選択することができる。このようなアルゴリズムは、クラスター内のサーバが、クラスターサーバ間でオブジェクトを分配する方法に関して全体的に同意するか又は合意に至るべきであるから、「分散型合意」アルゴリズムと呼ばれる。
【0016】
ホスティングされているオブジェクトが、例えばホスティングサーバ上でキャッシュに入れられる場合は、データオブジェクトのコピーをファイルシステムからホストサーバに引き抜いて、ローカルキャッシュ304内のオブジェクトとして記憶することができる。その後、ネットワーク上又は適切なクラスター内の他のサーバは、オブジェクトのローカルコピーがホスティングサーバ上に存在すること、及び、そのローカルコピーが今後のネットワーク要求306を処理する際に使用されるべきであることをホストサーバなどによって通知される。
【0017】
分散型合意アルゴリズムの一例である「Paxos」アルゴリズムにおいては、ネットワークサーバは、ホストサーバ又はリードサーバとして機能するサーバを選択することができ、ネットワークサーバが一連の「合意ラウンド」をリードする。これらのラウンドの各々においては、新しいホストサーバ又はリードサーバが提案される。ラウンドは、提案されたサーバの1つがサーバの大部分又は定足数によって受け入れられるまで続行される。どのサーバもラウンドを初期化することによってホストサーバ又はリードサーバを提案することができるが、システムは、リードサーバが常にホストサーバ選択のためのラウンドを初期化するように構成することができる。異なる選択のためのラウンドを同時に実行することができる。従って、ラウンド選択は、ラウンド番号、又は1つの値がラウンドを示し、1つの値がそのラウンドをリードするサーバを示すような値の対によって識別することができる。
【0018】
1つのこのようなラウンドの手順は以下の通りであるが、他の手順及び/又は手法がいくつかの状況又は用途では適切な場合がある。第一に、リーダーが「回収」メッセージをクラスター内の他のサーバに送ることによってラウンドを開始することができる。回収メッセージにより、クラスター内のサーバから、サーバが参加した以前に為されたラウンドに関する情報が回収される。また、この特定の選択処理について以前の合意ラウンドがあった場合は、回収メッセージは、サーバに以前のラウンドから選択を行わないように通知する。リーダーは、クラスターサーバの少なくとも半分から回答を収集すると、例えば、次のラウンドで提案すべき値を判断し、この提案を「開始」メッセージとしてクラスターサーバに送ることができる。リーダーがこの手法で提案すべき値を選択するためには、サーバから初期値情報を受信する必要がある。
【0019】
サーバは、リーダーから開始メッセージを受信すると、「受理」メッセージを送ることによって回答し、サーバが提案されたホスト/リードサーバを受理することを示すことができる。リーダーがサーバの大部分又は定足数から受理メッセージを受信した場合、リーダーは、出力値をラウンドで提案された値に設定する。リーダーが所定の期間内に大部分又は定足数による受理(合意)を受信しなかった場合、リーダーは、新しいラウンドを開始することができる。リーダーが合意を受信した場合、リーダーは、サーバが選択されたサーバに委託すべきであることをクラスターサーバ又はネットワークサーバに通知することができる。この通知は、2地点間接続又はマルチキャスティングなどによる任意の適切な同報通信技術によってネットワークサーバに同報通信することができる。
【0020】
合意手法の同意条件は、以前のラウンドに関する情報を利用する選択を提案することによって確実にすることができる。この情報は、任意の2つのラウンドについて両方のラウンドに参加したサーバが少なくとも1つあるように、ネットワークサーバの少なくとも大部分からのものであることが必要になる可能性がある。
【0021】
リーダー(leader)は、各サーバにそのサーバが値を受理した最新ラウンドの番号を尋ねることにより、また、恐らくは受理された値を求めることにより、新しいラウンドの値を選択することができる。リーダーがこの値をサーバの大部分又は定足数から取得すると、回答間の最新ラウンドの値に等しい値を新しいラウンドについて選択することができる。また、リーダーは、以前のラウンドに関与したサーバがない場合は初期値を選択することができる。リーダーが、最終受理ラウンドが例えばxであって現在のラウンドがyであるという回答を受信した場合、サーバは、一貫性を維持するために、xとyの間のどのラウンドも受理されないであろうということを暗示することができる。
【0022】
ラウンドリーダー及びネットワークサーバ間のサンプル対話は、以下のメッセージを伴う。
【0023】
(1)「回収」−新しいラウンド「r」が開始されているというメッセージがサーバに送られる。このメッセージは、m=(“Collect”、r)という形を取ることができる。
【0024】
(2)「最終」−受理された最終ラウンド「a」及びそのラウンドの値「v」を与えるメッセージがネットワークサーバからリーダーに送られる。このメッセージは、m=(“Last”r、a、v)の形を取ることができる。
【0025】
(3)「開始」−ラウンドrの値を知らせるメッセージがサーバに送られる。このメッセージは、m=(“Begin”、r、v)の形を取ることができる。
【0026】
(4)「受理」−ラウンドrの値を受理するメッセージがサーバからリーダーに送られる。このメッセージは、m=(“Accept”、r)の形を取ることができる。
【0027】
(5)「成功」−ラウンドrの値vの選択を知らせるメッセージがサーバに送られる。このメッセージは、m=(“Seccess”、r、v)の形を取ることができる。
【0028】
(6)「確認」−サーバがラウンドrに関する決定を受信したことを確認するメッセージが、サーバからリーダーに送られる。このメッセージは、m=(“Ack”、r)の形を取ることができる。
【0029】
ハードウエアクラスター又はソフトウエアクラスターの内側又は外側のいずれかに位置する、サーバから分離されたファイルシステムが存在することができる。このファイルシステムは、トランザクションログを第1のディスクに記憶してファイルシステム内の第2のディスクに複製するなどにより、トランザクションログを永続的に記憶することができる。第1のディスクがクラッシュした場合、ファイルシステムは、クラスター及び/又はサーバからそのクラッシュを隠し、第2のディスクからログ情報を取得することができる。また、ファイルシステムは、第2のディスクのバックアップの役目を果たすことができる第3のディスクにそのログを複製することを選択することができる。
【0030】
クラスター内のサーバの観点からは、ファイルシステムは、単一のリソースとすることができる。一実施形態においては、サーバは、単一のサーバがいつの時点でもファイルシステムを所有することだけに注意するであろう。
【0031】
本発明によるシステムの別の例は、サーバクラスター内のキャッシュを伴う。単一のキャッシュにクラスター内のサーバに対してデータオブジェクトを表すようにすることが、ネットワーク性能上の理由などからクラスター化された環境では望ましいものであろう。クラスター内のサーバは、継続的に永続的記憶装置に戻る必要なくキャッシュにアクセス可能なので、単一のキャッシュに項目を保持することが有利になる可能性がある。データベース又はファイルシステムへのヒットが相対的に時間集約的になる可能性があるので、メモリ内の既にある項目を引き抜くことができると、このようなシステムの効率を大幅に上げることができる。
【0032】
しかし、単一のキャッシュに関する1つの問題は、メモリに記憶されたオブジェクトをファイルシステムのディスク上に記憶されたものと確実に同じものにする必要があり得ることである。このような一貫性を必要とする1つの理由は、キャッシュに入れられた項目上で行われる任意の演算又は計算で確実に正しい結果が出るようにするためである。別の理由は、キャッシュがクラッシュしたり、又はそれ以外に痛んだり又は利用不能になった場合に、キャッシュをファイルシステムから復元することが必要になる可能性があることである。
【0033】
クラスター内でこの種のキャッシュを処理する主たる方法は、少なくとも2つあるとすることができるが、特定の用途については、他の方法も少なくとも同様に良好に機能することができる。1つの方法は、複数の場所でキャッシュを複製することである。この手法は、キャッシュに入れられる項目に変更があった場合、キャッシュを複製する全てのサーバがその変更に同意するか又は少なくともその変更を知っていることが必要であるから、問題になる可能性がある。これは、結果的にリソース及び性能の点で非常に経費が掛かるものになる可能性がある。
【0034】
本発明による代替手法は、クラスター内のキャッシュの所有者となるように特定のサーバを割り当て、そのキャッシュへの全てのアクセスは、その特定のサーバを通過する。クラスター内の任意のサーバが、このようなキャッシュをホスティングすることができる。各サーバは、1つ又はいくつかのキャッシュをホスティングすることができるか、又は、全くキャッシュをホスティングすることができない。キャッシュは、単一のサーバ上でホスティングされるか、又は、クラスター内の一部又は全てのサーバ間に分散することができる。クラスター自体は、ハードウエアクラスターか、又はソフトウエアアプリケーションによって所定の「ソフトウエア」クラスター内にあるように指定されたサーバのグループのような任意の適切なクラスターとすることができる。
【0035】
トランザクションログ及び/又はキャッシュであるいずれかの例を、システム上のどこかにあるような種類のオブジェクトとして考えることが可能であろう。任意のこのようなオブジェクトが確実にクラスター内で一回のみ存在するようにし、そのオブジェクトを常に利用可能なものにすることが望ましいであろう。また、オブジェクトをホスティングするサーバが故障した場合は、確実にオブジェクトを別のサーバ上で復元させることができ、確実にそのオブジェクトがクラスターに利用可能になることも望ましいであろう。
【0036】
回復の1つの方法400を図4に示す。本方法においては、サーバがまだネットワークに対して利用可能であるか否かなど、ホストサーバが引き続きオブジェクト402をホスティングすることができるか否かの判断が行われる。ホスティングすることができない場合は、分散型合意アルゴリズムを使用して新しいホストが選択される。この選択は、オリジナルホスト404を選択するために使用された方法に従って行うことができる。データオブジェクトのコピーは、ファイルシステムから新しいホストに引き抜かれると、ローカルキャッシュ406に記憶することができる。新しいホストサーバがオブジェクトのコピーを含むこと、及び、任意の今後のネットワーク要求408を処理する際にはそのローカルキャッシュを使用すべきであることが、ネットワーク上又は適切なクラスター内の他のサーバに通知される。
【0037】
本発明によるシステム及び方法においては、クラスター内の厳密に1つの場所に存在するオブジェクトを定めることができ、確実にそれらのオブジェクトが常に存在するようにすることができる。サーバの観点からは、トランザクションログなどのオブジェクトがファイルシステムなどにより鏡像化又は複製されるか否かは問題ではないであろう。サーバの観点からは、クラスター内の任意のサーバによってアクセス可能な永続的記憶装置が常に1つある。本システムは、定期的にオブジェクトの存在を検査することができ、又は、ネットワーク上又はクラスター内の何らかのマシン上での存在を確保するためにオブジェクトが頻繁に再割り当てされることになるように、短期間に亘ってオブジェクトの所有権を割り当ててもよい。
【0038】
ハードウエアクラスターは、各々が複数のサーバを実行することができるマシンの列を含むことができる。また、各マシンの後にファイルシステムが存在することができる。ハードウエアクラスター内のサーバは、より素早く意思決定を行ってハードウエアクラスター内のサーバ欠陥を処理することができるように、一般的に配線されている。ハードウエアクラスターは、サーバを含むマシンの物理的ハードウエアに大きさを限定することができる。ハードウエアクラスター内のサーバは、ソフトウエアクラスター内のサーバとして使用することができ、また、マシン上の個々のサーバがネットワークに対して利用可能であるから、ネットワークサーバも含むことができる。
【0039】
これらのマシンの1つに対する共有ファイルシステムは、高速ネットワークなどを通じて、クラスター内の全てのサーバに利用可能とすることができる。ファイルシステムはまた、冗長であることができる。一実施形態においては、この冗長は、ファイルシステム用の複数のデータディスクを使用して行われる。このような冗長の実行においては、オブジェクトがファイルシステムに書き込まれる時はいつでも、複数のディスクに亘ってオブジェクトを複製することができる。このようなファイルシステムは、「ブラックボックス」として見た時、ディスクのいかなる故障にも耐え、依然としてクラスター内の任意のサーバからのデータ項目のアクセスを提供することができる。
【0040】
「厳密に一回」のフレームワークという本発明によるフレームワークは、メモリに保持されたこれらのオブジェクトが、常に信頼性のある永続的記憶機構によって支援されると仮定して構築することができる。例えば、トランザクションログを表すオブジェクトが存在することができる。オブジェクトが呼び出された時、対応するトランザクションログを更新することができる。これには、データベースから読み取られるか、又はデータベースに書き込まれる呼び出しを挙げることができる。そのトランザクションログを表すオブジェクトは、ホストサーバのようなクラスター内のサーバの1つに存在することができる。厳密に一回のフレームワークは、クラスター内のサーバの少なくとも1つが立ち上がって実行されている限り、別のサーバが故障した場合に確実にサーバがログの所有権を引き継ぐことができるようにすることができる。
【0041】
キャッシュを表す1つのオブジェクトが存在してもよい。また、キャッシュが更新される度に、更新内容を永続的記憶装置に再度書き込むことができる。サーバの1つがデータ項目を使用する必要がある時は、そのサーバは、このオブジェクトを通過する必要がある可能性がある。キャッシュを表すオブジェクトをホスティングするサーバが故障した場合、そのオブジェクトを別のサーバで復活させることができる。復活したオブジェクトは、全ての必要な情報を永続的記憶装置から引き抜くことができる。
【0042】
厳密に一回のフレームワークは、クラスターによる使用のためのメモリバッファとして機能することができる。フレームワークは、信頼性のある永続的記憶装置によって支援された本システム内のデータを表す単一のキャッシュを提供するることができる。データがキャッシュから読み取られる時は、永続的記憶装置にアクセスする必要なく読取りを行うことができる。しかし、更新内容がキャッシュに書き込まれる時は、故障の場合に本システムが回復することができるように、永続的記憶装置を通じて再度書き込む必要がある可能性がある。
【0043】
厳密に一回のフレームワークの1つの重要な態様は、この手法が抽象化される方法に関連し、これは、用途及び/又は実施に依存して変わる可能性がある。「厳密に一回のオブジェクト」と呼ぶことができるような新しい種類の分散オブジェクトが作成される。厳密に一回のオブジェクトは、例えば、ファイルシステム内のデータ項目のローカルにキャッシュに入れられたコピー、又はクラスター内のサーバのためのこのようなデータ項目の唯一のアクセスポイントとすることができる。この抽象化を実行する根底にある技術も重要になる可能性がある。
【0044】
本発明のシステムは、上述の「Paxos」アルゴリズムを使用する方法のような、分散型合意に有用ないくつかの方法のいずれかを利用することができる。複数のノード及び/又は分散型ノードがオブジェクトの1つの値に同意するための効率的な方法を提供するようなアルゴリズムを選択することができる。このアルゴリズムは、たとえノードが故障し、及び/又は、同意処理中に戻ったとしても機能するように選択することができる。
【0045】
ネットワークのクラスター化の一般的な手法は、全てのメッセージが所期の受信者に配信されるか、又は少なくとも全ての所期の機能しているサーバに配信されることが保証される信頼性のある同報通信を利用する。信頼性のある同報通信では受信者が次のメッセージ又は受信者に移る前にメッセージに応答する必要があるので、この手法は、システムを並列処理することを非常に難しいものにする可能性がある。マルチキャスティングを利用する分散型アルゴリズムは、マルチキャスティングは全てのサーバがメッセージを受信することを保証しないので、保証数を低減する場合がある。しかし、マルチキャスティングは、各サーバからの応答を待たずに単一メッセージを同時に全てのクラスターサーバに対してマルチキャストすることができるので、システムが並列処理を行うことができるようにこの手法を簡素化することは確かである。マルチキャストメッセージを受信しないサーバは、後でその情報をリードサーバか又は別のクラスターサーバ又はネットワークサーバから引き抜くことができる。本明細書で使用される時のネットワークサーバは、ハードウエアクラスター内、ソフトウエアクラスター内、又はいずれかのクラスターの外側であるかを問わず、ネットワーク上の任意のサーバを意味することができる。
【0046】
厳密に一回のアーキテクチャの重要な態様は、合意上の困難が低減されることである。本発明によれば、分散型合意実施の性能は、分散型合意アルゴリズムと共にマルチキャストメッセージングを使用することによって向上させることができる。この手法は、全てのサーバが同意する上で必要とされるメッセージ交換及び/又はネットワークトラヒックの最少化を考慮することができる。
【0047】
マルチキャスティング時には、いくつかの手法の1つを取ることができる。「一相分散」と呼ぶことができる第1の手法においては、リードサーバは、「Paxos」アルゴリズムのラウンドで使用するか、又はオブジェクトのための新しいホストが選択されたことを示すために使用することができるように、ネットワーク上の全ての他のサーバに対してメッセージをマルチキャストすることができる。この手法においては、リードサーバは、ネットワーク上で利用可能な任意のサーバに転送することができる1つのメッセージを送る必要があるだけである。サーバが一時的にネットワークから外される場合、サーバは、ネットワーク上に戻った後で新しいホストの識別を要求することができる。
【0048】
「二相分散」と呼ぶことができる別のマルチキャスト手法を使用すると、リードサーバは、適切なアルゴリズムを使用してホストサーバを予め選択することができる。しかし、オブジェクトをそのホストに割り当てる前に、リードサーバは、サーバがその新しいホストサーバの選択に同意しているか否かを判断するために、クラスター内の他の全てのサーバに連絡する可能性がある。リードサーバは、2地点間接続によって各サーバに連絡することができ、又は、マルチキャストされた要求を配信した後に各サーバが回答するのを待つことができる。サーバがそのホストの選択に同意しなかった場合、リードサーバは、アルゴリズムを使用して新しいホストを予め選択することができる。リードサーバは、次に、別のラウンドで新たに予め選択されたホストのアイデンティティと共に別のマルチキャスト要求を配信するであろう。
【0049】
全てのサーバが予め選択されたホストに同意した場合、リードサーバは、そのオブジェクトをホストサーバに割り当てることができる。その後、リードサーバは、コミットメッセージをマルチキャストし、新しい変更が発効したのでサーバはサーバの情報を相応に更新すべきであることをサーバに知らせることができる。
【0050】
厳密に一回のフレームワークはまた、「リース」機構を利用することができる。このような機構を使用する際は、分散型合意を使用するなどにより、クラスターサーバにリードサーバについて同意させるためのアルゴリズムを使用することができる。そのリードサーバは、選択されるとクラスター内の様々なサーバへの厳密に一回のオブジェクトの割り当てを担当することができる。システムは、既存のリードサーバが故障した場合にクラスターサーバが常に新しいリーダーに同意することになるように設定することができる。
【0051】
リードサーバがアクティブの間は、リードサーバは、システム内に存在すべき全ての厳密に一回のオブジェクトを知ることができる。リードサーバは、どのサーバが各オブジェクトをホスティングすべきかを決めることができ、その後、そのオブジェクトを選択されたサーバに「リース」することができる。オブジェクトがサーバにリースされた時、そのサーバは、リース期間継続中のようなある一定期間に亘ってそのオブジェクトを所有するか又はホスティングすることができる。リードサーバは、これらのリースを定期的に更新するように構成することができる。この手法は、サーバが故障したり、又は何らかの方法で接続を断たれたり、又はそれ以外にクラスター内で適正に作動していない場合、サーバがそのリースを更新されないことを保証にする方法を提供することができる。
【0052】
故障中の分散型システムに関する問題の大部分は、故障したサーバと単に応答していないサーバとの違いを判断することが難しいということである。ネットワークから何らかの理由で遮断されたいかなるサーバも、もはやオブジェクトをホスティングすることはできない。そのサーバは、それがクラスターには利用可能でなくても、リース期間の後でいかなるオブジェクトのホスティングも辞めることができることを依然として知っていることになる。そのサーバは、クラスターに利用可能ではないので、そのリースは更新されないことになる。
【0053】
リードサーバはまた、ある一定の時間内にホストサーバに到達することができない場合、ホストサーバがオブジェクトの所有権を放棄することになることを知っている。リース期間は、数秒間のような任意の適切な時間とすることができる。リース期間は、クラスター内の全てのサーバについて同じものとすることができ、又はオブジェクト間で変えることもできる。
【0054】
厳密に一回のアーキテクチャを使用するシステムはまた、これを緊密にすることもできる。オペレーティングシステムは、多くの場合、ハードウエアのより近くに構築されてより多くの制御を与えることができる特殊なマシンを提供する。しかし、この手法を用いる1つの問題は、利用可能なハードウエアによって限定される可能性があるということである。例えば、サーバのハードウエアクラスターが有することができるサーバ数は、約16程度である。これらのシステムでは何らかの緊密なハードウエア結合が要求されるので、クラスターに含むことができるサーバ数に対して制限がある可能性がある。
【0055】
一方、厳密に一回のフレームワークは、これら専用のハードウエアクラスターが処理することができるよりも遥かに大きなクラスターを処理することができるであろう。フレームワークは、専用クラスターの1つから利用可能であるサービス品質の何らかの活用を可能にし、それによってより大きなクラスターを考慮することができる。サービス品質の違いは、例えば、メッセージが2地点間接続などにより確実なプロトコルによって送られるか、又はマルチキャスティングのような信頼性は劣るがリソースに優しいプロトコルによって送られるかを含むであろう。厳密に一回のフレームワークを使用する利点は、ユーザがシステムを特定用途の必要性に適合させることができるように故障許容性と拡張性の均衡を取ることができる点である。
【0056】
ハードウエアクラスターマシンのような従来技術によるシステムは、第2のマシンによって支援された単一マシン(であるとクラスターには見えるもの)を有することにより、利用可能性の高い解決策を試すことができる。第1のマシンが故障した場合、引継ぎを行う「相棒」がおり、第1のマシン上で実行されていたいかなるソフトウエアも第2のマシンに持ってこられる。
【0057】
本発明による厳密に一回のフレームワークは、リーダーの故障に対する処理をソフトウエアクラスター内での処理よりも迅速にすることができるように、リードサーバをこれらのハードウエアクラスターの1つにあるサーバに割り当てることができる。しかし、このリードサーバは、サーバがハードウエアクラスター内か又はソフトウエアクラスター内かを問わず、これらのサーバにリースを分配することができる。この構成は、より迅速なリードサーバの回復をもたらし、同時にハードウエアクラスターよりも大きいが依然としてハードウエアクラスターを含むソフトウエアクラスターを考慮することができる。
【0058】
1つのこのようなシステム200を図2に示す。ハードウエアクラスター218は、複数のサーバ220、222、及び224を包含する単一マシンを含むことができる。効率を向上させることができるように、ハードウエアクラスターを使用してリードサーバ220をそのマシン上のサーバの中から選択することができる。リードサーバ220が選択された状態で、このリードサーバは、ソフトウエアクラスター210の内側又は外側に位置することができる、ファイルシステム212内のオブジェクト214に対するホスト206を選択することができる。ファイルシステム212自体は、永続性をもたらすことができるように、オブジェクト214をファイルシステムの別のディスク上の第2のオブジェクト216に複製することができる。オブジェクト214は、ホスト206上でキャッシュに入れられたオブジェクトのコピー208と共に、新しいホスト206によってファイルシステム212から引き抜くことができる。サーバ206、216、及び220のようなサーバにブラウザ又はクライアント202からネットワーク204を通じて要求が受信された時、そのサーバは、サーバがオブジェクト208のキャッシュに入れられたコピーへのアクセスを必要とする場合、ホストサーバ206に連絡することを知っていることになる。
【0059】
このようなシステム500を使用する1つの方法を図5に示す。ハードウエアクラスター502のアルゴリズムを使用してリードサーバを選択する。このアルゴリズムは、例えば、ハードウエアクラスターマシンの専用アルゴリズムとすることができ、又は、ハードウエアクラスターサーバのみに亘る合意を必要とする分散型合意アルゴリズムとしてもよい。その後、リードサーバ504と共に「Paxos」アルゴリズムのような分散型合意アルゴリズムを使用してホストサーバを予め選択することができる。その後、ハードウエアクラスター506を包含するソフトウエアクラスター内の他のサーバに対して、予め選択されたホストのアイデンティティをマルチキャストすることができる。リードサーバは、現在作動中でクラスター508に接続されている各サーバから承認又は否認を受信することができる。サーバが予め選択されたホストサーバを承認した場合、予め選択されたホストが今や項目をホスティングすることをサーバに知らせるコミットメッセージがクラスターサーバにマルチキャストされ、そうでなくサーバが承認しなかった場合は、新しいホストが予め選択されて処理が再び始まる(510)。
【0060】
厳密に一回のフレームワークは、例えばトランザクションログ又はキャッシュを処理するために使用することができる。また、このようなフレームワークを使用して、例えば、管理サーバを厳密に一回のオブジェクトとして定め、管理サーバが決して故障しないようにこの管理サーバをリースすることができる。
【0061】
図6は、オブジェクト608が「Java(登録商標)メッセージサービス(JMS)」612のためのメッセージストアとして機能する、本発明によるクラスターシステム600の別の例を示す。クラスター610内の全てのサーバ606、614、及び616は、「JMS」を使用することができるが、それらは、ネットワーク604を通じてメッセージをメッセージストア608に送り、メッセージストア608からいかなるメッセージも収集する必要がある。クラスター610内のサーバのホストサーバ606は、メッセージストア608を「所有する」又は「ホスティングする」ことになる。クライアント又はブラウザ602は、クラスター610内のサーバ616に向けられた要求をネットワーク604に出すことができる。そのサーバ616は、ネットワーク604を通じてホストサーバ606上のメッセージストア608にメッセージを送ることによってのみ「JMS」にアクセスすることができる。
【0062】
図7は、本発明の構成要素に対して又は本発明の方法を実施するために使用することができるコンピュータシステムのブロック図700を示す。図7のコンピュータシステムは、プロセッサユニット704及びメインメモリ702を含む。プロセッサユニット704は、単一のマイクロプロセッサを含むことができ、又は、コンピュータシステムを多重プロセッサシステムとして構成するための複数のマイクロプロセッサを含むことができる。メインメモリ702は、部分的に、プロセッサユニット704による実行のための命令及びデータを記憶する。本発明が全体的又は部分的にソフトウエアに実装された場合、メインメモリ702は、作動時に実行可能なコードを記憶することができる。メインメモリ702は、ダイナミック・ランダム・アクセス・メモリ(DRAM)、高速キャッシュメモリ、及び、当業技術で公知の他の種類のメモリの列を含むことができる。
【0063】
図7のシステムは、更に、大容量記憶装置706、周辺装置708、ユーザ入力装置712、携帯記憶媒体ドライブ714、グラフィックサブシステム718、及び出力ディスプレイ716を含む。簡素化のために、図7に示す構成要素は、単一バスを通じて接続されるものとして示されている。しかし、当業者には明らかであろうが、構成要素は、1つ又はそれ以上のデータ搬送手段を通じて接続することができる。例えば、プロセッサユニット704及びメインメモリ702は、ローカルマイクロプロセッサバスを通じて接続することができ、大容量記憶装置706、周辺装置708、携帯記憶媒体ドライブ714、及びグラフィックサブシステム718は、1つ又はそれ以上の入力/出力(I/O)バスを通じて接続することができる。磁気ディスクドライブ、光学ディスクドライブ、及び、当業技術で公知の他のドライブを用いて実施することができる大容量記憶装置706は、プロセッサユニット704によって使用されるデータ及び命令を記憶するための不揮発性記憶装置である。一実施形態においては、大容量記憶装置706は、本発明を実施するためのソフトウエアを、メインメモリ702に読み込む目的で記憶する。
【0064】
携帯記憶媒体ドライブ714は、フレキシブルディスクのような携帯不揮発性記憶媒体と共に作動し、図7のコンピュータシステムに対してデータ及びコードを入力及び出力する。一実施形態においては、本発明を実行するためのシステムソフトウエアは、このような携帯媒体上に記憶され、携帯記憶媒体ドライブ714を通じてコンピュータシステムに入力される。周辺装置708は、付加的な機能性をコンピュータシステムに追加するための入力/出力(I/O)インタフェースのような任意の種類のコンピュータサポート装置を含むことができる。例えば、周辺装置708は、コンピュータシステムをネットワークに接続するためのネットワークインタフェース、及び、モデム、ルータ、又は当業技術で公知の他のハードウエアのような他のネットワーキングハードウエアを含むことができる。
【0065】
ユーザ入力装置712は、ユーザインタフェースの一部分を形成する。ユーザ入力装置712は、英数字及び他の情報を入力するための英数字キーパッド、又は、マウス、トラックボール、スタイラス、又はカーソル方向キーのようなポインティング装置を含むことができる。テキスト及びグラフィック情報を表示するために、図7のコンピュータシステムは、グラフィックサブシステム718及び出力ディスプレイ716を含む。出力ディスプレイ716は、ブラウン管(CRT)ディスプレイ、液晶ディスプレイ(LCD)、又は他の適切な表示装置を含むことができる。グラフィックサブシステム718は、テキスト及びグラフィック情報を受信し、ディスプレイ716に出力するためにその情報を処理する。更に、図7のシステムは出力装置710を含む。適切な出力装置の例には、スピーカ、プリンタ、ネットワークインタフェース、モニタ、及び当業技術で公知の他の出力装置が含まれる。
【0066】
図7のコンピュータシステムに含まれる構成要素は、本発明のいくつかの実施形態と共に使用するのに適切なコンピュータシステムで一般的に見られるものであり、当業技術で公知のコンピュータ構成要素の広い部類を表すものである。すなわち、図7のコンピュータシステムは、パーソナルコンピュータ、ワークステーション、サーバ、ミニコンピュータ、メインフレームコンピュータ、又は任意の他のコンピュータ装置とすることができる。コンピュータシステム700はまた、異なるバス構成、ネットワーク化されたプラットフォーム、及び多重プロセッサプラットフォームなどを組み込むことができる。「ユニックス」、「リナックス」、「ウインドウズ」、「マッキントッシュOS」、「パームOS」、及び他の適切なオペレーティングシステムを含む様々なオペレーティングシステムを使用することができる。
【0067】
本発明の好ましい実施形態の以上の説明は、例証と説明の目的で為されたものである。それは、限定的つまり開示された正確な形態に本発明を限定するものではない。明らかに、多くの修正及び変形が当業者には明らかであろう。これらの実施形態は、本発明の原理及びその実際的な応用を最も良く説明し、それによって他の当業者が様々な実施形態に関して、かつ予想される特定の使用に適切な様々な修正と共に本発明を理解することを可能にするように選択して説明したものである。本発明の範囲は、特許請求の範囲及びその均等物によって規定されるものとする。
【図面の簡単な説明】
【0068】
【図1】本発明の一実施形態による分散型オブジェクトシステムの図である。
【図2】本発明の一実施形態による別の分散型オブジェクトシステムの図である。
【図3】本発明によるホストサーバを選択する方法の流れ図である。
【図4】本発明による新しいホストサーバを選択する方法の流れ図である。
【図5】本発明によるリードサーバを利用する方法の流れ図である。
【図6】本発明の一実施形態による「JMS」メッセージ記憶システムの図である。
【図7】本発明に従って使用することができるコンピュータシステムの構成要素を示すブロック図である。
【符号の説明】
【0069】
200 システム
206 ホストサーバ
208、214、216 オブジェクト
210 ソフトウエアクラスター
212 ファイルシステム
218 ハードウエアクラスター
220 リードサーバ

Claims (75)

  1. 各々がネットワークデータソースと通信するようになった複数のネットワークサーバと、
    前記複数のネットワークサーバにおけるリードサーバと、
    を含み、
    前記リードサーバは、前記複数のネットワークサーバからホストサーバを選択するための分散型合意アルゴリズムを包含し、
    前記ホストサーバは、前記ネットワークデータソース内のデータ項目に関連したオブジェクトを包含し、それによって、該データ項目にアクセスする必要がある前記複数のネットワークサーバのいずれもが該ホストサーバ上の該オブジェクトにアクセスすることができる、
    ことを特徴とする、ネットワーク上のオブジェクトを管理するためのシステム。
  2. 前記ネットワークサーバは、ハードウエアクラスターサーバ及びソフトウエアクラスターサーバから成る群から選択されることを特徴とする請求項1に記載のシステム。
  3. 前記分散型合意アルゴリズムは、前記リードサーバと前記複数のサーバとの間に、前記複数のネットワークサーバの大部分が前記ホストサーバについて同意するまで継続するメッセージのラウンドを含むことを特徴とする請求項1に記載のシステム。
  4. 前記ホストサーバは、前記ネットワークデータソースからのデータのコピーを含むデータオブジェクトを包含することを特徴とする請求項1に記載のシステム。
  5. 前記ホストサーバは、前記ネットワークデータソース内の前記データ項目に対する唯一のアクセスポイントとして働くデータオブジェクトを包含することを特徴とする請求項1に記載のシステム。
  6. 前記データ項目は、トランザクションログであることを特徴とする請求項1に記載のシステム。
  7. 前記分散型合意アルゴリズムは、「Paxos」アルゴリズムであることを特徴とする請求項1に記載のシステム。
  8. 各々がネットワークデータソースと通信するようになった複数のネットワークサーバと、
    前記複数のネットワークサーバにおけるリードサーバと、
    を含み、
    前記リードサーバは、前記複数のネットワークサーバからホストサーバを選択するための分散型合意アルゴリズムを包含し、
    前記ホストサーバは、前記ネットワークデータソースに位置するデータ項目のコピーを包含し、それによって、該データ項目にアクセスする必要がある前記複数のネットワークサーバのいずれもが該ホストサーバ上の該コピーにアクセスすることができる、
    ことを特徴とする、ネットワーク上のオブジェクトを管理するためのシステム。
  9. 各々がネットワークデータソースと通信するようになった複数のネットワークサーバと、
    前記複数のネットワークサーバにおけるリードサーバと、
    を含み、
    前記リードサーバは、前記複数のネットワークサーバからホストサーバを選択するための分散型合意アルゴリズムを包含し、
    前記ホストサーバは、前記ネットワークデータソースに位置するデータ項目への唯一のアクセスポイントを包含し、従って、該データ項目にアクセスする必要がある前記複数のネットワークサーバのいずれもが、該ホストサーバを通じて該データ項目にアクセスしなければならない、
    ことを特徴とする、ネットワーク上のオブジェクトを管理するためのシステム。
  10. データ項目の少なくとも1つのコピーを包含するファイルシステムと、
    前記ファイルシステムと通信する複数のサーバと、
    前記複数のサーバからホストサーバを選択するための分散型合意アルゴリズムを包含する、該複数のサーバにおけるリードサーバと、
    前記データ項目のローカルコピーを包含する、前記複数のサーバにおけるホストサーバと、
    を含み、
    前記ホストサーバは、前記ローカルコピーへのアクセスを前記複数のサーバのいずれにも提供し、該ローカルコピーに更新が為された時はいつでも前記ファイルシステム内の前記データ項目の前記コピーを更新するようになっている、
    ことを特徴とする、ネットワーク上のオブジェクトを管理するためのシステム。
  11. 前記ホストサーバは、更に、前記ローカルコピーをローカルキャッシュに記憶するようになっていることを特徴とする請求項10に記載のシステム。
  12. 前記複数のサーバは、クラスターを含むことを特徴とする請求項10に記載のシステム。
  13. 前記ファイルシステムは、複数のディスク上で前記データ項目を複製することを特徴とする請求項10に記載のシステム。
  14. データ項目の少なくとも1つのコピーを包含するファイルシステムと、
    前記ファイルシステムと通信する複数のサーバと、
    前記複数のサーバ内に位置するハードウエアクラスターサーバを包含し、かつ該ハードウエアクラスターサーバの中からリードサーバを選択するための分散型合意アルゴリズムを包含するハードウエアクラスターと、
    前記複数のサーバからホストサーバを選択するためのアルゴリズムを包含する、前記ハードウエアクラスターサーバにおけるリードサーバと、
    前記データ項目のローカルコピーを包含する、前記複数のサーバにおけるホストサーバと、
    を含み、
    前記ホストサーバは、前記ローカルコピーへのアクセスを前記複数のサーバのいずれにも提供し、該ローカルコピーに更新が為された時はいつでも前記ファイルシステム内の前記データ項目の前記コピーを更新するようになっている、
    ことを特徴とする、ネットワーク上のオブジェクトを管理するためのシステム。
  15. 前記ホストサーバは、前記ハードウエアクラスター内にあることを特徴とする請求項14に記載のシステム。
  16. 分散型合意アルゴリズムを使用して、複数のネットワークサーバの中からホストサーバを選択する段階と、
    ファイルシステムから前記ホストサーバにデータ項目のコピーを引き抜く段階と、
    ネットワーク要求を処理するのに使用される前記データ項目のコピーを前記ホストサーバが包含することを他のネットワークサーバに通知する段階と、
    を含むことを特徴とする、ネットワーク上のオブジェクトを管理する方法。
  17. 前記ホストサーバ上の前記コピーが修正される時に前記ファイルシステム内の前記データを更新する段階を更に含むことを特徴とする請求項16に記載の方法。
  18. 前記ファイルシステムにアクセスするのに前記ホストサーバを通過するように他のネットワークサーバを制限する段階を更に含むことを特徴とする請求項16に記載の方法。
  19. 前記ファイルシステムの外側に前記データ項目の1つのコピーのみが存在することを確実にする段階を更に含むことを特徴とする請求項16に記載の方法。
  20. 前記ファイルシステムの外側に前記データ項目の1つのコピーが常に存在することを確実にする段階を更に含むことを特徴とする請求項16に記載の方法。
  21. 前記ホストサーバが、もはや前記オブジェクトをホスティングすることができない場合に、分散型合意アルゴリズムを使用して複数のネットワークサーバの中から新しいホストサーバを選択する段階を更に含むことを特徴とする請求項16に記載の方法。
  22. 前記分散型合意アルゴリズムを使用して選択された前記ホストサーバが、もはや前記オブジェクトをホスティングすることができない場合に、ファイルシステムから前記新しいホストサーバにデータ項目のコピーを引き抜く段階を更に含むことを特徴とする請求項16に記載の方法。
  23. 前記ホストサーバが、もはや前記オブジェクトをホスティングすることができない場合に、ネットワーク要求を処理するのに使用される前記データ項目のコピーを新しいホストサーバが包含することを他のネットワークサーバに通知する段階を更に含むことを特徴とする請求項16に記載の方法。
  24. 各々がデータオブジェクトをキャッシュに入れることができる複数のサーバと、
    データ項目の少なくとも1つのコピーを包含するファイルシステムと、
    前記データオブジェクトのコピーをキャッシュに入れるホストサーバを前記複数のサーバの中から選択するための分散型合意アルゴリズムと、
    前記データオブジェクトのコピーをホストコンピュータが包含することを前記ネットワーク上のサーバに通知するための分配システムと、
    を含むことを特徴とする、ネットワーク上のオブジェクトを管理するためのフレームワーク。
  25. 分散型合意アルゴリズムを使用して、ホストサーバを複数のネットワークサーバの中から選択する段階と、
    特定の期間に亘ってデータ項目への唯一のアクセスを提供するために割り当てられた前記ホストサーバにデータオブジェクトを割り当てる段階と、
    ファイルシステムから前記ホストサーバにデータ項目のコピーを引き抜く段階と、
    ネットワーク要求を処理するのに使用される前記データ項目のコピーを前記ホストサーバが包含することを他のネットワークサーバに通知する段階と、
    を含むことを特徴とする、オブジェクトをネットワーク上のサーバにリースする方法。
  26. 前記特定の期間が終了した状態で、前記データオブジェクトを別の期間に亘って前記ホストサーバに割り当てる段階を更に含むことを特徴とする請求項25に記載の方法。
  27. 前記特定の期間が前記ホストサーバ上で終了した状態で、前記データオブジェクトを別の特定の期間に亘って新しいホストサーバに割り当てる段階を更に含むことを特徴とする請求項25に記載の方法。
  28. ハードウエアクラスター内の複数のハードウエアクラスターサーバの中からリードサーバを選択する段階と、
    前記リードサーバ上の分散型合意アルゴリズムを使用して、複数のネットワークサーバからホストサーバを選択する段階と、
    特定の期間に亘ってデータ項目への唯一のアクセスを提供するために割り当てられた前記ホストサーバにデータオブジェクトを割り当てる段階と、
    ファイルシステムから前記ホストサーバにデータ項目のコピーを引き抜く段階と、
    ネットワーク要求を処理するのに使用される前記データ項目のコピーを前記ホストサーバが包含することを他のネットワークサーバに通知する段階と、
    を含むことを特徴とする、オブジェクトをネットワーク上のサーバにリースする方法。
  29. ハードウエアクラスター内の複数のハードウエアクラスターサーバの中からリードサーバを選択する段階と、
    前記リードサーバ上の分散型合意アルゴリズムを使用して、複数のネットワークサーバの中からホストサーバを選択する段階と、
    ネットワーク上のデータオブジェクトへの唯一のアクセスを提供するために割り当てられた前記ホストサーバにデータオブジェクトを割り当てる段階と、
    ファイルシステムから前記ホストサーバにデータオブジェクトのコピーを引き抜く段階と、
    ネットワーク要求を処理するのに使用される前記データオブジェクトのコピーを前記ホストサーバが包含することを他のネットワークサーバに通知する段階と、
    を含むことを特徴とする、ネットワーク上のオブジェクトの所有権を割り当てる方法。
  30. 分散型合意アルゴリズムを使用して、複数のネットワークサーバの中からホストサーバを選択する段階と、
    ネットワーク上で「JMS」に対する唯一のアクセスポイント及びメッセージ待ち行列を提供する「JMS」メッセージストアを含む「JMS」オブジェクトを前記ホストサーバに割り当てる段階と、
    前記ホストサーバが前記唯一の「JMS」メッセージストアをホスティングしていることを前記ネットワークサーバに通知する段階と、
    を含むことを特徴とする、ネットワーク上の「Javaメッセンジャーサービス(JMS)」をホスティングする方法。
  31. 前記複数のネットワークサーバの1つに向けたメッセージの有無に関して前記「JMS」メッセージストアを検査する段階を更に含むことを特徴とする請求項30に記載の方法。
  32. 「JMS」メッセージをネットワークサーバから前記ホストサーバ上の前記「JMS」メッセージストアに送信する段階を更に含むことを特徴とする請求項30に記載の方法。
  33. 前記ホストサーバ上の前記「JMS」メッセージストア内のメッセージを「JMS」構成要素に送信する段階を更に含むことを特徴とする請求項30に記載の方法。
  34. 複数のサーバにおけるホストサーバを使用して、データオブジェクトへのアクセスを提供する段階と、
    前記ホストサーバが前記データオブジェクトへのアクセスを提供することができない場合に、分散型合意アルゴリズムを使用して前記複数のサーバの中から新しいホストサーバを選択する段階と、
    前記データオブジェクトへのアクセスを提供するのに必要な情報を前記新しいホストサーバに引き抜く段階と、
    新しいホストサーバが前記データオブジェクトへのアクセスを提供していることを前記複数のサーバの他のサーバに通知する段階と、
    を含むことを特徴とする、クラスター内のオブジェクトの存在を確実にする方法。
  35. 複数のサーバの中からリードサーバを選択する段階と、
    前記リードサーバ上の分散型合意アルゴリズムを使用して、複数のサーバの中から管理サーバを選択する段階と、
    データソース内及び前記管理サーバ上の情報を調整するために、データソースから該管理サーバに管理情報を引き抜き、該データソース内の管理情報を更新する段階と、
    前記クラスター内の他のサーバに前記管理サーバのアイデンティティを通知する段階と、
    を含むことを特徴とする、クラスター内の管理サーバの利用可能性を確実にする方法。
  36. 前記データソースから管理情報を引き抜く段階は、管理情報をファイルシステムから引き抜く段階を含むことを特徴とする請求項35に記載の方法。
  37. 分散型合意アルゴリズムを使用して、複数のネットワークサーバの中からホストサーバを選択する段階と、
    データ項目への唯一のアクセスを提供するために割り当てられた前記ホストサーバにデータオブジェクトを割り当てる段階と、
    ネットワーク要求を処理するのに使用される前記データ項目のコピーを前記ホストサーバが包含するという通知を、クラスター内の他のサーバに対してマルチキャストする段階と、
    を含むことを特徴とする、クラスター内のオブジェクトを分配する方法。
  38. 分散型合意アルゴリズムを使用して、複数のネットワークサーバの中からホストサーバを選択する段階と、
    前記クラスター内の各サーバに連絡して、前記選択されたホストがそのサーバにとって容認可能か否かを判断する段階と、
    前記クラスター内の全てのサーバが、前記選択されたホストが容認可能であることに同意した場合、新しいホストサーバの選択を委託する通知を該クラスター内の他のサーバにマルチキャストする段階と、
    を含むことを特徴とする、クラスター内のオブジェクトを分配する方法。
  39. 分散型合意アルゴリズムを使用して、複数のネットワークサーバの中からホストサーバを選択するための手段と、
    データ項目への唯一のアクセスを提供するために割り当てられた前記ホストサーバにデータオブジェクトを割り当てるための手段と、
    ファイルシステムから前記ホストサーバにデータ項目のコピーを引き抜くための手段と、
    ネットワーク要求を処理するのに使用される前記データ項目のコピーを前記ホストサーバが包含することを他のネットワークサーバに通知するための手段と、
    を含むことを特徴とするコンピュータ可読媒体。
  40. ネットワーク上のオブジェクトを管理するサーバコンピュータによって実行されるコンピュータプログラム製品であって、
    分散型合意アルゴリズムを使用して複数のネットワークサーバの中からホストサーバを選択するためのコンピュータコードと、
    ファイルシステムから前記ホストサーバにデータ項目のコピーを引き抜くためのコンピュータコードと、
    ネットワーク要求を処理するのに使用される前記データ項目のコピーを前記ホストサーバが包含することを他のネットワークサーバに通知するためのコンピュータコードと、
    を含むことを特徴とする製品。
  41. 分散型合意アルゴリズムを使用して複数のネットワークサーバの中からホストサーバを選択するための手段と、
    ファイルシステムから前記ホストサーバにデータ項目のコピーを引き抜くための手段と、
    ネットワーク要求を処理するのに使用される前記データ項目のコピーを前記ホストサーバが包含することを他のネットワークサーバに通知するための手段と、
    を含むことを特徴とする、クラスター内のオブジェクトを分配するためのシステム。
  42. プロセッサと、
    前記プロセッサによって実行されるオブジェクトコードと、
    を含み、
    前記オブジェクトコードは、
    分散型合意アルゴリズムを使用して複数のネットワークサーバの中からホストサーバを選択し、
    ファイルシステムから前記ホストサーバにデータ項目のコピーを引き抜き、
    ネットワーク要求を処理する際に使用される前記データ項目のコピーを前記ホストサーバが包含することを他のネットワークサーバに通知する、
    ように構成される、
    ことを特徴とするコンピュータシステム。
  43. 「Paxos」アルゴリズムを使用して、ソフトウエアクラスター内の複数のネットワークサーバの中からホストサーバを選択する段階と、
    データオブジェクトを前記ホストサーバに割り当てる段階と、
    を含み、
    前記データオブジェクトは、ネットワーク内の前記ホストサーバ上にのみ存在する、
    ことを特徴とする、ネットワーク上のオブジェクトを管理する方法。
  44. 前記データオブジェクトのためのデータをファイルシステムから引き抜く段階を更に含むことを特徴とする請求項43に記載の方法。
  45. ネットワーク要求を処理するのに使用される前記データ項目のためのオブジェクトを前記ホストサーバが包含することを他のネットワークサーバに通知する段階を更に含むことを特徴とする請求項43に記載の方法。
  46. 前記新しいホストサーバの識別を前記他のネットワークサーバにマルチキャストする段階を更に含むことを特徴とする請求項43に記載の方法。
  47. 前記「Paxos」アルゴリズムを使用してソフトウエアクラスター内の複数のネットワークサーバの中からホストサーバを選択する段階は、情報のラウンドを前記他のネットワークサーバにマルチキャストする段階を含むことを特徴とする請求項43に記載の方法。
  48. 分散型合意アルゴリズムを使用して、複数のネットワークサーバの中からホストサーバを選択する段階と、
    ネットワーク上で「JMS」に対する唯一のアクセスポイント及びメッセージ待ち行列を提供する「JMS」メッセージストアを含む「JMS」オブジェクトを前記ホストサーバに割り当てる段階と、
    前記ホストサーバが前記唯一の「JMS」メッセージストアをホスティングしていることを前記ネットワークサーバに通知する段階と、
    を含むことを特徴とする、ネットワーク上の「Javaメッセンジャーサービス(JMS)」をホスティングする方法。
  49. 前記複数のネットワークサーバの1つに向けたメッセージの有無に関して前記「JMS」メッセージストアを検査する段階を更に含むことを特徴とする請求項48に記載の方法。
  50. 「JMS」メッセージをネットワークサーバから前記ホストサーバ上の前記「JMS」メッセージストアに送信する段階を更に含むことを特徴とする請求項48に記載の方法。
  51. 前記ホストサーバ上の前記「JMS」メッセージストア内のメッセージを「JMS」構成要素に送信する段階を更に含むことを特徴とする請求項48に記載の方法。
  52. ネットワーク上で「JMS」に対する唯一のアクセスポイント及びメッセージ待ち行列を提供する「JMS」メッセージストアを含む「JMS」オブジェクトへのアクセスを、複数のサーバ内のホストサーバを使用して提供する段階と、
    前記ホストサーバが前記「JMS」オブジェクトへのアクセスを提供することができない場合に、分散型合意アルゴリズムを使用して前記複数のサーバの中から新しいホストサーバを選択する段階と、
    前記「JMS」オブジェクトへのアクセスを提供するのに必要な情報を前記新しいホストサーバに引き抜く段階と、
    新しいホストサーバが前記「JMS」オブジェクトへのアクセスを提供していることを前記複数のサーバの他のサーバに通知する段階と、
    を含むことを特徴とする、クラスター内の「JMS」オブジェクトの存在を確実にする方法。
  53. 分散型合意アルゴリズムを使用して、複数のネットワークサーバの中からホストサーバを選択する段階と、
    前記クラスター内の各サーバに連絡して、前記選択されたホストがそのサーバにとって容認可能か否かを判断する段階と、
    前記クラスター内の全てのサーバが、前記選択されたホストが容認可能であることに同意した場合、新しいホストサーバの選択を委託する通知を該クラスター内の他のサーバにマルチキャストする段階と、
    を含むことを特徴とする、「JMS」オブジェクトをクラスター内のサーバに割り当てる方法。
  54. 分散型合意アルゴリズムを使用して複数のネットワークサーバの中からホストサーバを選択するための手段と、
    「JMS」への唯一のアクセスを提供するために割り当てられた前記ホストサーバに「JMS」オブジェクトを割り当てるための手段と、
    前記ホストサーバが「JMS」への唯一のアクセスを提供することを他のネットワークサーバに通知するための手段と、
    を含むことを特徴とするコンピュータ可読媒体。
  55. ネットワーク上のオブジェクトを管理するサーバコンピュータによって実行されるコンピュータプログラム製品であって、
    分散型合意アルゴリズムを使用して複数のネットワークサーバの中からホストサーバを選択するためのコンピュータコードと、
    「JMS」への唯一のアクセスを提供するために割り当てられた前記ホストサーバに「JMS」オブジェクトを割り当てるためのコンピュータコードと、
    前記ホストサーバが「JMS」への唯一のアクセスを提供することを他のネットワークサーバに通知するためのコンピュータコードと、
    を含むことを特徴とする製品。
  56. 分散型合意アルゴリズムを使用して複数のネットワークサーバの中からホストサーバを選択するための手段と、
    「JMS」への唯一のアクセスを提供するために割り当てられた前記ホストサーバに「JMS」オブジェクトを割り当てるための手段と、
    前記ホストサーバが「JMS」への唯一のアクセスを提供することを他のネットワークサーバに通知するための手段と、
    を含むことを特徴とする、クラスター内のオブジェクトを分配するためのシステム。
  57. プロセッサと、
    前記プロセッサによって実行されるオブジェクトコードと、
    を含み、
    前記オブジェクトコードは、
    分散型合意アルゴリズムを使用して、複数のネットワークサーバの中からホストサーバを選択し、
    「JMS」への唯一のアクセスを提供するために割り当てられた前記ホストサーバに「JMS」オブジェクトを割り当て、
    前記ホストサーバが「JMS」への唯一のアクセスを提供することを他のネットワークサーバに通知する、
    ように構成される、
    ことを特徴とするコンピュータシステム。
  58. 「Paxos」アルゴリズムを使用して、ソフトウエアクラスター内の複数のネットワークサーバの中からホストサーバを選択する段階と、
    「JMS」メッセージストアを前記ホストサーバに割り当てる段階と、
    を含み、
    前記「JMS」メッセージストアは、前記ホストサーバ上にのみ存在する、
    ことを特徴とする、ネットワーク上の「JMS」メッセージストアを管理する方法。
  59. 前記ホストサーバが「JMS」メッセージストアをホスティングすることを他のネットワークサーバに通知する段階を更に含むことを特徴とする請求項58に記載の方法。
  60. 新しいホストサーバの識別を他のネットワークサーバにマルチキャストする段階を更に含むことを特徴とする請求項58に記載の方法。
  61. 前記「Paxos」アルゴリズムを使用してソフトウエアクラスター内の複数のネットワークサーバの中からホストサーバを選択する段階は、情報のラウンドを他のネットワークサーバにマルチキャストする段階を含むことを特徴とする請求項58に記載の方法。
  62. 複数のネットワークサーバと、
    前記複数のネットワークサーバにおけるリードサーバと、
    を含み、
    前記リードサーバは、前記複数のネットワークサーバからホストサーバを選択するための分散型合意アルゴリズムを包含し、
    前記ホストサーバは、「JMS」オブジェクトを包含し、従って、「JMS」にアクセスする必要がある前記複数のネットワークサーバのいずれもが、該ホストサーバ上の該「JMS」オブジェクトにアクセスしなければならない、
    ことを特徴とする、ネットワーク上の「JMS」オブジェクトを管理するためのシステム。
  63. 前記ネットワークサーバは、ハードウエアクラスターサーバ及びソフトウエアクラスターサーバから成る群から選択されることを特徴とする請求項62に記載のシステム。
  64. 前記分散型合意アルゴリズムは、前記リードサーバと前記複数のサーバとの間にメッセージのラウンドを含み、
    前記ラウンドは、前記複数のネットワークサーバの大部分が前記ホストサーバについて同意するまで継続される、
    ことを特徴とする請求項62に記載のシステム。
  65. 前記分散型合意アルゴリズムは、「Paxos」アルゴリズムであることを特徴とする請求項64に記載のシステム。
  66. 「JMS」構成要素と、
    前記「JMS」構成要素と通信する複数のサーバと、
    前記複数のサーバからホストサーバを選択するための分散型合意アルゴリズムを包含する、該複数のサーバにおけるリードサーバと、
    「JMS」メッセージストアを包含し、前記「JMS」構成要素へのアクセスを前記複数のサーバのいずれにも提供するようになった、該複数のサーバにおけるホストサーバと、
    を含むことを特徴とする、ネットワーク上の「JMS」を管理するためのシステム。
  67. 前記複数のサーバは、クラスターを含むことを特徴とする請求項66に記載のシステム。
  68. 「JMS」構成要素と、
    前記「JMS」構成要素と通信する複数のサーバと、
    前記複数のサーバ内に位置するハードウエアクラスターサーバを包含し、かつ該ハードウエアクラスターサーバの中からリードサーバを選択するためのアルゴリズムを包含するハードウエアクラスターと、
    前記複数のサーバからホストサーバを選択するための分散型合意アルゴリズムを包含する、前記ハードウエアクラスターサーバにおけるリードサーバと、
    「JMS」メッセージストアを包含し、「JMS」へのアクセスを前記複数のサーバのいずれにも提供するようになった、該複数のサーバにおけるホストサーバと、
    を含むことを特徴とする、ネットワーク上の「JMS」を管理するためのシステム。
  69. 前記ホストサーバは、前記ハードウエアクラスター内にあることを特徴とする請求項68に記載のシステム。
  70. 各々が「JMS」メッセージストアをホスティングすることができる複数のサーバと、
    「JMS」メッセージストアをホスティングするためのホストサーバを、前記複数のサーバの中から選択するための分散型合意アルゴリズムと、
    ホストコンピュータが前記「JMS」メッセージストアをホスティングしていることをネットワーク上のサーバに通知するための分配システムと、
    を含むことを特徴とする、ネットワーク上の「JMS」を管理するためのフレームワーク。
  71. 分散型合意アルゴリズムを使用して、複数のネットワークサーバの中からホストサーバを選択する段階と、
    特定の期間に亘って「JMS」への唯一のアクセスを提供するために割り当てられた前記ホストサーバに「JMS」オブジェクトを割り当てる段階と、
    前記ホストサーバが前記「JMS」オブジェクトをホスティングしていることを他のネットワークサーバに通知する段階と、
    を含むことを特徴とする、「JMS」オブジェクトをネットワーク上のサーバにリースする方法。
  72. 前記特定の期間が終了した状態で、前記「JMS」オブジェクトを別の期間に亘って前記ホストサーバに割り当てる段階、
    を更に含むことを特徴とする請求項71に記載の方法。
  73. 前記特定の期間が前記ホストサーバ上で終了した状態で、前記「JMS」オブジェクトを別の特定の期間に亘って新しいホストサーバに割り当てる段階、
    を更に含むことを特徴とする請求項72に記載の方法。
  74. ハードウエアクラスター内の複数のハードウエアクラスターサーバに中からリードサーバを選択する段階と、
    前記リードサーバ上の分散型合意アルゴリズムを使用して、複数のネットワークサーバの中からホストサーバを選択する段階と、
    特定の期間に亘って「JMS」への唯一のアクセスを提供するために割り当てられた前記ホストサーバに「JMS」オブジェクトを割り当てる段階と、
    前記ホストサーバが前記「JMS」オブジェクトをホスティングしていることを他のネットワークサーバに通知する段階と、
    を含むことを特徴とする、「JMS」オブジェクトをネットワーク上のサーバにリースする方法。
  75. ハードウエアクラスター内の複数のハードウエアクラスターサーバの中からリードサーバを選択する段階と、
    前記リードサーバ上の分散型合意アルゴリズムを使用して、複数のネットワークサーバの中からホストサーバを選択する段階と、
    「JMS」への唯一のアクセスを提供するために割り当てられた前記ホストサーバに「JMS」オブジェクトを割り当てる段階と、
    前記ホストサーバが前記「JMS」オブジェクトをホスティングしていることを他のネットワークサーバに通知する段階と、
    を含むことを特徴とする、ネットワーク上のオブジェクトの所有権を割り当てる方法。
JP2003527615A 2001-09-06 2002-09-05 厳密に一回のキャッシュフレームワーク Pending JP2005502957A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US31771801P 2001-09-06 2001-09-06
US31756601P 2001-09-06 2001-09-06
US10/234,693 US6826601B2 (en) 2001-09-06 2002-09-04 Exactly one cache framework
US10/234,597 US7113980B2 (en) 2001-09-06 2002-09-04 Exactly once JMS communication
PCT/US2002/028199 WO2003023633A1 (en) 2001-09-06 2002-09-05 Exactly once cache framework

Publications (2)

Publication Number Publication Date
JP2005502957A true JP2005502957A (ja) 2005-01-27
JP2005502957A5 JP2005502957A5 (ja) 2006-01-05

Family

ID=27499750

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003527615A Pending JP2005502957A (ja) 2001-09-06 2002-09-05 厳密に一回のキャッシュフレームワーク

Country Status (5)

Country Link
EP (1) EP1433073A4 (ja)
JP (1) JP2005502957A (ja)
CN (1) CN1568467B (ja)
AU (1) AU2002332845B2 (ja)
WO (1) WO2003023633A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155614A (ja) * 2004-11-23 2006-06-15 Microsoft Corp 一般化されたPaxos
JP2007004476A (ja) * 2005-06-23 2007-01-11 Fujitsu Ltd ファイル共有プログラムおよびファイル共有装置
JP2010277467A (ja) * 2009-05-29 2010-12-09 Nippon Telegr & Teleph Corp <Ntt> 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム
JP2011164719A (ja) * 2010-02-04 2011-08-25 Tritech Inc 分散コンピューティングシステム、分散コンピューティング方法及び分散コンピューティング用プログラム
JP2011210106A (ja) * 2010-03-30 2011-10-20 Nippon Telegr & Teleph Corp <Ntt> メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
JP2011210107A (ja) * 2010-03-30 2011-10-20 Nippon Telegr & Teleph Corp <Ntt> メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
JP2014532921A (ja) * 2011-10-28 2014-12-08 ゼッタセット インコーポレイテッド 高可用性クラスタにおけるスプリット・ブレイン耐性フェイルオーバ
JP2019526106A (ja) * 2016-06-20 2019-09-12 アリババ グループ ホウルディング リミテッド データ処理方法及びデバイス
EP3672191A1 (en) 2018-12-20 2020-06-24 Fujitsu Limited Communication device and communication method for processing authentication information

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007136883A2 (en) * 2006-05-16 2007-11-29 Bea Systems, Inc. Next generation clustering
CN107181608B (zh) * 2016-03-11 2020-06-09 阿里巴巴集团控股有限公司 一种恢复服务及性能提升的方法及运维管理系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802291A (en) * 1995-03-30 1998-09-01 Sun Microsystems, Inc. System and method to control and administer distributed object servers using first class distributed objects
US6067477A (en) * 1998-01-15 2000-05-23 Eutech Cybernetics Pte Ltd. Method and apparatus for the creation of personalized supervisory and control data acquisition systems for the management and integration of real-time enterprise-wide applications and systems
US6122629A (en) * 1998-04-30 2000-09-19 Compaq Computer Corporation Filesystem data integrity in a single system image environment
US6367029B1 (en) * 1998-11-03 2002-04-02 Sun Microsystems, Inc. File server system tolerant to software and hardware failures
US6389462B1 (en) * 1998-12-16 2002-05-14 Lucent Technologies Inc. Method and apparatus for transparently directing requests for web objects to proxy caches
US6826601B2 (en) * 2001-09-06 2004-11-30 Bea Systems, Inc. Exactly one cache framework

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155614A (ja) * 2004-11-23 2006-06-15 Microsoft Corp 一般化されたPaxos
JP2007004476A (ja) * 2005-06-23 2007-01-11 Fujitsu Ltd ファイル共有プログラムおよびファイル共有装置
JP4707477B2 (ja) * 2005-06-23 2011-06-22 富士通株式会社 ファイル共有プログラムおよびファイル共有装置
JP2010277467A (ja) * 2009-05-29 2010-12-09 Nippon Telegr & Teleph Corp <Ntt> 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム
JP2011164719A (ja) * 2010-02-04 2011-08-25 Tritech Inc 分散コンピューティングシステム、分散コンピューティング方法及び分散コンピューティング用プログラム
US8775500B2 (en) 2010-02-04 2014-07-08 Tritech Inc. Distributed computing system having leader signaled agents to execute task after data acquisition completion
JP2011210106A (ja) * 2010-03-30 2011-10-20 Nippon Telegr & Teleph Corp <Ntt> メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
JP2011210107A (ja) * 2010-03-30 2011-10-20 Nippon Telegr & Teleph Corp <Ntt> メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
JP2014532921A (ja) * 2011-10-28 2014-12-08 ゼッタセット インコーポレイテッド 高可用性クラスタにおけるスプリット・ブレイン耐性フェイルオーバ
JP2019526106A (ja) * 2016-06-20 2019-09-12 アリババ グループ ホウルディング リミテッド データ処理方法及びデバイス
EP3672191A1 (en) 2018-12-20 2020-06-24 Fujitsu Limited Communication device and communication method for processing authentication information
US11323351B2 (en) 2018-12-20 2022-05-03 Fujitsu Limited Communication device and communication method for processing authentication information

Also Published As

Publication number Publication date
WO2003023633A1 (en) 2003-03-20
CN1568467A (zh) 2005-01-19
EP1433073A1 (en) 2004-06-30
EP1433073A4 (en) 2009-11-18
CN1568467B (zh) 2010-06-16
AU2002332845B2 (en) 2008-06-12

Similar Documents

Publication Publication Date Title
US6826601B2 (en) Exactly one cache framework
US7113980B2 (en) Exactly once JMS communication
US9769110B2 (en) Message delivery in messaging networks
CN100591031C (zh) 实现高可用性光纤信道交换机的方法和装置
US7146532B2 (en) Persistent session and data in transparently distributed objects
US7899897B2 (en) System and program for dual agent processes and dual active server processes
JP2004519024A (ja) 多数のノードを含むクラスタを管理するためのシステム及び方法
US20170289044A1 (en) Highly available servers
US8230086B2 (en) Hidden group membership in clustered computer system
JP2005502957A (ja) 厳密に一回のキャッシュフレームワーク
JP4132738B2 (ja) アプリケーション・サーバのアベイラビリティを判別するコンピュータ化された方法
US6212595B1 (en) Computer program product for fencing a member of a group of processes in a distributed processing environment
AU2002332845A1 (en) Exactly once cache framework
US8036105B2 (en) Monitoring a problem condition in a communications system
US6192443B1 (en) Apparatus for fencing a member of a group of processes in a distributed processing environment
US6205510B1 (en) Method for fencing a member of a group of processes in a distributed processing environment

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050831

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090323

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090330

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090817