JP2002500791A - 分散形データベース内でトランザクションをするための方法 - Google Patents

分散形データベース内でトランザクションをするための方法

Info

Publication number
JP2002500791A
JP2002500791A JP50059599A JP50059599A JP2002500791A JP 2002500791 A JP2002500791 A JP 2002500791A JP 50059599 A JP50059599 A JP 50059599A JP 50059599 A JP50059599 A JP 50059599A JP 2002500791 A JP2002500791 A JP 2002500791A
Authority
JP
Japan
Prior art keywords
node
transaction
message
nodes
coordinator
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
JP50059599A
Other languages
English (en)
Other versions
JP4241940B2 (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 JP2002500791A publication Critical patent/JP2002500791A/ja
Application granted granted Critical
Publication of JP4241940B2 publication Critical patent/JP4241940B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • 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/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 本発明は、分散形データベースに属す情報が記憶されたノードを含むシステム内のいくつかのノードに影響を与えるトランザクションを実行する方法に関する。このトランザクションは第1相でオープンされ、この第1相ではトランザクションコーディネータが第1ノード(n1)に「準備」メッセージ(a)を送り、次に第1ノードは直接または1つ以上の中間ノード(n3)を介し、第2ノード(n2)へ準備のためのリクエスト(b)または「準備未完了」メッセージを送り、その後、第2ノードはトランザクションコーディネータ(1)へ直接「準備完了」メッセージまたは「準備未完了」メッセージ(c)を送り、これによって第1相を終了する。第2相では、トランザクションコーディネータ(1)はとるべき対策に関するメッセージ(d)を第2ノード(n2)へ送り、第2ノードは次にとるべき対策に関するメッセージ(e)を直接または1つ以上の中間ノードを介し、第1ノード(n1)へ送る。次に第1ノードはトランザクションコーディネータ(1)へ終了メッセージ(f)を送り、これにより第2相が終了する。

Description

【発明の詳細な説明】 分散形データベース内でトランザクションをするための方法発明の分野 本発明は分散形データベースに属す情報が記憶されているノードを含むシステ ム内の複数のノード間のトランザクションで使用されるトランザクションプロト コルを最適にするための方法に関する。 トランザクションはトランザクションコーディネータから発信され、データベ ース内のテーブルのうちの少なくとも1つの第1テーブルの一部の、少なくとも 1つのグループに影響を与える。かかるグループは少なくとも1つの第1テーブ ル部分と、1つの第2テーブル部分と、可能な場合には1つ以上の別の部分とを 含む。 第1部分は第1ノードに記憶されており、第2部分は第2ノード内に記憶され ており、この第2ノードは第1ノードから分離されている。中間ノードにはグル ープ内の別の可能な部分が記憶されており、これら中間ノードは互いに別個の、 かつ第1ノードおよび第2ノードとも別個の別のノードを含む。 トランザクションは2重安全(ツーセーフ)トランザクションを含み、このこ とはトランザクションによって影響されるすべてのノードがトランザクションを 実行できる場合にトランザクションを実行すること、およびトランザクションに よって影響を受けるノードのうちの1つでもトランザクションを実行できない場 合には、トランザクションを打ち切る。発明の背景 本明細書において「システム」と称すものは、ネットワークの一部を構成でき 、更に、例えば分散形データベース内のノードを形成することにより複数の異な る相互に協働し合うノードを含むと長く知られてきたものである。かかるシステ ムでは2つ以上のノード間で常に異なるトランザクションが行われる。これらト ランザクションは確実かつ時間的に効果的に実行しなければならない。 いわゆる分散形トランザクションとは、トランザクションを複数のノード、す なわち参加ノード間でトランザクションを行わなければならないことを意味する 。1回のトランザクションは複数のノードに関与し得る。分散形トランザクショ ンに関連し2つの方法が周知であり、これら方法として2つの段階の従来のコミ ット方法とリニアコミット方法がある。コミットとは参加ノードが何かすること を引き受けたこと、およびそれを行うことを意味する。 分散形データベースでは情報の安全なコピー、すなわちバックアップコピーを 利用することも知られている。従って、第1ノード内にはテーブルの一部の基本 (第1)コピーが記憶され、第2ノード内には同じ部分の第2コピーが記憶され る。 関連する第2コピーを備えた第1コピーを、本明細書ではフラグメントと称す 。従って、テーブルの一部に影響するトランザクションはテーブルのこの部分の 第1コピーおよび第2コピーの双方を含むテーブルのフラグメントにも影響する 。分散形トランザクションが複数の異なるテーブルを含むか、またはテーブルの 複数の異なる部分を含むことができる場合、複数の異なるフラグメントおよび関 連するコピーも影響を受ける。 2相の従来のコミット方法およびリニアコミット方法は、複数のフラグメント に影響するトランザクションの点で種々の態様で有益である。これについては添 付図面を参照して後に詳述する。 しかしながら、現段階では次のように簡単に述べることとする。 1回の同じトランザクションでは、 −「2相の従来のコミット方法」では多数のメッセージを送らなければならな いが、このことは一部をパラレルに実行でき、これと共にプロセッサおよび伝送 容量に大きな負担をかけるが、応答時間が比較的短い。他方、 −「リニアコミット方法」は、より少数のメッセージを送るだけでよいが、基 本的にはシリアルにメッセージを送らなければならず、これと共に、利用できる プロセッサおよび伝送容量にかける負担が少なく、応答時間が比較的長い。 システム内の冗長性を得るために、いわゆるシステム冗長を利用することも知 られており、このことは全システムのパラレルな第2コピーを見いだすことを意 味する。ハードウェアに関し、第2コピーは第1コピーと完全に別個のものであ る。 主要システムが完全に破壊された場合、例えばトータルクラッシュが生じた場 合に、第2システムから第1システムへのプロモーションが生じるだけである。 トランザクション中にトランザクションコーディネータのクラッシュが生じた 場合、システムのいわゆるブロッキングが生じる。このことは、クラッシュした トランザクションコーディネータが再スタートするか、トランザクションコーデ ィネータの第2コピーが第1コピーへプロモートされ、トランザクションコーデ ィネータの役割をテークオーバーするまで、システムは待機しなければならない ことを意味する。 これに関連し、いわゆる「ノンブロッキングコーディネータ」を構築すること も知られている。かかるコーディネータについては、スベイン・エリック・ブラ ッツベルク、スベイン−オロフ・ヴァッショベル、エステン・トルヨルンセンに よる論文「高度に利用可能なデータベースにおけるロケーションおよびレプリケ ーションと独立した回復」、テルノアRアンドD社に記載されている。 要するに、この方法はパラレルなトランザクションコーディネータを使用して おり、これによりパフォーマンスコストが極めて高くなっている。 また、1992年、バンクーバーにおける「極大規模データベース」会議で発 行された、チェンバレンによる論文「D3ダイナミックデータ分散アルゴリズム 」でも言及されている。この論文も、トランザクション中にクラッシュしたトラ ンザクションコーディネータの取り扱いについて記載している。発明の概要 技術的課題 分散形データベースに属す情報が記憶された複数のノードを含むシステム内の 多数のノードに影響を与えるトランザクションを実行する方法であって、情報が テーブルに分割されており、トランザクションコーディネータからトランザクシ ョンが発信され、トランザクションが前記テーブルのうちの少なくとも1つの第 1テーブルのうちの部分の少なくとも1つのグループに影響を与え、グループが 少なくとも1つの第1部分および第2部分、可能な場合には1つ以上の別の部分 を含み、第1部分が第1ノード内に記憶されており、第2部分が第1ノードと別 個の第2ノード内に記憶されており、グループ内の可能な他の部分が中間ノード 内に記憶されており、これら中間ノードが互いに別個であり、かつ第1ノードお よび第2ノードから別個である別のノードによって形成されており、トランザク ションがツーセーフトランザクションを含むようなトランザクションを実行する 方法からスタートし、本技術の最初に述べた観点を検討すると、利用できるプロ セッサおよび伝送容量に関連して見た場合、かかるトランザクションを迅速かつ 安全に実行できるようにすることに課題があることが理解できよう。 別の技術的課題はかかるトランザクションを基本的には2つの相、すなわち「 2相の従来のコミット方法」に関連し、数個のメッセージしか送信しなくてよい 相と、「リニアコミット方法」に関連してより拘束された応答時間が得られる相 とに、かかるトランザクションを分けることができるようにすることにある。 別の技術的課題は各フラグメントが第1コピーと1つ以上のバックアップコピ ー、例えば第2コピーおよびスタンバイコピーの双方を含む場合に、複数の異な るフラグメントに影響を与える、特にトランザクションを簡単かつ有効に取り扱 うようトランザクションプロトコルを適応できるようにすることにある。 別の技術的課題は、システムをブロックされた状態にすることなく、トランザ クション中のクラッシュ(障害)したノードおよびクラッシュしたトランザクシ ョンコーディネータを簡単に取り扱いできるよう、トランザクションプロトコル を適応化できるようにすることである。 別の技術的課題は、適性かつ正しい時間にロックをセットし、トランザクショ ンと組み合わせて適性かつ正しい時間にロックを解除し、トランザクション中に クラッシュするどのノードに対してもトランザクションを安全に取り扱いできる ようにする、専ら2相でトランザクションを行えるようにすることにある。 別の技術的課題は、別の相をトランザクションに導入することなく、トランザ クションと組み合わせて第2システムを更新できるようにすることにある。 別の技術的課題は、アプリケーションに関連し、第2システムを更新できるよ うにし、かつ影響を受けたフラグメントに適用されるロックを簡単かつ有効に解 除できるようにすることにある。 別の技術的課題は、異なるトランザクションに関する安全性に課される条件に 応じ、確実な異なる方法でトランザクションと組み合わせて、第2システムの更 新を実行できるようにすることにある。 更なる技術的課題は、トランザクションのコーディネータの関係を分散する際 に、第2システムのノードにかかる負荷を調節できるようにもする、簡単かつ有 効な態様で第2システム内のトランザクションコーディネータを選択できるよう にすることにあることも理解できよう。 解決案 上記技術的課題の1つ以上を解決するために、本発明は分散形データベースに 属す情報がテーブルの形態で記憶されているノードを含むシステム内の多数のノ ードに影響を与えるトランザクションで使用するための方法を提供するものであ る。 このトランザクションはトランザクションコーディネータから発信され、前記 テーブルのうちの少なくとも1つの第1テーブルのうちの部分の少なくとも1つ のグループに影響し、それぞれのグループは少なくとも1つの第1部分および第 2部分、可能な場合には1つ以上の別の部分を含む。 第1部分は第1ノードに記憶され、第2部分は第1ノードと別個の第2ノード 内に記憶され、グループ内の他の可能なテーブル部分は中間ノード内に記憶され 、これら中間ノードは互いに別個であり、かつ第1ノードおよび第2ノードと別 個の別のノードを含むことがある。 トランザクションはツーセーフトランザクションを含む。 利用できるプロセッサおよび伝送容量に関連し、かかるトランザクションを実 行する高速かつ信頼できる方法を提供するために、本発明によれば、トランザク ションを第1相でオープンし、この第1相では −第1ノードに前記トランザクションの準備をすることを求めるリクエストを 意味する「準備」メッセージを、前記トランザクションコーディネータが送り、 −前記第1ノードが前記トランザクションを引き受けできるときに、前記第1 ノードは直接または1つ以上の中間ノードを介し、前記第2ノードへ準備リクエ ストを送るか、または −前記第1ノードが前記トランザクションを引き受けできないときに、前記第 1ノードは直接または1つ以上の中間ノードを介し、前記第2ノードへ「準備未 完了」メッセージを送り、 −前記第2ノードが前記トランザクションを引き受けできるときに、前記第2 ノードは前記トランザクションコーディネータに直接「準備完了」メッセージ、 すなわちすべての影響を受けたノードが前記トランザクションを引き受ける準備 が完了していることを示すメッセージを前記第2ノードが送るか、または −前記第2ノードが前記トランザクションを実行できないか、または前記第2 ノードが「準備未完了」メッセージを受信したときに、前記第2ノードは前記ト ランザクションコーディネータに直接「準備未完了」メッセージを送り、これに より第1相(phase)を終了する。 この第1相の次に第2相が続き、この第2相では、 −前記トランザクションコーディネータは実行すべき対策に関するメッセージ を前記第2ノードに直接送り、 −次に前記第2ノードは直接または1つ以上の中間ノードを介し、前記第1ノ ードへ前記対策に関するメッセージを送り、 −次に前記第1ノードは前記トランザクションコーディネータに終了メッセー ジを送り、これにより第2相を終了する。 とるべき対策に関するメッセージはコミットメッセージ、すなわちトランザク ションに従って対策を実行するためのメッセージであり、終了メッセージは「コ ミット完了」メッセージである。すなわち「準備完了」メッセージで第1相が終 了した場合、トランザクションに従う対策を実行する。 他方、「準備未完了」メッセージで第1相が完了した場合、実行すべき対策に 関するメッセージは「打ち切り」メッセージとなる。すなわちトランザクション を打ち切り、終了メッセージは「打ち切り完了」メッセージとなる。すなわちト ランザクションを打ち切る。 本明細書は、1つのグループを取り扱う態様の簡単な説明である。しかしなが らそれぞれのグループが第1テーブルに属す部分および/またはデータベース内 の他のテーブルに属し、第1テーブルと別個の部分を含むようなテーブル部分の 別のグループにトランザクションが影響することが極めて多い。 これら部分は相対的な第1および第2ノード、可能な場合には1つ以上の中間 ノード内に記憶され、これら中間ノードは部分のそれぞれのグループ内で互いに 別個のノードとなっている。 この場合、本発明によればトランザクションコーディネータがそれぞれの第1 ノードに準備することをリクエストすることにより、第1相がオープンされ、そ れぞれの第2ノードからトランザクションコーディネータへの「準備完了」また は「準備未完了」メッセージによって第1相が終了することが提案される。 第2相は、実行すべき対策に関する、トランザクションコーディネータからそ れぞれの第2ノードへ送られるメッセージによりオープンされ、第1ノードから トランザクションコーディネータへの終了メッセージにより終了する。 このケースではメッセージは「コミット」メッセージであり、第1相がすべて の第2ノードからの「準備完了」メッセージにより終了する際、終了メッセージ は「コミット完了」メッセージである。 実行すべき対策に関するメッセージは「打ち切り」メッセージであり、任意の 第2ノードからの「準備未完了」メッセージで第1相が終了する際の終了メッセ ージは「打ち切り完了」メッセージである。 従って、1回のトランザクションが数個のノードに影響を与えるとき、本発明 は基本的にはこれらノードをグループに分割することに基づいており、メッセー ジはそれぞれのグループ内でシリアルに送られ、かつトランザクションコーディ ネータからそれぞれのグループへはパラレルに送られる。 第1相はトランザクションコーディネータからそれぞれのグループ内の第1ノ ードへのメッセージでオープンされ、それぞれのグループ内の最終ノードから直 接トランザクションコーディネータへ送られるメッセージで終了する。 第2相はトランザクションコーディネータからそれぞれのグループ内の最終ノ ードへのメッセージでオープンされ、それぞれのグループ内の第1ノードから直 接トランザクションコーディネータへ送られるメッセージで終了する。 本発明は第1部分にそれぞれのグループ内の第2部分または他の部分よりも高 い優先権が割り当てられており、それぞれのグループが中間ノード内に記憶され ている1つ以上の別の部分を含む際に特に有効である。 このケースでは第1相ではメッセージは第1ノードから中間ノードへ、更に中 間ノードから第2ノードへシリアルに送られ、第2相におけるメッセージは第2 ノードから中間ノードへ、更に中間ノードから第1ノードへシリアルに送られる 。 それぞれのグループは第1部分、第2部分および第3ノード内に記憶された別 の部分を含むデータベースフラグメントを構成し、より高い優先権は、テーブル の一部の第1コピーを含む第1部分から成り、別の部分は第1コピーの第2コピ ー、すなわちバックアップコピーを含み、第2部分が第1コピーのスタンバイコ ピーを含む場合、特別な用途がある。 本発明はフラグメント内のすべてのコピーが更新され、フラグメント内のすべ てのコピーのクラッシュが必ずしもシステムのブロッキングを生じさせないよう トランザクションを実行する確実な方法も提供するものである。この方法は、ト ランザクションの実行と共にフラグメントに属すそれぞれのコピーにロックを実 施し、前記それぞれのコピーから前記ロックを解除し、よって第1ノードの準備 が第1相におけるフラグメントに属するすべてのコピーへのロックを実施させる ことにより達成される。 本発明の一実施例によれば、第1ノードによりそれぞれのコピーに適用される ロックは、第1ノードが実行すべき対策に関するメッセージを受信し、終了メッ セージを送るまで解除されない。 適当な方法によれば、トランザクションによって影響を受けるそれぞれのコピ ーの部分だけが他のトランザクションに対して利用できなくなり、かかる他のト ランザクションに対しては他の部分は利用できる状態のままとなるように、この ロックは実施される。 トランザクションを実施しながらトランザクションのクラッシュによりフラグ メント内のノードのうちの1つが影響を受ける場合、本発明によれば、 −トランザクションコーディネータは進行中のすべてのメッセージ伝送をチェ ックし、 −中止されたトランザクション段階を最初から再スタートし、 −メッセージチェーンからクラッシュしたノードを排除しながら、この段階に 従ってメッセージを送り、 −先に受信したメッセージを受信したノードが前記メッセージを無視し、これ を送る。 他方、クラッシュしたノードがトランザクションによって影響を受けるフラグ メント内に第1ノードを含む場合、およびトランザクションの準備段階の間でク ラッシュが生じた場合、トランザクションを打ち切る。 本発明によれば、トランザクションの実行中に、トランザクションコーディネ ータがクラッシュした場合、システムコーディネータがシステム内のノードのク ラッシュを検出するようになっており、 −クラッシュしたノードがトランザクションコーディネータである場合のトラ ンザクションへの参加ノードとなっているかどうかを質問する一般的な問い合わ せを、システム内のすべてのノードにシステムコーディネータが送り、 −新しいノードにトランザクションコーディネータの役割を割り当て、 −前記トランザクションによって影響を受けるそれぞれのフラグメント内のす べてのノードが新しいトランザクションコーディネータに送られるステータスレ ポートを編集し、このステータスレポートがノードのアイデンティティ、フラグ メントのアイデンティティ、トランザクションステータスおよび前記ノードがそ れぞれのフラグメントにおける第1コピー、第2コピーまたはスタンバイコピー であるかどうかを表示し、 −前記新しいトランザクションコーディネータがステータスレポートに基づき 、前記トランザクションを続行すべきか、打ち切るべきかを判断することも提案 される。 上記方法は、それぞれのグループが第1部分および第2部分しか含まず、より 高い優先権がテーブルの一部の第1コピーを構成する第1部分から成り、第2部 分が第1コピーのうちの第2コピーを含む場合にも実施できる。 トランザクションと共に第2システムを更新できるようにするために、全シス テム、すなわち第1システムと第2システムとの双方の第2コピーを使用する際 、本発明によれば、それぞれのコピーに対するロックを解除するために第2シス テムを更新することを求めるように提案される。 第2システムの更新は1つの工程で実行できるし、またワンセーフ伝送または 限定されたツーセーフ伝送によっても達成できる。 選択する方法は各トランザクションが必要とする安全度のレベルに応じて変わ る。本発明によれば、トランザクションを制御する属性は第2システムの更新を ワンセーフ伝送によって実行すべきか、または限定されたツーセーフ伝送によっ て実行すべきかを示す。 ワンセーフ伝送によって更新を実行する場合、トランザクションによって影響 を受けるそれぞれの第1ノードは、第2システム内の対応するノードへメッセー ジを送り、実行すべき対策をこれらノードに伝える。すなわち「コミット」メッ セージを送る。第2システム内の影響を受けたノードからの対策を実行できるか どうかという応答を待つことなくトランザクションが続行する。 限定されたツーセーフ伝送により第2システムを更新する際、トランザクショ ンによって影響を受けるそれぞれの第1ノードは、第2システム内の対応するノ ードに、実行すべき対策に関するメッセージ、すなわちコミットメッセージをこ れらノードに送り、トランザクションの一部としての第2システム内の影響を受 けたノードからの応答を待つ。これらメッセージには対策を実行すること、およ び従って第2システムをトランザクションに従って更新する旨を第1ノードに表 示する「コミット完了」メッセージ、または対策を実行しないこと、従って第2 システムをトランザクションに従って更新しない旨を第1ノードに表示する「打 ち切り」メッセージで回答する。 ツーセーフ伝送における制限は第2システム内のノードがトランザクションの 打ち切りを求めることができないことである。 本発明によれば、トランザクションに従って第2システムを更新しないとの表 示によって、システムのコピーを正しく構成するよう第2システムを再スタート させることも提案される。 トランザクションと共に前記第2システムの更新時に第2システム内でトラン ザクションコーディネータを簡単かつ有効に選択できるようにするために、本発 明によれば、第1システム内のトランザクションコーディネータが第2システム 内の可能な論理的トランザクションコーディネータをカバーするマッピングテー ブルから論理的トランザクションコーディネータを選択することにより、前記第 2システム内のトランザクションコーディネータを選択することを可能にするこ とが提案される。 マッピングテーブル内のそれぞれの論理的トランザクションコーディネータを 、第2システム内で作動する物理的ノードへマッピングできる。 第2システム内のシステムコーディネータがマッピングテーブル上のすべての 位置を占有し、これらノードをトランザクションコーディネータとして作動させ るのに利用できることを保証できる。 第2システム内のノードにかかる負荷を所定の程度制御できるようにするため に、本発明によれば所定のノードに対する負荷が大きい場合、第2システム内の システムコーディネータがマッピングテーブル内にこれらの負荷が大きくなった ノードが存在しないように保証することが提案される。 利点 本発明の主な特徴である利点は、これまでの場合よりも信頼性がより高く、か つより高速で、分散形データベース内でトランザクションを実行できることにあ る。 このことは、本発明に従って実行されるトランザクションの結果、関連するコ ピーにより複数のフラグメントに影響を与える分散形トランザクションの場合の 通常のトランザクションプロトコルである「リニアコミット」により可能である 場合よりも、複数のフラグメントに影響を与えるトランザクションの場合のほう が応答時間がより短くなるという事実により可能となる。 更に本発明は、トランザクション中に1つ以上のノードがクラッシュした場合 に、ノンブロッキングシステムを提供し、遅延時間をより短くする。 更に本発明は、かかる更新を実行するのにトランザクション内で別の段階を加 えることなく、第2システムを更新できるようにもする。 本発明の方法の主な特徴は、請求項1の特徴項に記載されている。図面の簡単な説明 次に、添付図面を参照し、これまで知られている方法および本発明に係わる方 法について詳細に説明する。 図1は、ノードを含むシステムの一部およびそれらの相互の関係を示す、極め て簡略された略図である。 図2は、公知の技術によりリニアコミット方法をどのように実行できるかを示 す略図である。 図3は、各々における参加ノードが3つのノードである4つのグループに影響 を与える、TPC−Bトランザクションによって影響される異なるノードの間の 、相互の関係の略図である。 図4は、2段階の従来のコミット方法により、TPC−Bトランザクションを どのように実行するかを略図で示す図である。 図5は、リニアコミット方法によりTPC−Bトランザクションをどのように 実行するかを略図で示す図である。 図6は、本発明に従い、トランザクションの一部をどのように実行するかを示 す、簡略化された略図である。 図7は、本発明に従い、TPC−Bトランザクションをどのように実行するか を示す略図である。 図8は、クラッシュしたノードの取り扱いを略図で示す図である。 図9は、クラッシュしたトランザクションコーディネータの取り扱いを略図で 示す。 図10は、各グループが2つの参加ノードしか含まないグループの一例の略図 である。 図11は、本発明に従い、第2システムをどのように更新できるかの第1の例 を略図で示す。 図12は、本発明に従い、第2システムをどのように更新できるかの第2の例 を略図で示す。 図13は、前記第2システムを更新する際に、第2システム内のトランザクシ ョンコーディネータの選択にあたり、マッピングテーブルがどのように作動する かを示す略図である。分散形データベースにおけるトランザクションに関連する公知の方法の説明 本発明によって得られる利点を同時に開示しながら、本発明をより容易に理解 できるようにするために、まず公知技術について若干、より詳細に説明すること とする。 まず「2相の従来のコミット方法」について説明する。この方法は分散形トラ ンザクションを実行する周知の方法である。その名称にもかかわらず、この方法 は3つの相を含む。そのうちの2つの相は実際のトランザクションに影響を与え るものであり、これら3つの相は次の通りである。 −トランザクションを更新する −準備およびコミットメント −すべての参加ノードが自らコミットした際に対策を実施し、そうでない場合 は対策を実施しない 第1相はオープニング段階であり、ここではトランザクションコーディネータ が多様な更新によってトランザクションを準備する。第2相ではトランザクショ ンコーディネータは「準備」なるメッセージを送る。このメッセージはすべての 参加ノードが所定の対策に対する準備をする旨のリクエストであり、それぞれの 参加ノードはとるべき対策を実行するように自ら準備をする。それぞれの参加ノ ードは対策を実行できる場合、「準備完了」なるメッセージで応答し、当該対策 を実行できない場合には「準備未完了」なるメッセージにより応答する。 オープニング段階、すなわち準備段階のいずれかにおいて、トランザクション によって影響されるデータベースの一部にロックが適用され、データベースの同 じ部分に関連し得る他の共には進行中のトランザクションが完了するまで待機し なければならない。このことはコミットメントのための条件が実際のトランザク ション中に変更されないように行われる。 かかるロックは異なる方法で設定でき、従って、全ノードをロックすることか らトランザクションによって影響を受けたデータベースの一部だけをロックする ことまでのすべてを含む。本発明は、使用されるロックのタイプに依存しないの で、本明細書ではこのロックについてはこれ以上詳細に説明しないこととする。 次に、方法のうちの相3をオープンする。この相ではトランザクションコーデ ィネータはすべての参加ノードからの「準備完了」メッセージを受信し、トラン ザクションコーディネータはコミットメッセージを送る。このコミットメッセー ジは対策を実行するための命令である。上記以外でトランザクションコーディネ ータが参加ノードからの「準備未完了」メッセージを受信した場合、トランザク ションコーディネータは「打ち切り」メッセージを送る。このメッセージは対策 を実行しないようにする命令である。 準備がトランザクション前の更新も含む場合、相1と2とを共通メッセージと することができる。 従って、2つのノード間の、2相の従来のコミット方法はトランザクションコ ミットとそれぞれの参加ノードとの間で少なくとも4つのメッセージの伝送を必 要とする。次の例では、ノード1をトンラザクションコーディネータとし、ノー ド2を参加ノードとする。次のような4つのメッセージがある。 1:ノード1からノード2への「準備」メッセージ 2:ノード2からノード1への「準備完了」または「準備未完了」メッセージ 3:ノード1からノード2への「コミット」または「打ち切り」メッセージ および 4:ノード2からノード1への「コミット完了」または「打ち切り完了」メッ セージがある。 システムでは1回のメッセージによって数個のノードに影響が及ぶ。例えばト ンラザクションコーディネータが直接接続されており、トランザクションによっ て影響を受けるノードと異なる階層内の更に下に位置する別のノードをトランザ クションコーディネータが必ずしも知っている必要のないようなノードの階層が 存在し得る。 図1は、トランザクションコーディネータ1が参加ノード1aおよび1bに影 響を与えるトランザクションを開始する、1つのかかる階層の一例を示す。 図1は、参加ノード1bが参加ノード1cおよび1dのためのコーディネータ を構成することを、トランザクションコーディネータが知る必要なく、参加ノー ド1bがこのようなコーディネータを構成していることも示している。 トランザクションコーディネータ1と参加ノード1aおよび参加ノード1bと の間の通信が同時に行われることがあり得る。このことは、トランザクションが トランザクションコーディネータから多数の参加ノードへのトランザクションが 行われても、種々の参加ノード間で同時に4つのメッセージが送られるので、転 送を行うのに必ずしも長い時間をかける必要はない。 ここで、「同時」とは必ずしも絶対的な同時性を意味するものではない。その 理由は、異なるノード間の伝送容量、異なるノード内のプロセッサ容量および異 なるノードからの応答時間が変わり得るからである。例えば1bはトランザクシ ョンコーディネータ1に回答できる前に1cおよび1dと共に所定の操作を実施 する必要があるので、1aからの応答時間は1bからの応答時間よりも短くなる ことがある。 従って、2相の従来のコミット方法は応答時間を比較的短くするが、通常、他 の方法よりも多数のメッセージの伝送をしなければならない。 2相のコミット方法を最適にできるようにすると共に、コーディネータシップ をシフトすることも可能である。通信システムのデータベースではこのタイプの 最適化は通常のことである。ユーザーがサーバーとして等しく信頼できないよう な状況では、かかる最適化も好ましい。例えば通信データベースにおいて家庭の パソコンのユーザーがトランザクションコーディネータとなることは望ましいこ とではない。 コーディネータシップのシフトの一例として、いわゆる「リニアコミット」方 法があり、このコミット方法はトランザクションにより複数のノードが影響され る場合に、必要なメッセージ数が低減される場合の、2相の従来のコミットを最 適化する方法である。 図2は、図1に示された多数のノードがリニアコミット方法を通してどのよう に協働するかを示すものである。 この図は各ステップにおけるコーディネータシップがシフトされることを示し ている。矢印はトランザクションのうちの相2における準備およびコミット部分 を示す。トランザクションコーディネータは参加ノード1a(1)に準備するこ とを求め、コーディネータシップを送る。参加ノード1aがトランザクションの 実行を引き受けでき、コーディネータシップを送る場合、参加ノード1aは参加 ノード1b(2)に準備することを求める。参加ノード1bがトランザクション の実行を引き受けでき、コーディネータシップを送る場合、参加ノード1bは参 加ノード1c(3)に準備することを求める。参加ノード1cがトランザクショ ンの実行を引き受けできる場合、ノード1cは参加ノード1d(4)に準備する ことを求める。 参加ノード1dは自分がチェーン内で最終であるかを見て、自分に準備リクエ ストが到達しているので、先行するすべてのノードがトランザクションの実行を 引き受けたことを知る。最終ノード1dはコーディネータシップを有し、従って 参加ノード4自身がコミットメントを実行できる場合、参加ノード1cに「コミ ット」コマンド(5)を送ることができる。参加ノード1cが参加ノード1dか ら「コミット」コマンドを受信すると、参加ノード1cは「コミット」コマンド によりノード1b(6)に応答し、同様のことが参加ノード1a(7)まで行わ れる。参加ノード1a(7)はトランザクションコーディネータ1に「コミット 完了」メッセージ(8)を送ることができる。 先行するすべての参加ノード1b、1c、1dがトランザクションの実行を引 き受けた場合、トランザクションコーディネータ1は参加ノード1aから「コミ ット完了」メッセージを受けるだけである。参加ノードのうちの一人、例えば参 加ノード1cが自ら「準備未完了」を宣言した場合、トランザクションコーディ ネータは打ち切られる。 すべてのことは逐次生じるので、応答時間は比較的長くなるが、リニアコミッ ト方法は参加ノード間で2つのメッセージしか必要としない。特に多数の参加ノ ードが関連しているケースで顕著である。 分散形データベースにおいてトランザクションを実施するときの性能をチェッ クする共通するテスト方法として、いわゆるTPC−B−トランザクションを実 行する方法がある。図3には、かかるトランザクションにおける参加ノードが略 図で示されている。 TPC−B−トランザクションはデータベース内の4つの異なるテーブルを更 新することも含む。 1つのテーブルを多数の異なるグループに分けることができ、この場合、各グ ループはトランザクションによって影響されるテーブルの異なる部分を含む。こ れらテーブル部分はシステム内の異なるノード内に物理的に置かれている。従っ て、1つのテーブルを更新するにはグループ全体、すなわち影響されるすべての 部分を更新する必要がある。 4つの異なるテーブルを更新しなければならないTPC−B−トランザクショ ンでは、それぞれの部分に属すすべての部分を更新しなければならない。 図3はトランザクションコーディネータ1と、4つのグループg1、g2、g 3、G4とを示し、各グループはそれぞれのノードに設けられた3つの異なる部 分を含む。従って、第1グループg1は3つの参加ノードd1、d2、d3に設 けられ、第2グループg2は3つの参加ノードに設けられた、同様なことが次々 に行われている。 図4から理解できるように、2相の従来のコミットを使用するにはトランザク ションコーディネータ1とそれぞれの参加ノードとの間で4つのメッセージを伝 送しなければならず、それぞれの2方向矢印はこれら4つのメッセージを示し、 この結果、多数の4**dのメッセージが生じる。ここでgはグループの数であ り、dはそれぞれのグループ内の参加ノードの数である。図3に係わるTPC− B−トランザクションの場合、メッセージの数は48となるが、一度に12個の メッセージを同時に送ることができる。 図5から理解できるように同じコンフィギュレーションのグループおよびノー ド内でリニアコミット方法を使用する場合、トランザクションコーディネータ1 は1つのメッセージを第1参加ノードd1へ送る。コーディネータシップは参加 ノードd1にシフトされ、参加ノードd1は図示するようにメッセージおよびコ ーディネータシップを逐次最終参加ノードへ送る。この最終参加ノードは第4グ ループg4における参加ノードd1'''である。この参加ノードはチェーン内の 最終参加ノードであり、先に何が生じているかによって決まる「コミット」メッ セージまたは「打ち切り」メッセージがチェーンを介し、トランザクションコー ディネータ1へ送り戻される。これを行うには2**d個のメッセージが必要で あり、このメッセージは図3に示されたケースでは24個のメッセージとなり、 各メッセージは1つずつ逐次送られる。好ましい実施例の説明 図6は分散形データベースに属し、テーブルに分割された情報が記憶されてい るノードのシステム内のうちの多数のノードに影響を与えるトランザクションを 実行する方法を示す。 トランザクションコーディネータ1からトランザクションが発信され、このト ランザクションが前記多数のテーブルのうちの少なくとも1つの第1テーブルの うちの一部の少なくとも1つのグループG1に影響を与える。 このグループG1は少なくとも1つの第1部分と1つの第2部分とを含み、可 能な場合には1つ以上の別の部分を含む。この第1部分は第1ノードn1に記憶 されているが、第2部分は第1ノードn1と別個の第2ノードn2に記憶されて いる。グループ内の可能な他の部分は中間ノードに記憶されており、これら中間 ノードは互いに別個であり、かつ第1および第2ノードと別のノードを含む。 本発明はツー(2)セーフトランザクションであるトランザクションに基づく 。 トランザクションコーディネータ1とグループG1との間のメッセージルート についてまず説明する。図6は第1相でトランザクションがオープンされること を示す。すなわちこの第1相では、 −第1ノードに前記トランザクションの準備をすることを求めるリクエストを 意味する「準備」メッセージを、前記トランザクションコーディネータが送り、 −前記第1ノードが前記トランザクションを引き受けできるときに、前記第1 ノードは直接または1つ以上の中間ノードを介し、前記第2ノードへ準備リクエ ストを送るか、または −前記第1ノードが前記トランザクションを引き受けできないときに、前記第 1ノードは直接または1つ以上の中間ノードを介し、前記第2ノードへ「準備未 完了」メッセージを送り、 −前記第2ノードが前記トランザクションを引き受けできるときに、前記第2 ノードは前記トランザクションコーディネータに直接「準備完了」メッセージ、 すなわちすべての影響を受けたノードが前記トランザクションを引き受ける準備 が完了していることを示すメッセージを前記第2ノードが送るか、または −前記第2ノードが前記トランザクションを実行できないか、または前記第2 ノードが「準備未完了」メッセージを受信したときに、前記第2ノードは前記ト ランザクションコーディネータに直接「準備未完了」メッセージを送る。 ここで、「直接」とは受信ノードへのダイレクトアドレスによりメッセージが 送られることを意味する。しかしながらこのことはトランザクションに参加して いないノードに関してメッセージを送ることを妨げるものでなく、メッセージア ドレスに従ってメッセージを送ることも意味する。「間接」なる用語は、自らト ランザクションに参加している1つ以上のノードによってメッセージを送ること を意味する。 間接的に送られるメッセージの例として図6はトランザクションにも参加して いる第3ノードn3へメッセージb'を第1ノードが送ることを示しており、こ の第3ノードn3がトランザクションを実行するために自らコミットできる場合 、第3ノードn3はメッセージb''、すなわち準備リクエストを第2ノードn2 へ送る。 第1相の後につぎのような第2相が続く。 すなわち、 −前記トランザクションコーディネータは実行すべき対策に関するメッセージ を前記第2ノードに直接送り、 −次に前記第2ノードは直接または1つ以上の中間ノードを介し、前記第1ノ ードへ前記対策に関するメッセージを送り、 −次に前記第1ノードは前記トランザクションコーディネータに終了メッセー ジを送り、これにより第2相を終了する。 メッセージ「d」、「e」は「コミット」メッセージ、すなわちトランザクシ ョンに従って対策を実行するコミットメントを記述するメッセージであり、終了 メッセージ「f」は「準備完了」メッセージ「c」によって第1相が終了したこ とを条件に、トランザクションに従った対策がコミットされたことを意味する「 コミット完了」メッセージである。 他方、「準備未完了」メッセージ「c」によって第1段階が終了した場合、メ ッセージ「d」、「e」は「打ち切り」メッセージである。すなわちトランザク ションを打ち切る。終了メッセージ「f」は「打ち切る」メッセージである。す なわちトランザクションを打ち切る。 中間ノードn3がトランザクションに参加しているとき、第2ノードn2と第 1ノードn1との間のメッセージ「e」が中間ノードn3を通過するように、こ のメッセージを2つのメッセージ「e'」、「e''」メッセージに分割できるこ とも示されている。 内容を簡潔にするため、上記説明はグループg1に関係するトランザクション を参照したが、通常、1回のトランザクションによって数個のグループが影響さ れる。 本明細書では本発明を説明し、更に本発明と公知技術とを簡単に比較するため に、TPC−Bトランザクションを一例として用いることとする。 従って、図7はそれぞれのグループがデータベース内の第1テーブルに属す部 分、またはデータベース内の他のテーブルに属し、第1テーブルと別個の部分を 含むような、テーブル部分の多数のグループg1、g2、g3、g4に影響を与 えるトランザクションを示す。 これら部分は第1ノードn1、n1'、n1''、n1'''および第2ノードn2 、n2'、n2''、n2'''内にそれぞれ記憶されており、可能な場合には1つ以 上の中間ノードn3、n3'、n3''、n3'''に記憶され、各ノードは部分のそ れぞれのグループ内の他のノードと別個になっている。 第1相はトランザクションコーディネータ1からそれぞれの第1ノードn1、 n1'、n1''、n1'''への準備リクェスト「a」、「a'」、「a''」、「a' ''」によってオープンにされ、それぞれの第2ノードn2、n2'、n2''、n 2'''からトランザクションコーディネータ1への「準備完了」または「準備未 完了」メッセージ「c」、「c'」、「c''」、「c'''」によって終了する。 第2の相はトランザクションコーディネータ1からそれぞれのノードn2、n 2'、n2''、n2'''へのとるべき対策に関するメッセージ「d」、「d'」、 「d''」、「d'''」によってオープンにされ、それぞれの第1ノードn1、n 1'、n1”、n1'''からトランザクションコーディネータ1への終了メッセー ジ「f」、「f'」、「f''」、「f'''」によって終了する。 メッセージ「d」、「d'」、「d''」、「d'''」はコミットメッセージであ る。すなわちトランザクションに従った対策を実行し、終了メッセージ「f」、 「f'」、「f''」、「f'''」はコミット完了メッセージであり、すなわち第1 相が他のすべてのノードn2、n2'、n2''、n2'''からの「準備完了」メッ セージ「c」、「c'」、「c''」、「c'''」によって終了することを条件に、 トランザクションに従ってとるべき対策をコミットすなわち実行する。 他方、第1相は任意のノードn2、n2'、n2''、n2'''からの「準備未完 了」メッセージ「c」、「c'」、「c''」、「c'''」によって完了した場合、 このメッセージは「打ち切り」メッセージであり、すなわちトランザクションを 打ち切る。終了メッセージ「f」、「f'」、「f''」、「f'''」は「打ち切り 完了」メッセージであり、すなわちトランザクションを打ち切る。 それぞれのグループ内の第2部分よりも第1部分に、より高い優先権が割り当 てられているとき、本発明の方法は特に有利に実施できる。 これはそれぞれのグループがデータベースのフラグメントを含んでいる場合で ある。このフラグメントは第1部分と、第2部分と、別の部分とを含み、前記別 の部分は第3ノードに記憶されており、第1部分に割り当てられている、より高 い優先度は、テーブルの一部分の第1コピーを構成する第1部分と、第1コピー の第2コピーから成る別の部分から成り、前記第2部分は第1コピーのスタンバ イコピーから成る。 分散形データベースでテーブルの異なる部分の安全なコピーを実行する方法ま たは安全なコピーをする際の高度の信頼性を保証するのにデータベースをどのよ うに構築できるかについては、本明細書では詳細には説明しない。しかしながら 読者は「分散形データベースと共に使用すべき方法およびこの方法に従って作動 するようになっているシステム」に関するスウェーデン特許出願と、フラグメン トの上記構成部分をより詳細に説明しているスウェーデン特許出願第9702015-0 号を参照されたい。それぞれのコピーが異なるノードn1、n2、n3に記憶さ れているような第1コピー、第2コピーおよびスタンバイコピーを含むフラグメ ントを各グループg1、g2、g3、g4が形成する場合、4つの異なるフラグ メントに関係するトランザクションにおいて、上記TPC−B−トランザクショ ンが得られる。 この場合、本発明に係わるトランザクションは2**(n+1)個のメッセー ジを必要とする。この場合、fは1回のトランザクションによって影響を受ける フラグメントの数であり、nはそれぞれのフラグメント内のコピーの数であり、 上記メッセージの個数は図7に従ったTPC−Bトランザクションの場合、32 個のメッセージとなる。これら32個のメッセージのうち、4つのメッセージを 同時に送ることができる。このことは、4つの同時メッセージの伝送を8回行う ことを意味する。 2相の従来のコミット方法と比較すると、若干長くなる応答時間(4回の代わ りに8回)は、送る必要のあるメッセージの、より少ない数(48の代わりに3 2)によって補償される。 リニアコミット方法と比較すると、メッセージの数がより多くなる(24個の 代わりに32個)ことは、メッセージを一部同時に伝送し、応答時間をより短く することによって補償される。このシーケンスはトランザクションコーディネー タ1によってオープンにされ、終了される。この理由は、トランザクションコー ディネータ1は準備部分が完了しているかどうかについて知ることができ、従っ て、準備部分の直後に正しい対策に関するリクエストを送ることができるからで ある。これによってメッセージの伝送を同時に行うことが可能となり、更にリニ アコミット方法の応答時間よりも応答時間をより短くすることができるようにな る。 本発明によれば、第1相における第2ノードn1、n1'、n1''、n1'''の 準備は第1ノードn1、n1'、n1''、n1'''によってそれぞれのフラグメン トに属すすべてのコピーにロックをかけることができる。 第1ノードn1、n1'、n1''、n1'''もそれぞれのロックを解除するだけ でなく、第1ノードが実行すべき対策に関するメッセージを受信し、トランザク ションコーディネータ1へ終了メッセージを送った後に限り、それぞれのロック を解除させる。 従って、トランザクションコーディネータ1が第1ノードn1、n1'、n1' '、n1'''から終了メッセージ「f」、「f'」、「f''」、「f'''」を受信す ると、このフラグメント内のすべてのノードが実行すべき対策に関するメッセー ジを受信したことが判る。他方、第2相中であって第2ノードが終了メッセージ を送る時間を有する前に、フラグメント内の第1ノードまたは他の任意のノード がクラッシュした場合、すべてのノードがこの第1相における第1ステー ジですべてのノードがロックされており、かつこのロックはまだアクティブであ るので、このフラグメント内のどのノードがトランザクションを完了しているか については、トランザクションコーディネータは知らない。 より簡単に説明すれば、第1ノードまたは他のノードがクラッシュすると、最 後に送られたメッセージは他のノードに再送信されるということができる。以下 、図8を参照し、本発明に係わるクラッシュしたノードの取り扱いについてより 詳細に説明する。 適当な方法によれば、他のトランザクションに対しては、トランザクションに よって影響を受けるそれぞれのコピーの部分しか利用できないようにし、他方、 残りの部分を別のトランザクションに対して利用できる状態のままにするように ロックを行うことができる。 それぞれのフラグメント内の影響を受けるすべてのノードに対し、第1メッセ ージa、a'、a''、a'''と組み合わせてロックを行う旨の効果に対するメッセ ージを含む第1ノードn1、n1'、n1''、n1'''によってロックをかけるこ とができる。 それぞれのノードに対するこの効果の特定のメッセージを送ることによって必 ずしもロックを解除する必要はない。ロックを解除するには、必ずしも別のトラ ンザクション段階を必要とするわけではない。通常、1つのトランザクションの 次には、特にロック解除命令を含むクリーンアップメッセージが続く。かかる命 令は通常、影響を受けるノードの間で次にメッセージを送るときに、いわゆるピ ギーバック(肩車)で送られる。この次のメッセージは当該トランザクションと は無関係である。 ロックを解除する別の方法として、それぞれのフラグメント内の第2ノードお よび可能な中間ノードが、ロックされた部分に関係する別のトランザクションが リクエストされたことを知った場合、第1ノードが新しいトランザクションの開 始を受け入れ、第1ノードがこのロックを解除したことを表示する方法がある。 従って、この第2のノードおよび可能な中間ノードは、ロックを解除が可能であ ることを知る。 それぞれの第1ノードによって制御されるフラグメント内のすべてのコピーを ロックすることと組み合わせて、トランザクションコーディネータのコーディネ ータシップを維持することによって、トランザクション中にクラッシュしたノー ドをノンブロックで取り扱うことが可能となる。 図8は、トランザクションを実行している際の、トランザクションのクラッシ ュによってフラグメント内のノードのうちの1つが影響を受けた場合に本発明に よって提案される方法を示す。第1グループg1内のバツ印のついた中間ノード n3をクラッシュしたものと見なす。よって、 −トランザクションコーディネータ1は進行中のすべてのメッセージの伝送を チェックする。 −中止されたトランザクション相を再スタートする。 −クラッシュしたノードをメッセージチェーンから排除した状態で、段階に従 ってメッセージを送る。 −先に受信されたメッセージを受信したノードは、このメッセージを無視し、 これを送る。 しかしながらトランザクションの準備段階中にトランザクションによって影響 を受けたフラグメント内で第1ノードがクラッシュした場合、トランザクション は打ち切らなければならない。 図8は、第1相中にノードn3がクラッシュし、従って、第1ノードn1から のメッセージ(b)が直接第2ノードn2へ進むことを示している。 図9は、トランザクションの実行中にトランザクションコーディネータ1のク ラッシュ(バツ印)が生じた場合にシステムコーディネータ1sがシステム内の ノードのクラッシュを検出するよう機能するプロセスを示している。 その後、次のことが行われる。 −クラッシュしたノード1がトランザクションコーディネータを構成するトラ ンザクションにおける参加ノードであるかどうかを問い合わせる一般的な問い合 わせを、システム内のすべてのノードに対し、システムコーディネータ1sが送 る。 −新しいノード1'にトランザクションコーディネータの役割を割り当てる。 −トランザクションによって影響を受けるそれぞれのフラグメントg1、g2 、 g3内のすべてのノードがステータスレポートを編集し、このレポートは新しい トランザクションコーディネータへ送られる。このレポートはノードのアイデン ティティ、フラグメントのアイデンティティ、トランザクションステータスを含 み、ノードがそれぞれのフラグメント内に第1コピー、第2コピーまたはスタン バイコピーを含むかどうかを示す。 −新しいトランザクションコーディネータ1'は受信したステータスレポート に基づき、トランザクションを続行すべきか、打ち切るべきかを判断する。 上記説明におけるそれぞれのグループは3つのテーブル部分を含むが、それぞ れのグループが第1部分および第2部分を含むとき、およびそれぞれの第1部分 のより高い優先権がテーブルの一部のうちの第1コピーを含む前記第1部分と、 前記第1コピーのうちの第2コピーを含む第2部分とから成るときに、本発明の 実施を妨げるものはない。 図10は、4つのグループg1、g2、g3、g4に影響するトランザクショ ンを実行する一例を示し、各グループはトランザクションによって影響を受ける 部分の第1コピーおよび第2コピーを含む、2つのノードn1、n2を含む。 上記のように、システムは第1システム「p」を構成でき、第2システム「s 」によって補足できる。本発明によれば、ロックを解除する前に、トランザクシ ョンに従ってかかる第2システム「s」を更新することをリクエストすることが 好ましい。 このような更新はワンセーフ伝送および限定されたツーセーフ伝送の双方によ って実行できる。選択される方法はそれぞれのトランザクションが必要とする安 全レベルに応じて決まる。本発明によれば、トランザクションを管理する属性は 第2システムの更新がワンセーフ伝送によって実行されるのか、または限定され たツーセーフ伝送によって実行されるのかのいずれかを示す。 トランザクションを制御するすべての属性がワンセーフ伝送によって第2シス テム「s」の更新を行うべきと表示した場合、ワンセーフ伝送によって更新を実 行し、他方、トランザクションを制御する属性が限定されたツーセーフ伝送によ って第2システム「s」と更新すべきと表示した場合、限定されたツーセーフ伝 送によって更新を実行する。 図11は、ワンセーフ伝送による更新の一例を示す。図示されるように、第2 システム「s」内の対応するノードn1s、n1'sへ「コミット」メッセージ 「as」、「a's」を送るトランザクションによって影響を受けるそれぞれの 第1ノードn1p、n1'pによって更新が実行される。次に、この更新は第2 システム「s」内のそれぞれの影響を受けたノードn1s、n1'sからの応答 を待つことなく続行する。 図12は限定されたツーセーフ伝送によってどのように更新を実行するかを示 している。図示されるように、トランザクションによって影響を受けるそれぞれ の第1ノードn1p、n1'pは、第2システム「s」内の対応するノードn1 s、n1'sへコミットメッセージ「as」、「a's」を送る。 第1ノードn1p、n1'pはトランザクションの一部として第2システム「 s」内の影響を受けたノードn1s、n1'sからの応答を待つ。この応答は対 策を実行すること、よってトランザクションに従って第2システム「s」を更新 する旨を第1ノードn1p、n1'pに表示する第1ノードn1p、n1'pから の「コミット完了」メッセージ「bs」、「b's」または対策を実行しない旨 、よってトランザクションに従って第2システム「s」を更新しない旨を、第1 ノードn1p、n1'pに表示する、「打ち切り完了」メッセージ「bs」、「 b's」から成る。 トランザクションに従って第2システム「s」を更新しない旨の表示によって 第2システムは再スタートされ、第1システム「p」の正しいコピーを構成する 。 第2システムの上記のような更新を限られたツーセーフ伝送と称す。ここで、 限定とは第2システム内のノードがトランザクションを停止または打ち切ること を求める権利を有しないことを意味する。 図11を参照してこれまで説明した第2システムを更新する方法では、第2シ ステム内の影響を受けたノードは自然にトランザクションに従って第2システム を更新するかどうかの表示を受信しない。このことは、かかる表示を他の方法で 発生することを妨げるものではない。しかしながらこのことは次に、第2システ ムの実行不能な更新に対するリクエストがあったときに、第1システム「p」の コピーを正しく構成するように第2システムを再スタートすることを意味する。 従って、ワンセーフ伝送による更新と、限定されたツーセーフ伝送による更新 との差は次の点にある。すなわち限定されたツーセーフ伝送の場合では、第2シ ステムを更新したかどうかがすぐに判るが、ワンセーフ伝送では第1システムと 第2システムとの間に短時間の間、違いが生じ得る点にある。 トランザクションが異なれば変化も異なる。このうち所定の変化は他の変化よ りも誤作動を受けにくい。従って、属性を制御するトランザクションの1つは第 2システムを更新する際にワンセーフ伝送によってトランザクションを実行する のか、または限定されたツーセーフ伝送によって実行するのかを判断できる。 移動電話ネットワーク内の加入者に属す個人データの挿入は第2システムを更 新する際に限定されたツーセーフ伝送を必要とし得るトランザクションの一例で ある。この場合、第1システムと第2システムの双方に正しい情報を見いだすこ とが重要である。 移動電話ネットワーク内の加入者の一時的位置を挿入することは、第2システ ムを更新する上でワンセーフ伝送で十分となり得るトランザクションの一例であ る。移動電話ネットワーク内の移動局の位置は常に変化し、従って時間が経過す るごとに繰り返し更新されるので、この点に関する第2システム内の正しい情報 の重要性は前者のケースほどクリチカルではない。 かかるトランザクションに従い、第2システムを更新しない旨の効果に対する 表示が受信されたとき、このことは必ずしも第2システムを再スタートしなけれ ばならないことを意味するものではない。その理由は、特定の加入者の地理的位 置が変わる次のときに、おそらく第2システムを正しく更新するからである。 第1システム「p」内のトランザクションに従って第2システム「s」を更新 することに関するリクエストに応答し、第1システム「p」内の影響を受けたノ ードから第2システム「s」内の影響を受けたノードに情報が送られ、この第2 システム内の影響を受けたノードから論理的トランザクションコーディネータを 選択できる。第2システム内のトランザクションコーディネータの選択はこの情 報および第2システムに属すノードの瞬間的な負荷によって制御される。図13 は第2システム「s」内の可能な論理的トランザクションコーディネータのマッ ピングテーブルmtから論理的トランザクションコーディネータltkを選択す る、第1システム「p」内のトランザクションコーディネータlpから情報「i 」を構成できることを示している。このような選択は、マッピングテーブルmt から選択できる論理的トランザクションコーディネータ間でトランザクションコ ーディネータとして働く義務をランダムに分散するように行われる。 マッピングテーブルmt内のそれぞれの論理的トランザクションコーディネー タltkは第2システム内で働く物理的ノードlsまたは物理的トランザクショ ンコーディネータftkへマッピングできる。このマッピングテーブルmtは第 2システム「s」に属す各ノード内に記憶されるか、または各ノードに対して利 用できる。第2システム内のそれぞれのノードがどの論理的トランザクションコ ーディネータltkが選択されたかに関する情報「i」を、トランザクションに よって影響を受けた第2システム内のそれぞれのノードが受信したとき、これら ノードはマッピングテーブルmtを介し、第2システム「s」内の同じ物理的ト ランザクションコーディネータftkを識別する。 トランザクションコーディネータとして働くのに利用できるノードによってマ ッピングテーブルmt内のすべての位置が占有されているかどうかを、第2シス テム内のシステムコーディネータsksが見るようになっている。従って、所定 のノードに大きな負荷がかかっている場合、システムコーディネータsksはこ れらノードがマッピングテーブル内に含まれないように保証する。これによって 第2システム「s」内のノードに所定の程度の負荷制御が行われる。 本発明はこれまで記載し、図示した実施例のみに限定されるものでなく、次の 請求の範囲に記載した発明の要旨の範囲内で変更を行うことができると理解でき よう。
───────────────────────────────────────────────────── フロントページの続き (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,ML,MR, NE,SN,TD,TG),AP(GH,GM,KE,L S,MW,SD,SZ,UG,ZW),EA(AM,AZ ,BY,KG,KZ,MD,RU,TJ,TM),AL ,AM,AT,AU,AZ,BA,BB,BG,BR, BY,CA,CH,CN,CU,CZ,DE,DK,E E,ES,FI,GB,GE,GH,GM,GW,HU ,ID,IL,IS,JP,KE,KG,KP,KR, KZ,LC,LK,LR,LS,LT,LU,LV,M D,MG,MK,MN,MW,MX,NO,NZ,PL ,PT,RO,RU,SD,SE,SG,SI,SK, SL,TJ,TM,TR,TT,UA,UG,UZ,V N,YU,ZW

Claims (1)

  1. 【特許請求の範囲】 1. 分散形データベースに属す情報が記憶されているノードを備えたシステム 内の複数のノードに影響を与えるトランザクションを実行するための方法であっ て、前記情報がテーブルに分割されており、前記トランザクションがトランザク ションコーディネータから発信され、前記トランザクションが前記多数のテーブ ルのうちの少なくとも1つの第1テーブルの部分の少なくとも1つのグループに 影響を与え、前記グループが少なくとも1つの第1部分および第2部分、可能な 場合には1つ以上の別の部分を含み、前記第1部分が第1ノード内に記憶されて おり、前記第2テーブル部分が前記第1ノードと別個の第2ノード内に記憶され ており、前記グループ内の可能な別の部分が互いに別個で、かつ前記第1および 前記第2ノードと別個の別のノードを備えた中間ノードに記憶されており、前記 トランザクションがツーセーフトランザクションであるような、トランザクショ ンを実行する方法において、 −第1ノードに前記トランザクションの準備をすることを求めるリクエストを 意味する「準備」メッセージを、前記トランザクションコーディネータが送り、 −前記第1ノードが前記トランザクションを引き受けできるときに、前記第1 ノードが直接または1つ以上の中間ノードを介し、前記第2ノードへ準備リクエ ストを送るか、または −前記第1ノードが前記トランザクションを引き受けできないときに、前記第 1ノードが直接または1つ以上の中間ノードを介し、前記第2ノードへ「準備未 完了」メッセージを送り、 −前記第2ノードが前記トランザクションを引き受けできるときに、前記第2 ノードが前記トランザクションコーディネータに直接「準備完了」メッセージ、 すなわち影響を受けたすべてのノードが前記トランザクションを引き受ける準備 が完了していることを示すメッセージを前記第2ノードが送るか、または −前記第2ノードが前記トランザクションを実行できないか、または前記第2 ノードが「準備未完了」メッセージを受信したときに、前記第2ノードが前記ト ランザクションコーディネータに直接「準備未完了」メッセージを送る第1段階 により前記トランザクションをオープンし、終了し、該第1段階の次に、 −前記トランザクションコーディネータが実行すべき対策に関するメッセージ を前記第2ノードに直接送り、 −次に前記第2ノードが直接または1つ以上の中間ノードを介し、前記第1ノ ードへ前記対策に関するメッセージを送り、 −次に前記第1ノードが前記トランザクションコーディネータに終了メッセー ジを送り、 これにより終了する、第2段階が続き、 前記対策に関する前記メッセージが「コミット」メッセージ、すなわち前記ト ランザクションに従って対策を実行するメッセージであり、前記終了メッセージ が「コミット完了」メッセージ、すなわち第1段階が「準備完了」メッセージで 終了していることを条件に、または前記対策に関する前記メッセージが「打ち切 り」メッセージ、すなわち前記トランザクションを打ち切るためのメッセージで あるときに、トランザクションに従って対策を実行したことを述べたメッセージ であり、前記終了メッセージが「打ち切り完了」メッセージ、すなわち第1段階 が「準備未完了」メッセージで終了したときに、トランザクションを打ち切るよ うになっていることを特徴とする、システム内の複数のノードに影響を与えるト ランザクションを実行するための方法。 2. 前記トランザクションがテーブル部分の別の部分に影響し、それぞれのグ ループが前記第1テーブルに属す部分または前記データベース内の他の一部のテ ーブルに属し、前記第1テーブルと別個の部分を含み、前記テーブル部分が第1 および第2ノード内に記憶されており、可能な場合には1つ以上の中間ノード内 に記憶されており、各中間ノードが前記部分のそれぞれのグループ内の他のノー ドと別個であり、前記第1段階が前記トランザクションコーディネータからそれ ぞれの第1ノードへの前記準備リクエストによりオープンにされ、それぞれの第 2ノードから前記トランザクションコーディネータへの「準備完了」メッセージ または「準備未完了」メッセージによって終了し、前記第2段階が前記トランザ クションコーディネータからそれぞれの第2ノードへの実行すべき対策に関する 前記メッセージによりオープンにされ、それぞれの第1ノードから前記トランザ クションコーディネータへの前記終了メッセージにより終了し、実行すべき対策 に関する前記メッセージが「コミット」メッセージ、すなわち前記トランザクシ ョンに従って対策を実行するためのメッセージであり、前記終了メッセージが「 コミット完了」メッセージ、すなわちすべての第2ノードからの「準備完了」メ ッセージで前記第1段階を終了するか、または前記対策に関する前記メッセージ が「打ち切り」メッセージ、すなわち前記トランザクションを打ち切るためのメ ッセージであるときに、トランザクションに従って対策が実行されたことを述べ たメッセージであり、前記第1段階が任意の第2ノードからの「準備未完了」メ ッセージで終了したときに、前記終了メッセージがトランザクション打ち切り完 了メッセージとなっていることを特徴とする、請求項1記載の方法。 3. 前記第1部分に、それぞれのグループ内の他の部分よりも高い優先権を割 り当てることを特徴とする、請求項1または2記載の方法。 4. それぞれのグループが前記中間ノード内に記憶される1つ以上の別の部分 を含み、前記第1段階におけるメッセージが前記第1ノードから前記中間ノード 、および前記中間ノードから前記第2ノードへシリアルに送られ、前記第2段階 におけるメッセージが前記第2ノードから前記中間ノードへ、および前記中間ノ ードから前記第1ノードへシリアルに送られることを特徴とする、請求項1また は2記載の方法。 5. それぞれのグループが、前記データベース内に含まれるテーブルのフラグ メントを含み、前記フラグメントが前記第1部分、前記第2部分および別の部分 を含み、前記別の部分が第3ノードに記憶されており、前記テーブルの一部の第 1コピーを構成する前記第1部分に前記より高い優先権が存在し、前記別の部分 が前記第1コピーのうちの第2コピーを形成し、前記第2部分が前記第1コピー のスタンバイコピーを形成することを特徴とする、請求項3および4記載の方法 。 6. 前記第1段階における前記第1ノードの準備が、前記第1ノードによる前 記フラグメントに属す、すべてのコピーに対するロックの発生および実施を含む ことを特徴とする、請求項1および5記載の方法。 7. 前記第1ノードが実行すべき対策に関する前記メッセージを受信し、前記 終了メッセージを送った後に限り、前記第1ノードが前記フラグメントに属すす べてのコピーに関する前記ロックの解除を発生することを特徴とする、請求項6 記載の方法。 8. 前記トランザクションによって影響を受けるそれぞれのコピーの部分だけ を利用できないようにしながら、他のトランザクションに対しては他の部分を利 用できる状態にするよう、適当な方法に従って前記ロックを実施することを特徴 とする、請求項6および7記載の方法。 9. 前記トランザクションによって影響を受けるフラグメント内の前記ノード のうちの1つが、前記トランザクションの実施中にクラッシュする、請求項1〜 8に記載の方法において、 −前記トランザクションコーディネータが進行中のすべてのメッセージ伝送を チェックし、 −中止されたトランザクション相を最初から再スタートし、 −メッセージチェーンからクラッシュしたノードを排除しながら、前記相に従 ってメッセージを送り、 −ノードが先に受信したメッセージを受信した場合、このノードが前記メッセ ージを無視し、これを送ることを特徴とする方法。 10.前記クラッシュしたノードが前記トランザクションによって影響を受ける フラグメント内の第1ノードであるとき、および前記トランザクションの準備段 階中にクラッシュが生じたときにトランザクションを打ち切ることを特徴とする 、請求項9記載の方法。 11.前記トランザクションの実行中に、トランザクションコーディネータがク ラッシュし、システムコーディネータがシステム内のノードのクラッシュを検出 するようになっている、請求項1〜8に記載の方法において、 −前記クラッシュしたノードがトランザクションコーディネータである場合、 トランザクションへの参加ノードとなっているかどうかを質問する一般的な問い 合わせを、システムコーディネータが前記システム内のすべてのノードに送り、 −新しいノードにトランザクションコーディネータの役割を割り当て、 −前記トランザクションによって影響を受けるそれぞれのフラグメント内のす べてのノードが新しいトランザクションコーディネータに送られるステータスレ ポートを編集し、該ステータスレポートがノードのアイデンティティ、フラグメ ントのアイデンティティ、トランザクションステータスおよび前記ノードがそれ ぞれのフラグメントにおける第1コピー、第2コピーまたはスタンバイコピーで あるかどうかを表示しており、 −前記新しいトランザクションコーディネータが前記ステータスレポートに基 づき、前記トランザクションを続行すべきか、打ち切るべきかを判断することを 特徴とする方法。 12.それぞれのグループが第1および第2部分を含み、前記第2のより高い優 先権が前記テーブルの一部の第1コピーから成る前記第1部分から成り、前記第 2部分が、前記第1コピーの第2コピーから成ることを特徴とする、請求項3記 載の方法。 13.前記システムが第2システムによって補足されている、請求項6および7 または8記載の方法であって、前記ロックを解除する前に前記トランザクション に従う前記第2システムの更新をリクエストすることを特徴とする方法。 14.それぞれのトランザクションの次に、当該トランザクションの実行を制御 する異なる属性が続く、請求項13に記載の方法において、 ワンセーフ伝送によって前記第2システムを更新すべき旨を前記属性のすべて が表示したときに、ワンセーフ伝送によって前記更新を実行し、前記属性のうち のいずれかが、限定されたツーセーフ伝送によって前記第2システムを更新すべ き旨を表示した場合、限定されたツーセーフ伝送によって前記第2システムを更 新することを特徴とする、請求項13記載の方法。 15.ワンセーフ伝送が前記トランザクションによって影響を受けるそれぞれの 第1ノードによる、実行すべき対策に関する「コミット」メッセージを前記第2 システム内の対応するノードへ送信することを含み、その後、トランザクション を続けることを特徴とする、請求項13または14記載の方法。 16.リクエストされた対策が実行できない旨の表示を発生し、この表示を別個 のトランザクション内で、または前記第2システムと前記第1システムとの間の 別のトランザクションの一部として、前記第2システムから前記第1システムへ 送ることにを特徴とする、請求項15記載の方法。 17.限られたツーセーフ伝送が前記トランザクションによって影響を受けるそ れぞれの第1ノードによる、実行すべき対策に関する「コミット」メッセージを 前記第2システム内の対応するノードへ送信することを含み、その後、前記第2 システム内の前記対応するノードが前記対策を実行する旨を表示する「コミット 完了」メッセージを前記第1ノードに送ることにより前記第1ノードに応答する か、または前記対策を実行せず、よって前記第2システムが前記トランザクショ ンに従って更新されない旨を前記第1ノードに表示する「打ち切り」メッセージ によって応答することを特徴とする、請求項13または14記載の方法。 18.前記第2システムが前記トランザクションに従って更新されない旨が表示 されたときに、前記第2システムのコピーを正しく含むように、前記第2システ ムを再スタートすることを特徴とする、請求項16または17記載の方法。 19.前記第2システムを更新することと共に、前記第2システム内のそれぞれ のノードに送られる情報が、前記第2システム内に論理的トランザクションコー ディネータを構築するのに必要な情報を含み、前記情報に基づき、かつ前記第2 システムに属すノードの瞬間的な負荷に基づき、前記第2システム内で物理的ト ランザクションコーディネータを選択することを特徴とする、請求項15または 17記載の方法。 20.前記第2システムに属すすべてのノードにマッピングテーブルが記憶され るか、または利用可能であり、前記マッピングテーブルが論理的トランザクショ ンコーディネータから達成すべき前記第2システム内の物理的ノードへのマッピ ングを可能にするテーブルであり、前記第1システムからの前記情報が前記第2 システム内の論理的トランザクションコーディネータの選択を含み、前記第2シ ステム内のシステムコーディネータが論理的トランザクションコーディネータの すべてを前記第2システム内の物理的ノードにマッピングできるように保証し、 マッピングテーブルがトランザクション時にトランザクションコーディネータと して働くよう利用できるノードしか含まないことを特徴とする、請求項19記載 の方法。
JP50059599A 1997-05-28 1998-05-28 分散形データベース内でトランザクションをするための方法 Expired - Lifetime JP4241940B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE9702014A SE521041C2 (sv) 1997-05-28 1997-05-28 Metod för optimering av transaktionsprotokoll inom en distribuerad databas
SE9702014-3 1997-05-28
PCT/SE1998/001010 WO1998054659A2 (en) 1997-05-28 1998-05-28 Method for transaction within a distributed database

Publications (2)

Publication Number Publication Date
JP2002500791A true JP2002500791A (ja) 2002-01-08
JP4241940B2 JP4241940B2 (ja) 2009-03-18

Family

ID=20407137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50059599A Expired - Lifetime JP4241940B2 (ja) 1997-05-28 1998-05-28 分散形データベース内でトランザクションをするための方法

Country Status (9)

Country Link
US (1) US6216126B1 (ja)
EP (1) EP1016005B1 (ja)
JP (1) JP4241940B2 (ja)
KR (1) KR20010013112A (ja)
AU (1) AU7683198A (ja)
CA (1) CA2291009A1 (ja)
DE (1) DE69838506T2 (ja)
SE (1) SE521041C2 (ja)
WO (1) WO1998054659A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9183264B2 (en) 2010-03-17 2015-11-10 Fujitsu Limited Distributed configuration information management device and distributed configuration information management method using duplicates
KR20160139033A (ko) * 2014-03-31 2016-12-06 아마존 테크놀로지스, 인크. 다중-익스텐트 연산에 대한 원자 기록
US10264071B2 (en) 2014-03-31 2019-04-16 Amazon Technologies, Inc. Session management in distributed storage systems
US10372685B2 (en) 2014-03-31 2019-08-06 Amazon Technologies, Inc. Scalable file storage service

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0854423A1 (en) * 1997-01-20 1998-07-22 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Data partitioning and duplication in a distributed data processing system
GB2346983B (en) 1999-02-18 2003-04-16 Ibm Client/server computing for transaction processing with superior coordinator o ptimization
US6473829B1 (en) * 1999-05-28 2002-10-29 International Business Machines Corporation Data storage device providing communication between processing units
US7206805B1 (en) * 1999-09-09 2007-04-17 Oracle International Corporation Asynchronous transcription object management system
US7689560B2 (en) 2000-10-13 2010-03-30 Miosoft Corporation Persistent data storage techniques
US7587428B2 (en) * 2000-10-13 2009-09-08 Microsoft Corporation Maintaining a relationship between two different items of data
KR100659971B1 (ko) 2003-12-26 2006-12-22 한국전자통신연구원 웹서비스 트랜잭션의 자동중단 처리시스템 및 방법
US7478400B1 (en) 2003-12-31 2009-01-13 Symantec Operating Corporation Efficient distributed transaction protocol for a distributed file sharing system
US20050165748A1 (en) * 2004-01-15 2005-07-28 Seagate Technology Llc Method and apparatus for querying a computerized database
US8429059B2 (en) 2004-06-08 2013-04-23 Rosenthal Collins Group, Llc Method and system for providing electronic option trading bandwidth reduction and electronic option risk management and assessment for multi-market electronic trading
US20090276367A1 (en) * 2008-04-30 2009-11-05 Rosenthal Collins Group, L.L.C. Method and system for providing risk management for multi-market electronic trading
US7912781B2 (en) * 2004-06-08 2011-03-22 Rosenthal Collins Group, Llc Method and system for providing electronic information for risk assessment and management for multi-market electronic trading
US20080162378A1 (en) * 2004-07-12 2008-07-03 Rosenthal Collins Group, L.L.C. Method and system for displaying a current market depth position of an electronic trade on a graphical user interface
US20100076906A1 (en) * 2004-07-12 2010-03-25 Rosenthal Collins Group, L.L.C. Method and system for using quantitative analytics on a graphical user interface for electronic trading
US20100094777A1 (en) * 2004-09-08 2010-04-15 Rosenthal Collins Group, Llc. Method and system for providing automatic execution of risk-controlled synthetic trading entities
US8589280B2 (en) * 2005-05-04 2013-11-19 Rosenthal Collins Group, Llc Method and system for providing automatic execution of gray box strategies for electronic trading
US8364575B2 (en) 2005-05-04 2013-01-29 Rosenthal Collins Group, Llc Method and system for providing automatic execution of black box strategies for electronic trading
US7801801B2 (en) 2005-05-04 2010-09-21 Rosenthal Collins Group, Llc Method and system for providing automatic execution of black box strategies for electonic trading
US20080288391A1 (en) * 2005-05-31 2008-11-20 Rosenthal Collins Group, Llc. Method and system for automatically inputting, monitoring and trading spreads
US7617149B2 (en) * 2005-05-31 2009-11-10 Rosenthal Collins Group, Llc Method and system for electronically inputting, monitoring and trading spreads
US7849000B2 (en) 2005-11-13 2010-12-07 Rosenthal Collins Group, Llc Method and system for electronic trading via a yield curve
US20080059846A1 (en) * 2006-08-31 2008-03-06 Rosenthal Collins Group, L.L.C. Fault tolerant electronic trading system and method
US7921189B2 (en) * 2006-11-20 2011-04-05 Microsoft Corporation Single virtual client for multiple client access and equivalency
US7805420B2 (en) * 2006-11-20 2010-09-28 Microsoft Corporation Versioning and concurrency control for multiple client access of data
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US8732386B2 (en) * 2008-03-20 2014-05-20 Sandisk Enterprise IP LLC. Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory
US8229945B2 (en) 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory
US20100010937A1 (en) * 2008-04-30 2010-01-14 Rosenthal Collins Group, L.L.C. Method and system for providing risk assessment management and reporting for multi-market electronic trading
US8266126B2 (en) * 2010-03-24 2012-09-11 Matrixx Software, Inc. System with multiple conditional commit databases
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US8868487B2 (en) 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US9047351B2 (en) 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US8700842B2 (en) 2010-04-12 2014-04-15 Sandisk Enterprise Ip Llc Minimizing write operations to a flash memory-based object store
US8666939B2 (en) 2010-06-28 2014-03-04 Sandisk Enterprise Ip Llc Approaches for the replication of write sets
US8694733B2 (en) 2011-01-03 2014-04-08 Sandisk Enterprise Ip Llc Slave consistency in a synchronous replication environment
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
US9785697B2 (en) * 2012-06-29 2017-10-10 Telefonaktiebolaget Lm Ericsson (Publ) Methods and apparatus for implementing a distributed database
KR20140047230A (ko) * 2012-10-10 2014-04-22 (주)티베로 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템
US10044835B1 (en) 2013-12-11 2018-08-07 Symantec Corporation Reducing redundant transmissions by polling clients
US9959308B1 (en) 2014-09-29 2018-05-01 Amazon Technologies, Inc. Non-blocking processing of federated transactions for distributed data partitions
US11481385B1 (en) * 2021-01-29 2022-10-25 Neo4J Sweden Ab Graph database system to safely store data at high volume and scale

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4755792A (en) 1985-06-13 1988-07-05 Black & Decker Inc. Security control system
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
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
US5072370A (en) 1990-05-08 1991-12-10 International Business Machines Corporation System and method for monitoring electronic data processing equipment
JPH0415840A (ja) * 1990-05-10 1992-01-21 Toshiba Corp 分散型データベース管理装置
US5212788A (en) * 1990-05-22 1993-05-18 Digital Equipment Corporation System and method for consistent timestamping in distributed computer databases
US5893117A (en) * 1990-08-17 1999-04-06 Texas Instruments Incorporated Time-stamped database transaction and version management system
US5287501A (en) * 1991-07-11 1994-02-15 Digital Equipment Corporation Multilevel transaction recovery in a database system which loss parent transaction undo operation upon commit of child transaction
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US5555404A (en) 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
US5423037A (en) 1992-03-17 1995-06-06 Teleserve Transaction Technology As Continuously available database server having multiple groups of nodes, each group maintaining a database copy with fragments stored on multiple nodes
US5530855A (en) * 1992-10-13 1996-06-25 International Business Machines Corporation Replicating a database by the sequential application of hierarchically sorted log records
US5404508A (en) 1992-12-03 1995-04-04 Unisys Corporation Data base backup and recovery system and method
US5432926A (en) * 1992-12-04 1995-07-11 International Business Machines Corporation Method and apparatus for improving database reliability and response time in a distributed transaction processing system
AU6133594A (en) * 1993-02-08 1994-08-29 Action Technologies, Inc. Method and apparatus for managing business processes
US5581750A (en) * 1993-03-15 1996-12-03 International Business Machines Corporation System and method for improving data recovery performance
US5835757A (en) * 1994-03-30 1998-11-10 Siemens Telecom Networks Distributed database management system for servicing application requests in a telecommunications switching system
US5752026A (en) * 1994-04-28 1998-05-12 The United States Of America As Represented By The Secretary Of The Navy Early commit locking computer database protocol
US5625811A (en) * 1994-10-31 1997-04-29 International Business Machines Corporation Method and system for database load balancing
US5799322A (en) * 1995-01-24 1998-08-25 Tandem Computer, Inc. System and method for stopping updates at a specified timestamp in a remote duplicate database facility
US5991771A (en) * 1995-07-20 1999-11-23 Novell, Inc. Transaction synchronization in a disconnectable computer and network
US5960194A (en) * 1995-09-11 1999-09-28 International Business Machines Corporation Method for generating a multi-tiered index for partitioned data
US5862318A (en) * 1995-10-26 1999-01-19 Microsoft Corporation System for generating a gapless series of identity values
US5799305A (en) * 1995-11-02 1998-08-25 Informix Software, Inc. Method of commitment in a distributed database transaction
US5850507A (en) * 1996-03-19 1998-12-15 Oracle Corporation Method and apparatus for improved transaction recovery
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

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9183264B2 (en) 2010-03-17 2015-11-10 Fujitsu Limited Distributed configuration information management device and distributed configuration information management method using duplicates
KR20160139033A (ko) * 2014-03-31 2016-12-06 아마존 테크놀로지스, 인크. 다중-익스텐트 연산에 대한 원자 기록
CN106462601A (zh) * 2014-03-31 2017-02-22 亚马逊科技公司 针对多盘区操作的原子写入
JP2017510002A (ja) * 2014-03-31 2017-04-06 アマゾン・テクノロジーズ・インコーポレーテッド 複数エクステント動作のための原子書き込み
KR101865491B1 (ko) * 2014-03-31 2018-06-07 아마존 테크놀로지스, 인크. 다중-익스텐트 연산에 대한 원자 기록
US10264071B2 (en) 2014-03-31 2019-04-16 Amazon Technologies, Inc. Session management in distributed storage systems
US10372685B2 (en) 2014-03-31 2019-08-06 Amazon Technologies, Inc. Scalable file storage service
CN106462601B (zh) * 2014-03-31 2019-12-17 亚马逊科技公司 针对多盘区操作的原子写入

Also Published As

Publication number Publication date
EP1016005A2 (en) 2000-07-05
US6216126B1 (en) 2001-04-10
WO1998054659A3 (en) 1999-03-25
EP1016005B1 (en) 2007-10-03
DE69838506T2 (de) 2008-07-03
SE9702014L (sv) 1998-11-29
SE521041C2 (sv) 2003-09-23
JP4241940B2 (ja) 2009-03-18
CA2291009A1 (en) 1998-12-03
DE69838506D1 (de) 2007-11-15
SE9702014D0 (sv) 1997-05-28
WO1998054659A2 (en) 1998-12-03
AU7683198A (en) 1998-12-30
KR20010013112A (ko) 2001-02-26

Similar Documents

Publication Publication Date Title
JP2002500791A (ja) 分散形データベース内でトランザクションをするための方法
CA2205725C (en) Preventing conflicts in distributed systems
US7177950B2 (en) Synchronization and recovery of peers in a peer to peer environment
US5371886A (en) System for managing unit-of-work identifiers when a chained, distributed, two phase commit transaction system is severed
US20060095438A1 (en) Non-blocking commit protocol systems and methods
US7478400B1 (en) Efficient distributed transaction protocol for a distributed file sharing system
JPH04229359A (ja) コンピュータ・ネットワーク
JPH04229334A (ja) コンピュータ・システム及びアプリケーションプログラム実行方法
JPH04229333A (ja) コミット手順の非同期的再同期化実行装置および方法
JPH04229358A (ja) 同期点回復手段を有するコンピュータ装置
JPH04229332A (ja) コミット手順におけるエラー・コードおよびエラー記述情報の処理装置および方法
JPH04229335A (ja) コミット手順の最適化方法
JP3525933B2 (ja) 経路指定ノードにおける同期化プロシージャ
JPH10510651A (ja) 最適化された同期化プロシージャ
CN112650812A (zh) 一种数据分片存储方法、装置、计算机设备和存储介质
JPH0628292A (ja) トランザクション処理を制御するためのネットワーク内の同期点メッセージの数を低減する方法および装置、ならびにネットワークを流れるプロトコルメッセージの数を低減する方法
US7028219B2 (en) Hybrid method for flushing transaction state in a fault-tolerant clustered database
US6799172B2 (en) Method and system for removal of resource manager affinity during restart in a transaction processing system
JP2006227763A (ja) データ共有システム、データ共有方法及びプログラム
CN114363350A (zh) 一种服务治理系统及方法
CN101488134A (zh) 数据库系统的复制环境内的高性能修改事务的方法及系统
JP4476011B2 (ja) データベースシステム、データベース不整合回避方法およびプログラム
KR100788158B1 (ko) 네트워크 계층에서 자동 연결구성을 위한 정합장치의 상태천이구조 및 자동 연결방법
JPH06223007A (ja) 2フェーズコミット制御方法
JPH02122362A (ja) 分散データ管理システム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20040128

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080722

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081009

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081224

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

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130109

Year of fee payment: 4

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term