JP2002503846A - あるノードのキャッシュから別のノードのキャッシュへデータを転送するための方法および装置 - Google Patents

あるノードのキャッシュから別のノードのキャッシュへデータを転送するための方法および装置

Info

Publication number
JP2002503846A
JP2002503846A JP2000531781A JP2000531781A JP2002503846A JP 2002503846 A JP2002503846 A JP 2002503846A JP 2000531781 A JP2000531781 A JP 2000531781A JP 2000531781 A JP2000531781 A JP 2000531781A JP 2002503846 A JP2002503846 A JP 2002503846A
Authority
JP
Japan
Prior art keywords
resource
copy
cache
version
database server
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.)
Granted
Application number
JP2000531781A
Other languages
English (en)
Other versions
JP2002503846A5 (ja
JP3815967B2 (ja
Inventor
バンフォード,ロジャー・ジェイ
クロッツ,ボリス
Original Assignee
オラクル コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オラクル コーポレーション filed Critical オラクル コーポレーション
Publication of JP2002503846A publication Critical patent/JP2002503846A/ja
Publication of JP2002503846A5 publication Critical patent/JP2002503846A5/ja
Application granted granted Critical
Publication of JP3815967B2 publication Critical patent/JP3815967B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/912Applications of a database
    • Y10S707/913Multimedia
    • Y10S707/915Image
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 資源をディスクに最初に書込むことなしにあるデータベースサーバのキャッシュから別のデータベースサーバのキャッシュへ資源を転送するための方法および装置を提供する。データベースサーバ(要求者)が資源を変更したい場合、要求者は資源のカレントバージョンを要求する。カレントバージョンを有するデータベースサーバ(ホルダ)は、カレントバージョンを要求者に直接発送する。バージョンを発送すると、ホルダは資源を変更する許可を失うが、引続きメモリ内に資源を保持する。資源の保持されたバージョンまたはその後のバージョンがディスクに書込まれると、ホルダは資源の保持されたバージョンを廃棄することができる。他の態様では、ホルダは保持されたバージョンを廃棄しない。この技術を用いて、単一サーバの障害は、資源へアクセスしたさまざまなデータベースサーバの復旧ログをマージする必要なしに復旧される。

Description

【発明の詳細な説明】
【0001】
【発明の分野】
この発明は、あるノードがデータストアからデータを要求するとき要求された
データの最も最近のバージョンが別のノードのキャッシュ内にあるときことに関
連付けられるペナルティを低減するための技術に関する。
【0002】
【発明の背景】
スケーラビリティを向上させるため、データベースシステムの中には、(各々
が別個に稼動する)2つ以上のデータベースサーバがディスクメディア上に記憶
されるなど、共有の記憶装置に同時にアクセスすることを可能にするものがある
。各データベースサーバは、ディスクブロックなどの、共有資源をキャッシュす
るためのキャッシュを有する。そのようなシステムをここではパラレルサーバシ
ステムと呼ぶ。
【0003】 パラレルサーバシステムに関連付けられる問題の1つに、「ピング」と呼ばれ
るものの可能性がある。あるサーバのキャッシュ内にある資源のバージョンが異
なったサーバのキャッシュに与えられなければならないとき、ピングは起きる。
したがって、ピングが起きるのは、データベースサーバAがそのキャッシュ内の
資源xを変更した後、データベースサーバBが資源xの変更を要求するときであ
る。データベースサーバAおよびBは、典型的には、異なったノード上で稼動す
るが、場合によっては同じノード上で稼動することもあり得る。
【0004】 ピングを処理するアプローチの1つを、ここでは「ディスク介入」アプローチ
と呼ぶ。ディスク介入アプローチは、中間的記憶装置としてディスクを使用して
2つのキャッシュ間で資源の最新バージョンを転送する。したがって、上記の例
では、ディスク介入アプローチは、データベースサーバ1が資源Xのそのキャッ
シュバージョンをディスクに書込み、データベースサーバ2がこのバージョンを
ディスクからそのキャッシュへと検索することを必要とする。ディスク介入アプ
ローチは、資源のサーバ間転送ごとに2ディスクI/Oを必要とするので、パラ
レルサーバシステムのスケーラビリティが制限される。具体的には、ピングを処
理するために必要とされるディスクI/Oは、比較的不経済で時間がかかり、シ
ステムに加えられるデータベースサーバの数が多ければ多いほど、ピングの数も
多くなる。
【0005】 しかしながら、ディスク介入アプローチは、単一のデータベースサーバの障害
からの比較的効率よい復旧を提供する、というのもそのような復旧が必要とする
のは障害の発生したデータベースサーバの復旧(再実行)ログを適用するだけで
あるからである。障害の発生したデータベースサーバの再実行ログを適用すると
、障害の発生したデータベースサーバ上のトランザクションが障害の発生したサ
ーバのキャッシュ内の資源に加えた、かかわった変更はすべて確実に復旧される
。復旧の間の再実行ログの使用は、1997年1月21日出願の「復旧可能オブ
ジェクト内のキャッシングデータ」(“CACHING DATA IN RECOVERABLE OBJECTS ”)と題する米国特許出願連続番号第08/784,611号に詳細に記載され
、その内容はここに引用により援用される。
【0006】 ディスク介入アプローチを採用するパラレルサーバシステムは、典型的には、
資源アクセスおよび変更に関するグローバルな調停のすべてが分散ロックマネー
ジャー(DLM)によって行なわれる場合のプロトコルを使用する。例示的DL
Mの動作は、1996年6月24日出願の「ロックキャッシングのための方法お
よび装置」(“METHOD AND APPARATUS FOR LOCK CACHING”)と題する米国特許 出願連続番号第08/669,689号に詳細に記載され、その内容はここに引
用により援用される。
【0007】 典型的な分散ロックマネージャーシステムでは、任意の所与の資源に属する情
報は、資源に対応するロックオブジェクト内に記憶される。各ロックオブジェク
トは、単一のノードのメモリ内に記憶される。ロックオブジェクトが記憶されて
いるノード上にあるロックマネージャーは、そのロックオブジェクトおよびそれ
がカバーする資源のマスタと呼ばれる。
【0008】 ピングを処理するためにディスク介入アプローチを採用するシステムでは、ピ
ングは、さまざまなロックが関係する通信においてDLMを必要とする。具体的
には、データベースサーバ(「要求サーバ」)が資源のアクセスを必要とすると
き、データベースサーバは、それが適切なモード、すなわち、読出の場合には共
有され、書込の場合には排他的であるモードにロックされた所望の資源を有する
かどうかをチェックする。もし要求データベースサーバが正しいモードにロック
された所望の資源を有していなければ、または、資源に全くロックがされていな
ければ、要求サーバは、資源のマスタに要求を送信して特定のモードのロックを
獲得する。
【0009】 要求データベースサーバによってなされた要求は、資源の現在の状態と競合す
ることがある(たとえば、別のデータベースサーバが資源に対する排他的なロッ
クを現在保持している可能性がある)。もし競合がなければ、資源のマスタは、
ロックを許可し許可を登録する。競合の場合には、資源のマスタは、競合解決プ
ロトコルを開始する。資源のマスタは、競合するロックを保持するデータベース
サーバ(「ホルダ」)に、下位の互換性のあるモードにそのロックをダウングレ
ードするよう命令する。
【0010】 不幸にも、もしホルダ(たとえば、データベースサーバA)が所望の資源の更
新された(「ダーティ」)バージョンをそのキャッシュ内に現在持っていなけれ
ば、それはそのロックを即座にダウングレードできない。そのロックをダウング
レードするために、データベースサーバAは、「ハードピング」プロトコルと呼
ばれるものを経る。ハードピングプロトコルに従って、データベースサーバAは
、ディスクに書込まれるべき更新に関連付けられる再実行ログを強制し、資源を
ディスクに書込み、そのロックをダウングレードし、データベースサーバAが完
了したことをマスタに通知する。通知を受取ると、マスタは、ロック許可を登録
し、要求されたロックが許可されたことを要求サーバに通知する。この時点で、
要求サーバBは、ディスクからそのキャッシュ内に資源を読出す。
【0011】 上述したとおり、ディスク介入アプローチによっては、あるデータベースサー
バによって更新された資源(「ダーティ資源」)を別のデータベースサーバに直
接発送することはできない。そのような直接発送は、復旧に関連する問題のため
に、実行可能性がないと考えられる。たとえば、資源がデータベースサーバAで
変更されてから、データベースサーバBに直接発送されたと仮定する。データベ
ースサーバBでも、資源は変更され、データベースサーバAに発送し返される。
データベースサーバAで、資源は3度目に変更される。各サーバが、別のサーバ
に資源を送る前にすべての再実行ログをディスクに記憶することによって、受信
側が先の変更可能となると仮定する。
【0012】 3度目の更新の後に、データベースサーバAがだめになったと仮定する。デー
タベースサーバAのログは、穴のあいた資源への変更のレコードを含む。具体的
には、サーバAのログは、データベースサーバBによってなされたこれらの変更
を含んでいない。正確には、サーバBによってなされた変更は、データベースサ
ーバBのログ内に記憶されている。この時点で、資源を復旧するために、2つの
ログは適用される前にマージされなければならない。このログマージ動作は、も
し実現されれば、障害の発生しなかったデータベースサーバを含む、データベー
スサーバの総数に比例して時間および資源を必要とするであろう。
【0013】 上述したディスク介入アプローチは、障害の後の復旧ログのマージに関連付け
られる問題を回避するが、簡単で効率のよい復旧を支持する定常状態のパラレル
サーバシステムの性能にペナルティを科す。直接発送アプローチは、ディスク介
入アプローチに関連付けられるオーバーヘッドを回避するが、障害の発生した場
合に複雑で非スケーラブルな復旧動作を伴う。
【0014】 以上に基づいて、復旧動作の複雑性または持続時間を激しく増大させることな
しに、ピングに関連付けられるオーバーヘッドを低減するためのシステムおよび
方法を提供することが明らかに望まれる。
【0015】
【発明の概要】
最初に資源をディスクに書込むことなしに、あるデータベースサーバのキャッ
シュから別のデータベースサーバのキャッシュへと資源を転送するための方法お
よび装置が提供される。データベースサーバ(要求者)が資源を変更したい場合
、要求者は資源の現在のバージョンを要求する。現在のバージョンを有するデー
タベースサーバ(ホルダ)は現在のバージョンを要求者に直接発送する。バージ
ョンを発送すると、ホルダは資源を変更する許可を失うが、メモリ内に資源のコ
ピーを引続き保持する。資源の保持されたバージョンまたはその後のバージョン
がディスクに書込まれると、ホルダは資源の保持されたバージョンを廃棄するこ
とができる。他の態様では、ホルダは保持されたバージョンを廃棄しない。サー
バ障害の場合には、障害の発生したサーバの再実行ログ内の変更のあったすべて
の資源の先のコピーを、必要に応じて、障害の発生したサーバの再実行ログを適
用するための開始点として使用する。この技術を用いて、単一のサーバ障害(障
害の最もよくある形態)は、資源へアクセスしていなかったさまざまなデータベ
ースサーバの復旧ログをマージする必要なしに、復旧される。
【0016】 この発明は、同じ参照番号が同様の要素を指している添付の図面に例として示
されるが、これに限定されるものでない。
【0017】
【好ましい発明の詳細な説明】
ピングに関連付けられるオーバーヘッドを低減するための方法および装置を記
載する。以下の記載では、説明のため、この発明を完全に理解するために、多く
の具体的な詳細を述べる。しかしながら、この発明がこれらの具体的な詳細なし
に実施可能であることは当業者には明らかであろう。他のデータベースサーバで
は、この発明を不要にわかりにくくすることを避けるために、周知の構造および
装置がブロック図の形で示される。
【0018】 機能概要 この発明のある局面に従うと、最初にディスクに記憶することなしに、データ
ベースサーバ間で直接資源の更新されたバージョンを発送することによってピン
グを処理し、これによってディスク介入アプローチに関連付けられるI/Oオー
バーヘッドを回避する。さらに、単一の場合の障害復旧に関連付けられる問題は
、資源が別のキャッシュに転送されたとしても、変更された資源またはその何ら
かのサクセサがディスクに書込まれるまで資源の変更されたバージョンがキャッ
シュ内で置換されることを防ぐことによって、回避される。
【0019】 説明のため、キャッシュ内で置換不可能である資源のコピーを、ここでは「留
められた」資源と呼ぶ。留められた資源を置換可能にする動作を、資源を「解放
する」と呼ぶ。
【0020】 MおよびWロックアプローチ この発明のある局面に従うと、資源に対する変更許可とディスクへの書込許可
とは分離される。したがって、キャッシュからディスクへ資源の更新されたバー
ジョンを書込む許可を有するデータベースサーバが、必ずしも資源を更新する許
可を有するとは限らない。逆に、資源のキャッシュされたバージョンを変更する
許可を有するデータベースサーバが、そのキャッシュされたバージョンをディス
クに書込む許可を有するとは限らない。
【0021】 ある実施例に従うと、許可のこの分離は、特殊なロックを使用することによっ
て実施される。具体的には、資源を変更する許可は、「M」ロックによって与え
られるであろうし、ディスクに資源を書込む許可は、「W」ロックによって与え
られるであろう。しかしながら、ここに記載するようなMロックおよびWロック
の使用は、資源の転送されたバージョンが、その資源またはそのサクセサがディ
スクに書込まれるまでキャッシュ内で置換されることを防ぐためのメカニズムの
1つにすぎないことが注目される。
【0022】 図2を参照すると、この発明のある実施例に従って、MロックおよびWロック
を使用するデータシステムにおいてピングに応答して実行されるステップを示す
。ステップ200で、資源を変更したいデータベースサーバは、資源のマスタ(
すなわち、資源のロックを管理するデータベースサーバ)にMロックを要求する
。ステップ202で、マスタは、資源のMロックを現在保持するデータベースサ
ーバ(「ホルダ」)に、2つのサーバを接続する通信チャネル(「相互接続」)
を介する直接転送によって、Mロックを資源のそのキャッシュされたバージョン
とともに転送するよう命令する。
【0023】 ステップ204で、ホルダは、資源の現在のバージョンおよびMロックを要求
者に送る。ステップ206で、ホルダは、Mロックの転送をマスタに通知する。
ステップ208で、マスタは、資源のロック情報を更新して要求者がMロックを
現在保持していることを示す。
【0024】 PI資源 Mロックのホルダは、必ずしもWロックを有しているとは限らず、このためそ
のキャッシュ内に含まれる資源のバージョンをディスクに書出す許可を有してい
ない可能性がある。したがって、転送データベースサーバ(すなわち、Mロック
を最後に保持していたデータベースサーバ)は、未来のある時点でそのバージョ
ンをディスクに書出すよう要求される可能性があるので、資源のそのバージョン
をダイナミックメモリに留め続ける。転送データベースサーバ内に留まる資源の
バージョンは、もし受信データベースサーバが資源のそのコピーを変更すれば、
古くなる。転送データベースサーバは、受信データベースサーバ(またはそのサ
クセサ)が資源をいつ変更するかわかっているとは限らないので、転送データベ
ースサーバは資源のコピーを送信した時点から、その保持されたバージョンを「
古い可能性のあるデータ」として扱う。資源のそのような古い可能性のあるバー
ジョンを、ここではパストイメージ資源(PI資源)と呼ぶ。
【0025】 PI資源の解放 資源のキャッシュされたバージョンが解放された後、これは新しいデータで上
書される可能性がある。典型的には、資源のダーティバージョンは、資源をディ
スクに書込むことによって解放され得る。しかしながら、キャッシュ内にPI資
源を有するデータベースサーバが必ずしも、PI資源をディスクに記憶する権利
を持っているとは限らない。これらの状況下でPI資源を解放するためのある技
術が、図3に示される。
【0026】 図3を参照すると、データベースサーバがそのキャッシュ内のPI資源を解放
したいとき、これはWロックの要求を分散ロックマネージャー(DLM)に送信
する。ステップ302で、DLMは次に、要求データベースサーバ、または、資
源のより新しいバージョン(サクセサ)をそのキャッシュ内に有する何らかのデ
ータベースサーバに、資源をディスクに書出すよう命令する。こうして、資源を
ディスクに書込むよう命令されたデータベースサーバは、ダブルロックを許可さ
れる。ダブルロックを許可されたデータベースサーバか資源をディスクに書込ん
だ後、データベースサーバはWロックを解放する。
【0027】 次に、DLMは、すべてのデータベースサーバにメッセージを送信して書出さ
れた資源のバージョンを示し(ステップ304)、この結果、資源のこれ以前の
PIバージョンはすべて解放可能となる(ステップ306)。たとえば、ディス
クに書込まれたバージョンが時間T10で変更されたと仮定する。それより前の
時間T5で最後に変更された資源のバージョンを有するデータベースサーバは、
ここで、これが記憶されているバッファを他のデータのために使用することがで
きるであろう。しかしながら、それより後の時間T11で変更されたバージョン
を有するデータベースサーバは、資源のそのバージョンをそのメモリ内に保持し
続けなければならないであろう。
【0028】 MおよびWロックアプローチの下でのピング管理 この発明のある実施例に従って、図1を参照して記載するように、MおよびW
ロックアプローチを実現化してピングを処理してもよい。図1を参照すると、4
つのデータベースサーバA、B、CおよびDのブロック図が示され、これらのサ
ーバはすべて特定の資源を含むデータベースへのアクセスを有している。例示さ
れる時点では、データベースサーバA、BおよびCはすべて、資源のバージョン
を有する。データベースサーバAのキャッシュ内に保持されるバージョンは、資
源の最も最近に変更されたバージョンである(時間T10で変更された)。デー
タベースサーバBおよびCに保持されるバージョンは、資源のPIバージョンで
ある。データベースサーバDは、資源のマスタである。
【0029】 この時点で、別のデータベースサーバ(「要求者」)が資源を変更したいと仮
定する。要求者は、マスタに変更ロックを要求する。マスタは、要求者からの競
合する要求のために、データベースサーバAにコマンドを送信してロック(「B
AST」)をダウンコンバートする。ダウンコンバートコマンドに応答して、資
源の現在のイメージ(クリーンまたはダーティのいずれでも)が、データベース
サーバAから要求者に、資源を変更する許可とともに発送される。こうして発送
された許可は、資源をディスクに書込む許可を含んでいない。
【0030】 データベースサーバAがMロックを要求者に送ると、データベースサーバAは
そのMロックを「保持」ロック(「Hロック」)にダウングレードする。Hロッ
クは、データベースサーバAが留められたPIコピーを保持していることを示す
。Hロックの所有権は、オーナーにPIコピーをそのバッファキャッシュ内に維
持することを強制するが、PIコピーをディスクに書込むいかなる権利もそのデ
ータベースサーバに与えない。同じ資源に対して複数の同時的Hホルダがあり得
るが、一度に資源の書込ができるデータベースサーバは1以下であり、したがっ
て資源のWロックを保持することのできるデータベースサーバはたった1つであ
る。
【0031】 資源を発送するより前に、データベースサーバAはログが確実に強制されるよ
うにする(すなわち、データベースサーバAによって資源になされた変更につい
て生成された復旧ログが永続的に記憶されるようにする)。変更許可を送ること
によって、データベースサーバAは、資源を変更する自らの権利を失う。資源の
コピー(発送の時点ではそうであったような)は、発送データベースサーバAに
なおも維持されている。資源の発送の後に、データベースサーバA内に保持され
る資源のコピーは、PI資源である。
【0032】 優遇書込 データベースサーバがダーティ資源を別のデータサーバに直接発送した後、資
源の保持されたコピーは留められたPI資源となり、解放されるまでそのバッフ
ァを別の資源に使用することはできない。PI資源を含むバッファをここでは、
PIバッファと呼ぶ。これらのバッファは、データベースサーバのキャッシュ内
に有効な空間を占有しており、やがては他のデータのために再利用されなければ
ならない。
【0033】 バッファキャッシュ内のPIバッファ(古くなったまたはチェックポイントさ
れた)を置換するために、ここでは「優遇書込」と呼ぶ新しいディスク書込プロ
トコルを採用する。優遇書込プロトコルに従って、データベースサーバが資源を
ディスクに書込む必要があるとき、データベースサーバは要求をDLMに送信す
る。DLMは、ディスクに書込まれるべき資源のバージョンを選択し、選択され
たバージョンを有するデータベースサーバを見つけ、書込要求を開始したデータ
ベースサーバに代わって、そのデータベースサーバにディスクへの資源の書込を
させる。資源をディスクに実際に書込むデータベースサーバは、資源の最新の軌
跡に依存して、書込を要求したデータベースサーバであっても、または、らかの
他のデータベースサーバであってもよい。
【0034】 資源の選択されたバージョンをディスクに書込むことによって、ディスクに書
込まれた選択されたバージョンと同じ古さまたはそれよりも古い、クラスタのす
べてのバッファキャッシュ内の資源のPIバージョンはすべて解放される。ディ
スクに書込まれるべきバージョンを選択するために使用される規準を、以下によ
り詳細に記載する。しかしながら、選択されたバージョンは、マスタに知られて
いる最新のPIバージョンか、または、資源のカレントバージョン(「CURR
」)のいずれかであり得る。カレントバージョン以外のバージョンを選択する利
点の1つは、この別のバージョンの選択によって現在のコピーが妨害されること
なく変更可能となることである。
【0035】 PI資源を保持しているデータベースサーバは、資源のWロックを獲得してい
るならば、そのPIコピーを書出すことができる。資源の書込は、さまざまなデ
ータベースサーバ間でのCURR資源イメージの移動から切離される。
【0036】 効率的要因 資源を別のデータベースサーバに発送するたびにPIコピーを書込む必要はな
い。したがって、資源を永続的に記憶する目的は、ディスクコピーを十分最近の
ものにしておくことと、バッファキャッシュ内の置換不可能な資源の数を妥当な
ものにしておくこととである。さまざまな要因が、上述した優遇書込プロトコル
を採用するシステムの効率性を決定する。具体的には、 (1) ディスクにダーティ資源を書込むことによって起きるI/O動作を最
低限にすることと、 (2) 資源のディスクバージョンを十分に現在のものにしておくことによっ
て障害後の復旧動作を迅速化することと、 (3) 留められたPI資源でバッファキャッシュがオーバーフローすること
を防ぐこととが望まれる。
【0037】 第1の規準を最大化すると第2および第3の規準に否定的影響が及び、その逆
もまたある。したがって、トレードオフが必要である。この発明のある実施例に
従うと、総IO経費に対する制御と併せてチェックポイントのさまざまな技術(
臨時的継続的チェックポイントと混合されたLRU)を組合せるセルフチューニ
ングアルゴリズムを使用してもよい。
【0038】 最新書込アプローチ 上述した優遇書込プロトコルの代替を、ここでは最新書込アプローチと呼ぶ。
最新書込アプローチに従うと、すべてのデータベースサーバが、そのPI資源を
ディスクに書込む許可を有する。しかしながら、そうする前に、データベースサ
ーバは資源のディスクベースのコピーに対するロックを獲得する。ロックを獲得
した後、データベースサーバは、ディスクバージョンを、これが書込みたいPI
バージョンと比較する。もしディスクバージョンの方が古ければ、PIバージョ
ンがディスクに書込まれる。もしディスクバージョンの方が新しければ、PIバ
ージョンは廃棄されてもよく、それが占有していたバッファは再利用可能である
【0039】 優遇書込プロトコルと違って、最新書込アプローチは、データベースサーバが
、自己のPIバージョンをディスクに書込むことによって、またはディスクバー
ジョンの方がより新しいことを決定することによって、自己のPIバージョンを
解放可能にする。しかしながら、最新書込アプローチは、ディスクベースのコピ
ーのロックに対する競合を増大させ、優遇書込アプローチでは起きなかったであ
ろうディスクI/Oを招く可能性がある。
【0040】 許可ストリング 典型的なDLMは、限られた数のロックモードを使用することによって資源へ
のアクセスを管理し、ここではモードは互換性があるか競合しているかのいずれ
かである。ある実施例に従うと、資源へのアクセスを管理するメカニズムは、ロ
ックモードを異なった種の許可および義務の集合と代用するよう拡張される。許
可および義務は、たとえば、資源を書込み、資源を変更し、キャッシュ内の資源
を維持するなどの許可を含んでもよい。具体的な許可および義務を以下により詳
細に記載する。
【0041】 ある実施例に従うと、許可および義務は、許可ストリングに符号化される。多
くの許可は資源自体にではなく資源のバージョンに相関するので、許可ストリン
グは資源バージョン数によって増大するであろう。もし2つの異なった許可スト
リングが、資源の同じバージョン(たとえば、変更のための現在バージョンまた
は書込のためのディスクアクセス)に対する同じ排他的許可を要求するならば、
これらは競合する。そうでなければこれらは互換性がある。
【0042】 許可転送を使用する同時実行性 上述したとおり、資源があるデータベースサーバで変更され、別のデータベー
スサーバによってさらなる変更を要求されると、マスタは、資源のカレントコピ
ー(CURRコピー)を保持するデータベースサーバに、そのMロック(変更す
る権利)を資源のCURRコピーとともに他のデータベースサーバに送るように
命令する。重要なことには、Mロックの要求はマスタに送信されるが、許可は何
らかの他のデータベースサーバ(先のMロックホルダ)によってなされる。この
三者間メッセージングモデルは、ロック要求が最初にアドレスされたロックマネ
ージャーを含むデータベースサーバからロック要求に対する応答が期待される、
従来の双方向通信とはかなり異なる。
【0043】 この発明のある実施例に従うと、資源のCURRコピーのホルダ(たとえば、
データベースサーバA)がMロックを別のデータサーバに送ると、データベース
サーバAは、Mロックが転送されたことをマスタに通知する。しかしながら、デ
ータベースサーバAは、マスタが通知を受取ったという確認を待つことなく、そ
のような確認を受取る前にCURRコピーおよびMロックを送信する。待たない
ことによって、マスタとデータベースサーバAとの間の往復通信は転送に遅延を
もたらすことなく、これによってプロトコルレイテンシがかなり節約される。
【0044】 許可は許可の現在ホルダから許可の要求者に直接転送されるので、マスタが常
に、ロック許可の正確な全体像を知っているとは限らない。むしろ、マスタは、
任意の所与の時間でのロックの正確な位置についてではなく、Mロックの軌跡に
ついてのみ、「これを最近保持した」データベースサーバについてのみ知ってい
る。ある実施例に従うと、この「レージーな」通知方式は、Mロックに適用可能
であるが、Wロック、Xロック、またはSロック(またはその対応物)には適用
可能でない。ロック方式のさまざまな実施例を以下により詳細に記載する。
【0045】 障害復旧 この発明のコンテクストにおいては、サーバに関連付けられるキャッシュがア
クセス不可能となった場合、データベースサーバに障害が発生したという。ここ
に記載する技術を用いるダーティ資源の直接のサーバ間発送を採用するデータシ
ステムは、単一サーバの障害に応答して復旧ログをマージする必要性を回避する
。ある実施例に従って、単一のサーバの障害は、図4に示すとおり処理される。
図4を参照して、単一のデータベースサーバに障害が発生すると、復旧プロセス
は、障害の発生したデータベースサーバのキャッシュ内に保持される各資源につ
いて、以下のステップを実行する。
【0046】 (ステップ400) 資源の最新バージョンを保持するデータベースサーバを
を決定し、 (ステップ402) ステップ400で決定されたデータベースサーバが障害
の発生したデータベースサーバでなければ、(ステップ404)決定されたデー
タベースサーバは資源のそのキャッシュされたバージョンをディスクに書込み、
(ステップ406)資源のPIバージョンはすべて解放される。このバージョン
は、資源に加えられた、かかわった変更(障害の発生したデータベースサーバに
よってなされたものを含む)を有するため、いかなるデータベースサーバの復旧
ログも適用される必要がない。
【0047】 もしステップ402で決定されたデータベースサーバが障害の発生したデータ
ベースサーバであれば、(ステップ408)資源の最新PIバージョンを保持す
るデータベースサーバは、資源のそのキャッシュされたバージョンをディスクに
書出し、(ステップ410)先のPIバージョンはすべて解放される。ディスク
に書出されたバージョンは、障害の発生したデータベースサーバ以外のすべての
データサーバによって資源に加えられたかかわった変更を有する。障害の発生し
たデータベースサーバの復旧ログを適用して(ステップ412)障害の発生した
データベースサーバによって加えられたかかわった変更を復旧する。
【0048】 代替的に、資源の最新PIバージョンを、ディスク上ではなくキャッシュ内の
現在のバージョンを復旧するための開始点として使用してもよい。具体的には、
障害の発生したデータベースサーバの復旧ログから適切なレコードを、キャッシ
ュ内にある最新PIバージョンに直接適用して、最新PIバージョンを保持する
データベースサーバのキャッシュ内のカレントバージョンを再構築してもよい。
【0049】 複数のデータベースサーバの障害 複数のサーバ障害の場合に、最新PIコピーもいかなるCURRコピーも生き
残らなかったとき、資源になされた変更が障害の発生したデータベースサーバの
複数のログにわたって広がっていることが起こり得る。この状況下では、障害の
発生したデータベースサーバのログはマージされなければならない。しかしなが
ら、すべてのデータベースサーバのログではなく、障害の発生したデータベース
サーバのログのみがマージされなければならない。したがって、復旧のために必
要とされる作業量は、構成全体のサイズにではなく障害の程度に比例する。
【0050】 どの障害の発生したデータベースサーバが資源を更新したかを決定することが
可能なシステムにおいては、資源を更新した障害の発生したデータベースサーバ
のログのみがマージされ適用される必要がある。同様に、どの障害の発生したデ
ータベースサーバが、資源の永続的に記憶されたバージョンの後に資源を更新し
たかを決定することのできるシステムにおいては、資源の永続的に記憶されたバ
ージョンの後に資源を更新した、障害の発生したデータベースサーバのログのみ
がマージされ適用される必要がある。
【0051】 例示的動作 説明のために、例示的な一連の資源転送を図1を参照して記載する。一連の転
送の間、資源は複数のデータベースサーバでアクセスされる。具体的には、資源
がクラスタノードに沿って発送され変更されると、データベースサーバの1つで
のチェックポイントによってこの資源の物理的I/Oが起こる。
【0052】 再び図1を参照すると、4つのデータベースサーバ、A、B、CおよびDがあ
る。データベースサーバDが資源のマスタである。まずデータベースサーバCが
資源を変更する。データベースサーバCは資源バージョン8を有する。この時点
で、データベースサーバCは、この資源に対するMロック(排他的変更権)も有
する。
【0053】 この時点で、データベースサーバBが、データベースサーバCが現在保持して
いる資源を変更したいと仮定する。データベースサーバBは、資源のMロックの
要求(1)を送信する。データベースサーバDは、資源に関連付けられるモディ
ファィアキュー上に要求を置き、 (a) 変更許可(Mロック)をデータベースサーバBに送り、 (b) 資源の現在イメージをデータベースサーバBに送信し、 (c) データベースサーバCのMロックをHロックにダウングレードするよ
う、データベースサーバCに命令する(メッセージ2:BAST)。
【0054】 このダウングレード動作の後に、Cは、そのバッファキャッシュ内に資源のそ
のバージョン(PIコピー)を維持させられる。
【0055】 データベースサーバCは、要求された動作を実行し、新しい変更に対してログ
をさらに強制してもよい。加えて、データベースサーバCは、これが動作を実行
したこと(AST)をマスタにレージーに通知する(3AckM)。この通知は
、データベースサーバCがバージョン8を維持していることもマスタに知らせる
。データベースサーバCは、マスタからの確認を待たない。従って、データベー
スサーバBは、マスタがそれを知る前に、Mロックを得ることが可能である。
【0056】 一方で、データベースサーバAもまた資源を変更することを決定したとする。
データベースサーバAは、メッセージ(4)をデータベースサーバDに送信する
。このメッセージは、データベースサーバCからデータベースサーバDへの非同
期の通知の前に、到着し得る。
【0057】 データベースサーバD(マスタ)は、(Bがこれを得て変更した後に)資源を
データベースサーバAに送るよう、データベースサーバB、すなわちこの資源の
最新と知られているモディファィアにメッセージ(5)を送信する。なお、デー
タベースサーバDは、資源がそこにあるのかまだなのかを知らない。しかし、デ
ータベースサーバDは、資源がやがてBに到着することは知っている。
【0058】 データベースサーバBが資源を得て意図された変更をした後(現在Bは資源の
バージョン9を有している)、これは自己のロックをHにダウングレードし、デ
ータベースサーバAに、資源のカレントバージョン(「CURR資源」)をMロ
ックとともに送信する(6)。データベースサーバBはまた、レージーな通知(
6AckM)をマスタに送信する。
【0059】 この資源はデータベースサーバAで変更されつつあるが、データベースサーバ
Cでのチェックポイントメカニズムが、資源をディスクに書込むことを決定した
とする。上記の非同期の事象に関しては、3AckMおよび6AckMの両方が
既にマスタに到着していると仮定する。チェックポイント動作に応答して実行さ
れた動作を図5を参照して示す。
【0060】 図5を参照すると、データベースサーバCは、書込権限を含まない、バージョ
ン8に対するHロックを保持しているので、データベースサーバCは、メッセー
ジ1をマスタ(D)に送信してそのバージョンについてのW(書込)ロックを要
求する。この時点ではもう、マスタは、(確認が到着したと仮定して)資源がデ
ータベースサーバAに発送されたことを知っている。データベースサーバDは、
資源書込の命令とともに、(非請求の)WロックをデータベースサーバAに送信
する(2BastW)。
【0061】 一般的な場合においては、この命令は、送信通知が到着している最新のデータ
ベースサーバへ(または、最新であると知られている送信者から資源を受取ると
考えられるデータベースサーバへ)送られる。データベースサーバAは、資源の
そのバージョンを書込む(3)。データベースサーバによって書込まれた資源は
、資源のバージョン10である。このときまでに、もしさらなる要求者が資源を
要求していれば、資源のカレントコピーはどこか他にあるであろう。ディスクは
、書込が完了したとき確認する(4AckW)。
【0062】 書込が完了すると、データベースサーバAは、データベースサーバDに、バー
ジョン10が現在ディスク上にあるという情報を与える(5AckW)。データ
ベースサーバAは、(これは最初には要求していなかった)そのWロックを自発
的にダウングレードする。
【0063】 マスタ(D)はデータベースサーバCに行って、要求されたWロックを許可す
る代わりに、書込が完成したことをCに通知する(6)。マスタは、現在のディ
スクバージョン数を全てのPIコピーのホルダに知らせ、これによってCでのこ
れ以前のPIコピーはすべて解放可能となる。このシナリオでは、データベース
サーバCは、10より古いPIコピーを有していないので、これはデータベース
サーバCのロックをNULLにダウンコンバートする。
【0064】 マスタはまた、確認メッセージをデータベースサーバBに送信してデータベー
スサーバBに10より以前のそのPIコピーを解放するよう命令する(7Ack
W(10))。
【0065】 分散ロックマネージャ 従来のDLM論理と対照的に、ここに記載する直接発送技術を実現するシステ
ムでのマスタは、データベースサーバでのロック状態について不完全な情報を有
することがある。ある実施例に従うと、資源のマスタは、以下の情報およびデー
タ構造を維持する。
【0066】 (1) (変更または共有アクセスのいずれかのための)CURRコピー要求
者のキュー(キューの長さの上限は、クラスタ内のデータベースサーバの数であ
る)。このキューをここでは、カレント要求キュー(CQ)と呼ぶ。
【0067】 (2) 資源が別のCURR要求者に送信されると、送信側はレージーに(こ
れが確認を待たないという意味では非同期に)マスタに事象について通知する。
マスタは、最新のいくつかの送信者を追跡し続ける。これがCQ上のポインタで
ある。
【0068】 (3) ディスク上の最新資源バージョンのバージョン数。 (4) Wロック許可およびW要求キュー。
【0069】 ある実施例に従うと、W許可は同期する。すなわち、これはマスタによっての
み許可され、マスタは、この資源についてのクラスタ内の書込要求者が1以下で
あることを確実にする。マスタが次の許可を出すことができるのは、先の書込が
完了しWロックが解放されたと通知された後のみである。もし2以上のモディフ
ァィアがあれば、Wロックは書込の持続時間の間与えられ、書込の後に自発的に
解放される。もしモディファィアが1つだけであれば、モディファィアはW許可
を維持可能である。
【0070】 (5) そのそれぞれの資源バージョン数を備えるHロックホルダのリスト。
これは、バッファキャッシュ内のPIコピーについての情報を(おそらく不完全
であるが)与える。
【0071】 ディスクウォームアップ ここに記載する直接発送は、資源のバッファキャッシュイメージとディスクイ
メージとのライフサイクルを大きく引き離すので、復旧の際にこのギャップを埋
める必要がある。ある実施例に従うと、DLM復旧とバッファキャッシュ復旧と
の間に、復旧の新しいステップが加えられる。この新しい復旧ステップをここで
は「ディスクウォームアップ」と呼ぶ。
【0072】 通常のキャッシュ動作の間、資源のマスタは、(キャッシュ復旧に先行する)
DLM復旧の際に、資源の位置とPIコピーおよびCURRコピーの利用可能性
とについておおよそしか知らないが、資源のマスタは、生き残ったデータベース
サーバのバッファキャッシュ内の最新PIおよびCURRコピーの利用可能性に
ついて完全な情報を収集する。資源のマスタが、(もし障害より前に資源が障害
の発生したデータベースサーバ上にマスタされていれば)新しいマスタであって
も生き残ったマスタであっても、これは当てはまる。
【0073】 情報を収集した後、マスタは、どのデータベースサーバが資源の最新コピーを
所有しているかを知る。「ディスクウォームアップ」段では、マスタは、資源の
この最新コピー(もし利用可能であればCURR、および、もしCURRコピー
が障害の発生したデータベースサーバとともに消失していれば最新PIコピー)
のオーナーにWロックを発行する。次に、マスタは、このデータベースサーバに
、資源をディスクに書込むよう命令する。書込が完了すると、すべての他のデー
タベースサーバは、そのHロックをNULLロックに変換する(なぜなら書込ま
れたコピーが最新の利用可能なものであるからである)。これらのロックがコン
バートされた後、キャッシュ復旧は通常通り続行可能である。
【0074】 ディスクウォームアップ段の間、いくつかの最適化が可能である。たとえば、
もし最新イメージが復旧を実行するデータベースサーバのバッファキャッシュ内
にあれば、資源は必ずしもディスクに書込まれる必要はない。
【0075】 ロックベース方式の代替 データベースサーバ間での資源のダーティコピーを直接発送するためのさまざ
まな技術を、特殊なタイプのロック(Mロック、WロックおよびHロック)使用
するロッキング方式をコンテクストとして記載した。具体的には、これらの特殊
ロックを使用して、(1)資源のカレントバージョンを有するサーバのみが資源
を変更することと、(2)資源の同じバージョンまたはより新しいバージョンが
ディスクに書込まれるまで、すべてのサーバが資源のそのPIバージョンを維持
することと、(3)資源のディスクベースのバージョンが資源のより古いバージ
ョンによって重ね書きされないこととを確実にする。
【0076】 しかしながら、ロックベースのアクセス制御方式は、この発明が実施可能であ
るコンテクストの1つにすぎない。たとえば、任意のさまざまなアクセス制御方
式を用いてこれらの同じ3つの規則を実施してもよい。したがって、この発明は
、特定のタイプのアクセス制御方式に限定されるものではない。
【0077】 たとえば、ロックをベースとして資源へのアクセスを管理する代わりに、アク
セスは、トークンによって管理されてもよく、この場合各トークンが特定のタイ
プの許可を表わす。特定の資源のためのトークンが、上述した3つの規則が確実
に実施されるように、パラレルサーバ間で転送されてもよい。
【0078】 同様に、規則は、状態ベースの方式を用いて実施され得る。状態ベースの方式
では、資源のバージョンは、事象に応答して状態を変化させ、バージョンの状態
がそのバージョンに対して実行可能である動作のタイプを決定する。たとえば、
データベースサーバは、その「現在の」状態での資源のカレントバージョンを受
取る。現在の状態は、資源の変更および資源のディスクへの書込を可能とする。
データベースサーバが資源のカレントバージョンを別のノードに転送すると、保
持されているバージョンは「PI書込可能」状態に変る。PI書込可能状態では
、バージョンは、(1)変更不可能であり、(2)量ね書き不可能であるが、(
3)ディスクへの書込は可能である。資源の任意のバージョンがディスクに書込
まれると、ディスクに書込まれたバージョンと同じまたはそれよりも古い、PI
書込可能状態にあるバージョンのすべてが、「PI解放」状態に置かれる。PI
解放状態では、バージョンは量ね書き可能であるが、ディスクへの書込または変
更は不可能である。
【0079】 ハードウェア概要 図6は、この発明の実施例が実現可能であるコンピュータシステム600を示
すブロック図である。コンピュータシステム600は、情報を受け渡しするため
のバス602または他の通信メカニズムと、バス602に結合され情報を処理す
るためのプロセッサ604とを含む。コンピュータシステム600はまた、ラン
ダムアクセスメモリ(RAM)または他のダイナミック記憶装置などの主メモリ
606を含み、これはバス602に結合されプロセッサ604によって実行され
るべき命令および情報を記憶する。主メモリ606はまた、プロセッサ604に
よって実行されるべき命令の実行の間、一時的変数または他の中間情報を記憶す
るために使用され得る。コンピュータシステム600は、リードオンリメモリ(
ROM)608または他の静的記憶装置をさらに含み、これはバス602に結合
され静的情報およびプロセッサ604のための命令を記憶する。磁気ディスクま
たは光学ディスクなどの記憶装置610が設けられこれはバス602に結合され
情報および命令を記憶する。
【0080】 コンピュータシステム600は、バス602を介して陰極線管(CRT)など
のディスプレイ612に結合されもよく、これはコンピュータユーザに情報を表
示する。英数字および他のキーを含む入力デバイス614は、バス602に結合
されプロセッサ604に情報およびコマンド選択を与える。ユーザ入力デバイス
の別のタイプは、マウス、トラックボールまたはカーソル方向キーなどのカーソ
ルコントロール616であって、これは方向情報およびコマンド選択をプロセッ
サ604に与え、かつ、ディスプレイ612上のカーソルの動きを制御する。こ
の入力デバイスは典型的には、第1の軸(たとえばx)および第2の軸(たとえ
ばy)の、2軸での2自由度を有し、これによってデバイスは画面での位置を特
定することが可能となる。
【0081】 この発明は、ピングに関連付けられるオーバーヘッドを低減するコンピュータ
システム600の使用に関する。この発明のある実施例に従うと、ピングに関連
付けられるオーバーヘッドは、プロセッサ604が主メモリ606に含まれる1
つ以上の命令の1つ以上のシーケンスを実行することに応答して、コンピュータ
システム600によって低減される。そのような命令は、記憶装置610などの
、別のコンピュータ読出可能媒体から主メモリ606に読出されてもよい。主メ
モリ606内に含まれる命令のシーケンスを実行することによって、プロセッサ
604はここに記載するプロセスステップを実行する。代替の実施例では、ハー
ドワイア回路をソフトウェア命令の代わりにまたはこれと組合せて使用してこの
発明を実現してもよい。したがって、この発明の実施例は、ハードウェア回路お
よびソフトウェアの特定の組合せに限定されない。
【0082】 ここに用いる「コンピュータ読出可能媒体」という言葉は、プロセッサ604
に命令を与えて実行させることに関与する任意の媒体を指す。そのような媒体は
、不揮発性媒体、揮発性媒体および伝送媒体を含むがこれに限られるものではな
い、多くの形態を取ってもよい。不揮発性媒体は、たとえば、記憶装置610な
どの、光学ディスクまたは磁気ディスクを含む。揮発性媒体は、主メモリ606
などの、ダイナミックメモリを含む。伝送媒体は、バス602を含むワイアを含
む、同軸ケーブル、銅線および光ファイバを含む。伝送媒体はまた、電波および
赤外データ通信の間生成されるものなど、音波または光波の形態を取ってもよい
【0083】 コンピュータ読出可能媒体の通常の形態は、たとえば、フロッピー、フレキシ
ブルディスク、ハードディスク、磁気テープ、またはその他の磁気媒体、CD−
ROM、その他の光学媒体、パンチカード、紙テープ、孔のパターンを備えるそ
の他の物理的媒体、RAM、PROMおよびEPROM、FLASH−EPRO
M、その他のメモリチップまたはカートリッジ、以下に記載する搬送波、または
コンピュータが読出可能なその他の媒体の形態を含む。
【0084】 コンピュータ読出可能媒体のさまざまな形態は、1つ以上の命令の1つ以上の
シーケンスをプロセッサ604に搬送して実行することにかかわり得る。たとえ
ば、命令は最初に、遠隔コンピュータの磁気ディスク上に担持されてもよい。遠
隔コンピュータは、命令をそのダイナミックメモリにロードし、モデムを使用し
て電話線を介して命令を送信することができる。コンピュータシステム600に
ローカルなモデムは、電話線上のデータを受信し、赤外送信器を使用してデータ
を赤外信号に変換することができる。赤外検出器は赤外信号で搬送されるデータ
を受信可能であり、適切な回路がデータをバス602上に与えることができる。
バス602は、データを主メモリ606に搬送し、プロセッサ604はそこから
命令を検索し実行する。主メモリ606によって受取られた命令は、プロセッサ
604によって実行される前またはその後に、記憶装置610上にオプションと
して記憶されてもよい。
【0085】 コンピュータシステム600は、1つ以上の記憶装置(たとえばディスクドラ
イブ655)がコンピュータシステム600と1つ以上の他のCPU(たとえば
CPU651)の両方にアクセス可能である、共有ディスクシステムに属する。
例示のシステムでは、ディスクドライブ655への共有アクセスは、システムエ
リアネットワーク653によって与えられる。しかしながら、さまざまなメカニ
ズムを代替的に使用して共有アクセスを与えてもよい。
【0086】 コンピュータシステム600はまた、バス602に結合される通信インターフ
ェイス618を含む。通信インターフェイス618は、双方向のデータ通信を与
え、これはネットワークリンク620に結合し、ネットワークリンクはローカル
ネットワーク622に接続される。たとえば、通信インターフェイス618は、
統合サービスデジタル網(ISDN)カードまたはモデムであってもよく対応す
るタイプの電話線にデータ通信接続を与える。別の例として、通信インターフェ
イス618は、互換性のあるLANにデータ通信接続を与えるローカルエリアネ
ットワーク(LAN)カードであってもよい。ワイアレスリンクが実現されても
よい。いかなるそのような実現化例でも、通信インターフェイス618は、さま
ざまなタイプの情報を表わすデジタルデータストリームを搬送する電気信号、電
磁波信号または光学信号を送信し受信する。
【0087】 ネットワークリンク620は、典型的には、1つ以上のネットワークを介して
他のデータデバイスにデータ通信を与える。たとえば、ネットワークリンク62
0は、ローカルネットワーク622を介してホストコンピュータ624またはイ
ンターネットサービスプロバイダ(ISP)626によって動作するデータ装置
に接続してもよい。ISP626は、現在通常「インターネット」628と呼ば
れるワールドワイドパケットデータ通信ネットワークを介して、データ通信サー
ビスを提供する。ローカルネットワーク622とインターネット628とはどち
らも、デジタルデータストリームを搬送する電気信号、電磁波信号または光学信
号を使用する。さまざまなネットワークを通る信号と、ネットワークリンク62
0上および通信インターネット618を通る信号とは、デジタルデータをコンピ
ュータシステム600へかつそこから搬送するものであるが、情報を転送する搬
送波の例示的形態である。
【0088】 コンピュータシステム600は、ネットワーク、ネットワークリンク620お
よび通信インターフェイス618を介して、プログラムコードを含め、メッセー
ジを送信しデータを受信することが可能である。インターネットの例では、サー
バ630は、インターネット628、ISP626、ローカルネットワーク62
2および通信インターフェイス618を介して、アプリケーションプログラムの
ために要求されたコードを伝送可能である。
【0089】 受信されたコードは、受信されたときにプロセッサ604によって実行されて
もよいし、かつ/または記憶装置610または他の不揮発性装置に記憶されて後
に実行されてもよい。このようにして、コンピュータシステム600は、搬送波
の形でアプリケーションコードを獲得可能である。
【0090】 複数のデータベースサーバが共通の永続性記憶装置へのアクセスを有するとき
に生じるピングを参照してピングを処理するための技術が記載されるが、この技
術はこのコンテクストに限定されるのではない。具体的には、これらの技術は、
あるキャッシュに関連付けられるプロセスが現在のバージョンが他のキャッシュ
内に位置する資源を要求する可能性のあるいかなる環境に適用されてもよい。そ
のような環境は、たとえば、異なったノード上のテキストサーバが同じテキスト
材料へのアクセスを有するような環境、異なったノード上のメディアサーバが同
じビデオデータへのアクセスを有するような環境、などを含む。
【0091】 ここに記載する技術を用いてピングを処理すれば、資源のデータベースサーバ
間の転送は効率よくなるので、動作可能時間性能は、データベースサーバの数お
よびデータベースサーバあたりのユーザの増加にあわせて増大する。加えて、こ
の技術によって、データベースサーバの数の増加にあわせて増大する単一のデー
タベースサーバの障害(障害の最もよくあるタイプ)からの効率的な復旧が得ら
れる。
【0092】 重要なことには、ここに記載する技術は、ディスク介入によってではなく、I
PCトランスポートを介して資源を送信することによってピングを処理する。し
たがって、ピングをもたらす、資源についてのディスクI/Oは、かなり解消さ
れる。同期I/Oを伴うのは、これがログ強制のために必要とされる場合におい
てのみである。加えて、ディスクI/Oはチェックポイントおよびバッファキャ
ッシュ置換のために生じるが、そのようなI/Oは、クラスタにわたるバッファ
発送を減速させることはない。
【0093】 ここに記載する直接発送技術はまた、ピングによって生じるコンテクスト切換
の数を低減させるようにもなる。具体的には、プロトコルの関与者(要求者およ
びホルダ)とマスタとの間の往復メッセージのシーケンスは、要求者、マスタ、
ホルダ、要求者からなる通信トライアングルによって代用される。
【0094】 前の明細書では、この発明は、その特定の実施例を参照して記載された。しか
しながら、この発明のより広い精神および範囲から逸脱することなしに、これに
さまざまな変形および変更をなし得ることは明らかであろう。したがって、この
明細書および図面は、限定的ではなく例示的なものとして見なされるべきである
【図面の簡単な説明】
【図1】 資源の最新バージョンのキャッシュからキャッシュへの転送を例
示するブロック図である。
【図2】 この発明の実施例に従ってディスク介入なしにあるキャッシュか
ら別のキャッシュへ資源を伝送するステップを例示するフローチャートである。
【図3】 この発明の実施例に従って、資源のパストイメージを解放するス
テップを例示するフローチャートである。
【図4】 この発明の実施例に従って単一のデータベースサーバの障害の後
に復旧するステップを例示するフローチャートである。
【図5】 この発明の実施例に従ってチェックポイントサイクルを例示する
ブロック図である。
【図6】 この発明の実施例が実現可能であるコンピュータシステムのブロ
ック図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年2月17日(2000.2.17)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0005
【補正方法】変更
【補正内容】
【0005】 しかしながら、ディスク介入アプローチは、単一のデータベースサーバの障害
からの比較的効率よい復旧を提供する、というのもそのような復旧が必要とする
のは障害の発生したデータベースサーバの復旧(再実行)ログを適用するだけで
あるからである。障害の発生したデータベースサーバの再実行ログを適用すると
、障害の発生したデータベースサーバ上のトランザクションが障害の発生したサ
ーバのキャッシュ内の資源に加えた、かかわった変更はすべて確実に復旧される
。復旧の間の再実行ログの使用は、1997年1月21日出願の「復旧可能オブ
ジェクト内のキャッシングデータ」(“CACHING DATA IN RECOVERABLE OBJECTS ”)と題する米国特許出願連続番号第08/784,611号に詳細に記載され
る。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0094
【補正方法】削除
───────────────────────────────────────────────────── フロントページの続き (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,CZ,DE,DK,E E,ES,FI,GB,GD,GE,GH,GM,HR ,HU,ID,IL,IN,IS,JP,KE,KG, KR,KZ,LC,LK,LR,LS,LT,LU,L V,MD,MG,MK,MN,MW,MX,NO,NZ ,PL,PT,RO,RU,SD,SE,SG,SI, SK,SL,TJ,TM,TR,TT,UA,UG,U Z,VN,YU,ZW Fターム(参考) 5B075 KK03 KK54 NR02 5B082 DC05 FA17 GA14 GA18 HA03

Claims (27)

    【特許請求の範囲】
  1. 【請求項1】 第1のキャッシュから第2のキャッシュへ資源を転送するた
    めの方法であって、 前記第1のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶す
    ることなしに、前記第1のキャッシュ内に資源の第1のコピーを保持する一方で
    資源の第2のコピーを第1のキャッシュから第2のキャッシュへと転送するステ
    ップと、 資源の前記第1のコピーまたはそのサクセサが永続的に記憶されるまで前記第
    1のコピーが前記第1のキャッシュ内で置換されることを防ぐステップとを含む
    、方法。
  2. 【請求項2】 前記第1のキャッシュは第1のデータベースサーバによって
    維持されるキャッシュであり、前記第2のキャッシュは第2のデータベースサー
    バによって維持されるキャッシュである、請求項1に記載の方法。
  3. 【請求項3】 前記第2のコピーを前記第2のキャッシュに転送するよりも
    前に前記資源の前記第1のコピーが前記第1のキャッシュ内で変更されることを
    可能にするステップと、 前記第2のコピーを前記第2のキャッシュに転送した後に前記資源の前記第1
    のコピーが変更されることを防ぐステップとをさらに含む、請求項1に記載の方
    法。
  4. 【請求項4】 前記第2のコピーを前記第2のキャッシュに転送した後に、
    許可の要求を送信して前記第1のコピーを解放するステップと、 前記要求に応答して、前記第1のコピーまたはそのサクセサが永続的に記憶さ
    れるようにするステップと、 前記サクセサが永続的に記憶されたことに応答して、前記第1のコピーが解放
    可能であることを示すメッセージを送信するステップとをさらに含む、請求項1
    に記載の方法。
  5. 【請求項5】 許可の要求を送信して前記第1のコピーを解放するステップ
    は、送信側プロセスによって実行され、 前記第1のコピーまたはそのサクセサが永続的に記憶されるようにするステッ
    プは、送信側プロセス以外のプロセスが前記資源の前記第1のコピーのサクセサ
    を記憶するようにするステップを含む、請求項4に記載の方法。
  6. 【請求項6】 前記第1のコピーが置換されることを防ぐステップは、 前記第1のコピーを永続的に記憶しようとするより前に、前記資源の永続的に
    記憶されたコピーが前記第1のコピーよりも最近のものであったかどうかを決定
    するステップと、 もし前記永続的に記憶されたコピーが前記第1のコピーよりもより最近のもの
    であれば、前記第1のコピーを永続的に記憶することなしに前記第1のコピーを
    解放するステップと、 もし前記永続的に記憶されたコピーが前記第1のコピーよりもより最近のもの
    でなければ、前記第1のコピーを永続的に記憶するステップとを含む、請求項1
    に記載の方法。
  7. 【請求項7】 第1のキャッシュに関連付けられる送信側プロセスから第2
    のキャッシュに関連付けられる受信側プロセスに前記資源の前記第2のコピーと
    ともに変更許可を転送するステップをさらに含む、請求項3に記載の方法。
  8. 【請求項8】 前記資源にアクセスする許可はマスタによって管理され、 前記変更許可を受信側プロセスに転送するステップは、前記マスタから前記変
    更許可の前記受信側プロセスへの転送についての確認を受信するより前に実行さ
    れる、請求項7に記載の方法。
  9. 【請求項9】 前記第2のキャッシュに関連付けられる受信側プロセスが前
    記資源の要求を前記資源のマスタに送信するステップと、 前記受信側プロセスからの前記要求に応答して、前記資源の前記マスタが前記
    第1のキャッシュに関連付けられる受信側プロセスにメッセージを送信するステ
    ップと、 前記送信側プロセスは前記マスタからの前記メッセージに応答して前記第2の
    コピーを前記受信側プロセスに転送するステップとをさらに含む、請求項1に記
    載の方法。
  10. 【請求項10】 前記第2のコピーを前記第2のキャッシュに転送するステ
    ップの後に、 前記第1のキャッシュに関連付けられる送信側プロセスがロックマネージャに
    ロックを要求するステップを実行し、前記ロックは前記資源をディスクに書込む
    許可は与えるが前記資源を変更する許可は与えず、さらに、 前記ロックマネージャは前記第1のコピーと少なくとも同じほど最近である前
    記資源のバージョンを有するプロセスを選択するステップと、 前記ロックマネージャは前記ロックを前記選択されたプロセスに与えるステッ
    プと、 前記選択されたプロセスは前記資源の前記バージョンをディスクに書込むステ
    ップとを実行するステップをさらに含む、請求項1に記載の方法。
  11. 【請求項11】 前記資源の前記バージョンがディスクに書込まれるのに応
    答して、前記ロックマネージャは前記バージョンよりもより古い前記資源のすべ
    てのバージョンが解放されるようにするステップをさらに含む、請求項10に記
    載の方法。
  12. 【請求項12】 前記資源のダーティコピーを保持するキャッシュの障害の
    後に、 障害の発生したキャッシュが資源の最新バージョンを保持していたかどうかを
    決定するステップと、 もし障害の発生したキャッシュが資源の最新バージョンを保持していれば、 資源の最新パストイメージをディスクに書込むステップと、 資源のすべての先のパストイメージを解放するステップと、 前記障害の発生したキャッシュの復旧ログを適用して資源の最新バージョンを
    再構築するステップとをさらに含む、請求項1に記載の方法。
  13. 【請求項13】 もし障害の発生したキャッシュが資源の最新バージョンを
    保持していなかったとすれば、 資源の最新バージョンをディスクに書込むステップと、 資源のすべてのパストイメージを解放するステップとをさらに含む、請求項1
    2に記載の方法。
  14. 【請求項14】 前記資源のダーティバージョンを保持する複数個のキャッ
    シュの障害の後に、 障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していた
    かどうかを決定するステップと、 もし障害の発生したキャッシュのいずれかが資源の最新バージョンを保持して
    いたとすれば、 前記障害の発生したキャッシュの復旧ログをマージし適用して資源の最新バー
    ジョンを再構築するステップをさらに含む、請求項1に記載の方法。
  15. 【請求項15】 命令の1つ以上のシーケンスを搬送して第1のキャッシュ
    から第2のキャッシュへと資源を転送するコンピュータ読出可能媒体であって、
    命令の1つ以上のシーケンスが1つ以上のプロセッサによって実行されると、1
    つ以上のプロセッサは、 前記第1のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶す
    ることなしに、前記第1のキャッシュ内に資源の第1のコピーを保持する一方で
    資源の第2のコピーを第1のキャッシュから第2のキャッシュへと転送するステ
    ップと、 資源の前記第1のコピーまたはそのサクセサが永続的に記憶されるまで前記第
    1のコピーが前記第1のキャッシュ内で置換されることを防ぐステップとを実行
    するようになる、コンピュータ読出可能媒体。
  16. 【請求項16】 前記第2のコピーを前記第2のキャッシュに転送するより
    前に、前記資源の前記第1のコピーが前記第1のキャッシュ内で変更されること
    を可能にするステップと、 前記第2のコピーが前記第2のキャッシュに転送された後に前記資源の前記第
    1のコピーが変更されることを防ぐステップとを実行する命令のシーケンスをさ
    らに含む、請求項15に記載のコンピュータ読出可能媒体。
  17. 【請求項17】 前記第2のコピーを前記第2のキャッシュに転送した後に
    、許可の要求を送信して前記第1のコピーを解放するステップと、 前記要求に応答して、前記第1のコピーまたはそのサクセサが永続的に記憶さ
    れるようにするステップと、 前記サクセサが永続的に記憶されたことに応答して、前記第1のコピーが置換
    可能であることを示すメッセージを送信するステップとを実行する命令のシーケ
    ンスをさらに含む、請求項15に記載のコンピュータ読出可能媒体。
  18. 【請求項18】 許可の要求を送信して前記第1のコピーを解放するステッ
    プは送信側プロセスによって実行され、 前記第1のコピーまたはそのサクセサが永続的に記憶されるようにするステッ
    プは、前記送信側プロセス以外のプロセスが前記資源の前記第1のコピーのサク
    セサを記憶するようにするステップを含む、請求項17に記載のコンピュータ読
    出可能媒体。
  19. 【請求項19】 前記第1のコピーが置換されることを防ぐステップは、 前記第1のコピーを永続的に記憶しようとするより前に、前記資源の永続的に
    記憶されたコピーが前記第1のコピーよりもより最近のものであるかどうかを決
    定するステップと、 もし前記永続的に記憶されたコピーが前記第1のコピーよりもより最近のもの
    であれば、前記第1のコピーを永続的に記憶することなしに前記第1のコピーを
    解放するステップと、 もし前記永続的に記憶されたコピーが前記第1のコピーよりもより最近のもの
    でなければ、前記第1のコピーを永続的に記憶するステップを含む、請求項15
    に記載のコンピュータ読出可能媒体。
  20. 【請求項20】 前記第1のキャッシュに関連付けられる送信側プロセスか
    ら前記第2のキャッシュに関連付けられる受信側プロセスに前記資源の前記第2
    のコピーとともに変更許可を転送するステップを実行する命令をさらに含む、請
    求項16に記載のコンピュータ読出可能媒体。
  21. 【請求項21】 前記資源にアクセスする許可はマスタによって管理され、
    前記変更許可を受信側プロセスに転送するステップは、前記マスタから前記変更
    許可の前記受信側プロセスへの転送についての確認を受信するより前に実行され
    る、請求項20に記載のコンピュータ読出可能媒体。
  22. 【請求項22】 前記第2のキャッシュに関連付けられる受信側プロセスが
    前記資源の要求を前記資源のマスタに送信するステップと、 前記受信側プロセスからの前記要求に応答して、前記資源の前記マスタは前記
    第1のキャッシュに関連付けられる送信側プロセスにメッセージを送信するステ
    ップと、 前記送信側プロセスは前記マスタからの前記メッセージに応答して前記第2の
    コピーを前記受信側プロセスに転送するステップとを実行する命令のシーケンス
    をさらに含む、請求項15に記載のコンピュータ読出可能媒体。
  23. 【請求項23】 前記第2のコピーを前記第2のキャッシュに転送するステ
    ップより後に、 前記第1のキャッシュに関連付けられる送信側プロセスがロックマネージャに
    ロックを要求するステップを実行し、前記ロックは前記資源をディスクに書込む
    許可を与えるが前記資源を変更する許可は与えず、さらに、 前記ロックマネージャは前記第1のコピーと少なくとも同じほど最近である前
    記資源のバージョンを有するプロセスを選択するステップと、 前記ロックマネージャは前記選択されたプロセスに前記ロックを与えるステッ
    プと、 前記選択されたプロセスは前記資源の前記バージョンをディスクに書込むステ
    ップとを実行する命令をさらに含む、請求項15に記載のコンピュータ読出可能
    媒体。
  24. 【請求項24】 前記資源の前記バージョンがディスクに書込まれたことに
    応答して、前記ロックマネージャは前記バージョンよりもより古い前記資源のす
    べてのバージョンが解放されるようになるステップを実行する命令をさらに含む
    、請求項23に記載のコンピュータ読出可能媒体。
  25. 【請求項25】 前記資源のダーティコピーを保持するキャッシュの障害の
    後に、 障害の発生したキャッシュが資源の最新バージョンを保持していたかどうかを
    決定するステップと、 もし障害の発生したプロセスが資源の最新バージョンを保持していたとすれば
    、 資源の最新パストイメージをディスクに書込むステップと、 資源のすべての先のパストイメージを解放するステップと、 前記障害の発生したキャッシュの復旧ログを適用して資源の最新バージョンを
    再構築するステップとを実行する命令のシーケンスをさらに含む、請求項15に
    記載のコンピュータ読出可能媒体。
  26. 【請求項26】 もし障害の発生したキャッシュが資源の最新バージョンを
    保持していなかったとすれば、 資源の最新バージョンをディスクに書込むステップと、 資源のすべてのパストイメージを解放するステップとを実行する命令のシーケ
    ンスをさらに含む、請求項25に記載のコンピュータ読出可能媒体。
  27. 【請求項27】 前記資源のダーティバージョンを保持する複数個のキャッ
    シュの障害の後に、 もし障害の発生したキャッシュのいずれかが資源の最新バージョンを保持して
    いたかどうかを決定するステップと、 もし障害の発生したキャッシュのいずれかが資源の最新バージョンを保持して
    いたとすれば、 前記障害の発生したキャッシュの復旧ログをマージし適用して資源の最新バー
    ジョンを再構築するステップとを実行する命令のシーケンスをさらに含む、請求
    項15に記載のコンピュータ読出可能媒体。
JP2000531781A 1998-02-13 1999-02-12 あるノードのキャッシュから別のノードのキャッシュへデータを転送するための方法および装置 Expired - Lifetime JP3815967B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7458798P 1998-02-13 1998-02-13
US60/074,587 1998-02-13
US09/199,120 1998-11-24
US09/199,120 US6353836B1 (en) 1998-02-13 1998-11-24 Method and apparatus for transferring data from the cache of one node to the cache of another node
PCT/US1999/002965 WO1999041664A1 (en) 1998-02-13 1999-02-12 Method and apparatus for transferring data from the cache of one node to the cache of another node

Publications (3)

Publication Number Publication Date
JP2002503846A true JP2002503846A (ja) 2002-02-05
JP2002503846A5 JP2002503846A5 (ja) 2005-12-22
JP3815967B2 JP3815967B2 (ja) 2006-08-30

Family

ID=26755827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000531781A Expired - Lifetime JP3815967B2 (ja) 1998-02-13 1999-02-12 あるノードのキャッシュから別のノードのキャッシュへデータを転送するための方法および装置

Country Status (8)

Country Link
US (7) US6353836B1 (ja)
EP (1) EP1055173B1 (ja)
JP (1) JP3815967B2 (ja)
AU (1) AU768747B2 (ja)
CA (1) CA2320240C (ja)
DE (6) DE69901291T2 (ja)
HK (5) HK1041535B (ja)
WO (1) WO1999041664A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014197402A (ja) * 2014-05-26 2014-10-16 富士通株式会社 情報処理装置、制御方法および制御プログラム

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6574654B1 (en) 1996-06-24 2003-06-03 Oracle Corporation Method and apparatus for lock caching
AU2007202589B2 (en) * 1998-02-13 2008-11-06 Oracle International Corporation Method and apparatus for transferring data from the cache of one node to the cache of another node
US7930278B2 (en) 1998-02-13 2011-04-19 Oracle International Corporation Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US6353836B1 (en) 1998-02-13 2002-03-05 Oracle Corporation Method and apparatus for transferring data from the cache of one node to the cache of another node
AU2003213536B2 (en) * 1998-02-13 2007-05-10 Oracle International Corporation Method and apparatus for transferring data from the cache of one node to the cache of another node
US7200623B2 (en) * 1998-11-24 2007-04-03 Oracle International Corp. Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US6633891B1 (en) 1998-11-24 2003-10-14 Oracle International Corporation Managing replacement of data in a cache on a node based on caches of other nodes
US7065540B2 (en) * 1998-11-24 2006-06-20 Oracle International Corporation Managing checkpoint queues in a multiple node system
US7003721B1 (en) * 1999-06-15 2006-02-21 Microsoft Corporation Safe save method of HTML files using recovery files including a list with temporary and final names for replacement files
US6405219B2 (en) * 1999-06-22 2002-06-11 F5 Networks, Inc. Method and system for automatically updating the version of a set of files stored on content servers
US6609126B1 (en) 2000-11-15 2003-08-19 Appfluent Technology, Inc. System and method for routing database requests to a database and a cache
US6961728B2 (en) * 2000-11-28 2005-11-01 Centerboard, Inc. System and methods for highly distributed wide-area data management of a network of data sources through a database interface
US6965893B1 (en) 2000-12-20 2005-11-15 Oracle International Corporation Techniques for granting shared locks more efficiently
US6850938B1 (en) * 2001-02-08 2005-02-01 Cisco Technology, Inc. Method and apparatus providing optimistic locking of shared computer resources
CA2440277C (en) * 2001-03-07 2011-05-17 Oracle International Corporation Managing checkpoint queues in a multiple node system
US6772363B2 (en) * 2001-03-12 2004-08-03 Hewlett-Packard Development Company, L.P. Fast failover database tier in a multi-tier transaction processing system
US7107319B2 (en) * 2001-05-31 2006-09-12 Oracle Corporation Method and apparatus for reducing latency and message traffic during data and lock transfer in a multi-node system
US7076510B2 (en) * 2001-07-12 2006-07-11 Brown William P Software raid methods and apparatuses including server usage based write delegation
US7325064B2 (en) * 2001-07-17 2008-01-29 International Business Machines Corporation Distributed locking protocol with asynchronous token prefetch and relinquish
US6721851B2 (en) 2001-08-07 2004-04-13 Veritas Operating Corporation System and method for preventing sector slipping in a storage area network
US7363447B1 (en) 2001-08-07 2008-04-22 Symantec Operating Corporation System and method for providing safe data movement using third party copy techniques
US6820114B2 (en) * 2001-09-27 2004-11-16 Sap Aktiengesellschaft Identifying object suppliers in a network
US7496645B2 (en) * 2001-10-18 2009-02-24 Hewlett-Packard Development Company, L.P. Deployment of business logic software and data content onto network servers
US20030105871A1 (en) * 2001-11-13 2003-06-05 Microsoft Corporation, Method and system for modifying lock properties in a distributed environment
US7028300B2 (en) * 2001-11-13 2006-04-11 Microsoft Corporation Method and system for managing resources in a distributed environment that has an associated object
US6748470B2 (en) * 2001-11-13 2004-06-08 Microsoft Corporation Method and system for locking multiple resources in a distributed environment
US7406519B2 (en) * 2001-11-13 2008-07-29 Microsoft Corporation Method and system for locking resources in a distributed environment
US8086579B1 (en) * 2002-01-22 2011-12-27 Oracle International Corporation Semantic response to lock requests to reduce coherence overhead in multi-node systems
US20030188096A1 (en) * 2002-03-15 2003-10-02 Otto Lehner Distributing access rights to mass storage
CA2377649C (en) * 2002-03-20 2009-02-03 Ibm Canada Limited-Ibm Canada Limitee Dynamic cluster database architecture
US7181452B1 (en) * 2002-04-04 2007-02-20 Ncr Corp. Locking mechanism using predefined locks for aggregate materialized views in a database system
US6988165B2 (en) * 2002-05-20 2006-01-17 Pervasive Software, Inc. System and method for intelligent write management of disk pages in cache checkpoint operations
US7448077B2 (en) * 2002-05-23 2008-11-04 International Business Machines Corporation File level security for a metadata controller in a storage area network
US6981104B2 (en) * 2002-07-12 2005-12-27 Hewlett-Packard Development Company, L.P. Method for conducting checkpointing within a writeback cache
US8095657B2 (en) * 2002-07-24 2012-01-10 Oracle America, Inc. First thread lock management for distributed data systems
US7093230B2 (en) * 2002-07-24 2006-08-15 Sun Microsystems, Inc. Lock management thread pools for distributed data systems
US20040019660A1 (en) * 2002-07-24 2004-01-29 Sandhya E. Lock holding multi-threaded processes for distibuted data systems
US7565406B2 (en) * 2002-07-24 2009-07-21 Sun Microsystems, Inc. Last thread lock management for multi-threaded process and distributed data systems
US7653667B2 (en) * 2002-09-09 2010-01-26 Sap Ag Methods and systems for data moving using locks
EP1540516B1 (en) * 2002-09-09 2009-11-25 Sap Ag Methods and systems for archiving data
US7693881B2 (en) * 2002-09-09 2010-04-06 Sap Ag Methods and systems for moving data using locks
US20060149696A1 (en) * 2002-09-09 2006-07-06 Thorsten Pferdekaemper Method and systems for controlling access to a data object by means of locks
US7457933B2 (en) * 2002-09-09 2008-11-25 Sap Ag Methods and systems for archiving data
US7756813B2 (en) * 2002-09-09 2010-07-13 Sap Ag Electronic data structure for controlling access to data objects using locks
US7707184B1 (en) * 2002-10-09 2010-04-27 Netapp, Inc. System and method for snapshot full backup and hard recovery of a database
US7451359B1 (en) 2002-11-27 2008-11-11 Oracle International Corp. Heartbeat mechanism for cluster systems
DE10256148A1 (de) * 2002-11-29 2004-06-17 Basf Ag Gegenstand der vorliegenden Erfindung sind Zusammensetzungen enthaltend mindestens ein Copolymer (A) und mindestens ein Copolymer (B) sowie deren Verwendung in kosmetischen Zubereitungen
US7822612B1 (en) 2003-01-03 2010-10-26 Verizon Laboratories Inc. Methods of processing a voice command from a caller
US7281050B2 (en) * 2003-04-08 2007-10-09 Sun Microsystems, Inc. Distributed token manager with transactional properties
US7124131B2 (en) * 2003-04-29 2006-10-17 International Business Machines Corporation Discipline for lock reassertion in a distributed file system
US7039773B2 (en) 2003-04-29 2006-05-02 Oracle International Corporation Method and mechanism for efficient implementation of ordered records
US7376744B2 (en) 2003-05-09 2008-05-20 Oracle International Corporation Using local locks for global synchronization in multi-node systems
US7447786B2 (en) * 2003-05-09 2008-11-04 Oracle International Corporation Efficient locking of shared data that is accessed for reads in a cluster database
US7139772B2 (en) 2003-08-01 2006-11-21 Oracle International Corporation Ownership reassignment in a shared-nothing database system
US7343432B1 (en) * 2003-09-19 2008-03-11 Emc Corporation Message based global distributed locks with automatic expiration for indicating that said locks is expired
US7324995B2 (en) * 2003-11-17 2008-01-29 Rackable Systems Inc. Method for retrieving and modifying data elements on a shared medium
US7447710B2 (en) * 2003-12-11 2008-11-04 Sybase, Inc. Database system providing self-tuned parallel database recovery
US7299378B2 (en) 2004-01-15 2007-11-20 Oracle International Corporation Geographically distributed clusters
US7421562B2 (en) * 2004-03-01 2008-09-02 Sybase, Inc. Database system providing methodology for extended memory support
US20050251495A1 (en) * 2004-05-06 2005-11-10 Bea Systems, Inc. System and method for unified file management
US7428733B2 (en) * 2004-05-13 2008-09-23 Bea Systems, Inc. System and method for custom module creation and deployment
US7814484B2 (en) * 2004-05-14 2010-10-12 Bea Systems, Inc. System and method for web application extensibility
US8181162B2 (en) * 2004-06-14 2012-05-15 Alcatel Lucent Manager component for checkpoint procedures
JP2006004031A (ja) * 2004-06-16 2006-01-05 Hitachi Ltd データ処理方法およびシステム並びにストレージ装置方法およびその処理プログラム
US7809690B2 (en) * 2004-07-13 2010-10-05 Oracle International Corporation Performance metric-based selection of one or more database server instances to perform database recovery
US8688662B2 (en) * 2004-09-28 2014-04-01 International Business Machines Corporation Copy on access to locked objects
US7567986B2 (en) * 2004-10-07 2009-07-28 Microsoft Corporation Method and system for limiting resource usage of a version store
US8566326B2 (en) * 2004-11-05 2013-10-22 Oracle International Corporation High-performance log-based processing
US7506202B1 (en) * 2005-02-08 2009-03-17 Symantec Operating Corporation Compression of temporal dimension in a temporal storage device
US7631021B2 (en) * 2005-03-25 2009-12-08 Netapp, Inc. Apparatus and method for data replication at an intermediate node
US7209990B2 (en) * 2005-04-05 2007-04-24 Oracle International Corporation Maintain fairness of resource allocation in a multi-node environment
US7752625B2 (en) * 2005-06-17 2010-07-06 International Business Machines Corporation Caching resources requested by applications
US7596712B1 (en) * 2006-03-23 2009-09-29 Network Appliance, Inc. Method and system for efficiently accessing a storage redundancy group
WO2007134251A2 (en) * 2006-05-12 2007-11-22 Goldengate Software, Inc. Apparatus and method for read consistency in a log mining system
US20080034053A1 (en) * 2006-08-04 2008-02-07 Apple Computer, Inc. Mail Server Clustering
US7788243B2 (en) * 2006-09-08 2010-08-31 Sybase, Inc. System and methods for optimizing data transfer among various resources in a distributed environment
US8156082B2 (en) * 2006-10-06 2012-04-10 Sybase, Inc. System and methods for temporary data management in shared disk cluster
US7831772B2 (en) * 2006-12-12 2010-11-09 Sybase, Inc. System and methodology providing multiple heterogeneous buffer caches
GB0625330D0 (en) * 2006-12-20 2007-01-24 Ibm System,method and computer program product for managing data using a write-back cache unit
JP2008276456A (ja) * 2007-04-27 2008-11-13 Hitachi Software Eng Co Ltd ファイル管理システム及び方法、並びに携帯端末装置
US8195610B1 (en) * 2007-05-08 2012-06-05 IdeaBlade, Inc. Method and apparatus for cache management of distributed objects
US8914565B2 (en) * 2007-06-08 2014-12-16 Sap Ag Locking or loading an object node
US7975025B1 (en) 2008-07-08 2011-07-05 F5 Networks, Inc. Smart prefetching of data over a network
US20100082560A1 (en) * 2008-09-19 2010-04-01 Sony Computer Entertainment America Inc. Software change management, configuration substitution and remote administration of datacenters
US20100088270A1 (en) * 2008-10-03 2010-04-08 Carsten Ziegler Data versioning concept including time dependency and active and inactive states
US8429134B2 (en) * 2009-09-08 2013-04-23 Oracle International Corporation Distributed database recovery
US8510334B2 (en) * 2009-11-05 2013-08-13 Oracle International Corporation Lock manager on disk
US8527460B2 (en) * 2010-02-19 2013-09-03 Jason Laurence Noble Method for carrying out database version control
US9026510B2 (en) * 2011-03-01 2015-05-05 Vmware, Inc. Configuration-less network locking infrastructure for shared file systems
JP5772458B2 (ja) * 2011-09-29 2015-09-02 富士通株式会社 データ管理プログラム、ノード、および分散データベースシステム
US9342411B2 (en) 2012-10-22 2016-05-17 International Business Machines Corporation Reducing memory overhead of highly available, distributed, in-memory key-value caches
US9311014B2 (en) 2012-11-29 2016-04-12 Infinidat Ltd. Storage system and methods of mapping addresses of snapshot families
US9146877B2 (en) * 2012-11-29 2015-09-29 Infinidat Ltd. Storage system capable of managing a plurality of snapshot families and method of snapshot family based read
US9330055B2 (en) * 2013-06-04 2016-05-03 International Business Machines Corporation Modular architecture for extreme-scale distributed processing applications
US9767178B2 (en) 2013-10-30 2017-09-19 Oracle International Corporation Multi-instance redo apply
US10599630B2 (en) 2015-05-29 2020-03-24 Oracle International Corporation Elimination of log file synchronization delay at transaction commit time
US10698829B2 (en) 2015-07-27 2020-06-30 Datrium, Inc. Direct host-to-host transfer for local cache in virtualized systems wherein hosting history stores previous hosts that serve as currently-designated host for said data object prior to migration of said data object, and said hosting history is checked during said migration
US10268744B2 (en) * 2015-09-22 2019-04-23 Walmart Apollo, Llc System for maintaining consistency across a decentralized database cluster and method therefor
US10083201B2 (en) * 2015-09-22 2018-09-25 Walmart Apollo, Llc System for maintaining consistency across a decentralized database cluster and method therefor
US10169138B2 (en) 2015-09-22 2019-01-01 Walmart Apollo, Llc System and method for self-healing a database server in a cluster
US10394817B2 (en) 2015-09-22 2019-08-27 Walmart Apollo, Llc System and method for implementing a database
US10116736B2 (en) 2015-09-22 2018-10-30 Walmart Apollo, Llc System for dynamically varying traffic routing modes in a distributed cluster and method therefor
KR101758558B1 (ko) * 2016-03-29 2017-07-26 엘에스산전 주식회사 에너지 관리 서버 및 그를 갖는 에너지 관리 시스템
US9971645B2 (en) 2016-08-23 2018-05-15 Seagate Technology Llc Auto-recovery of media cache master table data
US10223272B2 (en) 2017-04-25 2019-03-05 Seagate Technology Llc Latency sensitive metadata object persistence operation for storage device
US10459810B2 (en) 2017-07-06 2019-10-29 Oracle International Corporation Technique for higher availability in a multi-node system using replicated lock information to determine a set of data blocks for recovery
US11126505B1 (en) * 2018-08-10 2021-09-21 Amazon Technologies, Inc. Past-state backup generator and interface for database systems
US11188516B2 (en) 2018-08-24 2021-11-30 Oracle International Corproation Providing consistent database recovery after database failure for distributed databases with non-durable storage leveraging background synchronization point
US11334445B2 (en) * 2018-10-19 2022-05-17 Oracle International Corporation Using non-volatile memory to improve the availability of an in-memory database
JP7335966B2 (ja) 2019-02-05 2023-08-30 カーサシステムズ インコーポレイテッド ネットワーク関連付け情報を回復するための方法及び装置
US11593309B2 (en) * 2020-11-05 2023-02-28 International Business Machines Corporation Reliable delivery of event notifications from a distributed file system

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3039168A1 (de) 1980-10-16 1982-05-13 Agfa-Gevaert Ag, 5090 Leverkusen Fotografisches material, herstellungsverfahren sowie verfahren zur herstellung fotografischer bilder
EP0348628A3 (en) * 1988-06-28 1991-01-02 International Business Machines Corporation Cache storage system
US5193162A (en) * 1989-11-06 1993-03-09 Unisys Corporation Cache memory with data compaction for use in the audit trail of a data processing system having record locking capabilities
US5297269A (en) 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
US5261069A (en) 1990-08-13 1993-11-09 Hewlett-Packard Company Method of maintaining consistency of cached data in a database system
US5276835A (en) 1990-12-14 1994-01-04 International Business Machines Corporation Non-blocking serialization for caching data in a shared cache
US5287473A (en) 1990-12-14 1994-02-15 International Business Machines Corporation Non-blocking serialization for removing data from a shared cache
JPH0827755B2 (ja) 1991-02-15 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション データの単位を高速度でアクセスする方法
US5280611A (en) 1991-11-08 1994-01-18 International Business Machines Corporation Method for managing database recovery from failure of a shared store in a system including a plurality of transaction-based systems of the write-ahead logging type
US5630124A (en) 1993-12-06 1997-05-13 International Business Machines Corporation System and method for assuring atomicity of distributed update requests in a parallel database
JPH08185359A (ja) 1994-10-31 1996-07-16 Toshiba Corp メモリサブシステム
US5680576A (en) 1995-05-05 1997-10-21 Silicon Graphics, Inc. Directory-based coherence protocol allowing efficient dropping of clean-exclusive data
JP3085899B2 (ja) 1995-06-19 2000-09-11 株式会社東芝 マルチプロセッサシステム
JPH0926910A (ja) 1995-07-11 1997-01-28 Canon Inc 情報処理装置及びその方法及び情報処理システム及びその制御方法
US5903910A (en) * 1995-11-20 1999-05-11 Advanced Micro Devices, Inc. Method for transferring data between a pair of caches configured to be accessed from different stages of an instruction processing pipeline
US5832516A (en) 1997-01-21 1998-11-03 Oracle Corporation Caching data in recoverable objects
US5966706A (en) * 1997-02-19 1999-10-12 At&T Corp Local logging in a distributed database management computer system
US6067550A (en) 1997-03-10 2000-05-23 Microsoft Corporation Database computer system with application recovery and dependency handling write cache
US5933849A (en) * 1997-04-10 1999-08-03 At&T Corp Scalable distributed caching system and method
US5987477A (en) * 1997-07-11 1999-11-16 International Business Machines Corporation Parallel file system and method for parallel write sharing
US6256712B1 (en) 1997-08-01 2001-07-03 International Business Machines Corporation Scaleable method for maintaining and making consistent updates to caches
US5924096A (en) * 1997-10-15 1999-07-13 Novell, Inc. Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand
US6279084B1 (en) 1997-10-24 2001-08-21 Compaq Computer Corporation Shadow commands to optimize sequencing of requests in a switch-based multi-processor system
US6052758A (en) * 1997-12-22 2000-04-18 International Business Machines Corporation Interface error detection and isolation in a direct access storage device DASD system
US6353836B1 (en) 1998-02-13 2002-03-05 Oracle Corporation Method and apparatus for transferring data from the cache of one node to the cache of another node
US6085198A (en) * 1998-06-05 2000-07-04 Sun Microsystems, Inc. Integrated three-tier application framework with automated class and table generation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014197402A (ja) * 2014-05-26 2014-10-16 富士通株式会社 情報処理装置、制御方法および制御プログラム

Also Published As

Publication number Publication date
EP1055173A1 (en) 2000-11-29
US20010037343A1 (en) 2001-11-01
US20010047380A1 (en) 2001-11-29
DE69917342T2 (de) 2005-05-12
DE69901291D1 (de) 2002-05-23
DE69939226D1 (de) 2008-09-11
DE69929095D1 (de) 2006-01-26
HK1032642A1 (en) 2001-07-27
DE69918470T2 (de) 2005-08-18
DE69917342D1 (de) 2004-06-17
US6609136B2 (en) 2003-08-19
HK1041535A1 (en) 2002-07-12
US6564230B2 (en) 2003-05-13
CA2320240C (en) 2006-01-24
US6507853B2 (en) 2003-01-14
AU2672399A (en) 1999-08-30
HK1041535B (zh) 2004-10-08
EP1055173B1 (en) 2002-04-17
US20010037342A1 (en) 2001-11-01
US20020016795A1 (en) 2002-02-07
CA2320240A1 (en) 1999-08-19
DE69917333T2 (de) 2005-05-12
HK1041534A1 (en) 2002-07-12
HK1039812A1 (en) 2002-05-10
WO1999041664A1 (en) 1999-08-19
JP3815967B2 (ja) 2006-08-30
US20010042066A1 (en) 2001-11-15
DE69929095T2 (de) 2006-08-17
US6353836B1 (en) 2002-03-05
AU768747B2 (en) 2004-01-08
DE69917333D1 (de) 2004-06-17
US20010037326A1 (en) 2001-11-01
HK1041534B (zh) 2009-04-24
HK1061724A1 (en) 2004-09-30
US6564234B2 (en) 2003-05-13
US6567827B2 (en) 2003-05-20
DE69918470D1 (de) 2004-08-05
HK1039812B (zh) 2004-10-08
DE69901291T2 (de) 2002-12-05
US6411968B2 (en) 2002-06-25

Similar Documents

Publication Publication Date Title
JP3815967B2 (ja) あるノードのキャッシュから別のノードのキャッシュへデータを転送するための方法および装置
US7296039B2 (en) Managing checkpoint queues in a multiple node system
US8051046B2 (en) Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US20110173169A1 (en) Methods To Perform Disk Writes In A Distributed Shared Disk System Needing Consistency Across Failures
AU2002248570B2 (en) Managing checkpoint queues in a multiple node system
EP1162539B1 (en) Recovering data from one or more failed caches
AU2007202589B2 (en) Method and apparatus for transferring data from the cache of one node to the cache of another node
EP1408408B1 (en) Managing a resource used by a plurality of nodes
AU2003213536B2 (en) Method and apparatus for transferring data from the cache of one node to the cache of another node
CA2448050C (en) Method and apparatus for transferring data from the cache of one node to the cache of another node

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040728

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040728

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050913

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060530

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060606

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100616

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110616

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110616

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130616

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S802 Written request for registration of partial abandonment of right

Free format text: JAPANESE INTERMEDIATE CODE: R311802

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term