JPH11327982A - 分散デ―タベ―スシステム障害回復方法 - Google Patents

分散デ―タベ―スシステム障害回復方法

Info

Publication number
JPH11327982A
JPH11327982A JP11100556A JP10055699A JPH11327982A JP H11327982 A JPH11327982 A JP H11327982A JP 11100556 A JP11100556 A JP 11100556A JP 10055699 A JP10055699 A JP 10055699A JP H11327982 A JPH11327982 A JP H11327982A
Authority
JP
Japan
Prior art keywords
processor
slave
database
timer
update transaction
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
JP11100556A
Other languages
English (en)
Other versions
JP3822381B2 (ja
Inventor
Mark Lawrence Blood
ローレンス ブラッド マーク
Stephen Dexter Coomer
デクスター クーマー スティーブン
David Dayton Nason
デイトン ネイソン デビット
Mohamad-Reza Yamini
ヤミニ モハメド−レザ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia of America Corp
Original Assignee
Lucent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lucent Technologies Inc filed Critical Lucent Technologies Inc
Publication of JPH11327982A publication Critical patent/JPH11327982A/ja
Application granted granted Critical
Publication of JP3822381B2 publication Critical patent/JP3822381B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/1474Saving, restoring, recovering or retrying in transactions
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/953Organization of data
    • Y10S707/959Network
    • 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/964Database arrangement
    • Y10S707/966Distributed
    • 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
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 マスタデータベースプロセッサの故障のため
に正常に完了しなかったトランザクションを適切に完了
させる分散データベースシステムを実現する。 【解決手段】 各スレーブプロセッサ106,108,
110に2個のタイマ150,152を設ける。第1タ
イマ(トランザクションステップタイマ)152は、更
新トランザクションの開始ステップがスレーブプロセッ
サによって受信されたときにスタートする。第2タイマ
(自動コミットタイマ)150は、スレーブプロセッサ
がトランザクションをコミットする準備ができたときに
スタートする。第1タイマ152は、更新トランザクシ
ョンの各ステップを受信した後にリセットされる。第1
タイマ152が、更新トランザクションの次のステップ
を受信する前に満期になった場合、スレーブプロセッサ
は現在のトランザクションをアボートする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、フォールトトレラ
ント分散データベースシステムにおいてトランザクショ
ンを完了する方法および装置に関する。
【0002】
【従来の技術】分散データベースシステムとは、一般
に、複数の別個の相互に通信するデータベースを有する
システムのことである。記憶されているデータの少なく
とも一部は、複数のデータベースコピーにおいて同一で
ある。従って、共通のデータがデータベースコピーのう
ちの1つで変更されたときには、データベースシステム
全体でデータベースの一致を保つために、同じ変更を他
のすべてのデータベースコピーで行わなければならな
い。通常の状況では、データベース変更はマスタデータ
ベースコントローラによって行われる。データベースマ
スタコントローラは、自己のデータベースコピーに対す
る変更を行い、ネットワークを構成する他のデータベー
スコピーへの更新を制御する責任がある。しかし、デー
タベースコピーまたはそのコピーをデータベースマスタ
コントローラに接続するリンクのいずれかに生じた障害
がデータベースの全部または一部への送信あるいは変更
を妨げると問題が生じる。
【0003】分散データベースネットワーク内では、情
報はトランザクションによって個々のデータベースに入
力される。データベース「トランザクション」とは、ユ
ーザが制御する(またはマスタデータベースが制御す
る)データベースアクションの系列であって、「開始ス
テップ」および「終了ステップ」の両方によってマーク
されたものである。開始ステップと終了ステップの間の
データベースアクションが、データベースを更新するス
テップあるいはアクションを構成する。終了ステップ
は、コミットまたはアボート(中断)のいずれかである
ことが可能である。コミットは、前の更新トランザクシ
ョンを実行する命令であり、データベースを変更する。
アボートは、前の更新トランザクションを無効にする命
令である。各プロセッサで生じる可能性のあるトランザ
クションには、コールドトランザクションおよびホット
トランザクションという2種類のトランザクションがあ
る。コールドトランザクションは、既に完了しており、
故障したデータベースプロセッサの回復期間中にのみ使
用されるトランザクションである。ホットトランザクシ
ョンは、完了または中断していない進行中のトランザク
ションである。
【0004】通信産業における分散データベースは高度
の可用性とともに高い信頼性が必要である。さらに、こ
のようなシステムはフォールトトレラントでもなければ
ならない。すなわち、あるデータベースコピーの障害が
システム全体をダウンさせてはならない。(米国におけ
る)800番サービス(日本におけるフリーダイヤルに
相当)のような情報へのアクセスの例に見られるよう
に、通信産業はこの点で非常に要求の厳しいものであ
る。発呼があった場合、データベースへの問合せとその
問合せに対応する番号の回答の間の応答時間は素早くし
かも信頼性が高い必要がある。応答遅延は、呼設定の遅
延を生じ、顧客の不満足を生じる結果となる。
【0005】分散データベースシステムでは、データベ
ース同期は通常「2相コミット」というアルゴリズムで
行われる。2相コミットは、「コーディネータ」、「マ
スタ」あるいはコントローラと呼ばれる1つのデータベ
ースコピーと、「パティシパント」、「スレーブ」ノー
ド(コピー)と呼ばれる分散データベースシステム内の
他のすべてのコピーとで実行される。2相コミットアル
ゴリズムは次のように動作する。
【0006】第1相。コーディネータは、ネットワーク
を通じてすべてのパティシパントへ、1つまたは複数の
データベースレコードの更新のようなトランザクション
をコミットするよう要求するメッセージを送る。データ
ベースパティシパントが故障している場合、または、停
止している(利用可能でない)場合には、コーディネー
タに対して、そのトランザクションをコミットする用意
ができていないことを示すメッセージにより応答しなけ
ればならない。パティシパントが故障により応答するこ
とができない場合、「ノットレディ(not ready)」応答
がコーディネータによって仮定される。コーディネータ
は、第2相に入る前に、すべてのパティシパントからの
応答を受信するのを待機する。
【0007】第2相。すべてのデータベースパティシパ
ントが正しく応答した場合、コーディネータはすべての
データベースパティシパントへ「コミット」メッセージ
(コマンド)をブロードキャストし、パティシパントが
トランザクションをコミットするようにする。いずれか
のパティシパントが、故障を示すメッセージで応答した
場合または応答することができない場合、コーディネー
タはすべてのパティシパントへアボートメッセージをブ
ロードキャストする。
【0008】マスタは、2相コミットのためにアクティ
ブで利用可能なパティシパントのステータスを知るた
め、アクティブで利用可能なデータベースプロセッサの
動的リスト(「定数(quorum)」という。)を保持する。
この動的リストは、どのデータベースプロセッサがアク
ティブで利用可能であり、従って更新トランザクション
を受け取ることが可能であるかを判定するためにマスタ
によって使用される。データベースプロセッサは、この
リストにある場合、トランザクションを正しくコミット
することができると仮定される。
【0009】
【発明が解決しようとする課題】本発明の目的は、マス
タデータベースプロセッサの故障のために正常に完了し
なかったトランザクションを適切に完了させる分散デー
タベースシステムを実現することである。トランザクシ
ョンの完了が、新たなマスタによる指令なしで、しか
も、トランザクションをもとに戻したり再実行したりす
ることなく行われれば望ましい。
【0010】本発明のもう1つの目的は、故障していな
いすべてのパティシパントが外部からの調整なしで自動
的に障害回復を実行し、失敗したトランザクションのク
リーンアップ処理に伴う遅延をなくすことができるよう
な分散データベースシステムを実現することである。さ
らに、故障したパティシパントは、再同期期間中に行わ
れているトランザクションを中断することなく故障して
いない部分に再同期して新たなトランザクションに加わ
ることが可能であるようにする。
【0011】
【課題を解決するための手段】本発明の1つの特徴によ
れば、上記の目的は、1つまたは複数のデータベースパ
ティシパントが故障したかも知れないために故障した分
散データベースシステムにおいてデータベーストランザ
クションを完了する方法および装置を実現することによ
り達成される。マスタデータベースプロセッサが故障し
た場合、故障していないすべてのパティシパントは、マ
スタデータベースプロセッサのサービス復帰または置換
までの間は、トランザクションをコミットするかまたは
トランザクションをアボートするかのいずれかである。
トランザクションの進行中または進行中のトランザクシ
ョンがない間のいずれかに、スレーブプロセッサのうち
の1つが故障した場合、故障したスレーブプロセッサ
は、故障していない他のスレーブプロセッサに影響を及
ぼすことなく全体に再同期することができる。故障した
プロセッサがサービスに復帰するときには、故障したプ
ロセッサは、マスタデータベースプロセッサとの連絡を
断っていた間に更新されたスレーブプロセッサと一致す
るように更新することができる。
【0012】一実施例では、本発明は、各スレーブプロ
セッサに1対のタイマを設ける。第1のタイマは、更新
トランザクションの開始ステップがそのスレーブプロセ
ッサによって受信されたときにスタートする。第2のタ
イマは、そのスレーブがトランザクションをコミットす
る準備ができたときにスタートする。第1のタイマは、
更新トランザクションの各ステップを受信した後にリセ
ットされる。第1のタイマが、更新トランザクションの
次のステップを受信する前に「タイムアウト」すなわち
満期になった場合、そのスレーブプロセッサは現在のト
ランザクションをアボートする。更新トランザクション
の完了後、マスタデータベースプロセッサは、スレーブ
プロセッサがデータベース更新トランザクションをコミ
ットすることができるかどうかを問い合わせるコミット
要求(request to commit)メッセージをスレーブプロセ
ッサに対して発行する。このコミット要求メッセージに
対する、各スレーブプロセッサによるコミット投票(vot
e to commit)メッセージが、各スレーブプロセッサの第
2のタイマをトリガする。コミット要求メッセージがマ
スタプロセッサからスレーブプロセッサへ送られた後、
新たなトランザクションが受信されるまで、第1のタイ
マは無効にされる。第2のタイマが「タイムアウト」し
た場合、そのスレーブプロセッサはトランザクションを
コミットする。
【0013】スレーブプロセッサの第1のタイマが「タ
イムアウト」した場合、そのスレーブプロセッサは現在
のトランザクションをアボートし、グローバルアボート
メッセージをすべてのスレーブプロセッサへ送る。グロ
ーバルアボートメッセージを受信したことに応答して、
グローバルアボートメッセージを受信したスレーブプロ
セッサも現在のトランザクションをアボートし、自己の
グローバルアボートメッセージをすべてのスレーブプロ
セッサへ送信する。その結果、すべてのスレーブプロセ
ッサは現在のトランザクションをアボートし、プロセッ
サのネットワークは同一の状態になる。
【0014】好ましい実施例では、マスタデータベース
プロセッサによって実行される各更新トランザクション
の記録がジャーナルあるいはログとしてマスタデータベ
ースプロセッサによって管理される。このジャーナルあ
るいはログは、好ましくは、巡回キューまたはバッファ
である。ジャーナル内の古い記録は最終的に最新の更新
トランザクションで上書きされる。各スレーブプロセッ
サも、そのスレーブプロセッサが正しくコミットするこ
とができた少なくとも最近のデータベース更新トランザ
クションの記録を管理する。
【0015】高信頼性データベースシステムでは、1つ
のスレーブプロセッサが故障するかあるいはそれとの通
信が失われると、故障したデータベースコピーの停止中
に、稼働中の他のデータベースコピーが更新される可能
性がある。最終的に、故障したスレーブプロセッサがサ
ービスに復帰すると、その直後には、ネットワーク全体
の他のデータベースコピーでカレントになっているデー
タを有していない可能性がある。前に損失したデータベ
ースコピーを更新するため、そのスレーブプロセッサが
停止中に実行されたトランザクションのジャーナル(ロ
グ)を用いて、その故障したスレーブプロセッサが実行
できなかったトランザクションを再作成する。各スレー
ブプロセッサは、最後に完了した最近のトランザクショ
ンの識別を追跡(記録)している。この最終完了トラン
ザクションの記録から、マスタプロセッサおよび故障し
たプロセッサは、マスタ内のジャーナルに記録されてい
る完了トランザクションを用いて、自己を他のプロセッ
サに再同期させる。
【0016】トランザクションおよび順序識別子ならび
に関連するデータはジャーナルに入力される。これらの
識別子に基づいて、パティシパントは、次に期待される
タスクが何であるかを、そのタスクの性質を知ることを
必要とせずに判定することができる。故障が補正された
後、故障していたパティシパントは、ジャーナルから、
実行することができなかった最初のトランザクションを
要求し、その後、その最初の未実行トランザクションに
続くトランザクションを要求する。パティシパントは、
すべての未実行トランザクションを実行した後、ネット
ワークに再加入し、新たなトランザクションを受け取る
ことができる。
【0017】
【発明の実施の形態】図1に、マスタプロセッサ102
と少なくとも1つのバックアップマスタプロセッサ10
4を含むプロセッサの分散ネットワーク100を示す。
図1はまた、いくつかのスレーブ(パティシパント)プ
ロセッサ106、108および110も示している。各
プロセッサ102、104、106、108および11
0は、図示のように、これらのプロセッサのそれぞれに
対応するデータベース112、114、116、118
および120を制御する。112、114、116、1
18および120のデータベースレコードは、例えば、
ディスクレコードからなる(テープなどの磁気媒体にも
記憶可能であり、あるいは、ランダムアクセスメモリに
記録することも可能である)。各データベース112、
114、116、118および120は同じデータを含
む。また、各プロセッサ102、104、106、10
8および110は、高速データ相互接続140を通じて
互いに通信する。高速データ相互接続140は、例え
ば、Ethernetネットワークなどの適当なデータリンクか
らなり、これによりデータは図1の各プロセッサどうし
の間で交換される。図1の分散プロセッサネットワーク
100は例えば電話交換ネットワークで用いることが可
能である。その場合、各プロセッサ102、104、1
06、108および110は呼処理を行う。あるいは、
分散プロセッサネットワーク100は、航空機予約シス
テムや銀行処理記録のような他のアプリケーションでも
使用可能であるが、これらに限定されない。
【0018】データベース112、114、116、1
18および120は、顧客レコード、電話番号、航空機
フライト予約スケジュールなどを含む。動作時には、各
プロセッサは対応するデータベースにアクセスしてトラ
ンザクションを処理する必要があり、ほとんどのアプリ
ケーションでは、各データベース112、114、11
6、118および120が分散プロセッサネットワーク
100内の他のデータベースの正確なコピーであること
が要求される。
【0019】トランザクションがデータベースプロセッ
サ102、104、106、108および110によっ
て処理されると、各データベースコピーが互いに同一で
あることを保証するためにデータベースコピー112、
114、116、118および120は更新される必要
が生じる。
【0020】マスタデータベースプロセッサ102は、
データベースコピー114、116、118および12
0を更新する。データベースコピー116、118およ
び120で更新される必要のある1つのデータベース内
のデータベース記録は、マスタデータベースプロセッサ
が、更新レコードを各データベースコピー112、11
4、116、118および120へ送信することによっ
て更新される。マスタデータベースプロセッサは、各ス
レーブ(パティシパント)プロセッサ106、108お
よび110に対して、各スレーブ(パティシパント)プ
ロセッサが更新を受け入れる準備ができているかどうか
を判定するよう質問する。その後、マスタデータベース
プロセッサは、更新されるべきレコードをスレーブ(パ
ティシパント)プロセッサ106、108および110
にコピーし、これらのスレーブ(パティシパント)プロ
セッサにコピーが送られた後、これらのスレーブ(パテ
ィシパント)プロセッサは、マスタプロセッサ102に
よって、更新が正しく完了したかどうかを調べるよう質
問される。
【0021】[故障したスレーブプロセッサの再同期]
1つまたは複数のスレーブ(パティシパント)プロセッ
サが故障した場合、マスタプロセッサ102は、それに
対応するデータベースコピーを更新することができな
い。例えば、スレーブデータベースプロセッサ106が
故障した場合、データベースコピー116への更新を行
うことができない。この故障したプロセッサが最終的に
サービスに復帰して障害から回復すると、そのデータベ
ースは、故障して停止中にマスタによって更新されたか
も知れない他のデータベースコピーと一致するように更
新する必要が生じる。
【0022】ここで故障(障害)という用語は、データ
ベースプロセッサ106、108および110がデータ
ベース更新トランザクションを受け取ることができない
プロセッサ状態のことである。故障は、何らかの条件に
よりデータベースプロセッサ106、108および11
0が、分散プロセッサネットワーク100に再加入する
前に回復を必要とする状態に入ることを余儀なくされた
場合に起こる。定義により、故障とは、データベースプ
ロセッサ106、108および110が故障のときには
定数(quorum)のアクティブなメンバであったことを意味
する。
【0023】故障したプロセッサが回復(サービスに復
帰)した後にその故障したプロセッサのデータベースを
更新する(同期させる)方法は、各スレーブ(パティシ
パント)プロセッサが故障前に完了することができた最
後のデータベース更新を記録していることを必要とす
る。各データベースプロセッサ106、108、110
ならびに102および104は、そのプロセッサによっ
て正しく寒行された最後のデータベース更新の何らかの
指標を記録している必要がある。このような最終完了レ
コードの指標は、例えば、マスタプロセッサ102の指
示のもとに最後に完了した更新を識別するために任意に
割り当てられた番号であって、プロセッサのランダムア
クセスメモリ(RAM)や、ディスクなどの媒体のファ
イルあるいはその一部として、またはその他のデータの
読み書きが可能な適当なデバイスに記憶される。あるい
は、各プロセッサは、最終稿新トランザクションの完全
なレコードを保持することも可能である。
【0024】マスタデータベースプロセッサ102、お
よびバックアッププロセッサ104内には、それぞれ、
ジャーナル(ログ)122および124が保持される。
これは、マスタプロセッサ102によって実行され正し
く完了したデータベース更新トランザクションのステッ
プの記録である。このジャーナルは、データベース更新
トランザクションのステップを記録する。
【0025】好ましい実施例では、データベース更新ジ
ャーナル122および124はそれぞれ巡回バッファで
あり、データベース更新トランザクションが順次記憶さ
れる。当業者には認識される通りの巡回バッファの特性
により、最終的に、古いデータベース更新記録は最近の
更新トランザクションで上書きされる。
【0026】あるいは、データベース更新ジャーナル
は、FIFOまたはLIFOバッファとして構成される
ことも可能である。これらも、当業者には認識される通
り、マスタプロセッサ102によって完了されたトラン
ザクションを記録する別の方法である。
【0027】故障したプロセッサの回復後、対応するデ
ータベースコピーの更新(再同期)は、故障していたプ
ロセッサがマスタプロセッサ102に最後に正しく完了
したデータベース更新の識別(指標)を通知することに
よって実現される。図1には、各データベースプロセッ
サ106、108および110内に、最終完了データベ
ース更新トランザクションの適当な指標を記憶するデー
タ記憶要素126、128および130も示されてい
る。故障していたプロセッサからのこの情報を用いれ
ば、マスタプロセッサ102は、その後に、ジャーナル
から、故障していたデータベースプロセッサによって最
後に正しく完了されたデータベース更新の後に起きたデ
ータベース更新トランザクションの完全なレコードをコ
ピーすればよい。
【0028】当業者には認識されるように、マスタデー
タベースプロセッサ102によるジャーナル記録の更新
は、マスタデータベースプロセッサがデータベース更新
トランザクションのレコードを故障していたプロセッサ
へコピーするときに行うことが可能である。このように
して、マスタデータベースプロセッサ102は、例え
ば、故障したプロセッサ106、108および110
に、故障していたプロセッサがオンラインに復帰する過
程で要求されたデータベース更新レコードをコピーする
ことができる。
【0029】データベースレコード112、114、1
16、118および120は、例えば、ディスクレコー
ドからなる(テープなどの磁気媒体にも記憶可能であ
り、あるいは、ランダムアクセスメモリに記録すること
も可能である)。同様に、ジャーナル122および12
4は、ディスクレコード、テープレコードとして保持す
ることも可能であり、あるいは、プロセッサのランダム
アクセスメモリに記憶することも可能である。当業者に
は認識されるように、データベースプロセッサ102、
104、106、108および110は適当なコンピュ
ータとすることが可能である。
【0030】[マスタプロセッサの故障]トランザクシ
ョンの進行中または2相コミットの間にマスタデータベ
ースプロセッサ102が故障した場合、未完了のトラン
ザクションに対する適切な処置をしなければならない。
そうでない場合、分散データベースネットワークは、不
確定な状態になる。例えば、スレーブデータベースプロ
セッサ106はマスタデータベースプロセッサ102で
の問題を認識していない可能性があり、その場合、更新
トランザクションのコミットに進んでしまう。データは
データベース116にコミットされる。しかし、スレー
ブデータベースプロセッサ108がマスタデータベース
プロセッサ102での問題を認識していると、更新トラ
ンザクションをアボートしてしまう。データベース11
6にコミットされたデータはデータベース118にはコ
ミットされない。従って、データベース116に含まれ
るデータはデータベース118に含まれるデータと異な
ることになる。これを不確定状態という。分散プロセッ
サネットワーク100では、ネットワークが正しく動作
するにはデータベース112、114、116、118
および120が同じデータを含まなければならないから
である。
【0031】マスタデータベースプロセッサ102の故
障からの回復方法は、データベースプロセッサ104、
106、108および110が更新トランザクションに
関して同一の状態になることを必要とする。すなわち、
すべてのデータベースプロセッサがそのトランザクショ
ンをコミットするか、あるいは、すべてのデータベース
プロセッサがそのトランザクションをアボートしなけれ
ばならない。従来技術に対する改良として、トランザク
ション処理は、新たなマスタの指令なしに、しかも、ト
ランザクションを再実行したりもとに戻したりすること
なく、実現される。
【0032】図2に示すように、データベースプロセッ
サ110には2個のタイマがある。各データベースの第
1のタイマはトランザクションステップタイマ152で
ある。トランザクションステップタイマ152は、特定
の長さ(タイマウィンドウという。)に設定される。ト
ランザクションステップタイマ152は、データベース
更新トランザクションが受信されたときにスタートす
る。データベースプロセッサ110がタイマウィンドウ
内に更新トランザクションの各ステップを受信しない場
合(すなわち、トランザクションの終了ステップを受信
しない場合)、データベースプロセッサは自動的にその
トランザクションをアボートする。トランザクションス
テップタイマ152は、トランザクションのステップが
受信されるごとにリセットされる。さらに、トランザク
ションステップタイマ152は、データベースプロセッ
サ110が、マスタデータベースプロセッサ102から
コミット要求メッセージを受信した場合に無効にされ
る。
【0033】データベースプロセッサ110の第2のタ
イマは自動コミットタイマ150である。データベース
プロセッサ110がトランザクションをコミットするこ
とを承認(投票)するとき、コミット投票メッセージが
マスタデータベースプロセッサ102へ送られる。自動
コミットタイマ150は、コミット投票メッセージが送
られるときにスタートする。データベースプロセッサ
は、2相コミット手続きにおいてトランザクションをコ
ミットすることに投票した場合、データベースプロセッ
サがアボートメッセージを受け取らない限り、自動コミ
ットタイマ150が満期になるとそのトランザクション
を自動的にコミットする。
【0034】本発明のもう1つの特徴は、グローバルア
ボートメッセージングシステムである。データベースプ
ロセッサ104、106、108、または110のいず
れかがトランザクションをアボートした場合、そのデー
タベースプロセッサは、アボートが生じたことを他のす
べてのプロセッサが知るように、アボートメッセージを
ブロードキャストする。アボートメッセージの受信によ
り、データベースプロセッサはトランザクションをアボ
ートすることを強制される。場合によっては、アボート
メッセージの受信は個々のデータベースプロセッサにと
って必要でも有用でもないこともある。その場合、アボ
ートメッセージは捨てられる。
【0035】例えば、データベースプロセッサ110が
トランザクションをアボートした場合、グローバルアボ
ートメッセージがデータベースプロセッサ110からデ
ータベースプロセッサ102、104、106、および
108へ送られる。データベースプロセッサ102、1
04、106、および108は、グローバルアボートメ
ッセージを受信し、トランザクションをアボートする。
また、データベースプロセッサ106が独立にトランザ
クションをアボートすることを決定した場合、データベ
ースプロセッサ106によって受信されたアボートメッ
セージは重複しており、捨てられる。
【0036】トランザクションステップタイマ152の
タイマウィンドウは、トランザクションステップタイマ
152が自動コミットタイマ150より短くなるような
適当な長さに設計することができる。そうすると、いく
つかのデータベースプロセッサがコミットすることに投
票し、いくつかのデータベースプロセッサがアボートす
ることを決定した場合、トランザクションステップタイ
マ152は満期となり、アボートするデータベースプロ
セッサはタイムアウトとなってグローバルアボートメッ
セージを送信する。コミットすることに投票し従ってそ
れぞれの自動コミットタイマが進行しているデータベー
スプロセッサはグローバルアボートメッセージを受信
し、それぞれの自動コミットタイマをキャンセルするこ
とになる。データベースプロセッサ102、104、1
06、108、および110はアボートし、すべてのデ
ータベースは同一の状態になる。
【0037】本発明が対処する2つのマスタ故障状態が
ある。すなわち、マスタデータベースプロセッサ102
がトランザクションの進行中に故障する場合と、マスタ
データベースプロセッサ102が2相コミット中に故障
する場合である。
【0038】第1の状態では、マスタデータベースプロ
セッサ102は、トランザクションの進行中に、すなわ
ち、トランザクションにおけるあるステップが進行中で
あるがデータベースプロセッサ104、106、10
8、および110がトランザクションをコミットするこ
とに投票する前に、故障する。マスタデータベースプロ
セッサ102がこの時点で故障した場合、データベース
プロセッサ104、106、108および110のトラ
ンザクションステップタイマは満期(タイムアウト)に
なる。トランザクションステップタイマのタイムアウト
に応答して、データベースプロセッサ104、106、
108および110はトランザクションをアボートす
る。
【0039】第2の状態では、マスタデータベースプロ
セッサ102は2相コミット中に故障する。この時点
で、データベースプロセッサ104、106、108お
よび110は更新トランザクションの終了ステップを受
信しているか、または、マスタがコミット要求メッセー
ジを送信しておりデータベースプロセッサ104、10
6、108および110がマスタデータベースプロセッ
サ102へコミット投票メッセージを送る準備ができて
いる状態である。データベースプロセッサ104、10
6、108および110がが更新トランザクションの終
了ステップを受信した後には3つの可能なシナリオがあ
る。
【0040】第1の場合として、データベースプロセッ
サ104、106、108および110のいずれも、マ
スタデータベースプロセッサ102が故障する前にトラ
ンザクションをコミットすることに投票していない場合
がある。一例として、データベースプロセッサ104、
106、108および110が更新トランザクションの
最終ステップを受信した後、各プロセッサがコミットす
ることができるかどうかを質問するメッセージをマスタ
データベースプロセッサ102が送信する前に、マスタ
データベースプロセッサ102が故障する場合である。
このシナリオでは、すべてのデータベースプロセッサが
タイムアウトする。トランザクションステップタイマが
依然としてアクティブであり、すべてのデータベースプ
ロセッサがトランザクションをアボートすることになる
からである。トランザクションステップタイマは、対応
するデータベースプロセッサがコミット要求メッセージ
を受信した後に無効にされる。
【0041】第2の場合として、データベースプロセッ
サ104、106、108および110がコミットをす
ることに投票した後、マスタが故障する場合がある。こ
のシナリオでは、すべてのデータベースプロセッサの自
動コミットタイマがタイムアウトし、すべてのデータベ
ースプロセッサはトランザクションをコミットすること
になる。
【0042】第3の場合は、例えば、データベースプロ
セッサ104および106がトランザクションをコミッ
トすることに投票し、データベースプロセッサ108お
よび110がアボートすることに決定した場合である。
上記のグローバルアボートメッセージングシステムのも
とで、アボートするデータベースプロセッサはコミット
するデータベースプロセッサよりも早くタイムアウト
し、コミットするデータベースプロセッサがトランザク
ションをコミットする前にグローバルアボートメッセー
ジを受信するようになっている。従って、すべてのデー
タベースプロセッサはトランザクションをアボートし、
データベース112、114、116、118および1
20は同一のままとなる。
【0043】図3、図4、図5、図6、図7および図8
は、故障していないすべてのパティシパントが外部から
の調整なしで自動的に障害回復を行い更新トランザクシ
ョンを完了することを可能にする方法のさまざまな特徴
を示す流れ図である。プロセスを完全に理解するために
は、マスタデータベースプロセッサ102、バックアッ
プマスタデータベースプロセッサ104、ならびにスレ
ーブデータベースプロセッサ106、108および11
0は、さまざまなアルゴリズムが以下に列挙されるステ
ップを実行するようにプログラムされていることを理解
することが重要である。
【0044】図3および図4において、ステップ210
で、マスタデータベースプロセッサ102(図3には示
さない)のジャーナル122(図1および図2ならびに
上記参照)が作成される。ステップ220で、データベ
ース更新トランザクションのステップがジャーナル12
2に記録される。ステップ230および240で、図示
のように、各スレーブデータベースプロセッサ106、
108および110の2個のタイマが作成される。ステ
ップ250で、スレーブプロセッサ106、108およ
び110は、データベース更新トランザクションの最初
が受信されたかどうかを問い合わせる。この問合せは、
スレーブデータベースプロセッサがデータベース更新ト
ランザクションを受信するまで連続ループで継続され
る。ステップ260で、データベース更新トランザクシ
ョンを受信したスレーブプロセッサの第1タイマがスタ
ートする。
【0045】ステップ270で、データベース更新トラ
ンザクションを受信したスレーブプロセッサは、データ
ベース更新トランザクションの次のステップが受信され
たかどうかを問い合わせる。データベース更新トランザ
クションの次のステップが受信された場合、ステップ2
80で、第1タイマはリセットされてリスタートし、ス
テップ270で、データベース更新トランザクションを
受信したスレーブプロセッサは再び、次のステップを受
信したかどうかを問い合わせる。ステップ270におい
てデータベース更新トランザクションの次の部分が受信
されていない場合、ステップ290で、データベース
は、コミット要求メッセージがマスタデータベースプロ
セッサ102から受信されたかどうかを問い合わせる。
コミット要求メッセージが受信されていない場合、ステ
ップ300で、スレーブプロセッサは、第1タイマが満
期になったかどうかを問い合わせる。第1タイマが満期
でない場合、ステップ270で、スレーブプロセッサ
は、データベース更新トランザクションの次のステップ
が受信されたかどうかを問い合わせる。第1タイマが満
期になった場合、スレーブプロセッサは、ステップ31
0で、トランザクションをアボートし、ステップ320
で、グローバルアボートメッセージを他のすべてのスレ
ーブプロセッサへ送る。スレーブプロセッサは、新たな
データベース更新トランザクションを受け取ることがで
きる状態となるため、ステップ250に復帰する。
【0046】ステップ290で、コミット要求メッセー
ジがマスタデータベースプロセッサ102から受信され
ている場合、ステップ330で、第1タイマがキャンセ
ルされる。ステップ340で、スレーブプロセッサはコ
ミット投票メッセージをマスタデータベースプロセッサ
102へ送る。ステップ330で、コミット投票メッセ
ージを送信したスレーブプロセッサの第2タイマがスタ
ートする。第2タイマのスタート後、ステップ360
で、対応するスレーブプロセッサは、第2タイマが満期
になったかどうかを問い合わせる。第2タイマが満期に
なった場合、ステップ370で、データベース更新トラ
ンザクションがコミットされる。ステップ380で、適
当なスレーブデータベースプロセッサが、最後にコミッ
トされたデータベース更新トランザクションの指標を記
録し、新たなデータベース更新トランザクションの開始
を受信する準備ができる。
【0047】第2タイマが満期でない場合、ステップ3
90で、スレーブデータベースプロセッサは、アボート
メッセージが受信されているかどうかを問い合わせる。
アボートメッセージが受信されていない場合、ステップ
360で、スレーブデータベースプロセッサは再び、第
2タイマが満期になったかどうかを問い合わせる。アボ
ートメッセージが受信されている場合、スレーブデータ
ベースプロセッサは、ステップ395で、データベース
更新トランザクションをアボートし、ステップ397
で、すべてのスレーブプロセッサへグローバルアボート
メッセージを送る。データベース更新トランザクション
をアボートしたスレーブプロセッサは、新たなデータベ
ース更新トランザクションを受信する準備ができる。
【0048】図5は、故障したスレーブプロセッサの障
害回復の流れ図である。ステップ410で、マスタデー
タベースプロセッサ102(図5には示さない。)のジ
ャーナル122(図1および図2ならびに上記参照)が
作成された後、ステップ420で、データベース更新ト
ランザクションのステップがジャーナル122に記録さ
れる。ステップ430で、スレーブデータベースプロセ
ッサ106、108および110は、各プロセッサでコ
ミットされた最後に完了したデータベース更新トランザ
クションの指標を記録する。ステップ450で、スレー
ブプロセッサ106、108または110の故障がある
場合、その故障以後のすべてのデータベース更新トラン
ザクションがジャーナルから適当な故障したプロセッサ
にコピーされる。
【0049】図6は、トランザクションステップタイマ
152(図2および上記参照)の一般的動作の流れ図で
ある。ステップ510で、第1タイマが作成されスレー
ブプロセッサに割り当てられると、ステップ520で、
スレーブプロセッサは、更新トランザクションが受信さ
れたかどうかを問い合わせる。データベース更新トラン
ザクションが受信されていない場合、アルゴリズムはル
ープし、再び、データベース更新トランザクションが受
信されたかどうかを問い合わせる。データベース更新ト
ランザクションがスレーブプロセッサによって受信され
ている場合、ステップ530で、データベース更新トラ
ンザクションを受信したスレーブプロセッサの第1タイ
マがスタートする。その後、ステップ540で、スレー
ブデータベースプロセッサは、第1タイマが満期になっ
たかどうかを問い合わせる。第1タイマが満期になった
場合、ステップ550で、データベース更新トランザク
ションはアボートされ、ステップ560で、グローバル
アボートメッセージがすべてのスレーブプロセッサへ送
られる。第1タイマが満期でない場合、ステップ570
で、スレーブデータベースプロセッサは、データベース
更新トランザクションの一部が受信されているかどうか
を問い合わせる。受信されていない場合、ステップ54
0で、スレーブデータベースプロセッサは再び、第1タ
イマが満期になったかどうかを問い合わせる。データベ
ース更新トランザクションの一部が受信されている場
合、ステップ580で、第1タイマはリセットされ、さ
らに、第1タイマはリスタートされる。
【0050】図7は、自動コミットタイマ150(図2
および上記参照)の一般的動作の流れ図である。ステッ
プ610で、タイマが作成された後、ステップ620
で、スレーブデータベースプロセッサは、データベース
更新トランザクションを受信したかどうかを問い合わせ
る。データベース更新トランザクションが受信されてい
ないという応答であるたびに、アルゴリズムはループ
し、データベース更新トランザクションが受信されたか
どうかの問合せを継続する。データベース更新トランザ
クションが受信された場合、スレーブデータベースプロ
セッサは、ある時点で、マスタデータベースプロセッサ
102(図7には示していない。)からコミット要求メ
ッセージを受け取る。コミット要求メッセージを受信し
た後、ステップ640で、スレーブデータベースプロセ
ッサは、マスタデータベースプロセッサ102へコミッ
ト投票メッセージを送る。ステップ650で、コミット
投票メッセージを送信したスレーブプロセッサのタイマ
がスタートする。その後、ステップ660で、スレーブ
データベースプロセッサは、タイマが満期になったかど
うかを問い合わせる。タイマが満期になった場合、ステ
ップ670で、データベース更新トランザクションがコ
ミットされる。タイマが満期でない場合、ステップ68
0で、スレーブデータベースプロセッサは、グローバル
アボートメッセージが受信されたかどうかを問い合わせ
る。グローバルアボートメッセージが受信されていない
場合、アルゴリズムはループし、ステップ650で再
び、タイマが満期になったかどうかを問い合わせる。ス
テップ680においてグローバルアボートメッセージが
受信されている場合、スレーブデータベースプロセッサ
は、ステップ690で、データベース更新トランザクシ
ョンをアボートし、ステップ695で、グローバルアボ
ートメッセージをすべてのスレーブプロセッサへ送る。
データベース更新トランザクションをアボートしスレー
ブプロセッサは、新たなデータベース更新トランザクシ
ョンを受け取る準備が整う。
【0051】図8は、自動コミットタイマ150とトラ
ンザクションステップタイマ152(いずれも図2およ
び上記参照)の間の調整の概略を示す流れ図である。ス
テップ710で、各タイマが作成され、ステップ720
で、各スレーブプロセッサに割り当てられると、ステッ
プ730で、各スレーブデータベースプロセッサは、デ
ータベース更新トランザクションの開始が受信されたか
どうかを問い合わせる。データベース更新トランザクシ
ョンの開始が受信されていない場合、アルゴリズムはル
ープし、再び、データベース更新トランザクションの開
始が受信されたかどうかを問い合わせる。データベース
更新トランザクションの開始が受信されている場合、ス
テップ740で、データベース更新トランザクションの
開始を受信したスレーブプロセッサのトランザクション
ステップタイマがスタートする。ステップ750で、ス
レーブプロセッサは、第1タイマが満期になったかどう
かを問い合わせる。第1タイマが満期でない場合、ステ
ップ760で、スレーブデータベースプロセッサは、コ
ミット要求メッセージがマスタデータベースプロセッサ
102(図8には示していない。)から受信されたかど
うかを問い合わせる。コミット要求メッセージが受信さ
れていない場合、ステップ770で、スレーブデータベ
ースプロセッサは、データベース更新トランザクション
の一部が受信されたかどうかを問い合わせる。受信され
ていない場合、ステップ750で、スレーブデータベー
スプロセッサは、第1タイマが満期になったかどうかを
問い合わせる。データベース更新トランザクションの一
部が受信されている場合、トランザクションステップタ
イマはリセットされリスタートされる。
【0052】コミット要求メッセージがマスタデータベ
ースプロセッサ102から受信されている場合、ステッ
プ810で、トランザクションステップタイマが無効に
される。ステップ820で、スレーブデータベースプロ
セッサは、マスタデータベースプロセッサ102へコミ
ット投票メッセージを送る。ステップ830で、コミッ
ト投票メッセージを送信したスレーブプロセッサの第2
タイマがスタートする。ステップ840で、スレーブデ
ータベースプロセッサは、第2タイマが満期になってい
るかどうかを問い合わせる。第2タイマが満期である場
合、ステップ850で、スレーブデータベースプロセッ
サは、データベース更新トランザクションをコミットす
る。スレーブプロセッサは、新たなデータベース更新ト
ランザクションを受け取る準備が整う。第2タイマが満
期でない場合、ステップ860で、スレーブデータベー
スプロセッサは、アボートメッセージが受信されている
かどうかを問い合わせる。アボートメッセージが受信さ
れている場合、スレーブデータベースプロセッサは、ス
テップ870で、データベース更新トランザクションを
アボートし、ステップ880で、他のすべてのスレーブ
プロセッサへグローバルアボートメッセージを送る。ス
レーブデータベースプロセッサは、新たなデータベース
更新トランザクションを受け取る準備が整う。
【0053】
【発明の効果】以上述べたごとく、本発明によれば、接
続されたデータベースプロセッサのネットワークは、マ
スタデータベースプロセッサまたはいずれかのスレーブ
プロセッサの故障に対処することが可能となり、それに
より、故障状態を修復するために処理機能を妨げること
を必要とすることがなくなる。回復すなわち再同期のプ
ロセスは、ネットワーク環境において進行中の処理とは
独立に行われるため、ネットワークの信頼性が増大する
とともに、故障から回復するシステムの休止時間が短縮
される。
【図面の簡単な説明】
【図1】分散データベースシステムの概略ブロック図で
ある。
【図2】マスタデータベースプロセッサおよびスレーブ
データベースプロセッサの概略ブロック図である。
【図3】故障していないすべてのパティシパントが外部
からの調整なしで自動的に障害回復を行い更新トランザ
クションを完了することを可能にする方法のさまざまな
特徴を示す流れ図である。
【図4】故障していないすべてのパティシパントが外部
からの調整なしで自動的に障害回復を行い更新トランザ
クションを完了することを可能にする方法のさまざまな
特徴を示す流れ図である。
【図5】故障したスレーブプロセッサの障害回復の流れ
図である。
【図6】トランザクションステップタイマの一般的動作
の流れ図である。
【図7】自動コミットタイマの一般的動作の流れ図であ
る。
【図8】自動コミットタイマとトランザクションステッ
プタイマの間の調整の概略を示す流れ図である。
【符号の説明】
100 分散プロセッサネットワーク 102 マスタデータベースプロセッサ 104 バックアップマスタデータベースプロセッサ 106 スレーブデータベースプロセッサ 108 スレーブデータベースプロセッサ 110 スレーブデータベースプロセッサ 112 データベース 114 データベース 116 データベース 118 データベース 120 データベース 122 ジャーナル 124 ジャーナル 126 データ記憶要素 128 データ記憶要素 130 データ記憶要素 140 高速データ相互接続 150 自動コミットタイマ 152 トランザクションステップタイマ
───────────────────────────────────────────────────── フロントページの続き (71)出願人 596077259 600 Mountain Avenue, Murray Hill, New Je rsey 07974−0636U.S.A. (72)発明者 スティーブン デクスター クーマー アメリカ合衆国,43230 オハイオ,ガハ ンナ,ライン ウェイ 820 (72)発明者 デビット デイトン ネイソン アメリカ合衆国,43147 オハイオ,ピッ カリントン,ウッドバーン レイン ノー スウェールズ 12191 (72)発明者 モハメド−レザ ヤミニ アメリカ合衆国,43065−8891 オハイオ, パウェル,サリヤー コート 2588

Claims (42)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも1つのマスタプロセッサと、
    複数のスレーブプロセッサとからなるシステムにおい
    て、各プロセッサは該プロセッサに関連づけられたデー
    タベースにアクセスし該データベースを制御し、 a.各プロセッサで最後に完了したデータベース更新ト
    ランザクションを記録するステップと、 b.前記少なくとも1つのマスタプロセッサによって生
    成された所定数のデータベース更新トランザクションの
    ステップを記録するために、前記少なくとも1つのマス
    タプロセッサに関連づけられたジャーナルを作成するス
    テップと、 c.前記ジャーナルにデータベース更新トランザクショ
    ンのステップを記録するステップと、 d.各スレーブプロセッサに関連づけられた第1タイマ
    を作成するステップと、 e.各スレーブプロセッサに関連づけられた第2タイマ
    を作成するステップと、 f.更新トランザクションの開始時に前記第1タイマを
    スタートさせるステップと、 g.更新トランザクションの終了時に第1スレーブプロ
    セッサから前記少なくとも1つのマスタプロセッサへ所
    定のメッセージを送信するステップと、 h.前記所定のメッセージが前記少なくとも1つのマス
    タプロセッサへ送信されるときに前記第1スレーブプロ
    セッサの第2タイマをスタートさせるステップと、 i.いずれかのスレーブプロセッサが故障した場合、 A.故障したプロセッサの最後のデータベース更新の後
    のすべてのデータベース更新トランザクションを前記ジ
    ャーナルから該故障したプロセッサへコピーするステッ
    プと、 j.前記少なくとも1つのマスタプロセッサが故障した
    場合、 A.少なくとも1つの第2タイマの満期の前に第1タイ
    マの満期を検出した後、 1.現在の更新トランザクションをアボートするステッ
    プと、 2.満期になった第1タイマに関連づけられたスレーブ
    プロセッサがアボートメッセージを前記複数のスレーブ
    プロセッサへ送信するステップと、 B.第2タイマの満期を検出した後、現在の更新トラン
    ザクションをコミットするステップとからなることを特
    徴とする分散データベースシステム障害回復方法。
  2. 【請求項2】 前記ステップfの後、前記ステップgの
    前に、スレーブプロセッサが更新トランザクションの各
    ステップを受信した後、関連づけられた第1タイマをリ
    セットするステップとさらに有することを特徴とする請
    求項1に記載の方法。
  3. 【請求項3】 前記ステップhは、前記第1スレーブプ
    ロセッサの第1タイマを無効にするステップを含むこと
    を特徴とする請求項1に記載の方法。
  4. 【請求項4】 前記ステップbは、前記マスタプロセッ
    サによって生成されるデータベース更新トランザクショ
    ンのステップを記録するための巡回バッファを作成する
    ステップを含むことを特徴とする請求項1に記載の方
    法。
  5. 【請求項5】 前記ジャーナルはステップaからステッ
    プjまでの間更新されることを特徴とする請求項1に記
    載の方法。
  6. 【請求項6】 少なくとも1つのマスタプロセッサと、
    複数のスレーブプロセッサとからなる分散プロセッサネ
    ットワークにおいて、各プロセッサは該プロセッサに関
    連づけられたデータベースにアクセスし該データベース
    を制御し、故障したスレーブプロセッサのデータベース
    を、該故障したスレーブプロセッサが回復した後に他の
    データベースと一致するように更新する方法において、 a.各プロセッサで最後に完了したデータベース更新ト
    ランザクションを記録するステップと、 b.前記マスタプロセッサによって生成されたデータベ
    ース更新トランザクションのステップを記録するため
    に、前記マスタプロセッサに関連づけられたジャーナル
    を作成するステップと、 c.前記ジャーナルにデータベース更新トランザクショ
    ンのステップを記録するステップと、 d.故障したプロセッサの回復後、故障したプロセッサ
    の最後のデータベース更新の後のすべてのデータベース
    更新トランザクションを前記ジャーナルから該故障した
    プロセッサへコピーするステップとからなることを特徴
    とするデータベース更新方法。
  7. 【請求項7】 前記ステップbは、前記マスタプロセッ
    サによって生成されるデータベース更新トランザクショ
    ンのステップを記録するための巡回バッファを作成する
    ステップを含むことを特徴とする請求項6に記載の方
    法。
  8. 【請求項8】 前記巡回バッファはステップaからステ
    ップdまでの間更新されることを特徴とする請求項7に
    記載の方法。
  9. 【請求項9】 前記ステップaは、最後のデータベース
    更新トランザクションの番号を記録するステップを含む
    ことを特徴とする請求項6に記載の方法。
  10. 【請求項10】 前記ステップaは、最後のデータベー
    ス更新トランザクションの完全なコピーを記録するステ
    ップを含むことを特徴とする請求項6に記載の方法。
  11. 【請求項11】 前記ステップaは、最後のデータベー
    ス更新トランザクションの日付を記録するステップを含
    むことを特徴とする請求項6に記載の方法。
  12. 【請求項12】 前記ステップaは、最後のデータベー
    ス更新トランザクションの時刻を記録するステップを含
    むことを特徴とする請求項6に記載の方法。
  13. 【請求項13】 前記ステップaから前記ステップdま
    での間に生じたデータベース更新トランザクションを前
    記故障したスレーブプロセッサにコピーするステップを
    さらに有することを特徴とする請求項6に記載の方法。
  14. 【請求項14】 e.あるプロセッサをバックアップマ
    スタプロセッサに指定するステップと、 f.前記バックアップマスタプロセッサに関連づけられ
    たジャーナルを作成するステップと、 g.前記バックアップマスタプロセッサに関連づけられ
    たジャーナルに、前記マスタプロセッサに関連づけられ
    たジャーナルに記録されている情報を記録するステップ
    とをさらに有することを特徴とする請求項6に記載の方
    法。
  15. 【請求項15】 少なくとも1つのマスタプロセッサ
    と、複数のスレーブプロセッサとからなる分散プロセッ
    サネットワークにおいて、各プロセッサは該プロセッサ
    に関連づけられたデータベースにアクセスし該データベ
    ースを制御し、前記少なくとも1つのマスタプロセッサ
    の故障後に更新トランザクションを完了する方法におい
    て、 a.各スレーブプロセッサに関連づけられた少なくとも
    1つのタイマを作成するステップと、 b.更新トランザクションを受信したスレーブプロセッ
    サに関連づけられた前記少なくとも1つのタイマをスタ
    ートさせるステップと、 c.前記スレーブプロセッサが、前記少なくとも1つの
    タイマの満期に応答するステップとからなることを特徴
    とするデータベース更新トランザクション完了方法。
  16. 【請求項16】 前記ステップcは、満期になったタイ
    マに関連づけられたスレーブプロセッサが更新トランザ
    クションをアボートするステップを含むことを特徴とす
    る請求項15に記載の方法。
  17. 【請求項17】 前記満期になったタイマに関連づけら
    れたスレーブプロセッサが前記複数のスレーブプロセッ
    サへアボートメッセージを送信するステップをさらに有
    することを特徴とする請求項16に記載の方法。
  18. 【請求項18】 前記スレーブプロセッサが更新トラン
    ザクションの一部を受信したことに応答して前記少なく
    とも1つのタイマをリセットするステップをさらに有す
    ることを特徴とする請求項15に記載の方法。
  19. 【請求項19】 前記少なくとも1つのマスタプロセッ
    サからメッセージを受信したことに応答して前記少なく
    とも1つのタイマを無効にするステップをさらに有する
    ことを特徴とする請求項15に記載の方法。
  20. 【請求項20】 少なくとも1つのマスタプロセッサ
    と、複数のスレーブプロセッサとからなる分散プロセッ
    サネットワークにおいて、各プロセッサは該プロセッサ
    に関連づけられたデータベースにアクセスし該データベ
    ースを制御し、 前記少なくとも1つのマスタプロセッサの故障後に更新
    トランザクションを完了する方法において、 a.各スレーブプロセッサに関連づけられた少なくとも
    1つのタイマを作成するステップと、 b.第1スレーブプロセッサが現在の更新トランザクシ
    ョンを受信するステップと、 c.前記現在の更新トランザクションを受信した後、前
    記第1スレーブプロセッサから前記少なくとも1つのマ
    スタプロセッサへメッセージを送信するステップと、 d.前記メッセージを送信したスレーブプロセッサに関
    連づけられた前記少なくとも1つのタイマをスタートさ
    せるステップと、 e.前記少なくとも1つのタイマの満期に応答するステ
    ップとからなることを特徴とするデータベース更新トラ
    ンザクション完了方法。
  21. 【請求項21】 前記ステップcは、スレーブプロセッ
    サが前記少なくとも1つのマスタプロセッサへコミット
    投票メッセージを送信するステップを含むことを特徴と
    する請求項20に記載の方法。
  22. 【請求項22】 前記ステップeは、前記現在の更新ト
    ランザクションをコミットするステップを含むことを特
    徴とする請求項20に記載の方法。
  23. 【請求項23】 前記少なくとも1つのタイマの満期の
    前に、スレーブプロセッサからアボートメッセージを受
    信するステップと、 前記アボートメッセージを受信したスレーブプロセッサ
    が前記現在の更新トランザクションをアボートするステ
    ップとをさらに有することを特徴とする請求項20に記
    載の方法。
  24. 【請求項24】 前記アボートメッセージを受信したス
    レーブプロセッサが前記複数のスレーブプロセッサへア
    ボートメッセージを送信するステップをさらに有するこ
    とを特徴とする請求項20に記載の方法。
  25. 【請求項25】 少なくとも1つのマスタプロセッサ
    と、複数のスレーブプロセッサとからなる分散プロセッ
    サネットワークにおいて、各プロセッサは該プロセッサ
    に関連づけられたデータベースにアクセスし該データベ
    ースを制御し、 前記少なくとも1つのマスタプロセッサの故障後に更新
    トランザクションを完了する方法において、 a.各スレーブプロセッサに関連づけられた第1タイマ
    を作成するステップと、 b.各スレーブプロセッサに関連づけられた第2タイマ
    を作成するステップと、 c.スレーブプロセッサが現在の更新トランザクション
    の開始ステップを受信したことに応答して、該スレーブ
    プロセッサの第1タイマをスタートさせるステップと、 d.スレーブプロセッサが現在の更新トランザクション
    の終了ステップを受信したことに応答して、該スレーブ
    プロセッサから前記少なくとも1つのマスタプロセッサ
    へメッセージを送信するステップと、 e.前記メッセージを送信した後、前記スレーブプロセ
    ッサの第2タイマをスタートさせるステップと、 f.前記第1タイマまたは前記第2タイマの満期を検出
    するステップとからなることを特徴とするデータベース
    更新トランザクション完了方法。
  26. 【請求項26】 g.前記第2タイマの満期の前に前記
    第1タイマの満期を検出するステップと、 h.前記現在の更新トランザクションをアボートするス
    テップとをさらに有することを特徴とする請求項25に
    記載の方法。
  27. 【請求項27】 i.満期になった第1タイマに関連づ
    けられたスレーブプロセッサがアボートメッセージを前
    記複数のスレーブプロセッサへ送信するステップをさら
    に有することを特徴とする請求項26に記載の方法。
  28. 【請求項28】 j.スレーブプロセッサが前記アボー
    トメッセージを受信するステップと、 k.前記スレーブプロセッサが前記現在の更新トランザ
    クションをアボートするステップと、 l.前記スレーブプロセッサがアボートメッセージを前
    記複数のスレーブプロセッサへ送信するステップとをさ
    らに有することを特徴とする請求項27に記載の方法。
  29. 【請求項29】 f.前記第2タイマの満期を検出する
    ステップと、 g.前記現在の更新トランザクションをコミットするス
    テップとをさらに有することを特徴とする請求項28に
    記載の方法。
  30. 【請求項30】 少なくとも1つのマスタプロセッサ
    と、複数のスレーブプロセッサとからなる分散プロセッ
    サネットワークにおいて、各プロセッサは該プロセッサ
    に関連づけられたデータベースにアクセスし該データベ
    ースを制御し、 前記少なくとも1つのマスタプロセッサの故障後に更新
    トランザクションを完了する方法において、 a.各スレーブプロセッサに関連づけられた第1タイマ
    を作成するステップと、 b.各スレーブプロセッサに関連づけられた第2タイマ
    を作成するステップと、 c.スレーブプロセッサが現在の更新トランザクション
    の開始ステップを受信したことに応答して、該スレーブ
    プロセッサの第1タイマをスタートさせるステップと、 d.前記スレーブプロセッサが前記更新トランザクショ
    ンの一部を受信したことに応答して第1タイマをリセッ
    トするステップと、 e.前記少なくとも1つのマスタプロセッサからメッセ
    ージを受信したことに応答して第1タイマを無効にする
    ステップと、 f.スレーブプロセッサが現在の更新トランザクション
    の終了ステップを受信したことに応答して、該スレーブ
    プロセッサから前記少なくとも1つのマスタプロセッサ
    へメッセージを送信するステップと、 g.前記メッセージを送信した後、前記スレーブプロセ
    ッサの第2タイマをスタートさせるステップと、 h.第2タイマの満期の前に第1タイマの満期を検出し
    た後、 1.前記現在の更新トランザクションをアボートするス
    テップと、 2.満期になった第1タイマに関連づけられたスレーブ
    プロセッサがアボートメッセージを前記複数のスレーブ
    プロセッサへ送信するステップと、 i.第2タイマの満期を検出した後、前記現在の更新ト
    ランザクションをコミットするステップとからなること
    を特徴とするデータベース更新トランザクション完了方
    法。
  31. 【請求項31】 各プロセッサがデータベースに関連づ
    けられた分散プロセッサネットワークにおいて、 各プロセッサに関連づけられたデータベースを更新する
    マスタプロセッサと、 前記マスタプロセッサによって送信されたデータベース
    更新を記録する複数のスレーブプロセッサと、 前記マスタプロセッサに関連づけられ、故障したスレー
    ブプロセッサが復旧した後に該故障したスレーブプロセ
    ッサのデータベースを更新または再同期するために、前
    記マスタプロセッサによって正しく完了されたデータベ
    ース更新トランザクションのステップを記録するジャー
    ナルと、 前記マスタプロセッサと前記複数のスレーブプロセッサ
    を相互接続する高速データ相互接続とからなることを特
    徴とする分散プロセッサネットワーク。
  32. 【請求項32】 前記ジャーナルは、データベース更新
    トランザクションを記憶する巡回バッファからなること
    を特徴とする請求項31に記載の分散プロセッサネット
    ワーク。
  33. 【請求項33】 少なくとも1つのスレーブプロセッサ
    は、最後の完了した更新トランザクションを記憶する少
    なくとも1つのデータベース記録を有することを特徴と
    する請求項31に記載の分散プロセッサネットワーク。
  34. 【請求項34】 少なくとも1つのデータベース記録は
    ランダムアクセスメモリからなることを特徴とする請求
    項33に記載の分散プロセッサネットワーク。
  35. 【請求項35】 少なくとも1つのスレーブプロセッサ
    は、最後に完了した更新トランザクションの指標を記憶
    する少なくとも1つの電子的記憶媒体デバイスを有する
    ことを特徴とする請求項31に記載の分散プロセッサネ
    ットワーク。
  36. 【請求項36】 前記高速データ相互接続はイーサーネ
    ットからなることを特徴とする請求項31に記載の分散
    プロセッサネットワーク。
  37. 【請求項37】 スレーブプロセッサを含む分散プロセ
    ッサネットワークにおいて、 前記スレーブプロセッサは、前記スレーブプロセッサに
    よって実行された最後に完了したデータベース更新トラ
    ンザクションの指標を記憶する記憶手段を有することを
    特徴とする分散プロセッサネットワーク。
  38. 【請求項38】 前記記憶手段は、コンピュータが読み
    出し可能な媒体であり、該媒体には、該媒体のメモリア
    ドレスの第1の領域に記憶された第1のデータ記憶要素
    を含むデータ構造が記憶されることを特徴とする請求項
    37に記載の分散プロセッサネットワーク。
  39. 【請求項39】 各プロセッサがデータベースに関連づ
    けられた分散プロセッサネットワークにおいて、 各プロセッサに関連づけられたデータベースを更新する
    マスタプロセッサと、 前記マスタプロセッサによって送信されたデータベース
    更新を記録する複数のスレーブプロセッサと、 各スレーブプロセッサに関連づけられた、第1タイマウ
    ィンドウを有する第1タイマと、 各スレーブプロセッサに関連づけられた、第2タイマウ
    ィンドウを有する第2タイマと、 前記マスタプロセッサによって生成されたデータベース
    更新トランザクションのステップを記録するために、前
    記マスタプロセッサに関連づけられたジャーナルと、 前記スレーブプロセッサによって実行された最後に完了
    したデータベース更新トランザクションの指標を記憶す
    るメモリ手段とからなることを特徴とする分散プロセッ
    サネットワーク。
  40. 【請求項40】 第1タイマは第2タイマより長い持続
    時間を有することを特徴とする請求項39に記載の分散
    プロセッサネットワーク。
  41. 【請求項41】 分散プロセッサネットワークに含ま
    れ、データベースに関連づけられたスレーブプロセッサ
    において、 前記スレーブプロセッサによって実行された最後に完了
    したデータベース更新トランザクションの指標を記憶す
    る手段と、 第1タイマウィンドウを有する少なくとも1つの第1タ
    イマと、 第2タイマウィンドウを有する少なくとも1つの第2タ
    イマとからなることを特徴とするスレーブプロセッサ。
  42. 【請求項42】 グローバルアボートメッセージをブロ
    ードキャストする手段をさらに有することを特徴とする
    請求項41に記載のスレーブプロセッサ。
JP10055699A 1998-04-07 1999-04-07 分散データベースシステム障害回復方法 Expired - Fee Related JP3822381B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/056499 1998-04-07
US09/056,499 US6202067B1 (en) 1998-04-07 1998-04-07 Method and apparatus for correct and complete transactions in a fault tolerant distributed database system

Publications (2)

Publication Number Publication Date
JPH11327982A true JPH11327982A (ja) 1999-11-30
JP3822381B2 JP3822381B2 (ja) 2006-09-20

Family

ID=22004804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10055699A Expired - Fee Related JP3822381B2 (ja) 1998-04-07 1999-04-07 分散データベースシステム障害回復方法

Country Status (6)

Country Link
US (1) US6202067B1 (ja)
EP (1) EP0950955B1 (ja)
JP (1) JP3822381B2 (ja)
KR (1) KR100324165B1 (ja)
CA (1) CA2265158C (ja)
DE (1) DE69923621T2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235214A (ja) * 2004-02-19 2005-09-02 Marconi Intellectual Property (Ringfence) Inc 不具合が存在するときにスイッチ障害を防止する方法、装置及びソフトウエア
JP2013171483A (ja) * 2012-02-22 2013-09-02 Nippon Telegr & Teleph Corp <Ntt> 差分レプリケーションシステム、マスターデータベース装置、及びスレーブデータベース装置
JP2016524750A (ja) * 2013-05-20 2016-08-18 アマゾン テクノロジーズ インコーポレイテッド 索引更新パイプライン
US10102228B1 (en) 2014-02-17 2018-10-16 Amazon Technologies, Inc. Table and index communications channels
US10216768B1 (en) 2014-02-17 2019-02-26 Amazon Technologies, Inc. Table and index communications channels

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11338746A (ja) * 1998-05-27 1999-12-10 Ntt Communication Ware Kk データベースアクセスシステムおよびプログラムを記録したコンピュータ読み取り可能な記録媒体
US6523130B1 (en) * 1999-03-11 2003-02-18 Microsoft Corporation Storage system having error detection and recovery
US6487678B1 (en) * 1999-08-31 2002-11-26 International Business Machines Corporation Recovery procedure for a dynamically reconfigured quorum group of processors in a distributed computing system
US6490693B1 (en) * 1999-08-31 2002-12-03 International Business Machines Corporation Dynamic reconfiguration of a quorum group of processors in a distributed computing system
US6618819B1 (en) * 1999-12-23 2003-09-09 Nortel Networks Limited Sparing system and method to accommodate equipment failures in critical systems
FI20000178A (fi) * 2000-01-28 2001-07-29 Nokia Networks Oy Datan palautus hajautetussa järjestelmässä
US6721735B1 (en) * 2000-03-13 2004-04-13 Lucent Technologies Inc. Method and apparatus for synchronizing databases in a network management system
US6480854B1 (en) * 2000-03-27 2002-11-12 Advanced Micro Devices, Inc. Method and apparatus for increasing database availability
US6738773B1 (en) * 2000-05-01 2004-05-18 Microsoft Corporation Method and system for transforming data between disparate capacity database systems
US6904460B1 (en) * 2000-06-01 2005-06-07 Aerocast.Com, Inc. Reverse content harvester
SG99941A1 (en) * 2000-08-30 2003-11-27 Ibm Transaction support on logical disks
EP1342184B1 (en) * 2000-11-09 2008-02-27 Accenture LLP Method and system for enhancing a commercial transaction conducted via a communications network
JP3748204B2 (ja) * 2000-11-27 2006-02-22 三菱電機株式会社 周期制御同期システム
KR100450400B1 (ko) * 2001-12-26 2004-09-30 한국전자통신연구원 안전 기억 장치가 없는 환경을 위한 이중화 구조의 주 메모리 상주 데이터베이스 관리시스템 및 그 데이터 일치성 제어방법
US7433299B2 (en) * 2002-01-24 2008-10-07 Brocade Communications Systems, Inc. Fault-tolerant updates to a distributed fibre channel database
US7558883B1 (en) * 2002-06-28 2009-07-07 Microsoft Corporation Fast transaction commit
US7565433B1 (en) 2002-06-28 2009-07-21 Microsoft Corporation Byzantine paxos
US7797418B2 (en) * 2002-08-06 2010-09-14 Tvworks, Llc Method of maintaining broadcast data stream
US7620680B1 (en) * 2002-08-15 2009-11-17 Microsoft Corporation Fast byzantine paxos
US6973654B1 (en) * 2003-05-27 2005-12-06 Microsoft Corporation Systems and methods for the repartitioning of data
JP3808874B2 (ja) * 2004-03-12 2006-08-16 東芝ソリューション株式会社 分散システム及び多重化制御方法
US7962449B2 (en) * 2004-06-25 2011-06-14 Apple Inc. Trusted index structure in a network environment
US7730012B2 (en) * 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
US8131674B2 (en) 2004-06-25 2012-03-06 Apple Inc. Methods and systems for managing data
US8364633B2 (en) * 2005-01-12 2013-01-29 Wandisco, Inc. Distributed computing systems and system components thereof
US9361311B2 (en) 2005-01-12 2016-06-07 Wandisco, Inc. Distributed file system using consensus nodes
US9424272B2 (en) 2005-01-12 2016-08-23 Wandisco, Inc. Distributed file system using consensus nodes
US9332069B2 (en) 2012-12-28 2016-05-03 Wandisco, Inc. Methods, devices and systems for initiating, forming and joining memberships in distributed computing systems
EP1715405A1 (en) * 2005-04-19 2006-10-25 STMicroelectronics S.r.l. Processing method, system and computer program product for dynamic allocation of processing tasks in a multiprocessor cluster platforms with power adjustment
US20070184903A1 (en) * 2006-02-08 2007-08-09 Derek Liu Network-based game system capable of serving massive number of game players
US8156082B2 (en) * 2006-10-06 2012-04-10 Sybase, Inc. System and methods for temporary data management in shared disk cluster
US9112873B2 (en) * 2007-04-10 2015-08-18 Apertio Limited Alias hiding in network data repositories
US8782085B2 (en) 2007-04-10 2014-07-15 Apertio Limited Variant entries in network data repositories
US8402147B2 (en) * 2007-04-10 2013-03-19 Apertio Limited Nomadic subscriber data system
US20080256142A1 (en) * 2007-04-10 2008-10-16 Apertio Limited Journaling in network data architectures
KR100926880B1 (ko) * 2007-05-21 2009-11-16 엔에이치엔(주) Dbms에서의 데이터 복제 방법 및 시스템
EP2009557A1 (en) * 2007-06-28 2008-12-31 Nokia Siemens Networks Oy Method and device for data processing and system comprising such device
US9990674B1 (en) 2007-12-14 2018-06-05 Consumerinfo.Com, Inc. Card registry systems and methods
US8127986B1 (en) 2007-12-14 2012-03-06 Consumerinfo.Com, Inc. Card registry systems and methods
US20090157766A1 (en) * 2007-12-18 2009-06-18 Jinmei Shen Method, System, and Computer Program Product for Ensuring Data Consistency of Asynchronously Replicated Data Following a Master Transaction Server Failover Event
JP2009237843A (ja) * 2008-03-27 2009-10-15 Brother Ind Ltd ファイル管理システム、携帯端末及び携帯端末プログラム
US8312033B1 (en) 2008-06-26 2012-11-13 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
US8060424B2 (en) 2008-11-05 2011-11-15 Consumerinfo.Com, Inc. On-line method and system for monitoring and reporting unused available credit
US20100241893A1 (en) * 2009-03-18 2010-09-23 Eric Friedman Interpretation and execution of a customizable database request using an extensible computer process and an available computing environment
EP2261801B1 (de) * 2009-06-12 2014-12-31 Siemens Schweiz AG Verfahren zum unterbrechungsfreien Update einer Master-Datenbank und der zugehörigen Slave-Datenbanken
US8626927B2 (en) * 2010-05-06 2014-01-07 Verizon Patent And Licensing Inc. System for and method of distributing files
US8738724B2 (en) 2010-05-25 2014-05-27 Microsoft Corporation Totally ordered log on appendable storage
US8660989B2 (en) * 2010-08-27 2014-02-25 Sap Ag Generic framework for application specific data exchange
CN103125097B (zh) 2010-09-17 2016-11-16 甲骨文国际公司 在中间件机器中执行部分子网初始化
US9930018B2 (en) 2011-06-03 2018-03-27 Oracle International Corporation System and method for providing source ID spoof protection in an infiniband (IB) network
US9935848B2 (en) 2011-06-03 2018-04-03 Oracle International Corporation System and method for supporting subnet manager (SM) level robust handling of unkown management key in an infiniband (IB) network
US9607336B1 (en) 2011-06-16 2017-03-28 Consumerinfo.Com, Inc. Providing credit inquiry alerts
US9483606B1 (en) 2011-07-08 2016-11-01 Consumerinfo.Com, Inc. Lifescore
US9106691B1 (en) 2011-09-16 2015-08-11 Consumerinfo.Com, Inc. Systems and methods of identity protection and management
US8738516B1 (en) 2011-10-13 2014-05-27 Consumerinfo.Com, Inc. Debt services candidate locator
US9853959B1 (en) 2012-05-07 2017-12-26 Consumerinfo.Com, Inc. Storage and maintenance of personal data
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US9317460B2 (en) 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US9298539B1 (en) * 2012-10-05 2016-03-29 Veritas Us Ip Holdings Llc Automated error recovery for workflows
CN102968457B (zh) * 2012-10-30 2015-09-30 北京奇虎科技有限公司 数据库间切换方法和系统
US9654541B1 (en) 2012-11-12 2017-05-16 Consumerinfo.Com, Inc. Aggregating user web browsing data
US9916621B1 (en) 2012-11-30 2018-03-13 Consumerinfo.Com, Inc. Presentation of credit score factors
US10255598B1 (en) 2012-12-06 2019-04-09 Consumerinfo.Com, Inc. Credit card account data extraction
US9264516B2 (en) 2012-12-28 2016-02-16 Wandisco, Inc. Methods, devices and systems enabling a secure and authorized induction of a node into a group of nodes in a distributed computing environment
US9406085B1 (en) 2013-03-14 2016-08-02 Consumerinfo.Com, Inc. System and methods for credit dispute processing, resolution, and reporting
US9870589B1 (en) 2013-03-14 2018-01-16 Consumerinfo.Com, Inc. Credit utilization tracking and reporting
US10102570B1 (en) 2013-03-14 2018-10-16 Consumerinfo.Com, Inc. Account vulnerability alerts
US9009215B2 (en) 2013-03-15 2015-04-14 Wandisco, Inc. Methods, devices and systems for dynamically managing memberships in replicated state machines within a distributed computing environment
US10685398B1 (en) 2013-04-23 2020-06-16 Consumerinfo.Com, Inc. Presenting credit score information
US9443268B1 (en) 2013-08-16 2016-09-13 Consumerinfo.Com, Inc. Bill payment and reporting
US10325314B1 (en) 2013-11-15 2019-06-18 Consumerinfo.Com, Inc. Payment reporting systems
US9477737B1 (en) 2013-11-20 2016-10-25 Consumerinfo.Com, Inc. Systems and user interfaces for dynamic access of multiple remote databases and synchronization of data based on user rules
EP3127018B1 (en) 2014-03-31 2021-05-05 Wandisco, Inc. Geographically-distributed file system using coordinated namespace replication
US9892457B1 (en) 2014-04-16 2018-02-13 Consumerinfo.Com, Inc. Providing credit data in search results
KR20170032130A (ko) 2015-09-14 2017-03-22 서울대학교산학협력단 동적 인메모리 네이티브 그래프 트랜잭션 데이터베이스의 갱신 관리 장치
US11360942B2 (en) 2017-03-13 2022-06-14 Wandisco Inc. Methods, devices and systems for maintaining consistency of metadata and data across data centers
US20200074541A1 (en) 2018-09-05 2020-03-05 Consumerinfo.Com, Inc. Generation of data structures based on categories of matched data items
US11315179B1 (en) 2018-11-16 2022-04-26 Consumerinfo.Com, Inc. Methods and apparatuses for customized card recommendations
CN111277616B (zh) * 2018-12-04 2023-11-03 中兴通讯股份有限公司 一种基于rdma的数据传输方法和分布式共享内存系统
US11238656B1 (en) 2019-02-22 2022-02-01 Consumerinfo.Com, Inc. System and method for an augmented reality experience via an artificial intelligence bot
US11941065B1 (en) 2019-09-13 2024-03-26 Experian Information Solutions, Inc. Single identifier platform for storing entity data
CN113296974B (zh) * 2020-08-31 2022-04-26 阿里巴巴集团控股有限公司 数据库访问方法、装置、电子设备及可读存储介质
US11803324B2 (en) * 2021-12-10 2023-10-31 Nxp B.V. System and method for managing transactions in integrated circuits

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3810119A (en) * 1971-05-04 1974-05-07 Us Navy Processor synchronization scheme
US5065311A (en) * 1987-04-20 1991-11-12 Hitachi, Ltd. Distributed data base system of composite subsystem type, and method fault recovery for the system
US5222217A (en) * 1989-01-18 1993-06-22 International Business Machines Corporation System and method for implementing operating system message queues with recoverable shared virtual storage
US5212789A (en) * 1989-10-12 1993-05-18 Bell Communications Research, Inc. Method and apparatus for updating application databases used in a distributed transaction processing environment
US5261089A (en) * 1990-05-16 1993-11-09 International Business Machines Corporation Optimization of commit procedures by utilizing a two-phase commit procedure only when necessary
US5280612A (en) * 1991-11-26 1994-01-18 International Business Machines Corporation Multiple version database concurrency control system
US5630152A (en) * 1992-05-18 1997-05-13 Motorola, Inc. Communication protocol between master and slave device with register information sharing
GB2276737A (en) * 1993-03-30 1994-10-05 Ibm Fault-tolerant transaction-oriented data processing
JPH07219913A (ja) * 1994-01-28 1995-08-18 Fujitsu Ltd マルチプロセッサシステムの制御方法及び装置
JPH07262034A (ja) * 1994-03-18 1995-10-13 Fujitsu Ltd データ引き継ぎシステム
DE19504404C1 (de) * 1995-02-10 1996-06-20 Pilz Gmbh & Co Systemarchitektur
US5799305A (en) * 1995-11-02 1998-08-25 Informix Software, Inc. Method of commitment in a distributed database transaction
GB9601584D0 (en) * 1996-01-26 1996-03-27 Hewlett Packard Co Fault-tolerant processing method
US5996058A (en) * 1996-08-19 1999-11-30 Samsung Electronics Company, Ltd. System and method for handling software interrupts with argument passing
US5884327A (en) * 1996-09-25 1999-03-16 International Business Machines Corporation System, method and program for performing two-phase commit with a coordinator that performs no logging
US5974503A (en) * 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235214A (ja) * 2004-02-19 2005-09-02 Marconi Intellectual Property (Ringfence) Inc 不具合が存在するときにスイッチ障害を防止する方法、装置及びソフトウエア
JP2013171483A (ja) * 2012-02-22 2013-09-02 Nippon Telegr & Teleph Corp <Ntt> 差分レプリケーションシステム、マスターデータベース装置、及びスレーブデータベース装置
JP2016524750A (ja) * 2013-05-20 2016-08-18 アマゾン テクノロジーズ インコーポレイテッド 索引更新パイプライン
JP2019036353A (ja) * 2013-05-20 2019-03-07 アマゾン テクノロジーズ インコーポレイテッド 索引更新パイプライン
JP2021002369A (ja) * 2013-05-20 2021-01-07 アマゾン テクノロジーズ インコーポレイテッド 索引更新パイプライン
US11841844B2 (en) 2013-05-20 2023-12-12 Amazon Technologies, Inc. Index update pipeline
US10102228B1 (en) 2014-02-17 2018-10-16 Amazon Technologies, Inc. Table and index communications channels
US10216768B1 (en) 2014-02-17 2019-02-26 Amazon Technologies, Inc. Table and index communications channels
US11321283B2 (en) 2014-02-17 2022-05-03 Amazon Technologies, Inc. Table and index communications channels

Also Published As

Publication number Publication date
US6202067B1 (en) 2001-03-13
JP3822381B2 (ja) 2006-09-20
EP0950955B1 (en) 2005-02-09
DE69923621D1 (de) 2005-03-17
EP0950955A2 (en) 1999-10-20
KR100324165B1 (ko) 2002-02-16
KR19990082867A (ko) 1999-11-25
CA2265158A1 (en) 1999-10-07
DE69923621T2 (de) 2006-04-06
CA2265158C (en) 2002-10-15
EP0950955A3 (en) 2002-05-08

Similar Documents

Publication Publication Date Title
JP3822381B2 (ja) 分散データベースシステム障害回復方法
JP3790589B2 (ja) 分散データベーストランザクションのコミットメント方法
US7428657B2 (en) Method for rolling back from snapshot with log
US7991745B2 (en) Database log capture that publishes transactions to multiple targets to handle unavailable targets by separating the publishing of subscriptions and subsequently recombining the publishing
US7941622B2 (en) Point in time remote copy for multiple sites
US5884328A (en) System and method for sychronizing a large database and its replica
JP2894676B2 (ja) 非同期式遠隔コピー・システム及び非同期式遠隔コピー方法
US7882286B1 (en) Synchronizing volumes for replication
US7103586B2 (en) Collision avoidance in database replication systems
US6286085B1 (en) System for backing up data synchronously and a synchronously depending on a pre-established criterion
US6941327B2 (en) Apparatus and method for database synchronization in a duplex system
US20070180302A1 (en) System And Method For Failover
US20070124342A1 (en) Failure Tolerant Transaction Processing System
JPH04229358A (ja) 同期点回復手段を有するコンピュータ装置
JPH04229359A (ja) コンピュータ・ネットワーク
JPH04229334A (ja) コンピュータ・システム及びアプリケーションプログラム実行方法
US20030050930A1 (en) Method and apparatus for lockstep data replication
JP2003504756A (ja) 将来の一時停止コマンドを用いる改良されたリモートデータコピー
US7197519B2 (en) Database system including center server and local servers
US11698917B1 (en) Method for replacing a currently operating data replication engine in a bidirectional data replication environment without application downtime and while preserving target database consistency, and by using audit trail tokens that provide a list of active transactions
WO1997004387A1 (en) Optimized synchronisation procedure
US20040024807A1 (en) Asynchronous updates of weakly consistent distributed state information
US7194675B2 (en) Backup method, backup system, disk controller and backup program
JP2004272318A (ja) 系切り替えシステムおよびその処理方法並びにその処理プログラム
JP2004094710A (ja) 記憶サブシステムのデータ二重化方法およびシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040705

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050506

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060508

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060622

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100630

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110630

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120630

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130630

Year of fee payment: 7

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

LAPS Cancellation because of no payment of annual fees