JPH11102299A - 高信頼リモート・オブジェクト参照管理の方法とシステム - Google Patents

高信頼リモート・オブジェクト参照管理の方法とシステム

Info

Publication number
JPH11102299A
JPH11102299A JP10183089A JP18308998A JPH11102299A JP H11102299 A JPH11102299 A JP H11102299A JP 10183089 A JP10183089 A JP 10183089A JP 18308998 A JP18308998 A JP 18308998A JP H11102299 A JPH11102299 A JP H11102299A
Authority
JP
Japan
Prior art keywords
node
server
client
message
count
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
JP10183089A
Other languages
English (en)
Inventor
Declan J Murphy
ディクラン・ジェイ・マーフィ
Andrew G Tucker
アンドリュー・ジイ・タッカー
Madhusudham Tallure
マドゥスダン・タルーリ
Jose Bernabeu-Auban
ホゼ・ベルナビュ−オーバン
Yousef A Khalidi
ヨーセフ・エイ・カリディ
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH11102299A publication Critical patent/JPH11102299A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4493Object persistence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 通信リンクによって相互接続されたいくつか
の独立したコンピュータ・ノードを含むオブジェクト指
向コンピュータ・システム内でオブジェクト参照を追跡
するシステムおよび方法を提供すること。 【解決手段】 参照カウント機構はメッセージ・プロト
コルを用いてオブジェクトへの参照を追跡する。サーバ
・ノードはそのオブジェクトのそれぞれの外部参照カウ
ントを追跡する。外部参照カウントはサーバのオブジェ
クトの1つへの参照を持つリモート・ノードの数を表
す。サーバ・ノードは目的のクライアント・ノードへ送
信する前にエクスポートする各オブジェクト参照の外部
参照カウントを増分する。クライアント・ノードはエク
スポートされたオブジェクト参照をすでに受信している
場合にサーバ・ノードにメッセージを送信し、このメッ
セージに応答してサーバ・ノードは該当する外部参照カ
ウントを減分する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般にオブジェクト
指向オペレーティング・システム、詳細に言えば高信頼
リモート・オブジェクト参照管理のシステムおよび方法
に関する。
【0002】
【従来の技術】コンピュータ業界の現在の傾向は高速通
信リンクで接続されたいくつかの独立したコンピュータ
・ノードの相互接続である。それぞれのコンピュータ・
ノードはそれぞれが独自のアドレス空間を備えたプロセ
スを表す1つまたは複数のドメインに関連付けられる。
それぞれのドメインは、参照先オブジェクトと同じノー
ドまたは参照先オブジェクトを含むノードに接続された
異なるノードにある他のドメインから呼び出されるいく
つかのオブジェクトを含む。
【0003】
【発明が解決しようとする課題】オブジェクト・マネジ
ャは定期的にもはや使用されないオブジェクト参照を安
全に破壊し、そのリソースを再利用する。ただし、オブ
ジェクト・マネジャは、関連付けられたリソースを安全
に再利用するためにオブジェクトへの未処理の参照が存
在しなくなる時点を知る必要がある。通常、特定のオブ
ジェクトを参照するノードおよびドメインを追跡するた
めに参照カウント機構が用いられている。時折、参照カ
ウント機構の精度に悪影響を与えるノード障害が発生す
る。したがって、ノード障害を考慮して正確にオブジェ
クト参照を追跡する参照カウント機能が必要となる。
【0004】
【課題を解決するための手段】要約すると、本発明の一
実施態様は有効な方法でオブジェクトへの参照を追跡
し、ノード障害を考慮して参照の正確な追跡を保持でき
る参照カウント機構に関する。参照カウント機構は非同
期メッセージ・プロトコルと2つのカウント機構を用い
て分散システム内のオブジェクトへのさまざまな参照を
追跡する。ノード障害処理プロトコルは、参照カウント
機構がオブジェクト参照を備えた動作ノードを追跡する
ことを助力するのに用いられる。
【0005】分散システムは通信リンクで相互接続され
た独立したコンピュータ・ノードを含む。ノードはメモ
リを共用しないクライアント・コンピュータまたはサー
バ・コンピュータあるいはその両方を表す。各サーバ・
ノードはメソッドがノード内に常駐しているいくつかの
オブジェクトに関連付けられている。サーバ・ノードは
1つまたは複数のクライアント・ノードにそのオブジェ
クトへの参照を送信できる。クライアント・ノードは一
旦オブジェクト参照を入手すれば他のノードにそのオブ
ジェクト参照を送信できる。
【0006】各サーバ・ノードはオブジェクトごとにロ
ーカル参照カウントおよび外部参照カウントを保持す
る。ローカル参照カウントはノード内のオブジェクトへ
の参照を追跡する。外部参照カウントは他のノードから
のオブジェクトへの参照を追跡する。オブジェクト参照
がサーバ・ノードから他のノードにエクスポートされる
前に、サーバ・ノードは関連付けられた外部参照カウン
トを増分する。あるオブジェクトのローカルおよび外部
参照カウントがそのオブジェクトに関する未処理の参照
が存在しないことを示すと、オブジェクトのリソースが
再利用できる。
【0007】さらに、各クライアント・ノードはオブジ
ェクト参照ごとにローカル参照カウントおよび外部参照
カウントを保持する。ローカル参照カウントはノード内
のあるオブジェクト参照への参照数を追跡する。
【0008】外部参照カウントはクライアント・ノード
がオブジェクト参照をエクスポートしたノード数を追跡
する。あるオブジェクト参照へのローカルおよび外部参
照カウントがそのオブジェクトに関する未処理の参照が
存在しないことを示すと、クライアント・ノードはその
オブジェクトに関連付けられたサーバ・ノードへメッセ
ージを送信する。このメッセージに応答して、サーバ・
ノードはオブジェクトへの外部参照カウントを減少させ
る。さらに、クライアント・ノードはオブジェクト参照
のリソースを再利用できる。
【0009】ノードがそのノード内に現在常駐するオブ
ジェクト参照を受信すると、受信側ノードは受信を示す
メッセージを送信側ノードに送信する。メッセージの受
信に応答して、送信ノードはオブジェクト参照に関連付
けられた外部参照カウントを減少させる。さらに、ノー
ドが他のクライアント・ノードからオブジェクト参照を
受信すると、受信側ノードはオブジェクト参照に関連付
けられたサーバ・ノードへメッセージを送信する。メッ
セージの受信に応答して、サーバ・ノードは該当する外
部参照カウントを増分する。
【0010】メンバシップ・モニタ手順を用いてノード
の1つが障害になるか動作不能になる時点が判定され
る。ノード障害が検出されると、メンバシップ・モニタ
手順はノード障害プロトコルを起動する。ノード障害プ
ロトコルは、各ノードにある参照カウント機構がオブジ
ェクトの1つへのオブジェクト参照を所有する動作ノー
ドを正確に追跡する助力をする。
【0011】
【発明の実施の形態】概観 本発明はあるオブジェクトへのリモート参照を追跡する
フォールト・トレラントな参照カウント機構に関する。
本発明は独立したコンピュータ・ノードの集合を含むコ
ンピュータ・システム内で具体化される。1つまたは複
数のクライアント・ノードがサーバ・ノード内にメソッ
ドが常駐している1つまたは複数のオブジェクトを参照
できる。本発明のオブジェクト参照カウント機構はオブ
ジェクトがもはや必要ない時点を判定するためにリモー
ト・ノード参照を追跡する。時折、ノードは動作不能ま
たは障害になる。この場合、オブジェクト参照カウント
機構は障害ノードを示すためにそのカウントを変更する
必要がある。
【0012】ノードはオブジェクトへの参照を与えられ
ているならばそのオブジェクトに関連付けられたメソッ
ドを呼び出すことができるだけである。サーバ・ノード
はオブジェクトと関連付けられたメソッドを記憶し、そ
のオブジェクトにどのノードがアクセスできるかを制御
する。サーバ・ノードによってクライアント・ノードは
クライアント・ノードにオブジェクトへの参照をエクス
ポートしてオブジェクトにアクセスできる。このエクス
ポートされたオブジェクト参照によってクライアント・
ノードはオブジェクトを呼び出すことができる。クライ
アント・ノードがオブジェクトへのアクセスを許可され
ると、クライアント・ノードはオブジェクト参照を他の
クライアント・ノードにエクスポートできる。本発明の
一実施形態では、オブジェクト参照は後ほど詳述するx
doorである。
【0013】各ノードはリモート・ノードからアクセス
する各オブジェクトのローカルおよび外部参照カウント
を備える。ローカル参照カウントはノード内のオブジェ
クトへの参照を追跡する。サーバ・ノードの外部参照カ
ウントはそのオブジェクトの1つへの参照を備えた各ク
ライアント・ノードを追跡する。クライアント・ノード
の外部参照カウントはクライアント・ノードがオブジェ
クト参照をエクスポートしたノードの数を追跡する。
【0014】本発明の参照カウント機構は特定のノード
を参照できるリモート・ノードをメッセージ・プロトコ
ルを使って正確に追跡する。メッセージ・プロトコルは
オブジェクト参照を他のノードにエクスポートするノー
ドによって初期化される。通信中のノード間で1つまた
は複数の非同期メッセージが送信される。メッセージを
用いて関連付けられたサーバ・ノードの外部参照カウン
トはエクスポートされたオブジェクトを参照するノード
を正確に追跡する。
【0015】ノード障害が発生した場合、ノード障害プ
ロトコルが実行されて外部参照カウントがオブジェクト
を参照する動作ノードを正確に反映していることが保証
される。ノード障害は第一にサーバ・ノードの外部参照
カウントに影響する。参照カウント手順は各外部参照カ
ウントが障害または動作不能ノードからの参照を含まな
いことを保証する。
【0016】本発明の参照カウント機構は、本明細書に
参照により組み込まれている____出願の米国特許出
願第____号「A System and Meth
odfor Remote Object Resou
rce Management」に記載されるローカル
参照カウント機構を利用できる。
【0017】コンピュータ・アーキテクチャ 図1について説明する。同図ではコンピュータ・ノード
102、104、106、および108の集合を含む分
散コンピュータ・システム100が示されている。それ
ぞれのコンピュータ・ノード102、104、106、
および108は通信リンク110で相互接続された独立
したクライアント/サーバ・コンピュータを表す。各ノ
ードはクライアントまたはサーバ・コンピュータあるい
はその両方と考えられる。クライアント・コンピュータ
はオブジェクトを呼び出すノードと関連付けられてい
る。サーバ・コンピュータはオブジェクトのメソッドを
記憶するノードと関連付けられている。ある場合には、
クライアントおよびサーバ・コンピュータは同じノード
である。それ以外の場合には、クライアントおよびサー
バ・コンピュータは別のノードである。
【0018】通信リンク110は一般にローカル・エリ
ア・ネットワーク、ワイド・エリア・ネットワーク、ま
たはネットワークの組み合わせなどの、ただしこれには
限定されないすべてのタイプのコンピュータ間の有線ま
たは無線リンクをさす。クライアント/サーバ・コンピ
ュータは通信リンク110を使って相互に通信する。
【0019】各ノード102、104、106、108
はネットワーク・インタフェース112、CPU11
4、およびメモリ116を備える。各ノードのメモリ1
16はオペレーティング・システム117(またはカー
ネル)および1つまたは複数のドメイン152を含む。
ドメイン152は独自のアドレス空間を備えたプロセス
と定義される。ドメイン152はアプリケーション手順
156を実行できる複数の実行スレッド(一般にスレッ
ドと呼ばれる)を備えている。各ドメイン152はそれ
に関連付けられた1つまたは複数のオブジェクト154
を備える。さらに、オペレーティング・システム117
もオブジェクト119を備える。
【0020】好ましい実施形態では、オペレーティング
・システムまたはカーネル117はSun Micro
systems,Inc.のSolaris MCオペ
レーティング・システムである。Solaris MC
オペレーティング・システムの背景情報は、本明細書に
参照として組み込まれている「Solaris MC:
A multi−Computer OS」、Tec
hnical Report SMLI TR−95−
48、1995年11月、Sun Microsyst
emsに記載されている。しかしながら、本発明はこの
特定のオペレーティング・システムに限定される訳では
ない。
【0021】各スレッドはオブジェクト(すなわちオブ
ジェクトのメソッド)の実行を要求できる。オブジェク
トの場所はスレッドには透過的である。オブジェクトは
複数の場所の1つに常駐できる。オブジェクトは要求元
スレッドと同じドメイン内、要求元スレッドとは異なる
が、要求元スレッドと同じノード内のドメインまたはリ
モート・ノードのドメイン内に常駐できる。
【0022】リモート・ノードからアクセスできる各オ
ブジェクトはxdoor124を備える。xdoor1
24は分散システムを通してあるオブジェクトを表すた
めに用いるカーネル状態エンティティである。ノードに
関連付けられた各xdoor124はxdoorテーブ
ル120に記憶される。xdoor124はグローバル
xdoor識別子122、ローカル参照カウント12
6、外部参照カウント128、保持フラグ130、およ
びその他の情報を含む。ノードはノード内にメソッドが
常駐しているオブジェクトのサーバxdoorおよびメ
ソッドがリモート・ノードに常駐している各オブジェク
トのクライアントxdoorを備える。
【0023】グローバルxdoor識別子122はシス
テム100内で一意的にオブジェクトを識別するために
用いられ、ノード識別子とxdoor識別子からなる。
xdoor識別子はノード内のオブジェクトを一意的に
識別し、ノード識別子はシステム100内でノードを一
意的に識別するために用いられる。xdoor識別子お
よびノード識別子の組み合わせは分散システム100内
でオブジェクトを一意的に識別する。
【0024】xdoor124に関連付けられたローカ
ル参照カウント126は参照を関連付けられたオブジェ
クトに保持するローカル・ユーザおよびカーネル・ドメ
インの数を追跡するために用いられる。外部参照カウン
ト128はリモート・ノードによるオブジェクトへの参
照を追跡するために用いられる。外部参照カウント12
8はオブジェクトのメソッドを記憶するノードのカウン
トを含まない。ローカルおよび外部参照カウントはオブ
ジェクトへの未処理参照数を追跡するのに用いられる。
これらのカウントが両方ともゼロの場合、オブジェクト
に関連付けられたxdoor124は関連付けられたオ
ブジェクトが使用する他のリソース同様、削除できる。
【0025】保持フラグ130はオブジェクトのxdo
or124を削除するかどうかを示すのに用いられる。
保持フラグ130が設定されると、xdoor124が
保持される。そうでない場合、すなわち、保持フラグ1
30がクリアされる場合、xdoor124は削除され
るかオブジェクト再利用手順144によって再利用でき
る。
【0026】オペレーティング・システム117はオブ
ジェクト参照を追跡する際に用いる追加のデータおよび
手順を含む。オペレーティング・システム117は参照
カウント手順118、メッセージ送信手順132、生成
カウント134、メンバシップ・モニタ手順136、メ
ッセージ・リポジトリ138、オブジェクト参照エクス
ポート手順143、インポート済みあるいは受信済みの
オブジェクト参照のカウント145、イネーブル手順1
46、エクスポート済みオブジェクト参照のカウント1
48とその他の情報を含む。参照カウント手順118は
ローカルおよび外部オブジェクト参照をメッセージ・プ
ロトコルによって追跡するために用いられる。メッセー
ジ送信手順132はシステム100内のノード間で1つ
または複数のメッセージを送信する。生成カウント13
4はシステム内の動作ノードが実行される現在の生成を
知らせる。生成カウント134はノード障害の処理に用
いられる。メンバシップ・モニタ手順136はノード障
害を検出し、ノード障害処理プロトコルを調整するため
に用いられる。オブジェクト参照エクスポート手順14
3はあるノードから他のノードへオブジェクト参照をエ
クスポートするために用いられる。エクスポート・オブ
ジェクト参照は後に詳述するメッセージとして送信され
る。イネーブル手順146はオブジェクト参照エクスポ
ート手順143を使用不能または使用可能にするために
用いられる。
【0027】メッセージ・レポジトリ138はノード間
で送信される1つまたは複数のメッセージ141を記憶
する。メッセージはオブジェクト参照をエクスポート
し、さまざまなノード間の通信を行ってオブジェクト参
照を正確に追跡する。これらのメッセージはそれぞれ特
定のオブジェクト参照と関連付けられたノード識別子と
xdoor識別子を含むグローバルxdoor識別子1
40を含む。さらに、それぞれのメッセージは生成カウ
ント142も含む。
【0028】ノード間で送信されるすべてのメッセージ
は非同期に送信される。非同期の送信とは、メッセージ
が送信完了の確認を待たずに送信されるようスケジュー
リングされているという意味である。このようにして、
参照カウント手順118はメッセージ遅延を許容するこ
とができる。本発明の一実施形態では、特定のノードに
ルーティングされる予定のメッセージは1つまたは複数
の束で収集され送信される。さらに、メッセージはいか
なる特定の順序で受信される必要も無い。
【0029】さらに、各ノードは他の各ノードから受信
したオブジェクト参照の数145および他の各ノードへ
エクスポートしたオブジェクト参照の数148を追跡す
る。これらのカウントはクラスタ内のノードごとに集計
される。
【0030】以上、参照カウント機構をサポートするイ
ンフラストラクチャについて述べてきた。次にリモート
・オブジェクト参照を追跡するための参照カウント・メ
ッセージ・プロトコルおよびノード障害プロトコルにつ
いて述べる。
【0031】参照カウンティング・メッセージ・プロト
コル 図2A〜2Eに参照カウント手順118が用いる参照カ
ウント・メッセージ・プロトコルを示す。図2Aにサー
バ・ノードがまずオブジェクト参照をクライアント・ノ
ードへエクスポートする例を示す。図2Bにサーバ・ノ
ードがすでにオブジェクト参照を備えたクライアント・
ノードへオブジェクト参照をエクスポートする例を示
す。図2Cにクライアント・ノードがサーバ・ノードへ
オブジェクト参照をエクスポートする例を示す。図2D
にクライアント・ノードが他のクライアント・ノードに
オブジェクト参照をエクスポートする例を示す。図2E
にクライアント・ノードがすでにオブジェクト参照を備
えた他のクライアント・ノードへオブジェクト参照をエ
クスポートする例を示す。
【0032】図2Aについて説明する。同図で、オブジ
ェクトAを備えたサーバ・ノードがオブジェクトAへの
参照をクライアント・ノードAへ送信する。本発明の一
実施形態では、xdoor124はクライアント・ノー
ドへエクスポートされるオブジェクト参照を表す。サー
バ・ノードがxdoorをエクスポートする前に、サー
バのxdoor124の外部参照カウント128は参照
カウント手順118によって増分される。さらに、エク
スポートされたオブジェクト参照のカウント148が増
分される。xdoor124はオブジェクト参照エクス
ポート手順143によってメッセージを介して送信され
る(ステップ1)。
【0033】クライアント・ノードAはメッセージを受
信し、そのxdoorテーブル120を検索してテーブ
ル内にエクスポートされたxdoor124がすでにあ
るかどうかを判定する。受信したxdoor124がク
ライアント・ノードAのxdoorテーブルにない場
合、クライアント・ノードAはテーブル用のxdoor
124のエントリを作成してxdoorのローカル参照
カウント126および外部参照カウント128を初期設
定する。ローカル参照カウント126は1に初期設定さ
れ、外部参照カウント128はゼロに初期設定される。
さらに、クライアント・ノードAのインポートされたオ
ブジェクト参照のカウント145は増分される(ステッ
プ2)。
【0034】クライアント・ノードAがオブジェクトの
処理を終了すると、クライアント・ノードA内のメッセ
ージ送信手順132がサーバ・ノードへ減分(DEC)
メッセージを送信する。この送信はxdoorのローカ
ル参照カウント126(Lct)および外部参照カウン
ト(Fct)128が共にゼロになると行われる。さら
に、クライアント・ノードA内のオブジェクト再利用手
順144が当該オブジェクトのxdoor124とこの
オブジェクトに関連する他のリソースを削除する(ステ
ップ3)。
【0035】サーバ・ノードはDECメッセージを受信
し、参照カウント手順118は関連付けられたオブジェ
クトの外部参照カウント128を減分する。DECメッ
セージは関連付けられたオブジェクトのグローバルxd
oor識別子122を含む。サーバ・ノード内のオブジ
ェクト再利用手順144は、サーバxdoorのローカ
ル参照カウント126および外部参照カウント128が
ゼロになると最終的にそのオブジェクトのxdoor1
24を削除する。さらに、サーバ・ノードはそのオブジ
ェクトに関連付けられた他のリソースも削除できる(ス
テップ4)。
【0036】図2Bにサーバ・ノードがエクスポートさ
れたxdoor124をすでに備えたクライアント・ノ
ードへオブジェクト参照をエクスポートする場合を示
す。サーバ・ノードは関連付けられた外部参照カウント
128およびエクスポートされたオブジェクト参照のカ
ウント148を増分する(ステップ1)。クライアント
・ノードはそのxdoorテーブル120を検索し、エ
クスポートされたxdoorに一致するエントリを見つ
けることによってオブジェクト参照をすでに受信したと
判定する(ステップ2)。この場合、クライアント・ノ
ードはサーバ・ノードへDECメッセージを送信する。
いずれにせよ、クライアント・ノードはインポートされ
たオブジェクト参照のカウント145を増分する(ステ
ップ2)。DECメッセージに応答して、サーバ・ノー
ドはDECメッセージに関連付けられたxdoor12
4の外部参照カウント128を減分する(ステップ
3)。xdoor124およびオブジェクト・リソース
はサーバxdoorのローカル参照カウント126およ
び外部参照カウント128が共にゼロになると最終的に
再利用される(ステップ3)。
【0037】図2Cにクライアント・ノードがエクスポ
ートされたxdoorをすでに備えたサーバ・ノードへ
オブジェクト参照をエクスポートする例を示す(ステッ
プ1)。クライアント・ノードは対応する外部参照カウ
ント128およびそのエクスポートされたオブジェクト
参照のカウント148を増分する(ステップ1)。サー
バ・ノードはxdoorテーブル120を検索して、受
信したxdoorと一致するxdoorエントリを見つ
けると、エクスポートされたxdoorをすでに備えて
いると判断する(ステップ2)。サーバ・ノードのxd
oorテーブル120のxdoorエントリおよび受信
したメッセージのxdoorは同じグローバルなxdo
or識別子122を備える。この場合、サーバ・ノード
はクライアント・ノードへDECメッセージを送信する
(ステップ2)。さらに、サーバ・ノードはインポート
されたオブジェクト参照のカウント145を増分する
(ステップ2)。DECメッセージに応答して、クライ
アント・ノードはオブジェクトのその外部参照カウント
128を減分する(ステップ3)。
【0038】図2Dにクライアント・ノードがオブジェ
クト参照を他のクライアント・ノードへエクスポートす
る例を示す。この例では、サーバ・ノードの外部参照カ
ウント128が新しいクライアント・ノードによる追加
の参照を含めるにはサーバ・ノードは追加のクライアン
ト・ノードの参照を通知される必要がある。
【0039】クライアント・ノードAがオブジェクト参
照をエクスポートする前に、参照カウント手順118が
対応するxdoor124に関連付けられた外部参照カ
ウント128を増分し、エクスポートされたオブジェク
ト参照のカウント148を増分する(ステップ1)。ク
ライアント・ノードBはxdoorを受信し、xdoo
rテーブル120内にそのxdoorエントリ124を
作成し、xdoorのローカル参照カウント126およ
び外部参照カウント128とインポートされたオブジェ
クト参照145のカウントを初期設定する(ステップ
2)。クライアントBはxdoorエクスポートがxd
oorのサーバ以外のノードから受信されたと判断し、
クライアントを呼び出してクライアントのxdoorイ
ンポート・プロトコルに応答する。ローカル参照カウン
ト126は1に初期設定され、外部参照カウント128
も1に初期設定される。さらに、クライアント・ノード
Bは増分(INC)メッセージをサーバ・ノードへ送信
する(ステップ2)。INCメッセージに応答して、サ
ーバ・ノードは参照されたオブジェクトの外部参照カウ
ント128を増分してクライアント・ノードBへ肯定応
答(ACK)メッセージを返送する。ACKメッセージ
に応答して、クライアント・ノードBの外部参照カウン
トはxdoorの外部参照カウント128を減分してク
ライアント・ノードAへDECメッセージを送信する
(ステップ4)。今度はクライアント・ノードAは関連
付けられたxdoorの外部参照カウント128を減分
する(ステップ5)。このメッセージ・プロトコルが終
了すると、サーバ・ノードはクライアント・ノードAの
カウントを1つとクライアント・ノードBのカウントを
1つ備える。クライアント・ノードAおよびBはオブジ
ェクトAの外部参照カウント128を備えない。
【0040】本発明の一実施形態では、ノードは対応す
るACKメッセージを送信してそれぞれの受信したIN
Cメッセージに肯定応答することができる。別の実施形
態では、オペレーティング・システムのトランスポート
層がノード間でメッセージを一括して送信する。こうし
て、いくつかのINCメッセージを単一のメッセージ・
パケットに乗せてあるノードから別のノードへ送信でき
る。ノードは特定のノードへACKメッセージを送信し
てまだ肯定応答されていないこれまで受信されたいくつ
かのINCメッセージを肯定応答する。さらに、トラン
スポート層はあるノードから他のノードへ以前に送信し
た未処理のINCメッセージを肯定応答するACKメッ
セージを受信しない限り、そのノードへINCメッセー
ジを送信しない。
【0041】図2Eにクライアント・ノードAがオブジ
ェクト参照をすでに備えるクライアント・ノードBへオ
ブジェクト参照を送信する(ステップ1)。クライアン
ト・ノードAは関連付けられた外部参照カウント128
とクライアント・ノードAのエクスポートされたオブジ
ェクト参照のカウント148を増分する(ステップ
1)。この場合、クライアント・ノードBは参照をすで
に備えていると判断し、クライアント・ノードAへDE
Cメッセージを送信する(ステップ2)。さらに、クラ
イアント・ノードBはそのインポートされたオブジェク
ト参照のカウント145を増分する(ステップ2)。D
ECメッセージに応答して、クライアント・ノードAは
オブジェクト参照のその外部参照カウント128をこれ
に応じて減分する(ステップ3)。
【0042】参照カウント・メッセージ・プロトコルを
以上説明してきた。ノード障害が発生した場合に参照カ
ウントが調整される方法について以下に説明する。
【0043】ノード障害プロトコル 図3Aおよび3Bにノード障害の処理手順、別名ノード
障害プロトコルを示す。ノード障害はメンバシップ・モ
ニタ手順136によって検出される。メンバシップ・モ
ニタ手順136は各ノードに常駐する分散手順である。
各ノードのメンバシップ・モニタ手順136は互いに通
信を行い、ノードが動作不能になったことを検出でき
る。これが発生すると、メンバシップ・モニタ手順13
6はすべての動作ノードの生成カウントを調整された方
法で増やし、各ノードに1つまたは複数の障害ノードの
識別を通知する(ステップ200)。
【0044】ノード障害の通知がなされると、メンバシ
ップ・モニタ手順136は各ノードと調整をはかって次
のタスクを実行する。まず、各ノードは送信待ちのすべ
てのペンディング状態のメッセージを廃棄する。さら
に、各ノード内のイネーブル手順146はオブジェクト
参照のエクスポートを今後一時的に使用不能にするよう
指示される。さらに、各ノードは今後一時的にDECメ
ッセージの送信を無効にし、現在の生成カウント134
と一致しない生成カウント142を備えたすべての着信
ACK、INC、およびDECメッセージを廃棄する。
さらに、各サーバ・ノード内の参照カウント手順118
は各サーバxdoorの外部参照カウント128を1に
セットして関連付けられた保持フラグ130をセットす
る(すなわち、keep flag=「1」とする)
(ステップ202)。
【0045】次に、各ノードにはメンバシップ・モニタ
手順136からすべての送信中のオブジェクト参照の受
信待ちを指示される。各ノードはオブジェクト参照を送
信したすべてのノードにそのノードへ以前送信したオブ
ジェクト参照の数のカウント148を付けてメッセージ
を送信する。各ノードはまたそれぞれの特定のノードか
ら受信したオブジェクト参照の数のカウント145を保
持する。ノードは動作ノードから送信された各参照の受
信待ちとなる。この動作は特定のノードのインポートさ
れたオブジェクト参照のカウント145が同じノードか
ら受信したエクスポートされたオブジェクト参照カウン
ト148に等しい場合に実行される(ステップ20
4)。クライアント・ノードが送信中のオブジェクトを
受信すると、上記のように受信したオブジェクト参照を
処理する。
【0046】次に、メンバシップ・モニタ手順136
は、各ノードの参照カウント手順118が各サーバxd
oor124の外部参照カウント128をセットして特
定のオブジェクトのオブジェクト参照を備えた動作ノー
ドを正確に反映する方法を指示する。この動作は各クラ
イアント・ノードに各クライアントxdoorの外部参
照カウント128を1にセットさせることで達成され
る。さらに、各クライアント・ノードのメッセージ送信
手順132は各クライアントxdoorから関連付けら
れたサーバ・ノードへINCメッセージを送信する。各
サーバ・ノードの参照カウント手順118はINCメッ
セージに応答してその外部参照カウント128を増分
し、クライアント・ノードへACKメッセージを送信す
る。ACKメッセージに応答して、各クライアント・ノ
ードの参照カウント手順118はその外部参照カウント
128を減分する。すべてのACKメッセージが処理さ
れると、各サーバ・ノードはそのオブジェクトのそれぞ
れにアクセスするリモート・ノードの数の正確なカウン
トを備える(ステップ206)。
【0047】それぞれの動作ノードが送信したINCメ
ッセージがすべてACKメッセージで肯定応答される
と、次のステップは正常処理の再開である。メンバシッ
プ・モニタ手順136が正常処理の再開を決定する該当
する時期に、各ノードはDECメッセージの送信の再開
を指示される。さらに、各ノード内の参照カウント手順
118は各サーバxdoor124の保持フラグ130
をクリアし、イネーブル手順146はオブジェクト参照
の他のノードへのエクスポートを再開する。さらに、も
はやローカルまたは外部参照がない場合は、オブジェク
トのxdoor124も他の関連付けられたリソース同
様に削除できる(ステップ208)。
【0048】代替実施形態 以上、本発明をいくつかの特定の実施形態に関連して述
べてきたが、この説明は本発明の例示するもので本発明
を限定するものではない。当業者は、添付の特許請求の
範囲に定義する本発明の精神および範囲から逸脱するこ
となく本発明をさまざまに変更できるであろう。
【0049】本発明は図1に関して述べたコンピュータ
・システムに限定されない。本発明は、特定の詳細なし
に実施でき、さまざまな構成、または分散コンピュータ
・システムの構造またはモデル、緊密に結合したプロセ
ッサまたはゆるやかに結合したマイクロプロセッサ・シ
ステムのさまざまな構成で実施できる。
【0050】さらに、上記の方法およびシステムでは、
ランダム・アクセス・メモリなどのメモリ装置以外のさ
まざまな種類の実行可能な媒体での実行が可能である。
いかなるメモリ装置でもかまわないコンピュータ可読記
憶媒体などの、ただしこれに限定されないその他のタイ
プの実行可能な媒体も使用できる。
【0051】本発明のさらなるオブジェクトおよび機能
は図面に関連して以下の詳細な説明および添付の特許請
求の範囲を読めばただちに明らかになろう。
【図面の簡単な説明】
【図1】 本発明の好ましい実施形態を組み込んだコン
ピュータ・システムのブロック図である。
【図2A】リモート・オブジェクト参照を追跡するため
のメッセージ・プロトコルを表す図である。
【図2B】 リモート・オブジェクト参照を追跡するた
めのメッセージ・プロトコルを表す図である。
【図2C】 リモート・オブジェクト参照を追跡するた
めのメッセージ・プロトコルを表す図である。
【図2D】 リモート・オブジェクト参照を追跡するた
めのメッセージ・プロトコルを表す図である。
【図2E】 リモート・オブジェクト参照を追跡するた
めのメッセージ・プロトコルを表す図である。
【図3A】 ノード障害の発生時に参照カウント機構を
再調整するための手順を示す流れ図である。
【図3B】 ノード障害の発生時に参照カウント機構を
再調整するための手順を示す流れ図である。
【符号の説明】
100 分散コンピュータ・システム 102 コンピュータ・ノード 104 コンピュータ・ノード 106 コンピュータ・ノード 108 コンピュータ・ノード 110 通信リンク 112 ネットワーク・インタフェース 114 CPU 116 メモリ 117 オペレーティング・システム 118 参照カウント手順 119 オブジェクト 120 xdoorテーブル1 122 グローバルxdoor識別子 124 xdoor 126 ローカル参照カウント 128 外部参照カウント 130 保持フラグ 132 メッセージ送信手順 134 生成カウント 136 メンバシップ・モニタ手順 138 メッセージ・リポジトリ 140 グローバルxdoor識別子 141 メッセージ 142 生成カウント 143 オブジェクト参照エクスポート手順 144 オブジェクト再利用手順 145 インポート済みオブジェクト参照のカウント 146 イネーブル手順 148 エクスポート済みオブジェクト参照のカウント
148 152 ドメイン 154 オブジェクト 156 アプリケーション手順
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成10年9月29日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2A】
【図2B】
【図2C】
【図2E】
【図2D】
【図3A】
【図3B】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 アンドリュー・ジイ・タッカー アメリカ合衆国・94024・カリフォルニア 州・ロス アルトス・ロヨラ ドライブ・ 820 (72)発明者 マドゥスダン・タルーリ アメリカ合衆国・94538・カリフォルニア 州・フレモント・ブッシュ サークル・ 4466 (72)発明者 ホゼ・ベルナビュ−オーバン スペイン国・46021・ヴァレンシア・ピア ッツァ フレイ ルイス コロマー 9・ ピイティエイ 18 (72)発明者 ヨーセフ・エイ・カリディ アメリカ合衆国・95014・カリフォルニア 州・カッパチーノ・バリントン ブリッジ コート・10831

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも1つのサーバ・ノードと少な
    くとも1つのクライアント・ノードを含むコンピュータ
    ・システム内のオブジェクトへの参照を追跡する方法で
    あって、 各サーバ・ノード内で、オブジェクトへの参照を有する
    クライアント・ノードの数を示すサーバ側外部参照カウ
    ントに関連付けられた複数のオブジェクトと、特定のサ
    ーバ・ノード内に常駐する選択した1つのオブジェクト
    に関連付けられたオブジェクト参照とを記憶するステッ
    プと、 第1のオブジェクト参照に関連付けられた第1のサーバ
    側外部参照カウントを増分するステップと、 第1のサーバ・ノードから第1のクライアント・ノード
    へ第1のオブジェクト参照をエクスポートするステップ
    と、 第1のクライアント・ノードから第2のクライアント・
    ノードへ第1のオブジェクト参照をエクスポートするス
    テップと、 エクスポートされたオブジェクト参照を受信すると、第
    2のクライアント・ノードが第1のサーバ・ノードに第
    1のオブジェクト参照の受信を示す第1のメッセージを
    送信するステップと、 第1のメッセージを受信すると、第1のサーバ側外部参
    照カウントを増分するステップを含む方法。
  2. 【請求項2】 第1のメッセージの受信を第2のクライ
    アント・ノードに肯定応答するステップと、 第2のクライアント・ノード内で第1のオブジェクト参
    照に関連付けられた第2の外部参照カウントを減分する
    ステップと、 第1のクライアント・ノードに肯定応答の受信を示すス
    テップと、 前記表示を受信すると、第1のクライアント・ノード内
    で第1のオブジェクト参照に関連付けられた第3の外部
    参照カウントを減分するステップをさらに含む請求項1
    に記載の方法。
  3. 【請求項3】 受信したオブジェクト参照をすでに備え
    たクライアント・ノード内でオブジェクト参照を受信す
    ると、受信側クライアント・ノードが受信オブジェクト
    参照をすでに備えていることを示す第2のメッセージを
    受信オブジェクト参照に関連付けられたサーバ・ノード
    へ送信し、 第2のメッセージを受信すると、第2のメッセージのオ
    ブジェクトに関連付けられたサーバ側外部参照カウント
    を減分するステップをさらに含む請求項1に記載の方
    法。
  4. 【請求項4】 各クライアント・ノード内にクライアン
    ト・ノード内のオブジェクトへのローカル参照のカウン
    トを示すクライアント側ローカル参照カウントと、クラ
    イアント・ノードが関連付けられたオブジェクト参照を
    エクスポートしたノードの数を示すクライアント側外部
    参照カウントとを保持するステップと、 第3のクライアント・ノードからオブジェクト参照を、
    エクスポートされたオブジェクト参照に対応するオブジ
    ェクトを備えた第3のサーバ・ノードへエクスポート
    し、オブジェクト参照に関連付けられた第3のクライア
    ント・ノード内の外部参照カウントを増分するステップ
    と、 エクスポートされたオブジェクト参照を受信すると、第
    3のクライアント・ノードへ第3のサーバ・ノードがエ
    クスポートされたオブジェクト参照を備えていることを
    示す第3のメッセージを送信するステップと、 第3のメッセージを受信すると、エクスポートされたオ
    ブジェクト参照に関連付けられたクライアント側外部参
    照カウントを減分するステップをさらに含む請求項1に
    記載の方法。
  5. 【請求項5】 オブジェクト参照のクライアント側ロー
    カル参照カウントとクライアント側外部参照カウントを
    比較するステップと、 比較ステップに応答して、オブジェクト参照へのクライ
    アント・ノードからの未処理の参照がないことを示す第
    4のメッセージをオブジェクト参照に関連付けられたサ
    ーバ・ノードへ送信するステップと、 第4のメッセージを受信すると、第4のメッセージ内の
    オブジェクトに関連付けられたサーバ側外部参照カウン
    トを減分するステップと、 オブジェクト参照のクライアント側ローカル参照カウン
    トとクライアント側外部参照カウントがオブジェクト参
    照への未処理の参照が存在しないことを示すと、オブジ
    ェクト参照に関連付けられたリソースを再利用するステ
    ップをさらに含む請求項4に記載の方法。
  6. 【請求項6】 サーバ・ノード内のオブジェクトへのロ
    ーカル参照のカウントを示すオブジェクトごとの各サー
    バ・ノード内のサーバ側ローカル参照カウントを保持す
    るステップと、 オブジェクトのサーバ側ローカル参照カウントとサーバ
    側外部参照カウントがオブジェクトへの未処理の参照が
    存在しないことを示すと、オブジェクトに関連付けられ
    たリソースを再利用するステップをさらに含む請求項1
    に記載の方法。
  7. 【請求項7】 1つまたは複数のノードが障害になった
    時点を判定し、 サーバ側参照カウント機構がノード障害の通知時に各サ
    ーバ側の外部参照カウントを再び初期設定してノード障
    害判定に応答する手段を含み、 クライアント側メッセージ送信機構がノード障害判定に
    応答して、クライアント・ノードがそのオブジェクト参
    照を受信した、各サーバ・ノードへの第5のメッセージ
    を送信する手段を含み、 サーバ側参照カウント機構がそれぞれの受信された第5
    のメッセージのサーバ側外部参照カウントを増分するこ
    とを特徴とする、請求項1、2、3、または4に記載の
    方法。
  8. 【請求項8】 少なくとも1つのサーバ・ノードと少な
    くとも1つのクライアント・ノードを含むコンピュータ
    ・システム内のオブジェクトへの参照を追跡する方法で
    あって、 a)各サーバ・ノード内に複数のオブジェクトと、それ
    ぞれが特定のサーバ・ノード内に常駐する選択した1つ
    のオブジェクトに関連付けられた複数のオブジェクト参
    照を記憶するステップと、 b)1つまたは複数のサーバ・ノードから1つまたは複
    数のクライアント・ノードへオブジェクト参照をエクス
    ポートするステップと、 c)各サーバ・ノード内に関連付けられたオブジェクト
    への参照を備えたクライアント・ノードの数を示すオブ
    ジェクトごとの各サーバ側外部参照カウントを保持する
    ステップと、 d)少なくとも1つのクライアント・ノード内でノード
    障害を検出するステップと、 e)各サーバ・ノードによるオブジェクト参照のエクス
    ポートを一時的に不能にするステップと、 f)各サーバ側外部参照カウントを再び初期設定するス
    テップと、 g)目的のクライアント・ノードですべての送信中のオ
    ブジェクト参照の到着を待つステップと、 h)オブジェクト参照を備えた各クライアント・ノード
    からオブジェクト参照に関連付けられたオブジェクトを
    備えたサーバ・ノードへ第1のメッセージを送信するス
    テップと、 i)第1のメッセージを受信すると、第1のメッセージ
    内のオブジェクト参照に関連付けられたサーバ側外部参
    照カウントを増分するステップと、 j)各サーバ・ノードがすべての目的の第1のメッセー
    ジを受信すると、各サーバ・ノードが1つまたは複数の
    クライアント・ノードへオブジェクト参照をエクスポー
    トすることを可能にするステップを含む方法。
  9. 【請求項9】 ステップgが各ノード内に他のノードへ
    エクスポートされたオブジェクト参照の数を表す第1の
    カウントと、他のノードから受信したオブジェクト参照
    の数を表す第2のカウントを保持するステップと、 各ノードにエクスポートされたオブジェクト参照の数を
    表す第2のメッセージを送信するステップと、 それぞれの第2のメッセージを受信すると、第2のメッ
    セージ内に示されたオブジェクト参照の数の受信待ちと
    なるステップをさらに含む請求項8に記載の方法。
  10. 【請求項10】 ステップbが1つまたは複数のクライ
    アント・ノードから他のクライアント・ノードへオブジ
    ェクト参照をエクスポートするステップをさらに含み、 ステップcが各クライアント・ノード内にエクスポート
    側クライアント・ノードからオブジェクト参照を受信し
    ている受信側クライアント・ノードの数を示すオブジェ
    クト参照ごとのクライアント側外部参照カウントを保持
    するステップをさらに含み、 ステップeが各クライアント・ノードによるオブジェク
    ト参照のエクスポートを一時的に不能にするステップさ
    らにを含む請求項8または9に記載の方法。
  11. 【請求項11】 サーバ・ノード内のオブジェクトごと
    にサーバ・ノード内のオブジェクトへのローカル参照を
    追跡するローカル参照カウントを提供するステップと、 オブジェクトに関連付けられたローカル参照カウントと
    外部参照カウントがオブジェクトへの未処理の参照がも
    はや存在しないことを示すと、オブジェクトに関連付け
    られたリソースを再利用するステップをさらに含む請求
    項8、9、または10に記載の方法。
  12. 【請求項12】 通信リンクによって接続された1つま
    たは複数のクライアント・ノードと少なくとも1つのサ
    ーバ・ノードを含むコンピュータ・システムで、 それぞれのサーバ・ノードが特定のオブジェクトへの参
    照を備えたクライアント・ノードの数を示すサーバ側外
    部参照カウントをそれぞれ備えた複数のオブジェクト
    と、 それぞれのオブジェクト参照が選択した1つのサーバ・
    ノード内に常駐するオブジェクトに関連付けられた複数
    のオブジェクト参照と、 オブジェクトの1つへの参照を1つまたは複数のクライ
    アント・ノードへエクスポートする機能を備えたサーバ
    側オブジェクト参照エクスポート機構と、 各オブジェクトのサーバ側外部参照カウントを保持する
    機能を備えたサーバ側参照カウント機構を含み、 サーバ側参照カウント機構がサーバ側オブジェクト参照
    エクスポート機構がオブジェクトへの参照をクライアン
    ト・ノードへエクスポートする前にオブジェクトに関連
    付けられたサーバ側外部参照カウントを増分し、 各クライアント・ノードがそれぞれが選択した1つのサ
    ーバ・ノードに常駐するオブジェクトに関連付けられた
    複数のオブジェクト参照と、 オブジェクト参照を1つまたは複数のノードへエクスポ
    ートする機能を備えたクライアント側オブジェクト参照
    エクスポート機構と、 第1のクライアント・ノードがエクスポートされたオブ
    ジェクト参照を入手したことを示す第1のメッセージを
    エクスポートされたオブジェクト参照に関連付けられた
    サーバ・ノードへ送信し、エクスポートされたオブジェ
    クト参照が第1のクライアント・ノードによって受信さ
    れ第2のクライアント・ノードによってエクスポートさ
    れる機能を備えたクライアント側メッセージ送信機構を
    備え、 サーバ側参照カウント機構が第1のメッセージを受信す
    ると第1のメッセージ内のオブジェクトに関連付けられ
    たサーバ側外部参照カウントを増分するシステム。
  13. 【請求項13】 クライアント側メッセージ送信機構が
    クライアント・ノードがサーバ・ノードから受信したエ
    クスポートされたオブジェクト参照に関連付けられたサ
    ーバ・ノードへ受信側クライアント・ノードがエクスポ
    ートされたオブジェクト参照をすでに備えていることを
    示す第2のメッセージを送信し、 サーバ側参照カウント機構が第2のメッセージを受信し
    て第2のメッセージのオブジェクト参照に関連付けられ
    たサーバ側外部参照カウントを減分する請求項12に記
    載のシステム。
  14. 【請求項14】 各クライアント・コンピュータがクラ
    イアント・ノード内のオブジェクトへのローカル参照の
    カウントを示すクライアント側ローカル参照カウント
    と、クライアント・ノードが関連付けられたオブジェク
    ト参照をエクスポートしたノードの数を示すクライアン
    ト側外部参照カウントを保持する手段を備え、 クライアント側オブジェクト参照エクスポート機構がオ
    ブジェクト参照をエクスポートする前にエクスポートさ
    れたオブジェクト参照に関連付けられたクライアント側
    外部参照カウントを増分し、 サーバ・ノードが、関連付けられたオブジェクトが受信
    側サーバ・ノードに常駐しているオブジェクト参照をサ
    ーバ・ノードへエクスポートする各クライアント・ノー
    ドへ第3のメッセージを送信する機能を備えたサーバ側
    メッセージ送信機構を含み、 クライアント側参照カウント機構が第3のメッセージを
    受信して第3のメッセージ内のオブジェクト参照に関連
    付けられた外部参照カウントを減分することをさらに特
    徴とする請求項12に記載のシステム。
  15. 【請求項15】 クライアント側メッセージ送信機能
    が、関連付けられたクライアント側ローカル参照カウン
    トとクライアント側外部参照カウントが未処理の参照が
    もはやないことを示すオブジェクト参照に関連付けられ
    たサーバ・ノードへ第4のメッセージを送信し、 サーバ側参照カウント機構が第4のメッセージを受信し
    て第4のメッセージ内のオブジェクトに関連付けられた
    サーバ側外部参照カウントを減分し、 各クライアント・ノードがもはや参照されないオブジェ
    クトに関連付けられたリソースを再利用する機能を備え
    たクライアント側オブジェクト再利用機構を含むことを
    さらに特徴とする請求項14に記載のシステム。
  16. 【請求項16】 各サーバ・コンピュータがサーバ・ノ
    ード内のオブジェクトへのローカル参照の数を示すサー
    バ側ローカル参照カウントを保持する手段を備え、 サーバ側オブジェクト再利用機構がもはや参照されない
    オブジェクトに関連付けられたリソースを再利用する機
    能を備えることをさらに特徴とする請求項12に記載の
    システム。
  17. 【請求項17】 ノードのサブセットが1つまたは複数
    のノードが障害になった時点を判定するノード障害検出
    機構を含み、 サーバ側参照カウント機構がノード障害の通知があると
    各サーバ側外部参照カウントを再び初期設定してノード
    障害の通知に応答する手段を含み、 クライアント側メッセージ送信機構がノード障害検出に
    応答してオブジェクト参照をクライアント・ノードが受
    信した各サーバ・ノードへ第5のメッセージを送信する
    手段を含み、 サーバ側参照カウント機構が第5のメッセージを受信す
    るたびに1つずつサーバ側外部参照カウントを増分する
    ことをさらに特徴とする請求項12に記載のシステム。
  18. 【請求項18】 各ノードがノード障害の通知を受信す
    るとそれぞれのオブジェクト参照エクスポート機構を一
    時的に使用不能にする機能と、それぞれのノードがノー
    ド障害処理プロトコルを完了するとそれぞれのオブジェ
    クト参照エクスポート機構を使用可能にする機能を備え
    たイネーブル機構を含むことを特徴とする請求項17に
    記載のシステム。
  19. 【請求項19】 選択した1つのコンピュータ・ノード
    にそれぞれが記憶される複数のオブジェクトと、 それぞれのオブジェクト参照が第1のコンピュータ・ノ
    ードと第2のコンピュータ・ノードに記憶されるオブジ
    ェクトに関連付けられた複数のオブジェクト参照と、 それぞれの外部参照カウントがオブジェクトに関連付け
    られ、オブジェクトを参照するリモート・コンピュータ
    ・ノードの数を示す複数の外部参照カウントと、 それぞれの外部参照カウントを保持する機能を備えた参
    照カウント機構と、 オブジェクト参照を1つまたは複数のリモート・コンピ
    ュータ・ノードへエクスポートする機能を備え、エクス
    ポートされたオブジェクト参照をエクスポートする前に
    エクスポートされたオブジェクト参照に対応するオブジ
    ェクトに関連付けられた外部参照カウントを増分するオ
    ブジェクト・エクスポート機構と、 1つまたは複数のコンピュータ・ノードが障害になった
    時点を検出する機能を備えたノード障害検出機構と、 ノード障害の通知を受信するとオブジェクト参照エクス
    ポート機構を一時的に使用不能にする機能と、それぞれ
    のノードがノード障害処理プロトコルを完了するとオブ
    ジェクト参照エクスポート機構を使用可能にする機能を
    備えたイネーブル機構と、 ノードに常駐する各オブジェクト参照の第1のメッセー
    ジをオブジェクト参照に関連付けられたオブジェクトを
    記憶するノードへ送信するメッセージ送信機構とを含
    み、 参照カウント機構がノード障害通知を受けると各外部参
    照カウントを再び初期設定し、第1のメッセージを受信
    するたびに対応する外部参照カウントを増分する複数の
    コンピュータ・ノードを備えたコンピュータ・システ
    ム。
  20. 【請求項20】 受信したオブジェクト参照をすでに備
    えた第1のノードでオブジェクト参照が受信されるたび
    に、受信したオブジェクト参照を送信した第2のノード
    へ第2のメッセージを送信する手段を備えたメッセージ
    送信機構と、 第2のメッセージを受信すると対応する外部参照カウン
    トを減分する参照カウント機構をさらに有する請求項1
    9に記載のシステム。
  21. 【請求項21】 第2のノードが受信したオブジェクト
    参照に関連付けられたオブジェクトを記憶していない第
    1のノードからオブジェクト参照を受信すると、第3の
    メッセージを関連付けられたオブジェクトを記憶する第
    3のノードへ送信する手段を備えたメッセージ送信機構
    と、 第3のメッセージを受信すると対応する外部参照カウン
    トを増分する参照カウント機構と、 参照カウント機構がオブジェクトへの未処理の参照は残
    っていないと判定するとオブジェクトに関連付けられた
    リソースを再利用するオブジェクト再利用機構をさらに
    有する請求項19に記載のシステム。
JP10183089A 1997-06-30 1998-06-29 高信頼リモート・オブジェクト参照管理の方法とシステム Pending JPH11102299A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/884,978 US6138251A (en) 1997-06-30 1997-06-30 Method and system for reliable remote object reference management
US08/884978 1997-06-30

Publications (1)

Publication Number Publication Date
JPH11102299A true JPH11102299A (ja) 1999-04-13

Family

ID=25385865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10183089A Pending JPH11102299A (ja) 1997-06-30 1998-06-29 高信頼リモート・オブジェクト参照管理の方法とシステム

Country Status (4)

Country Link
US (1) US6138251A (ja)
EP (1) EP0889397A3 (ja)
JP (1) JPH11102299A (ja)
CA (1) CA2241899A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535928B1 (en) * 1997-12-01 2003-03-18 Recursion Software, Inc. Method of determining the timing for reclaiming a remote object
US6721780B1 (en) 1999-11-09 2004-04-13 Fireclick, Inc. Predictive pre-download of network objects
US6678743B1 (en) 1999-11-30 2004-01-13 Recursion Software, Inc. Method for moving objects in a distributed computing environment
US6947965B2 (en) 1999-11-30 2005-09-20 Recursion Software, Inc. System and method for communications in a distributed computing environment
US6968359B1 (en) 2000-08-14 2005-11-22 International Business Machines Corporation Merge protocol for clustered computer system
US7769844B2 (en) * 2000-12-07 2010-08-03 International Business Machines Corporation Peer protocol status query in clustered computer system
FR2818403B1 (fr) * 2000-12-19 2003-03-07 Thomson Csf Procede de gestion de memoire
US7269784B1 (en) 2001-01-22 2007-09-11 Kasriel Stephane Server-originated differential caching
US7185063B1 (en) * 2001-06-22 2007-02-27 Digital River, Inc. Content delivery network using differential caching
US7092997B1 (en) 2001-08-06 2006-08-15 Digital River, Inc. Template identification with differential caching
US7231461B2 (en) * 2001-09-14 2007-06-12 International Business Machines Corporation Synchronization of group state data when rejoining a member to a primary-backup group in a clustered computer system
US6766482B1 (en) 2001-10-31 2004-07-20 Extreme Networks Ethernet automatic protection switching
US7043550B2 (en) * 2002-02-15 2006-05-09 International Business Machines Corporation Method for controlling group membership in a distributed multinode data processing system to assure mutually symmetric liveness status indications
US7296051B1 (en) 2002-02-19 2007-11-13 Digital River, Inc. Predictive predownload of templates with delta encoding
US7487261B1 (en) * 2002-02-22 2009-02-03 Digital River, Inc. Delta caching service
US8549114B2 (en) 2002-06-12 2013-10-01 Bladelogic, Inc. Method and system for model-based heterogeneous server configuration management
AU2003292501A1 (en) * 2002-12-19 2004-07-14 Red Plain Technology Limited A distributed object processing system and method
US7137040B2 (en) * 2003-02-12 2006-11-14 International Business Machines Corporation Scalable method of continuous monitoring the remotely accessible resources against the node failures for very large clusters
US7730522B2 (en) * 2005-05-16 2010-06-01 Microsoft Corporation Self-registering objects for an IPC mechanism
US7774405B2 (en) * 2005-05-16 2010-08-10 Microsoft Corporation Coordination of set enumeration information between independent agents
US7581232B2 (en) * 2005-05-16 2009-08-25 Microsoft Corporation Coordinating reference counting between entities executing within separate address spaces
US7607142B2 (en) * 2005-05-16 2009-10-20 Microsoft Corporation Cancellation mechanism for cooperative systems
US7865914B2 (en) * 2007-03-29 2011-01-04 Microsoft Corporation Cooperative DLL unload
GB2466289A (en) * 2008-12-18 2010-06-23 Veda Technology Ltd Executing a service application on a cluster by registering a class and storing subscription information of generated objects at an interconnect
US8880619B2 (en) * 2009-03-24 2014-11-04 Blackberry Limited Direct access electronic mail (email) distribution and synchronization system with trusted or verified IMAP-Idle implementation
US20120317586A1 (en) * 2010-12-20 2012-12-13 Clevenger Brian Duane Methods of reference counting across multiple processes
US10209979B2 (en) 2015-02-26 2019-02-19 Red Hat, Inc. System and method for distributed revision control
US10467005B2 (en) * 2015-12-15 2019-11-05 International Business Machines Corporation Resilient distributed garbage collection

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3919484A (en) * 1974-03-01 1975-11-11 Rca Corp Loop controller for a loop data communications system
US4679186A (en) * 1984-09-26 1987-07-07 American Telephone And Telegraph Company, At&T Bell Laboratories Alternate self-routing packet switching node having fault detection capabilities
US5113519A (en) * 1989-05-15 1992-05-12 International Business Machines Corporation Maintenance of file attributes in a distributed data processing system
JP3120157B2 (ja) * 1991-07-08 2000-12-25 株式会社日立製作所 環状論理通信路制御方法
US5446901A (en) * 1993-06-30 1995-08-29 Digital Equipment Corporation Fault tolerant distributed garbage collection system and method for collecting network objects
JP3504763B2 (ja) * 1994-08-19 2004-03-08 富士通株式会社 分散システムに使用されるクライアント,サーバ及び記憶装置並びに分散システムにおける資源管理用サーバの復旧方法
US5724503A (en) * 1995-03-31 1998-03-03 Sun Microsystems, Inc. Method and apparatus for interpreting exceptions in a distributed object system
JP2836552B2 (ja) * 1995-11-20 1998-12-14 日本電気株式会社 分散型ネットワーク障害回復装置
US5748892A (en) * 1996-03-25 1998-05-05 Citrix Systems, Inc. Method and apparatus for client managed flow control on a limited memory computer system
US5752028A (en) * 1996-04-03 1998-05-12 Ellacott; Bruce Arthur Object-oriented query mechanism
US5963945A (en) * 1997-06-05 1999-10-05 Microsoft Corporation Synchronization of a client and a server in a prefetching resource allocation system
US5808911A (en) * 1997-06-19 1998-09-15 Sun Microsystems, Inc. System and method for remote object resource management

Also Published As

Publication number Publication date
US6138251A (en) 2000-10-24
EP0889397A3 (en) 2002-01-02
CA2241899A1 (en) 1998-12-30
EP0889397A2 (en) 1999-01-07

Similar Documents

Publication Publication Date Title
JPH11102299A (ja) 高信頼リモート・オブジェクト参照管理の方法とシステム
US8171125B2 (en) Scalable distributed storage and delivery
EP1242882B1 (en) A digital computer system and a method for responding to a request received over an external network
US7546366B2 (en) Data collection in a computer cluster
US6839752B1 (en) Group data sharing during membership change in clustered computer system
US7518983B2 (en) Proxy response apparatus
US20030079155A1 (en) System and method for efficient lock recovery
US20030233594A1 (en) System and method for monitoring the state and operability of components in distributed computing systems
EP1117223A1 (en) Communication protocol
US7453865B2 (en) Communication channels in a storage network
US10819641B2 (en) Highly available servers
EP2939401B1 (en) Method for guaranteeing service continuity in a telecommunication network and system thereof
AU2003225991B2 (en) Retry technique for multi-tier network communication systems
Jia et al. RMP: fault-tolerant group communication
US7627650B2 (en) Short-cut response for distributed services
US8077699B2 (en) Independent message stores and message transport agents
US7421479B2 (en) Network system, network control method, and signal sender/receiver
EP1627316B1 (en) Data collection in a computer cluster
CA2341595A1 (en) Distributed virtual web cache implemented entirely in software
Ye Providing reliable web services through active replication
WO1993018464A1 (en) Distributed processing system
Jia Communicating object group and protocols for distributed systems
Rough et al. The GENESIS Reliable Group Communications Facility
Jia et al. Group Communications
Kaashoek Group Communication in Distributed Operating Systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070116

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070329

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070403

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070918