JP2002505465A - 分散処理システムにおいて記憶領域をリースするための方法及びシステム - Google Patents

分散処理システムにおいて記憶領域をリースするための方法及びシステム

Info

Publication number
JP2002505465A
JP2002505465A JP2000533809A JP2000533809A JP2002505465A JP 2002505465 A JP2002505465 A JP 2002505465A JP 2000533809 A JP2000533809 A JP 2000533809A JP 2000533809 A JP2000533809 A JP 2000533809A JP 2002505465 A JP2002505465 A JP 2002505465A
Authority
JP
Japan
Prior art keywords
lease
server
resource
client
call
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
JP2000533809A
Other languages
English (en)
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
Priority claimed from US09/044,923 external-priority patent/US6263350B1/en
Application filed by サンマイクロシステムズ インコーポレーテッド filed Critical サンマイクロシステムズ インコーポレーテッド
Publication of JP2002505465A publication Critical patent/JP2002505465A/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/46Indexing scheme relating to G06F9/46
    • G06F2209/462Lookup

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】分散処理システムにおいて記憶領域のロケーションをリースする方法及びシステムを提供すること。 【解決手段】本発明に係る方法及びシステムによれば、クライアントは、所定時間の間、システムマネーシ゛ャなどのサーハ゛から記憶領域のロケーションにアクセスするための要求を送出する。これ応答して、サーハ゛は、リースヒ゜リオト゛アルコ゛リス゛ムを呼出し、更に、クライアントが記憶領域のロケーションにどのようなタイミンク゛・長さでアクセスするのかというリースヒ゜リオト゛を決定するために種々の要因を検討する。リースの許可後、サーハ゛は、オフ゛シ゛ェクトをクライアントに送信し、そのオフ゛シ゛ェクトは、クライアントにリースヒ゜リオト゛を報知するとともにクライアントにそのリースを修正するためのふるまい、例えば、リース解除又はリース更新といったふるまいを配信する。サーハ゛は、競合するリース、正確なリース、種々のアクセスタイフ゜のリースをサホ゜ートする。記憶領域のロケーションへの全リースの終了後、サーハ゛は記憶領域のロケーションを再び要求する。

Description

【発明の詳細な説明】
【0001】 (関連出願) 参考のために示すが、本出願は、1996年10月11日提出の米国特許出願No.08/72
9,421の一部継続出願である。 以下に示した参考としての米国特許出願は、本特許出願の根拠となる。 1998年2月26日出願の米国特許仮出願No.60/076,048、発明の名称「分散コンピ
ュータシステム」。 同日出願の米国特許出願No.09/044,838、発明の名称「分散システムにおけるD
elegationCertificatesのリースに用いられる方法、装置及びプロダクト」(代 理人整理番号No.06502.0011-02000)。 同日出願の米国特許出願No.09/044,834、発明の名称「分散システムにおける グループメンバシップのリースに用いられる方法、装置及びプロダクト」(代理
人整理番号06502.0011-03000)。 同日出願の米国特許出願No.09/044,916、発明の名称「故障検出のためのリー ス」(代理人整理番号No.06502.0011-04000)。 同日出願の米国特許出願No.09/044,933、発明の名称「イベントに基づくシス テムにおける振るまい転送方法」(代理人整理番号no.06502.0054-00000)。 同日出願の米国特許出願No.09/044,919、発明の名称「オブジェクトの据え置 き型再構築と分散システムにおけるイベント通知用の遠隔ロード」(代理人整理
番号No.06502.0062-01000)。 同日出願の米国特許出願No.09/044,938、発明の名称「遠隔メソッド呼出用の 方法及び装置」(代理人整理番号No.06502.0102-00000)。 同日出願の米国特許出願No.09/045,652、発明の名称「遠隔メソッドを識別す るための決定論的ハッシュのための方法及びシステム」(代理人整理番号No.065
02.0103-00000)。 同日出願の米国特許出願No.09/044,790、発明の名称「分散システムにおける 遠隔オブジェクトのステータスを判断するための方法及び装置」(代理人整理番
号No.06502.0104-00000)。 同日出願の米国特許出願No.09/044,930、発明の名称「分散システムにおいて 遠隔手続コールに関連付けられた処理を実行するためのダウンロード可能なスマ
ートプロキシ」(代理人整理番号No.06502.0105-00000)。 同日出願の米国特許出願No.09/044,917、発明の名称「遠隔メソッドの停止及 び継続」(代理人整理番号No.06502.0106-00000)。 同日出願の米国特許出願No.09/044,835、発明の名称「データベースにおける マルチエントリ及びマルチテンプレートのマッチングのための方法及びシステム
」(代理人整理番号No.06502.0107-00000)。 同日出願の米国特許出願No.09/044,839、発明の名称「データベースにおける インプレイス・モディフィケーションのための方法及びシステム」(代理人整理
番号No.06502.0108)。 同日出願の米国特許出願No.09/044,945、発明の名称「データベースにおける タイプセイフ属性マッチングのための方法及びシステム」(代理人整理番号No.0
6502.0109-00000)。 同日出願の米国特許出願No.09/044,931、発明の名称「分散システムにおける ダイナミック検索サービス」(代理人整理番号No.06502.0110-00000)。 同日出願の米国特許出願No.09/044,939、発明の名称「分散システムのデバイ スとの情報通信用のダウンロード可能なコードを提供する装置及び方法」(代理
人整理番号No.06502.0112-00000)。 同日出願の米国特許出願No.09/044,826、発明の名称「検索サービスへのアク セスを容易にするための方法及びシステム」(代理人整理番号No.06502.0109-00
000)。 同日出願の米国特許出願No.09/044,932、発明の名称「分散システムにおいて ダイナミックに情報をベリファイするための装置及び方法」(代理人整理番号No
.06502.0114-00000)。 1998年2月26日出願の米国特許出願No.09/030,840、発明の名称「ネットワーク
上におけるダイナミックな分散コンピューティングをするための方法及び装置」
。 同日出願の米国特許出願No.09/044,936、発明の名称「永続的な共有メモリ空 間のための対話型設計ツール」(代理人整理番号No.06502.0116-00000)。 同日出願の米国特許出願No.09/044,934、発明の名称「多相型トークンに基づ く制御」(代理人整理番号No.06502.0117-00000)。 同日出願の米国特許出願No.09/044,915、発明の名称「スタックに基づくアク セス制御」(代理人整理番号No.06502.0118-00000)。 同日出願の米国特許出願No.09/044,944、発明の名称「スタックに基づく安全 性要求」(代理人整理番号No.06502.0119-00000)。 同日出願の米国特許出願No.09/044,837、発明の名称「安全性要求のメソッド の指定」(代理人整理番号No.06502.0120-00000)。
【0002】 (背景技術) A.発明の属する技術分野 本発明は、データ処理システムに関し、更に詳しくは、データ処理システムに
おける記憶領域のリースに関する。
【0003】 B.関連技術の説明 完全なリソース管理は、コンピュータを効率的且つ効果的に利用するために重
要な要素である。一般的には、リソース管理は、リクエストに応じたリソース(
例えば、メモリ)の割当と、リクエスタがもはやリソースを要求しない場合等に
おける適当なタイミングでのリソースの割当解除とを含む。一般的には、リソー
スは、コンピュータ内で実行されるコンピュータ演算可能なエンティティ(例え
ば、アプリケーション、プログラム、アプレット等)により参照されるデータを
保持する。
【0004】 実際には、コンピュータ上で実行するアプリケーションがリソースを参照する
ためにシークする時に、アプリケーションが完全にそれらを参照することができ
るようにするために、コンピュータは、まず最初にリソースを割当又は指定しな
ければならない。アプリケーションがもはやリソースを参照しない時は、コンピ
ュータは、リソースを再使用するために割当解除又は再生することができる。コ
ンピュータの各リソースは、特定の"ハンドル"を有しており、これによって、リ
ソースは参照可能なのである。ハンドルは、種々の方法、例えば、アドレス、配
列インデックス、ユニーク値、ポインタ等により実装することができる。
【0005】 リソース管理は、単一コンピュータでは比較的簡単である。その理由は、リソ
ースが再生されえる時、例えば、アプリケーションがもはやそれらを参照しなく
なった場合や電源に異常が発生した場合を示すイベントが判断しやすいからであ
る。複数コンピュータを連結した分散システム用のリソース管理は、より難しい
。その理由は、種々の異なるコンピュータのアプリケーションが同一のリソース
を使用するからである。
【0006】 分散システムにおけるディスコネクトは、不完全且つ時期尚早なリソースの再
生か、又は、リソースの再生不良を引きおこす場合がある。例えば、分散型シス
テムの異なるコンピュータ上で動作する複数アプリケーションは、他のマシン上
に配置されたリソースを参照することもできる。リソースが配置されているコン
ピュータと、それらのリソースを参照するアプリケーションとの間のコネクショ
ンが絶たれると、コンピュータは時期尚早にリソースを再生することになる。或
いは、コンピュータは、アプリケーションがリソースへのアクセスを失敗すると
、延長ピリオドになっても永久にリソースを維持することになる。
【0007】 これらの問題を解決するために、ネットワークリソースを管理するためのシス
テムが開発され、その一つが"分散型ガベージコレクション"として周知である。
分散型ガベージコレクションは、分散型システム用の言語又はランタイムシステ
ムにより提供される機能を記述し、種々のネットワークコンピュータにおいて動
作する単一又はグループのアプリケーションにより使用されるリソースを自動的
に管理する。
【0008】 一般的には、ガベージコレクションは、リソースがもはやアプリケーションの
どの部分からも参照されなくなったときに、リソースを後の使用のために解放さ
せるという概念を用いている。分散型ガベージコレクションは、分散型コンピュ
ーティングの領域にこの概念を拡張して、あらゆるコンピュータ上のアプリケー
ションが一つもリソースを参照しなくなったときにリソースを再生する。
【0009】 分散型ガベージコレクションは、割当リソースとそれらのリソースへのリファ
レンスとの間の保全性を維持しなければならない。換言すれば、ネットワークの
コンピュータ上で走行するアプリケーションがそのリソースを参照し続ける限り
、システムはリソースの解放又は割当解除を行うことを許可されていない。この
リファレンス−リソースのバインドは、"リファレンスの保全性"と称されるが、
リファレンスが参照するリソースに当該リファレンスが常にアクセスすることを
許可することを保障するものではない。例えば、ネットワーク障害によりアクセ
スが不可能となる。しかしながら、保全性は、リファレンスを使用してあらゆる
リソースへアクセスすることができるならば、リファレンスが最初に付与された
リソースと同一リソースとなることを保障する。
【0010】 ガベージコレクションを使用する分散型システムは、更に、リソースが制限時
間内に参照されない場合には、リソースを再生しなければならない。換言すれば
、システムは、"メモリリーク"に対し保障しなければならない。メモリリークは
、全てのアプリケーションがリソースに対するリファレンスを怠ったときに発生
するものであるが、例えば、いくつかのアプリケーションがそのリソースを参照
中であるという誤った判断が原因になって、システムは再使用を目的とするリソ
ースの再生に失敗する。
【0011】 リファレンスの保全性の故障及びメモリリークは、リソースを参照するアプリ
ケーションと、それらのリソースの割当・割当解除を管理するガベージコレクシ
ョンシステムとの間のディスコネクトに起因することが多い。例えば、リソース
を参照するアプリケーションと、上述のリソースを管理するガベージコレクショ
ンシステムとの間のネットワークコネクション内のディスコネクトは、ガベージ
コレクションシステムがそのリソースを再生すべきか否か・いつ再生すべきかと
いうことを判断するのを妨害する。あるいは、ガベージコレクションシステムは
、アプリケーションが所定時間内にリソースにアクセスしなかったということを
理由として、誤ってそのリソースを収集してしまうという判断をすることもある
。分散型ガベージコレクションのメカニズムを改良するために、多くの技術が利
用されており、例えば、メモリリークを発生させずにリファレンスの保全性を維
持するメカニズムを確保しようとの試みがなされている。従来のアプローチの一
つとして、参照回数を数えるという形態を利用したものがあるが、そのカウント
は、互いのリソースを参照しているアプリケーションの数を数えることによって
なされるものである。リソースのカウント数がゼロになった時にガベージコレク
ションシステムはそのリソースを再生することができる。しかしながら、このよ
うなリファレンスカウント概念による機能は、リソースが対応するリファレンス
カウンタにより生成された場合にのみ有効である。この場合におけるガベージコ
レクションシステムは、リソースのリファレンスカウントをそのリソースを参照
するアプリケーションの数が追加されるに従って増加させ、アプリケーションが
そのリソースを参照しなくなったときに減少させるというものである。
【0012】 しかしながら、リファレンスカウント概念は、とりわけ、分散型システム内で
起こり得る故障に直面しやすいという問題を引き起こす。このような故障は、リ
ソースが参照されなくなったガベージコレクションシステムを通知するメッセー
ジの配信を妨害するというコンピュータ又はアプリケーションの故障又はネット
ワークの故障という形態をとることができる。メッセージがネットワークのディ
スコネクトにより配信されなかった場合には、ガベージコレクションシステムは
、いつそのリソースを再生すべきかが判断できなくなる。
【0013】 このような故障を防止するため、従来のリファレンスカウント概念は、"キー プアライブ"のメッセージを含み、それは、"ピングバック"とも称される。この 概念によれば、ネットワーク内のアプリケーションは、リソースを監視するガベ
ージコレクションシステムにメッセージを送信し、アプリケーションがまだ通信
可能であることを示す。これらのメッセージは、ガベージコレクションシステム
がリソースへの参照を抜かしてしまうのを防止する。このような"キープアライ ブ"のメッセージの受信の故障により、ガベージコレクションシステムは、リソ ースへのリファレンスカウントを減少させることができ、そのカウントがゼロに
なると、ガベージコレクションシステムはリソースを再生する。しかしながら、
このことは、ネットワークの故障に端を発した後、"キープアライブ"のメッセー
ジの受信の失敗に起因してリファレンスカウントがゼロになり、結局、時期尚早
のリソース再生という結果を招く。従って、リファレンスの保全性は確保されな
い。
【0014】 ガベージコレクションシステムにおけるリファレンスの保全性に関する問題を
解決するために、リファレンス回数を保持するだけでなく、更に、リソースを参
照するコンピュータ演算可能な各エンティティに対応する識別子を保持するとい
う他の手法が提案されている。例えば、エイ・ビレル等による"ネットワークオブ
ジェクト用の分散型ガベージコレクション"(No.116デジタルシステムリサーチ センター、1993年12月15日)を参照されたい。この方法は、上述のリファレンス
カウント概念と同様の問題を有するものである。更に、この方法によれば、各リ
ソースを参照するコンピュータ演算可能な各エンティティ用のユニーク識別子の
追加が必要となり、これにより、分散型システム内の通信を不必要に増加させる
オーバーヘッドを追加することになり、記憶領域の追加が必要となる(すなわち
、各リソースを参照するアプリケーションに対応する識別子リスト)。
【0015】 (発明の開示) 本発明によれば、リファレンスの保全性は、所定ピリオドの間、リソースをリ
ースすることにより、コスト高を招くメモリリークを起こすことなく保障される
。その間、分散型システム内の集合、例えば、リソースへのリファレンスを管理
するアプリケーション、そのリソースを管理するガベージコレクションシステム
等がそのリソースを承認すると、そのリソースへのリファレンスが保障される。
リースピリオドの終わりには、リソースへのリファレンスを継続する保障がなく
なり、ガベージコレクションシステムはリソースを再生することが可能になる。
リソースへのリファレンスを保持するアプリケーションとリソースを管理するガ
ベージコレクションシステムとが保障且つ制限されたリースピリオドを承認する
ため、両者は、リース及び保障がいつ終了するかを認識することができる。これ
により、リファレンスのリース期間内においては、リファレンスの保全性が保障
され、ネットワークエラーによるリソース解放の失敗の原因となることが回避さ
れる。リーステクニックは、メモリのみならず他のタイプの記憶領域、例えば、
記憶領域の周辺機器にも適用できる。
【0016】 本発明に係る他の実施の形態は、ここに具体的且つ広い概念で説明されるよう
に、記憶領域のロケーションをリースする方法を提供するものである。この方法
は、記憶領域のロケーションとリースピリオドとを指定する発呼者からのリクエ
ストを受信する工程と、発呼者が指定された記憶領域のロケーションへアクセス
するリースピリオドを決定する工程と、許可されたリースピリオドを発呼者に通
知する工程と、発呼者がその決定されたリースピリオドの間、記憶領域のロケー
ションへアクセスするのを許可する工程と、からなることを要旨とするものであ
る。
【0017】 (発明を実施するための最良の形態) 以下に、本発明の一実施の形態の詳細について添付図面を参照して説明する。
図面及び以下の説明において同一又は略同一の要素を参照する場合には、全体を
通してできる限り同一の符号を用いる。 本発明は、従来の分散型プロセッシングシステムのアーキテクチャに基づいて
構成されたコンピュータに実装することができる。しかしながら、本発明の実装
するためのアーキテクチャ及び手順は、従来のものとは異なる。その理由は、そ
のアーキテクチャ及び手順がリファレンスの保全性を保障するとともに、メモリ
リークを排除するからである。
【0018】A.概要 分散型プロセッシングシステム内の各コンピュータに配置されたメソッド呼出
(MI)コンポーネントは、本発明に係る分散型ガベージコレクション概念を実装
するものである。MIコンポーネントは、数多くのソフトウエアモジュールからな
り、これらのモジュールは、できればJAVATMプログラミング言語によって記述さ
れたものがよい。
【0019】 一般的に、分散型プロセッシングシステム内のアプリケーションが、他のコー
ルに対する返り値としての名前の検索により、或いは、他の方法によって、分散
型リソースへのリファレンスを取得し、当該リソースへアクセスするためにシー
クするたびに、そのアプリケーションは、リソース又はそのリソースを管理する
MIコンポーネントに対してコールする。そのMIコンポーネントは、管理用MIコン
ポーネントと称され、そのリソースへの処理中のリファレンスの数を見失わない
ように監視する。リソースへのリファレンスの数がゼロになると、管理用MIコン
ポーネントは、リソースを再生することができる。リソースへのリファレンス数
は、一般的に、"リファレンスカウント"と称され、リファレンスカウントを増加
させるコールは、"ダーティーコール"と称される。
【0020】 アプリケーションが分散型リソースをもはや要求しない場合には、リソース又
は管理用MIコンポーネントに異なったコールを送信する。このコールを受信する
と、管理用MIコンポーネントは、そのリソース用のリファレンスカウントを減少
させる。リファレンスをドロップさせるこのコールは、"クリーンコール"と称さ
れる。
【0021】 本発明の一実施形態によれば、ダーティーコールは、リソースへのリファレン
スのために、リクエストされたタイムインターバル及びコールされたリースピリ
オドを含むことができる。ダーティーコールを受信すると、管理用MIコンポーネ
ントは、リースが許可されるピリオドを示すリターンコールを送信する。従って
、管理用MIコンポーネントは、処理中のリファレンスの数と同様に、それらのリ
ファレンスのためのリースピリオドを監視する。その結果、リソースへのリファ
レンスカウントがゼロになったとき、又は、リソースへのリースピリオドが終了
したときに、管理用MIコンポーネントは、そのリソースを再生することができる
【0022】B.手順 MIコンポーネント内のアプリケーションコールプロセッサは、図1に示したア
プリケーションコール手順100を実行する。管理用MIコンポーネント内のサー
バコールプロセッサは、図2から図4に示した手順200、300、400の各
工程を実行する。管理用MIコンポーネントのガベージコレクタは、従来の手順を
実行してサーバコールプロセッサからの命令に基づいて既にリファレンスにバイ
ンドされたリソースを再生する。ガベージコレクタの従来の手順については説明
を省略する。
【0023】 1.アプリケーションコールプロセッサ 図1は、分散型プロセッシングシステム内に配置された同一又は他のMIコンポ
ーネントにより管理されるリソースへのリファレンス用のアプリケーションリク
エストを処理するためにう、MIコンポーネントのアプリケーションコールプロセ
ッサが用いる手順100のフローチャートを示したものである。
【0024】 アプリケーションがリソースへのリファレンスを取得した後、アプリケーショ
ンコールプロセッサは、ダーティーコールを送信するが、このダーティーコール
は、そのリソース用の管理用MIコンポーネントに対するリソースへのリファレン
ス、リクエストされたリースピリオドを含む(ステップ110)。ダーティーコ
ールは、リソース又は管理用MIコンポーネントに対するものであればよい。
【0025】 アプリケーションコールプロセッサは、次に、管理用MIコンポーネントコンポ
ーネントからのリターンコールを待ち、これを受信する(ステップ120)。リ
ターンコールは、許可されたリースピリオドを含み、この間、管理用MIコンポー
ネントは、ダーティーコールのリファレンスが、そのリソースへバインドされる
のを保障する。換言すれば、管理用MIコンポーネントは、許可ピリオドにおいて
は、ダーティーコールのリファレンスに対応するリソースを収集しないことに応
じる。管理用MIコンポーネントが許可ピリオドを配信しない場合又はリース用の
リクエストを拒否した場合には、アプリケーションコールプロセッサは、許可ピ
リオドを受信するまで他のダーティーコールを送信しなければならない。
【0026】 アプリケーションコールプロセッサは、アプリケーションによるリファレンス
の使用を監視し、リファレンスがもはや必要ではなくなったことをアプリケーシ
ョンがアプリケーションコールプロセッサに明示的に通知する場合又はアプリケ
ーションコールプロセッサがこの決定をそれ自身で行う場合に(ステップ130
)、アプリケーションコールプロセッサは、クリーンコールを管理用MIコンポー
ネントへ送信する(ステップ140)。ダーティーコールに用いられる方法と同
様の方法で、クリーンコールは、リファレンスされたリソースに対して行うこと
ができ、管理用MIコンポーネントがクリーンコールを処理することになる。その
後に、アプリケーションコールプロセッサは、リファレンスのリストからアプリ
ケーションにより用いられているリファレンスを削除する(ステップ150)。
【0027】 アプリケーションがリファレンスを終えていない場合には(ステップ130)
、アプリケーションコールプロセッサは、リファレンスに対する許可ピリオドが
終了しかけているか否かを判断し(ステップ160)、アプリケーションコール
プロセッサは、ステップ110から120までを繰り返し実行して、アプリケー
ションのかわりに管理用MIコンポーネントにより、リソースへのリファレンスが
管理されることを確保する。
【0028】2.サーバコールプロセッサ MIコンポーネントのサーバコールプロセッサは、3つの主要手順、すなわち、
(1)ダーティーコールの処理、(2)到来するクリーンコールの処理、(3)
適当な時期にリソースを再生するためのガベージコレクションサイクルの初期化
を実行する。
【0029】 (i)ダーティーコール 図2は、リソースをリファレンスするリクエスト、例えば、MIソフトウエアコ
ンポーネントが管理するダーティーコールを処理するために、MIコンポーネント
のサーバコールプロセッサが使用する手順200のフローチャートである。これ
らのリクエストは、分散型プロセッシングシステムのMIコンポーネントのアプリ
ケーションコールプロセッサから到来し、その分散型プロセッシングシステムは
、リクエストを処理するサーバコールプロセッサと同一のMIコンポーネントのア
プリケーションコールプロセッサを包含する。
【0030】 まず、サーバコールプロセッサは、ダーティーコールを受信する(ステップ2
10)。サーバコールプロセッサは、次に、受け入れ可能な許可ピリオドを決定
する(ステップ220)。許可ピリオドは、リクエストされたリースピリオド又
は他のタイムピリオドと同一でもよい。サーバコールプロセッサは、要求された
リソースの量と、同一のリソース用に前に許可された他の許可ピリオドの数とに
基づいて、適当な許可ピリオドを決定する。
【0031】 サーバコールプロセッサは、リソースが未だダーティーコールのリファレンス
に割り当てられていないと判断する場合には(ステップ230)、サーバコール
プロセッサは、要求されたリソースを割り当てる(ステップ240)。
【0032】 サーバコールプロセッサは、次に、ダーティーコールのリファレンスに対応す
るリファレンスカウントを増加し(ステップ250)、受入可能な許可ピリオド
をリファレンス−リソースのバインドに設定し(ステップ260)、許可ピリオ
ドと一緒にリターンコールをアプリケーションコールプロセッサに送信する(ス
テップ270)。このようにして、サーバコールプロセッサは、その制御下でリ
ソースへのリファレンスについて到来するダーティーコールを制御する。
【0033】 アプリケーションは、現在のリースが終了する前にダーティーコールを延長リ
クエストと一緒に送信することによってリースを延長することができる。手順2
00に示したように、リースを延長するためのリクエストは、リース用の初期化
リクエストと同様に取り扱われる。延長は、リソースがリファレンスカウントが
ゼロにならない限り、ただ単にタイムインターバルの追加によっては再生されな
いことを意味する。
【0034】 (ii)クリーンコール MIコンポーネントのサーバコールプロセッサは、アプリケーションコールプロ
セッサから到来するクリーンコールをも処理する。分散型プロセッシングシステ
ム内のアプリケーションがもはやリソースへのリファレンスを要求しなくなった
場合には、アプリケーションは、そのリファレンス用にリソースを管理するMIコ
ンポーネントに、そのリソースが再生して再使用できることを通知する。
【0035】 サーバコールプロセッサは、MIコンポーネントが管理するリソースへのリファ
レンスとクリーンコールとを受信して(ステップ310)、対応するリファレン
スカウントを減少させる(ステップ320)。クリーンコールは、リソースに送
信されるが、その際、サーバコールプロセッサはリソースを監視し、コール処理
のための手順300が実行される。その後、サーバコールプロセッサは、クリー
ンコールを送信したMIコンポーネントに、受信承認としてリターンコールを送信
する。本発明の実装形態によれば、リファレンスをドロップさせるクリーンコー
ルを拒否できないが、承認しなければならない。
【0036】 (iii)ガベージコレクション サーバコールプロセッサは、リソースを再生するためにガベージコレクション
サイクルの初期化をも行う。このため、より多くのリファレンスがリソースに対
してなされていないか又はリソースへの合意済みリースピリオドが終了したかを
判断する。図4に示した手順400は、サーバコールプロセッサがガベージコレ
クションサイクルを初期化するために用いるステップである。
【0037】 サーバコールプロセッサは、リファレンスカウントと許可されたリースピリオ
ドとを監視し、MIコンポーネントによって管理されるリソースへのリファレンス
カウントがゼロなのか又はリファレンス用の許可ピリオドが終了したのかを判断
する(ステップ410)。どちらかの状態が存在する場合には、サーバコールプ
ロセッサは、そのリソースのガベージコレクションを初期化する(ステップ42
0)。そうでない場合には、リファレンスカウントと許可されたリースピリオド
とを監視し続ける。
【0038】C.コールフロー 図5は、分散型プロセッシングシステムのMIコンポーネントにおけるコールフ
ローを説明するための図である。管理用MIコンポーネント525は、リソース5
30へのリファレンスを監視することによりリソース530を管理する(ガベー
ジコレクト505参照)。管理用MIコンポーネント525がリソースを管理する
ため、管理用MIコンポーネント525のサーバコールプロセッサは、このコール
フロープログラムのオペレーションを実行する。
【0039】 図5は、アプリケーション510,540がそれぞれ対応するMIコンポーネン
トコンポーネント515,545を有することをも示す。各アプリケーション5
10,540は、リソース530のうちいずれかへのリファレンスを取得し、シ
ークしてリソース530のうちいずれかとのアクセスを取得し、これにより、リ
ファレンスは対応するリソースへバインドされることになる。アクセスを取得す
るために、アプリケーション510,540は、それぞれ対応するMIコンポーネ
ント515,545を呼び出し、それぞれダーティーコール551,571をMI
コンポーネント525へ送信する。MIコンポーネント515,525は、管理用
MIコンポーネント525等の他のMIコンポーネントにより管理されるリソース5
30へのアクセスを行うためにアプリケーションリクエストを処理するため、MI
コンポーネント515,545のアプリケーションコールプロセッサは、このコ
ールフロープログラムのオペレーションを実行する。
【0040】 ダーティーコール551,571に応答して、管理用MIコンポーネント525
は、それぞれリターンコール552,572を、それぞれMIコンポーネント51
5,545に送信する。ダーティーコールは、ダーティーコール551,571
のリファレンス用に許可されたリースピリオドを含む。
【0041】 同様に、図5は、更に、クリーンコール561,581をそれぞれ管理用MIコ
ンポーネント525に送信するMIコンポーネント515,545を示す。クリー
ンコール561,581は、アプリケーション510,540がそれぞれクリー
ンコール561,581内で指定されたリソースへのアクセスをもはや要求しな
いということを、管理用MIコンポーネント525に対して通知する。管理用MIコ
ンポーネント525は、クリーンコール561,581に対してそれぞれリター
ンコール562,582を用いて応答する。リターンコール562,582は、
リターンコール552,572とは異なり、MIコンポーネント525が受信した
クリーンコール561,581の単なる受信承認に過ぎない。
【0042】 アプリケーション510,540は、両者とも、同一リソースへのアクセスを
要求することができる。例えば、アプリケーション510は、"リソース(1)"へ のアクセスをリクエストすることができるが、一方でアプリケーション540が
、以前にそのリソースへのアクセスが許可されていたということがある。MIコン
ポーネント525は、一致したリースピリオドの間、アプリケーション510,
540の両者に対して有効なリソースを作ることにより、この状況を処理する。
従って、MIコンポーネント525は、アプリケーション510,540の両者が
リソースへのリファレンスをドロップさせるか、最新の一致したピリオドが終了
するかのいずれかが発生するまでは、"リソース(1)"を再生するためにガベージ コレクションサイクルを初期化しないことになる。
【0043】 同一のリソースへ同時にアクセスするために複数のアプリケーションを許可す
ることによって、本発明は、リソースへのリファレンスをドロップさせる管理用
MIコンポーネントへクリーンコールを送信した後に、アプリケーションがリソー
スへアクセスすることをも許可する。これが発生するのは、リソースが依然とし
て他のアプリケーションによって参照されているか、又は、リファレンスのリー
スがまだ終了していないために管理用MIコンポーネント525がまだリソースを
再生していないからである。しかしながら、リソースは、より多くのアプリケー
ションがどれもリースを保持しない場合又は最後のリースが終了した場合に、制
限ピリオドの後、再生されることになる。
【0044】D.MIコンポーネント 図6は、本発明の一実施形態に係るMIコンポーネント600を構成するモジュ
ールのブロック図である。MIコンポーネント600は、監視されるリファレンス
用のリファレンスコンポーネント605、アプリケーションコールプロセッサ6
40、サーバコールプロセッサ650及びガベージコレクタ660を含むことが
できる。
【0045】 リファレンスコンポーネント605は、リファレンスデータポーション610
、リファレンス620、許可ピリオドレジスタ630を備えたテーブル又はこれ
と同様の構造体から構成される。MIコンポーネント600は、対応するリファレ
ンスデータポーション610内で指定された各リファレンス用にリファレンスカ
ウント620と許可ピリオド630とを使用して、対応するリソースを再生する
には、いつガベージコレクタ660を初期化すればよいかを判断する。
【0046】 アプリケーションコールプロセッサ640は、ソフトウエアモジュールであり
、図1に示した手順100の各ステップを実行する。サーバコールプロセッサ6
50は、ソフトウエアモジュールであり、図2から図4に示した手順200,3
00,400の各ステップを実行する。ガベージコレクタ660は、ソフトウエ
アモジュールであり、上述したようにサーバコールプロセッサ650からの命令
に応じてリソースを再生する。
【0047】E.分散型プロセッシングシステム 図7は、本発明を実装するのに使用可能な分散型プロセッシングシステム50
を示したものである。図7においては、分散型プロセッシングシステム50は、
3つの独立した異種のプラットフォーム100,200,300を含み、これら
は、ネットワーク雲55によって表されるネットワークコンフィギュレーション
内で連結されている。図7の雲55により表されるネットワークコンフィギュレ
ーションの構成及びプロトコルは、プラットフォーム700,800,900の
間での情報通信が可能である限り余り重要ではない。加えて、これらの3つのプ
ラットフォームは、説明のために例示したものであるため、本発明におけるプラ
ットフォームの使用を特定数に限定するものではない。更に、本発明については
、専用のネットワークアーキテクチャは重要ではない。例えば、本発明に従って
使用可能な他のネットワークアーキテクチャとしては、あらゆるプラットフォー
ムが連結可能なネットワークコントローラのような単一のプラットフォームを使
用するものでもよい。
【0048】 分散型プロセッシングシステム50の実装においては、プラットフォーム70
0,800,900は、各々、プロセッサ710,810,910をそれぞれ備
えるほか、メモリ750,850,950をそれぞれ備える。各プロセッサ71
0,810,910の各々には、アプリケーション720,820,920、オ
ペレーティングシステム740,840,940、MIコンポーネント730,8
30,930がそれぞれ含まれる。
【0049】 アプリケーション720,820,920は、プログラムにより構成でき、こ
のプログラムは、予め作成されたものを本発明に従って作動するように修正され
たものか又は本発明によって得られるサービスの効果を得るべく専用として作成
されたものであればよい。
【0050】 MIコンポーネント730,830,930は、図6を参照して説明したように
MIコンポーネント600に対応している。
【0051】 オペレーティングシステム70,840,940は、それぞれ対応するプロセ
ッサ710,810,910に連結された標準オペレーティングシステムである
。プラットフォーム700,800,900は、異種でもよい。例えば、プラッ
トフォーム700は、プロセッサ710としてサンマイクロシステムズ インコ
ーポレーテッド製のUltraSparc(登録商標)マイクロプロセッサを備え、Solari
s(登録商標)オペレーティングシステム740を使用している。プラットフォ ーム800は、プロセッサ810としてシリコングラフィックス インコーポレ
ーテッド製のMIPSマイクロプロセッサを備え、Unixオペレーティングシステム8
40を使用している。そして、プラットフォーム900は、プロセッサ910と
してインテル コーポレーテッド製のペンティアムマイクロプロセッサを備え、
マイクロソフトウインドウズ95オペレーティングシステム940を使用してい
る。本発明は、これに限定されるものではなく、異種のプラットフォームを適用
することも可能である。
【0052】 Sun、Sun Microsystems、Solaris、Java、the SunLogoは、米国又はその他の 国におけるサンマイクロシステムズ インコーポレーテッドの商標又は登録商標
である。UltraSparc及び他の全てのSPARC商標は、米国又はその他の国において ライセンス契約の下で使用されており、スパークインターナショナル インコー
ポレーテッドの商標である。SPARC商標を付した製品は、サンマイクロシステム ズ インコーポレーテッドにより開発されたアーキテクチャに基づいたものであ
る。
【0053】 メモリ750,850,950は種々の機能、例えば、関連付けられたプラッ
トフォーム用の全体の記憶領域を提供する。他の機能は、各プロセッサ710,
810,910による実行前に、アプリケーション720,820,920、MI
コンポーネント730,830,930及びオペレーティングシステム720,
840,940を記憶することである。加えて、メモリ750,850,950
の各部分は、ネットワーク50の全プラットフォーム700,800,900に
有効な共有メモリからなる。
【0054】E.メソッド呼出サービス 本発明はクライアント/サーバモデルを使用して実装することができる。クラ
イアントは、ダーティーコール、クリーンコール等のリクエストを生成し、サー
バはリクエストに対して応答を返す。
【0055】 図7に示したMIコンポーネント730,830,930の各々は、クライアン
トコンポーネントとサーバコンポーネントの両者を含む。図8は、クライアント
プラットフォーム1000及びサーバプラットフォーム1100のブロック図で
あり、図7に示したプラットフォーム700,800,900のうちいずれか2
つに適用される。
【0056】 プラットフォーム1000,1100は、それぞれメモリ1050,1150
、プロセッサ1010,1110を保持する。プラットフォーム1000,11
00に含まれる要素は、図7を参照して説明した要素と同様の手法で機能する。
この例においては、プロセッサ1010は、クライアントアプリケーション10
20を実行し、プロセッサ1110は、サーバアプリケーション1120を実行
する。プロセッサ1010,1110は、更に、それぞれオペレーティングシス
テム1040,1140及びMIコンポーネント1030,1130を実行する。
【0057】 MIコンポーネント1030,1130は、各々、サーバコールプロセッサ10
31,1131、アプリケーションコールプロセッサ1032,1132、ガベ
ージコレクタ1033,1133を含む。MIコンポーネント1030,1130
は、その各々が監視する各リファレンスとして、リファレンスデータポーション
1034,1134、リファレンスカウント1035,1135、許可ピリオド
レジスタ1036,1136を含むリファレンスコンポーネントをも含む。
【0058】 アプリケーションコールプロセッサ1032,1132は、それぞれクライア
ントサービスを象徴し、これらの各々は、サーバサービスを象徴するサーバコー
ルプロセッサ1031,1131の各々と情報通信を行う。プラットフォーム1
000,1100は、サーバコールプロセッサ、アプリケーションコールプロセ
ッサ、ガベージコレクタ、リファレンスコンポーネントを保持しているため、プ
ラットフォームは、クライアント又はサーバのいずれかとして動作可能である。
【0059】 しかしながら、問題を解決するためには、プラットフォーム1000はクライ
アントプラットフォームと呼ばれ、プラットフォーム1100はサーバプラット
フォームと呼ばれる。この例においては、クライアントアプリケーション102
0は、分散型リソースへのリファレンスを取得するとともにMIコンポーネント1
030を使用してサーバプラットフォーム1100のMIコンポーネントにより管
理されるリソースへダーティーコールを送信する。
【0060】 更に、サーバプラットフォーム1100は、サーバアプリケーション1120
を実行することができる。サーバアプリケーション1120は、MIコンポーネン
ト1130を使用してダーティーコールを送信することもでき、このダーティー
コールは、ダーティーコールのリソースがMIコンポーネント1130により管理
される場合に、MIコンポーネント1130によって処理される。
【0061】 従って、クライアントプラットフォーム1000のMIコンポーネント1030
用のサーバコールプロセッサ1031、ガベージコレクタ1033及びリファレ
ンスカウンタ1035は、アクティブではなく、図8においては陰を付けて表示
されている。同様に、サーバプラットフォーム1100のMIコンポーネント11
30のアプリケーションコールプロセッサ1132も休止中であるため陰を付し
て表示されている。
【0062】 クライアントアプリケーション1020がリソースに対応するリファレンスを
取得する場合には、アプリケーションコールプロセッサ1032は、ダーティー
コールを送信し、サーバコールプロセッサ1131がこれを受信する。ダーティ
ーコールは、リクエストされたリースピリオドを含む。サーバコールプロセッサ
1131は、ダーティーコール内のリファレンス用にリファレンスカウント11
35を増加し、許可ピリオドを決定する。これに応答して、サーバコールプロセ
ッサ1131は、リターンコールを許可ピリオドとともに、アプリケーションコ
ールプロセッサ1030へ送信する。アプリケーションコールプロセッサ103
2は、許可ピリオドを使用して記録された許可ピリオド1035を更新し、いつ
ダーティーコールのリファレンスに対応するリソースを再生するかを決定する。
【0063】 サーバコールプロセッサ1131は、更に、それが管理するリソースへのリフ
ァレンスに対応するリファレンスカウントと許可ピリオドとを監視する。リファ
レンスカウント1135のうちの一つがゼロになるか、又は、リファレンス用の
許可ピリオド1135が終了するかのいずれか最初のイベントが起こった時に、
サーバコールプロセッサ1131は、ガベージコレクタ1133を初期化して、
ゼロのリファレンスカウント又は終了した許可ピリオドを保持するリファレンス
に対応するリソースを再生することができる。
【0064】 本発明の一実施形態によるリースされたリファレンスの概念は、プラットフォ
ーム1000,1100のプロトコル上でクロックの同期を必要としない。その
概念は、それらが同等の増加周期であることを要求するに過ぎない。リースは、
特定のタイミングでは終了しないが、特定のタイムインターバルで終了するもの
である。そのインターバルがほぼ正確に一致している限り、プラットフォーム1
000,1100は、許可されたリースピリオドについてほぼ正確に一致する。
更に、コンピュータ周期におけるリースタイミングは比較的長いため、クロック
速度のモニタ差異は殆どないか又は影響がない。
【0065】 ダーティーコールの転送時間は、プロトコルに影響を及ぼす。MIコンポーネン
ト1030がリファレンス用のリースを保持し、リースが終了して更新リクエス
トをする直前までウエイトするとすれば、リースは、MIコンポーネント1130
がリクエストを受信する前に終了する。そうだとすれば、MIコンポーネント11
30は、更新リクエストを受信する前にリソースを再生することができる。従っ
て、ダーティーコールを送信する場合には、リソースへのリースピリオドが終了
する前に、更新されたダーティーコールが作成されるようにするために、送信元
では、ダーティーコールのリソースを処理するプラットフォームへの転送時間を
考慮に入れて、リクエストされたリースピリオドにタイムファクターを追加すべ
きである。
【0066】F.結論 本発明による分散型ガベージコレクションの概念によれば、分散型プロセッシ
ングシステムのリソースへのリファレンスに対応する許可されたリースピリオド
を配信することにより、リファレンスの保全性が保障され、メモリリークが排除
される。具体的には、許可されたリースピリオドが終了したときに、リソースへ
のリファレンスを付すことによってなされる。その後、リソースは収集される。
リソースは、分散型プロセッシングシステムのプロセスによってリファレンスさ
れなくなった場合に、リソース用にリファレンスに割り当てられたカウンタへの
リファレンスとともに収集することもできる。
【0067】 [本発明の変形例] 上述したリーステクニックは、ガベージコレクションに関するものである。し
かしながら、以下に説明するように記憶デバイスを使用すれば変形例も実施可能
である。
【0068】 記憶デバイスは、種々の論理的にグループ化されたデータを保持する多くの記
憶ロケーションを備え、それらの論理的にグループ化されたデータは、複数プロ
グラムによって利用可能である。これらの論理的グループ化は、ファイル形態、
データベース形態又はドキュメント形態をとることができる。記憶ロケーション
のリースにより、所定の予め取り決めた時間長さだけ、記憶ロケーションにアク
セス(例えば、読出及び書込アクセス)することができる。どの種類のデータが
記憶ロケーションに保持されているか又は記憶ロケーションが全くデータを保持
していないのかということは、記憶ロケーションのリースに関しては無関係であ
る。記憶ロケーションのリースは、異なったレベルの記憶領域、例えば、データ
ベースフィールド、記憶ブロック、又は、実際の記憶ロケーション等にも適用可
能である。
【0069】 コンピュータシステム又は分散型システムにおいては、多くのプログラムが記
憶ロケーションの種々のグループ内で記憶されたファイルに競合アクセスするこ
とができる。従って、記憶ロケーションのグループは、アクセスが競合する多く
のプログラムを保持することができる。リーステクニックは、このような環境で
の記憶ロケーションの使用を調整するのに使用することができる。
【0070】 ファイル用のデータを保持する記憶ロケーションのグループに対してリースを
使用する場合には、プログラム("クライアント")は、ファイルシステムマネー
ジャ("サーバ")からのリースをリクエストし、所定時間("リースピリオド")
の間、記憶ロケーションのグループへアクセスする。有効性、優先順位及び以下
に説明する他の要因により、サーバは、リクエストを拒むか又はリースピリオド
を許可する。許可されたリースピリオドは、リクエストされた完全なリースピリ
オドでもよいし、その一部分でもよい。一旦、クライアントがリースを受信する
と、クライアントは、リースピリオドの間、記憶ロケーションのグループにアク
セスすることができる。
【0071】 リースピリオドをリクエストする場合には、クライアントは、正確なリースピ
リオドをリクエストすることができる。この状況では、サーバは、リースピリオ
ドが、リクエストされた完全なリースピリオドである場合にのみ、リースを許可
することができ、その一部分のときとは対照的である。
【0072】 リースがアクティブである間、クライアントは、記憶ロケーションのグループ
へのアクセスが保障され、それらに対して読出/書込のオペレーションを実行す
る。同様にして、サーバは、アクティブリースの間には、記憶ロケーションの保
全性を維持する。例えば、リースピリオドの間、サーバは、リースしたファイル
の消去・上書きをさせないほか、リースしたファイルに対してクライアント以外
のエンティティによる影響を与えない。しかしながら、リースが終了すると、サ
ーバは、もはや、クライアントへのファイルの保全性を保障することができない
ため、サーバは、そのファイルを消去するか又はそれを変更し、あるいは、同様
の処理を行う他のクライアントにリースを許可する。サーバにより再生されるの
は、処理中のリースがない記憶ロケーションである。
【0073】 各記憶ロケーションは、関連の限定パラメータ、例えば、アクセスパラメータ
又は特権パラメータを保持可能である。アクセスパラメータは、その記憶ロケー
ション用にサーバがサポートするアクセスのタイプを決定する。例えば、記憶ロ
ケーションは、読出アクセスオンリーと定義することができる。この場合、サー
バは、特定の記憶ロケーションに対して許可されたリース用の読出アクセスのみ
を許可する。逆に言えば、その記憶ロケーションへクライアントが書込しようと
しても、サーバにより許可されない。他の記憶ロケーションのアクセスパラメー
タとしては、書込アクセス、割当アクセス、再割当アクセス及びサブブロックア
クセス(すなわち、大きな記憶ブロック用)を含むことができる。
【0074】 関連する特権パラメータは、クライアントがリースを許可される前に保持すべ
き特権レベルを指定する。サーバは、特権パラメータを使用して競合するリース
のリクエストの優先順位を付ける。換言すれば、サーバが同一の記憶ロケーショ
ンに対して複数の処理中のリースリクエストを保持する場合には、サーバは、リ
クエストを行うクライアントの特権レベルに基づいてリクエストに優先順位を付
ける。
【0075】 当該他の実施形態はまた、同一の記憶ロケーションに対する複数の競合リース
を許可することにより、記憶ロケーションのグループへの競合アクセスをサポー
トする。例えば、特定の記憶ロケーションのパラメータが"読出"アクセスを指定
するとすれば、サーバは、その記憶ロケーションへ当該記憶ロケーションの保全
性を破壊することなく、複数の競合するリースを許可することができる。競合す
るリースは、例えば、大きいサイズのファイルへも適用されることになる。サー
バは、そのより大きいサイズのファイルの保全性に悪影響を及ぼすことなく、よ
り小さいサイズのファイルのサブブロックへリースを許可するにすぎない。
【0076】 クライアントが一旦リースをリクエストすると、サーバは、クライアントにオ
ブジェクトを返すが、そのオブジェクトは、リース時間の決定メソッド、リース
更新メソッド及びリースのキャンセルメソッドを含む。オブジェクトは、クラス
のインスタンスであり、より多くのファンクションを提供するために多くの手法
で拡張することができるが、ベーシッククラスは以下の表1のように定義される
【表1】
【0077】 特に、"期間取得"メソッドは、許可されたリースピリオドの長さをクライアン
トに配信する。このピリオドは、サーバにより許可された最新のリースを表して
いる。しかしながら、リース上で処理中の時間量の決定は、クライアントの応答
性によるところとなる。
【0078】 "更新"メソッドは、クライアントがリースを更新するのを許可するものであり
、オリジナルリースリクエストを再初期化することなく、より多くの時間を要求
することができる。クライアントがリースの更新を所望する場合としては、オリ
ジナルリースが不十分になった場合(すなわち、クライアントがより多くの記憶
ロケーションの使用を要求する場合)や、一部のリースのみが許可された場合(
すなわち、要求されたリースより少ない場合)がある。
【0079】 クライアントは、更新メソッドを使用して、追加的なリースピリオドを要求す
るか又は多くの追加のリースピリオドが許可されるまで、継続的に更新メソッド
を何度も呼び出す。更新メソッドには戻り値がない;更新が許可されると、新た
なリースピリオドは、コールを行ったリースオブジェクトに反映される。サーバ
がリースを更新することができない場合又は更新しようとしない場合には、その
原因が更新メソッドにより生成されたLeaseDeniedExceptionに示される。
【0080】 最終的には、クライアントは、当該クライアントがリースをキャンセルしたい
とする場合に"キャンセル"メソッドを呼び出すが、リース上にはまだ時間が残っ
ている。従って、キャンセルにより、サーバは、記憶ロケーションを再生するこ
とができ、他のプログラムがそれらにアクセスすることができるようになる。従
って、キャンセルメソッドにより、サーバは、分散型システム内で記憶ロケーシ
ョンの使用を最適化することができる。これに対し、リースが終了までくると(
すなわち、正常終了)、サーバは、記憶ロケーションの制御に戻ることになる。
従って、クライアントは、リースの正常終了をサーバに通知する義務はない。
【0081】 図9は、本発明の他の実施形態に用いて好適なデータプロセッシングシステム
9000を示したものである。データプロセッシングシステム9000は、イン
ターネット9002に連結されたコンピュータシステム9001を含む。コンピ
ュータシステム9001は、メモリ9003、補助記憶デバイス9004、中央
処理ユニット(CPU)9006、入力デバイス9008及びビデオディスプレイ 9010を含む。メモリ9003は、更に、オペレーティングシステム9012
及びプログラム("クライアント")9014を含む。オペレーティングシステム
9012は、ファイルシステムマネージャ("サーバ")9016を保持し、これ
が補助記憶デバイス9004のファイル9018を管理する。クライアント90
14は、サーバ9016からリースをリクエストすることによって一又は複数の
ファイル9018へのアクセスをリクエストする。これに応えて、サーバ901
6は、後述するように、リースの許可又は拒否のいずれかを選択することができ
る。コンピュータ9000は、追加の又は異なるコンポーネントを保持するもの
でもよく、このことは、いわゆる当業者にとって周知である。
【0082】 上述した変形例の要旨は、メモリ9003に記憶させたものとして説明したが
、いわゆる当業者にとっては、これらの要旨を他のコンピュータ読取可能な媒体
、例えば、補助記憶装置(ハードディスク、フロッピーディスク、コンパクトデ
ィスク・読出オンリメモリ);インターネット9002からの伝送波;又はラン
ダムアクセスメモリや読出オンリメモリ等の他の媒体、に記憶させてもよいこと
は周知である。更に、いわゆる当業者にとっては、他のデータ形態、例えば、デ
ータベース、スプレッドシート、ドキュメント等の形態を補助記憶デバイスにお
けるリース用に使用可能であることは周知である。
【0083】 図10A及び図10Bは、クライアントがサーバからのリースをリクエストす
る場合に当該クライアントによって実行されるステップのフローチャートを示し
たものである。クライアントによって実行される最初のステップは、リースのリ
クエストをサーバに送信することである(ステップ1002)。このリクエスト
は、ファンクションコールであり、(1)クライアントがリースしようとしている リクエストされた記憶ロケーション、(2)所望のリースピリオド、(3)正確なリー
スインジケータ、(4)クライアントが所望するアクセスタイプ、及び、(5)クライ
アントの特権、を含む多くのパラメータを含む。
【0084】 リクエストされた記憶ロケーションは、リースされるべき記憶ロケーションの
表示を保持する。所望のリースピリオドは、クライアントが記憶ロケーションを
利用しようと欲する時間長さを保持する。正確なリースリクエストは、正確なリ
ースリクエストがなされているか又はリクエストされた時間よりも短いリースで
十分であるかの表示を保持する。リクエストされたアクセスタイプは、クライア
ントがリクエストした記憶ロケーションアクセスのタイプを表示する。アクセス
タイプは、読出アクセス、ライトアクセス、割当アクセス、再割当アクセス、サ
ブブロックアクセス(すなわち、大きなサイズの記憶ブロック用)を含む。特権
フィールドは、ユーザ又はクライアントの特権レベルを表示する。有効なリクエ
ストを形成するためには、クライアントリクエストは、リクエストされた記憶ロ
ケーション及び所望のリースピリオドの両者を保持しなければならない。
【0085】 記憶ロケーションへのリースリクエストを生成するには、一般的に2つのシナ
リオがある。第一のシナリオは、ファイルが生成されたときに起こる。ファイル
を生成するのに使用される生成コマンドは、ファイルへアクセスするために、サ
ーバにリースリクエストを生成させる。新しいファイルをリース技術によって調
節するための必要条件は、記憶ロケーションが不明確なものを保持しないことを
保障する。従って、サーバは、新たなファイルに対して長時間の又は不明確なリ
ースを許可しようとはしない。第二のシナリオは、クライアントが既存の記憶ロ
ケーション又は既存リースを保持するファイル(すなわち、競合するリース)へ
アクセスしようとする場合に起こる。
【0086】 リクエストを送信した後、クライアントは、サーバからリースオブジェクトを
受信したか否かによって、リースが許可されたか否かを決定する(ステップ10
006)。リースオブジェクトは、上述したように、ファイルハンドル、期間取
得メソッド、更新メソッド、キャンセルメソッドを含む種々の情報を保持する。
サーバが何らかの理由でリースを拒否する場合には、サーバは、クライアントの
種々の例外ハンドラにより処理される例外処理を生成する。
【0087】 リースが不完全リクエストの理由で許可されない場合には(ステップ1000
8)、クライアントの例外ハンドラが呼び出され、リクエストが再構築された後
(ステップ10010)、処理はステップ10002へ続くことになる。不完全
なリクエストは、大きすぎるリースピリオドリクエスト又は不明の記憶ロケーシ
ョンへのリースリクエストを含む。リクエストが不完全であるとすると、クライ
アントは、リクエストを再構築して有効リクエストを生成する。例えば、サーバ
が正確なリースリクエストを許可することができなかった場合には、クライアン
トは、そのリクエストを再構築して、より少ないリースピリオドとすることがで
きるし、又は、リクエストが不明確な記憶ロケーションであった場合には、クラ
イアントは、リクエストを再構築して明確な記憶ロケーションとすることができ
る。
【0088】 しかしながら、記憶ロケーションが他のクライアントによりリースされている
という理由で、リースが許可されなかった場合には(ステップ10012)、例
外ハンドラが呼び出され、所定時間ウエイトした後(ステップ10014)、処
理はステップ10002へ引き継がれる。
【0089】 しかしながら、サーバは、リースリクエストをキューに入れることもできる。
この場合には、所定時間ウエイトした後、リースが許可されたということを呈示
する応答を受信した場合に、クライアントは決定する。リースがその後許可され
ると、処理は、図10Bのステップ10024へ続くことになる。リースが許可
されなかった場合には、クライアントは、ウエイトした後、ステップ10002
へ続くことになる。
【0090】 クライアントが、ステップ10006においてリースリクエストがうまくいっ
たと判断した場合には、クライアントは、アクティブリースを保持することにな
る。この時点においては、クライアントは、リースによってカバーされた記憶ロ
ケーションへアクセスすることができる(ステップ10024)。記憶ロケーシ
ョンへアクセスした後、クライアントは、記憶ロケーションへのアクセスが終了
すると判断を行う(ステップ10026)。クライアントが記憶ロケーションへ
のアクセスを終了すると、クライアントは、リースが終了したかどうか判断する
(ステップ10028)。リースが終了すると、処理は終了し、クライアントと
サーバとの間での情報通信は不要となる(すなわち、正常終了が発生する)。一
方、リースが既にアクティブである場合には、クライアントは、キャンセルメソ
ッドを呼び出す(ステップ10030)。クライアントは、最適化の目的でこれ
を行う。クライアントは、リースオブジェクトを経由してキャンセルメソッドに
アクセスする。キャンセルメソッドは、サーバに、クライアントはもはや記憶ロ
ケーションには関係がないことをサーバに通知する。従って、キャンセルメソッ
ドにより、サーバは、迅速に、他のプログラムによって使用するために記憶ロケ
ーションを再生することができる。
【0091】 リースされたファイルのクライアントの使用が完了していない場合には、クラ
イアントは、リースが終了するときか否かを判断する(ステップ10032)。
その時点の時間長さとリース時間とを比較することによりクライアントによって
なされる。リース期間は、期間取得メソッドを呼び出すことによって知ることが
できる。リースが終了しない場合には、クライアントは、ステップ10024に
おいて記憶ロケーションへアクセスし続けることになる。しかしながら、リース
が終了する場合には、クライアントは、リースを更新すべきか否かを決定しなけ
ればならない(ステップ10034)。クライアントがリースを更新することを
選択した場合には、クライアントは、リースオブジェクトの更新メソッドを呼び
出す。更新メソッドが呼び出されると、処理はステップ10024へ続いていく
。クライアントがリースを更新しない場合には、処理は終了し、クライアントと
サーバとの間での情報通信は不要となる(正常終了)。
【0092】 図11は、クライアントがリースを要求した場合に、サーバによって実行され
るステップのフローチャートを示したものである。これらのステップは、クライ
アントがファイルを生成したとき、既にリースを保持するファイル上でリースを
リクエストしたとき、又は、更新メソッドを呼び出すときに、呼び出すことがで
きる。サーバによって実行されるこの第一のステップは、クライアントによるリ
ースリクエストを受信することである(ステップ11002)。リクエストを受
信した後、サーバは、パラメータを調べてリクエストの適否を確かめる(ステッ
プ11004)。
【0093】 パラメータを調べた後、サーバは、リクエストが完全か否かを判断する(ステ
ップ11006)。例えば、サーバは、リクエストされた記憶ロケーションが本
物の記憶ロケーションであるか否か、また、クライアントが十分な特権レベルを
所有しているか否かをチェックするまた、サーバは、所望のリースピリオドが指
定されたことを確かめる。更に、サーバは、リクエストされたアクセスのタイプ
が有効であるか否かをチェックする。サーバがリースリクエストが不完全である
と判断した場合には、サーバは、例外処理を生成し、適当なクライアントイベン
トハンドラ(ステップ11008)を移動させ、処理が終了する。
【0094】 リクエストが完全である場合には、サーバは、リースピリオドアルゴリズム(
"LPA")を実行し、許可されるべきリースピリオドを決定する(ステップ110 10)。LPAは、クライアントの所望するリースピリオドから全くリースのない という状態まで変化するリースピリオドを生成する。LPAは、リースピリオドを 決定するに際して多くのファクターを考慮にいれるが、これらのファクターには
、更新メソッドから初期化されたリクエストか否か、生成インストラクション又
は次のリースリクエストか、クライアントの使用パターン、記憶ロケーションの
需要、記憶ロケーションのサイズ(大きなグルーピング)が含まれる。更に、LP
Aは、記憶ロケーションの値を考慮することができる。例えば、特定の記憶ロケ ーションがアクセスするのに費用がかかり、又は、高い需要がある場合には、LP
Aは、短いリースのみを許可することができる。
【0095】 一旦、LPAがリースピリオドを決定すると、サーバは、リースピリオドが許
可されたか否か(すなわち、ゼロより大きいか否か)を判断する(ステップ11
012)。リースピリオドが一つも許可されなかった場合には、サーバは、例外
処理を生成し(ステップ11008)、処理が終了する。上述したように、サー
バは、リースリクエストをキューに入れることもできる。この場合には、サーバ
は、その後の処理のためにリースリクエストを記憶する。
【0096】 LPAがリースピリオドを許可した場合には、サーバは、正確なリースがクライ アントによってリクエストされたか否かを判断する(ステップ11016)。正
確なリースがクライアントによりリクエストされた場合には、サーバは、LPAに よって許可されたリースピリオドがリクエストされたリースピリオドよりも小さ
いか否かを判断する(ステップ11018)。LPAによって許可されたリースが 正確にリクエストされたリースピリオドよりも小さい場合には、サーバは、例外
処理を生成し(ステップ11008)、処理が終了する。
【0097】 正確なリースがリクエストされなかった場合、又は、正確なリースが許可され
た場合には、サーバは、リースオブジェクトを生成し、それをクライアントに返
す(ステップ11020)。サーバは、アクティブリースピリオドを監視するこ
とにより、リースされた記憶ロケーションを再生するが、当該記憶ロケーション
は、これに付属するアクティブリースをもはや保持しない。
【0098】 以上本発明の実施例について一例を示す目的で説明した。本発明は、開示した
正確な形態によって用い尽くされるものではなく、また、これに限定されるもの
ではない。上述の開示により導き出される事項や、本発明の実施に際し必要な事
項から、種々の改良例や変形例が可能である。例えば、開示した実施形態は、ソ
フトウエアを含むものであるが、本発明は、ハードウエアとソフトウエアの組合
せや、ハードウエアとして実施することもできる。本発明の範囲は、特許請求の
範囲及びこれを裏付ける記載によって定まるものである。
【図面の簡単な説明】
【図1】 図1は、本発明の一実施の形態に係るアプリケーションコールプロセッサによ
って実行される工程のフローチャートである。
【図2】 図2は、本発明の一実施の形態に係るダーティーコールを処理するサーバコー
ルプロセッサによって実行される工程のフローチャートである。
【図3】 図3は、本発明の一実施の形態に係るクリーンコールを処理するサーバコール
プロセッサによって実行される工程のフローチャートである。
【図4】 図4は、本発明の一実施の形態に係るガベージコレクション処理を初期化する
サーバコールプロセッサによって実行される工程のフローチャートである。
【図5】 図5は、分散型プロセッシングシステムにおけるコールの好適なフローを示し
た図である。
【図6】 図6は、本発明に係るメソッド呼出サービスに実装されるコンポーネントを示
したブロック図である。
【図7】 図7は、本発明の一実施形態において使用される分散型プロセッシングシステ
ムの構成を示した図である。
【図8】 図8は、本発明の一実施形態に係る分散型プロセッシングシステムのプラット
フォームに含まれる個々のソフトウエアコンポーネントを示した図である。
【図9】 図9は、本発明の他の実施形態において使用される分散型プロセッシングシス
テム内で記憶領域のロケーションをリースするためのデータプロセッシングシス
テムを示した図である。
【図10A】 図10Aは、本発明の他の実施形態に係り、サーバからのリースをリクエスト
した場合にクライアントによって実行される工程を示したフローチャートである
【図10B】 図10Bは、本発明の他の実施形態に係り、サーバからリースをリクエストし
た場合にクライアントによって実行される工程を示したフローチャートである。
【図11】 図11は、本発明の他の実施形態に係り、クライアントがリースをリクエスト
した場合に、サーバによって実行される工程を示したフローチャートである。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年4月18日(2000.4.18)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0001
【補正方法】変更
【補正内容】
【0001】 (関連出願) 参考のために示すが、本出願は、1998年11月3日に発行された米国特許No.5,83
2,529号、発明の名称「分散型ガーベジコレクションのための方法、装置及びプ ロダクト」の関連出願である。また、本出願は、2000年1月18日に発行された米 国特許No.6,016,500号、発明の名称「故障検知のためのリース」の関連出願であ
る。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GD,GE,GH,GM ,HR,HU,ID,IL,IN,IS,JP,KE, KG,KP,KR,KZ,LC,LK,LR,LS,L T,LU,LV,MD,MG,MK,MN,MW,MX ,NO,NZ,PL,PT,RO,RU,SD,SE, SG,SI,SK,SL,TJ,TM,TR,TT,U A,UG,UZ,VN,YU,ZW (72)発明者 ウォルド ジェイムズ エイチ アメリカ合衆国、01826 マサチューセッ ツ州、ドラカット、ルビー ロード 155 (72)発明者 アーノルド ケネス シー アール シー アメリカ合衆国、02173 マサチューセッ ツ州、レキシントン、ムーン ヒル ロー ド 7 Fターム(参考) 5B045 DD03 EE03 EE23 5B060 AA10 AA14 AC11 CA08 KA01 KA02 5B098 AA03 AA10 GA01 GD03 GD14 GD22

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 記憶領域の一部分を指定する発呼側からのアクセスリクエス
    トを受信して、リクエストされたリースピリオドを指定する指定工程と、 発呼側が記憶領域の一部分へアクセスするリースピリオドを決定する決定工程
    と、 決定されたリースピリオドを発呼者に通知する通知工程と、 発呼者がその決定されたリースピリオドの間、記憶領域の一部分へアクセスす
    るのを許可する許可工程とからなることを特徴とする記憶領域を備えたコンピュ
    ータシステムにおけるリース方法。
JP2000533809A 1998-02-26 1999-02-17 分散処理システムにおいて記憶領域をリースするための方法及びシステム Pending JP2002505465A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7604898P 1998-02-26 1998-02-26
US60/076,048 1998-02-26
US09/044,923 1998-03-20
US09/044,923 US6263350B1 (en) 1996-10-11 1998-03-20 Method and system for leasing storage
PCT/US1999/003394 WO1999044125A1 (en) 1998-02-26 1999-02-17 Method and system for leasing storage

Publications (1)

Publication Number Publication Date
JP2002505465A true JP2002505465A (ja) 2002-02-19

Family

ID=26722161

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000533809A Pending JP2002505465A (ja) 1998-02-26 1999-02-17 分散処理システムにおいて記憶領域をリースするための方法及びシステム

Country Status (6)

Country Link
EP (1) EP1057105B1 (ja)
JP (1) JP2002505465A (ja)
CN (1) CN1298516A (ja)
AU (1) AU2770199A (ja)
DE (1) DE69907874T2 (ja)
WO (1) WO1999044125A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6917976B1 (en) * 2000-05-09 2005-07-12 Sun Microsystems, Inc. Message-based leasing of resources in a distributed computing environment
WO2002091881A1 (en) 2001-05-16 2002-11-21 Delta Tooling Co., Ltd. Seat
US20040059704A1 (en) * 2002-09-20 2004-03-25 International Business Machines Corporation Self-managing computing system
GB2408361B (en) * 2003-11-21 2007-07-25 Symbian Ltd Allocation of resources in a computing device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939638A (en) * 1988-02-23 1990-07-03 Stellar Computer Inc. Time sliced vector processing
US5353343A (en) * 1992-04-30 1994-10-04 Rockwell International Corporation Telephonic switching system with a user controlled data memory access system and method

Also Published As

Publication number Publication date
EP1057105A1 (en) 2000-12-06
WO1999044125A1 (en) 1999-09-02
AU2770199A (en) 1999-09-15
DE69907874D1 (de) 2003-06-18
CN1298516A (zh) 2001-06-06
EP1057105B1 (en) 2003-05-14
DE69907874T2 (de) 2004-03-04

Similar Documents

Publication Publication Date Title
US6263350B1 (en) Method and system for leasing storage
US6421704B1 (en) Method, apparatus, and product for leasing of group membership in a distributed system
JP2002505470A (ja) 分散型システムにおける委譲認証のリースの方法、装置及びプロダクト
US6499049B2 (en) Lease renewal service
US6728737B2 (en) Method and system for leasing storage
JP2002505465A (ja) 分散処理システムにおいて記憶領域をリースするための方法及びシステム
JP2002505468A (ja) 故障検知用のリース
EP1057106B1 (en) Method, apparatus, and product for leasing of group membership in a distributed system
US20060047686A1 (en) Apparatus, system, and method for suspending a request during file server serialization reinitialization
JP2002505472A (ja) 分散システムにおいてリモート・オブジェクトの状態を判断するための方法および装置
KR20010041228A (ko) 기억장소의 리스 방법 및 시스템
Studdert et al. The architecture of a distributed computer system