JP2731376B2 - データベース管理方法 - Google Patents

データベース管理方法

Info

Publication number
JP2731376B2
JP2731376B2 JP7313276A JP31327695A JP2731376B2 JP 2731376 B2 JP2731376 B2 JP 2731376B2 JP 7313276 A JP7313276 A JP 7313276A JP 31327695 A JP31327695 A JP 31327695A JP 2731376 B2 JP2731376 B2 JP 2731376B2
Authority
JP
Japan
Prior art keywords
write
database
server
writes
log
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.)
Expired - Lifetime
Application number
JP7313276A
Other languages
English (en)
Other versions
JPH08241234A (ja
Inventor
ビー.テリー ダグラス
エム.セイマー マーヴィン
ジェイ.ディーマース アラン
ピーターセン カリン
ジェイ.スプレイツァー マイケル
ビー.ウェルチ ブレント
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.)
Xerox Corp
Original Assignee
Xerox Corp
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 Xerox Corp filed Critical Xerox Corp
Publication of JPH08241234A publication Critical patent/JPH08241234A/ja
Application granted granted Critical
Publication of JP2731376B2 publication Critical patent/JP2731376B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2329Optimistic concurrency control using versioning
    • 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/23Updating
    • G06F16/2379Updates performed during online database operations; commit 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/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/99931Database or file accessing
    • Y10S707/99939Privileged access

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複製された、一貫
性の弱いデータ記憶システムに関し、より詳細には、そ
のようなシステムを維持するためのアーキテクチャ上の
方法論に関する。
【0002】
【従来の技術及び発明が解決しようとする課題】複製さ
れた、一貫性の弱いデータベースシステムは、低速もし
くは間欠通信リンクによって複数のユーザ間でデータを
共有することを含むアプリケーションに適している。例
えば、これらアプリケーションは、理想的なネットワー
ク接続性に乏しいポータブルマシンを含む移動コンピュ
ータ環境においてランすることが可能である。ユーザー
のコンピュータは、ネットワークインフラストラクチャ
に依存するセルモデムもしくはパケット無線トランシー
バのような無線通信デバイスであることが可能であり、
該ネットワークインフラストラクチャは、大域的に有効
でないこと及び/又は非常に費用がかかる欠点を有す
る。そのようなコンピュータは、特定の商用パーソナル
デジタルアシスタント(PDA)で有効な赤外線”ビー
ム”ポートのようなショートレンジの見通し内通信を使
用することが可能である。これとは別に、該コンピュー
タは従来のモデムを有することが可能であり、該モデム
は、データを送信及び受信する場合に電話回線に物理的
に接続されることが要求されるか、もしくは、ドッキン
グステーションに挿入される場合にシステムの残りの部
分と通信することのみが可能である。実際、コンピュー
タの唯一の通信デバイスがディスケットであることが可
能であり、人間によってマシン間で転送される。従っ
て、移動コンピュータは、該コンピュータがデータ共有
を望む多くのもしくは全ての他のデバイスからの派生的
で時に不本意な通信断を被る可能性がある。
【0003】現実的に、ユーザーは、彼らのアポイント
メントカレンダー、文献データベース、ミィーティング
ノート、開発設計ドキュメント、ニュース掲示板、及び
他のタイプのデータを共有することを所望する可能性が
ある。従って、移動クライアントが共有データの読み出
し及び書き込みを活発に行うことを可能とするシステム
に対する要求が存在する。そのようなシステムは、ほと
んど確実に所望の及び不本意な通信断を処理しなければ
ならないにも係わらず、ユーザーから見た場合に、可能
な限り、中央集約化された高度に有効なデータベースサ
ービスのように動作しなければならない。
【0004】
【課題を解決するための手段】従って、本発明に従い、
一貫性の弱い複製されたデータベースシステムに対する
書き込み動作は、当該データベースの任意の所与のイン
スタンスの現行状態と当該書き込み動作との間の衝突を
識別及び解決する内在的衝突検出プロシジャー及び衝突
解決プロシジャーを有する。当該データベースの1つの
インスタンスに対するホストによってこれら書き込み動
作は安定な実行順序にコミットされ、この実行順序はデ
ータベースの他のインスタンスへ伝搬する。従って、安
定な実行順序にコミットされたことが明らかとなった書
き込み(”コミットされた書き込み”)といまだ潜在的
に不安定状態にある書き込み(”テンタティブな書き込
み”)とを区別する書き込みログがデータベースの各イ
ンスタンスに対して維持される。このことによって、デ
ータベースの任意の所与のインスタンス内の安定データ
及び潜在的不安定データをユーザーが識別可能となる。
更に、予め定義された一貫性保証のセットから特定の一
貫性保証を、任意の所与のセッションに対して当該デー
タベースの全てのインスタンスにわたりユーザーが選択
することを可能とする規定が設けられる。
【0005】
【発明の実施の形態】
A.一般的環境 PDA(パーソナルデジタルアシスタント)のような特
定のコンピュータツールは、それらのユーザーがアクセ
スを所望するデータの全てもしくはいづれかのコピーを
保持する充分な記憶容量を有していない。このため、本
発明は、図1に示されるように、データを記憶するサー
バ11−13と、サーバによって管理されるデータを読
み出し及び書き込みするクライアント15、16との間
で機能を分割するよう構成されたシステムによって実施
される。サーバは、1もしくはそれより多くのデータベ
ースの完全なコピーを保持する任意のマシンである。用
語”データベース”は、本明細書においてデータ項目の
集合を示すために概略的に使用され、データが関係デー
タベースとして管理されるかされないかに係わらず、デ
ータベースは単純に従来のファイルシステムに記憶さ
れ、もしくは任意の他のデータモデルに一致する。クラ
イアントは通信可能な任意のサーバに内在するデータに
アクセス可能であり、逆に言えば、パーソナルラップト
ップを含む、データベースのコピーを有する任意のマシ
ンは、クライアントからの読み出し及び書き込みリクエ
ストに対してサービスを提供することを所望しているこ
とが期待される。
【0006】ポータブルコンピュータは、特定のデータ
ベースに対してサーバであることが可能であり、他のコ
ンピュータに対してクライアントであることが可能であ
る。例えば、クライアントは、一緒に業務出張している
同僚グループのような、活動的に協動する一方でシステ
ムの残りの部分から通信断状態にあるユーザーの要求を
満足するサーバとなることが可能である。通信断状態に
あるワーキンググループのメンバーに対して彼のパーソ
ナルマシンへコピーする予定のデータへのアクセスを単
に与えるよりもむしろ、図1のサーバ/クライアントモ
デルは、任意のグループメンバーに対してグループ内で
有効な任意のデータへのアクセスを可能とする充分な柔
軟性を提供する。
【0007】理解されるように、ポータブルマシン上に
サーバを存在させることを可能とする概念は、Lotu
sNotesやFicusのような現存のシステム内で
移動性をサポートするためにとられるアプローチに類似
する。
【0008】データベースの複製は、非接続ユーザーに
対して共通データベースへのアクセスを可能とするため
に必要とされる。不幸にして、全ての有効なコピーを自
動的にアップデートすることによって強いデータの一貫
性を維持することに基づくような、複製データを管理す
る多くのアルゴリズムは、例示される実施例に対して意
図されるような分割されたネットワーク内では充分に機
能せず、特に、サイトの不具合は信頼性を有して検出さ
れない。特定タイプのネットワーク分割を受容可能なQ
uorumベースの方法は、通信断状態にある個々もし
くは小グループに対して充分に機能しない。更に、悲観
的なロッキングに基づくアルゴリズムは、移動環境にお
ける一般的ケースのように、メッセージコストが高い場
合に有効性を極度に限定し性能が乏しい。
【0009】従って、コンピュータ環境の残りの部分か
ら完全に通信断状態にある場合でもクライアントの読み
出し及び書き込み能力を最大とするために、任意読み出
し/任意書き込み複製方式が好ましい。これは、21−
23のようにユーザーがデータベースの任意のコピーを
読み出し、また25のようにデータベースの任意のコピ
ーへ書き込むことを可能とする。26及び27のように
データベースの他の全ての複製へ書き込みが伝搬する時
間的スケジュールは、これら複製物の内のいくつかとの
通信が現在不可能である可能性があるため、保証されな
い。従って、複製されるデータベースは弱い一貫性を有
するのみとなる。複製データに対してそれらの有効性だ
けでなくスケーリング性及び簡潔性を高めるサポートと
なる、一貫性の弱い複製データを管理する方法が従来シ
ステムの多くで利用されてきた。
【0010】図2にいくぶん詳細に示されるように、1
1及び12のようなサーバは、”アンチ−エントロピ
ー”プロトコルを使用して一般的データベース30のコ
ピー間で26のように書き込みを伝搬する。アンチ−エ
ントロピーは、データベース30の全てのコピーが同じ
状態へ収束し、新たなアップデートがない場合に最終的
に同一の状態へ収束することを保証する。これを達成す
るために、サーバ11及び12だけでなく他の全てのサ
ーバは、全ての書き込みを受信しなければならないだけ
でなく、それらを一貫して順序付けなければならない。
【0011】対等なアンチ−エントロピーが使用され
て、通信可能な任意の2つのサーバが両者間でアップデ
ートを伝搬可能となることが保証される。このアプロー
チ下において、直接通信不可能なマシンでさえも仲介を
通じてアップデートを交換可能となる。各サーバは、2
6のようなペア間の書き込み交換の相手となる他の一方
のサーバを周期的に選択し、該他の一方のサーバは、そ
の有効性だけでなく予想コスト及び利益に依存して選択
される。当該プロセスの終了時において、サーバ11及
び12の両者はデータベース30の同一のコピーを有す
る。即ち、当該プロセスの終了時において、サーバ11
及び12のは、同じ順序で実効的に行われた同じ書き込
みを有する。アンチ−エントロピーは減分的プロセスと
して構成されることが可能であり、非常に間欠的もしく
は非対称な通信状態にあるサーバであってもそれらのデ
ータベースを最終的に相互に一貫した状態とすることが
可能となる。 B.セッション保証 任意読み出し/任意書き込み複製を使用することの潜在
的欠点は、単一のユーザーもしくはアプリケーションの
みがデータ修正を行っている場合でさえも所与のデータ
ベース30の異なるインスタンス内で一貫性が欠落する
可能性があることである。例えば、移動クライアント
は、サーバ12のような1サーバにおいて書き込みを行
った後それと異なるサーバ11において読み出しを行う
可能性がある。これら2つの動作実行の間の特定な時間
においてこれら2つのサーバが相互にもしくは共通の中
間連鎖を通じてアンチ−エントロピーを実行しない限
り、クライアントは一貫性の欠落した結果を得ることが
想定される。
【0012】このような問題を緩和するためにセッショ
ン保証が提供される。”セッション”は、アプリケーシ
ョンの実行中に当該セッションの1もしくはそれより多
くの参加者によってデータベース30のようなデータベ
ースで行われる読み出し及び書き込み動作のシーケンス
に対する抽象概念である。以下の4つの保証の内の1も
しくはそれより多くが、セッション毎ベースでセッショ
ンマネージャー32もしくは33に要求される。 ・書き込みの読み出し − セッションの主要期間中に
おいて、参加者による読み出し動作は、当該参加者によ
る過去の全ての書き込みを反映する。
【0013】・単調な読み出し − 参加者による連続
的読み出しは、セッション全体を通して非減少書き込み
セットを反映する。
【0014】・読み出しに続く書き込み − セッショ
ン期間中において、参加者による書き込みは、それらが
依存する読み出しの後に伝搬される。
【0015】・単調な書き込み − セッション期間中
において、参加者による書き込みは、論理的にそれらに
先行する書き込みの後に伝搬される。潜在的に一貫性の
欠落した多くのサーバに対してアプリケーションが読み
出し及び書き込みを行う場合でさえ、これら保証が呼び
出されて個々のアプリケーションに対して当該アプリケ
ーションの作用と一貫性のあるデータベース30の見通
しが与えられることが可能である。異なるアプリケーシ
ョンは、一貫性についての異なる要求、及び一貫性の欠
落したデータに対する異なる許容度を有する。このた
め、アプリケーションに対して必要十分なセッション保
証を当該アプリケーションが選択することを可能とする
よう規定が設けられる。セッション保証を要求すること
についての主なコストは、有効性の潜在的な減少であ
る。なぜなら、保証をミートする充分最新なサーバのセ
ットは、全ての有効なサーバよりも数が少ないことが予
想されるからである。これらセッション保証に関する更
に多くの情報は、Douglas B.Terry他に
よる文献”Session Guarantees f
or Weakly Consistennt Rep
licated Data”(Proceedings
International Conference
on Parallel and Distribu
ted Information Systems(P
DIS),Austin,TX,September
1994,pp.140−149)により得られる。 C.アップデート衝突のアプリケーション固有の検出 特定のクライアントは異なるサーバに対して同時書き込
みを行う可能性があり、また古いコピーの読み出しに基
づいて特定のデータをアップデートする可能性があるた
め、任意読み出し/任意書き込み複製方式においてアッ
プデート衝突は回避不可能である。これらの衝突は2つ
の基本的形態を有する。即ち、複数のクライアントが同
じデータ項目(もしくはデータ項目セット)を互換性の
ない方法でアップデートする場合に生じる書き込み−書
き込み衝突、及び、第2のクライアントによって同時に
アップデートされる他のデータ項目値の読み出しに基づ
く特定のデータを第1のクライアントがアップデートす
る場合(もしくは、潜在的に、現在読みだされているサ
ーバと異なるサーバ上で過去にアップデートされたデー
タ項目に読み出しが向けられる場合)に生じる読み出し
−書き込み衝突である。
【0016】バージョンベクトルもしくは単純なタイム
スタンプが一般的に使用されて書き込み−書き込み衝突
が検出される。一方、読み出し−書き込み衝突は、アプ
リケーションの読み出しセットを記録してチェックする
ことで検出可能である。しかし、これらの方法全てはア
プリケーションのセマンテクスを無視するものである。
例えば、時間のブロックを選択することによりユーザー
が対話的にミーティングをスケジューリングするカレン
ダーマネージャーを考える。カレンダーデータを有する
ファイルを2ユーザーが同時にエディットするという単
純な理由から、アプリケーションから見て衝突は発生し
ない。むしろ、同一の参加者を対象として2ユーザーが
同時にミーティングをスケジューリングする場合に衝突
が起こる。
【0017】従って、アプリケーション固有の方法でア
ップデート衝突を検出することがより有用となる。アプ
リケーションに関連する方法においてデータベースの状
態が書き込み動作によって期待される状態と異なる場合
に書き込み衝突が起こる。従って、書き込み動作は、書
き込まれるデータかもしくはアップデートされるデータ
(即ちアップデートセット)だけでなく従属状態セット
も含む。従属状態セットは、アプリケーションによって
与えられた照会及びそれらの期待結果の集合である。デ
ータベースの現行コピーに対してサーバ上で照会がラン
しており、照会が期待結果をリターンしない場合に衝突
が検出される。
【0018】これら動作、検出される任意の衝突の解
決、及び、書き込み動作を実行しているサーバ上のデー
タベースコピーに対する任意の適正なアップデートのア
プリケーションは、その特定なデータベース上でサーバ
が実行する他の全ての読み出し及び書き込みの視点から
自動的に達成される。この実施例の目的のため、データ
ベースは関係データベースであることが仮定される。
【0019】より標準的もしくはほとんど標準的でない
実行に対処することにおいて、アップデートセットはア
ップデートレコードのシーケンスから構成される。アッ
プデートレコードは、(a)アップデート動作(即ち、
挿入、削除、もしくは修正)を特定し、(b)特定され
たアップデート動作が適用されるデータベース関係を指
定し、(c)指定された動作に従って指定されたデータ
ベース関係に適用されるべき要素セットを包含する。挿
入動作の実行は関連する要素セットを指定された関係に
追加する。一方、削除及び修正動作は、指定されたデー
タベース関係に現在ある要素を検査し、特定された要素
セット内の任意の要素の基本キーで整合する任意の要素
を削除もしくは置換する。
【0020】従属状態セットはゼロもしくはそれより多
くの従属状態レコードのシーケンスであり、従属状態セ
ットの各々はデータベースに対してランする照会を要素
セットと共に有し、該要素セットは、衝突がない場合の
データベースに対して当該照会をランすることの期待結
果を特定する。先に述べたように、データベースの現行
コピーに対してサーバ上で任意の照会がランしており、
該照会が期待結果をリターンしない場合に衝突が検出さ
れる。
【0021】図3に示されるように、衝突検出プロセス
43によって衝突が検出されなかったことが42におい
て確認された後にのみ41のように書き込み動作がデー
タベースに適用される。衝突の存在が発見される場合、
その存在が報告されるか、もしくは44のように該衝突
を解決するステップが取られる。
【0022】図4を参照すると、アプリケーション固有
の衝突検出プロセス43は、書き込みを実行しているサ
ーバのデータベースの現行バージョンに対する特定の書
き込み動作についての全ての従属状態照会を逐次にラン
する。従って、45においてインデックスKは、所与の
書き込み動作に対する従属状態セットによって特定され
る従属状態照会数に等しい値に初期化される。Kが0値
に初期化される場合、従属状態チェックがないことが4
6で決定され、従って、衝突が発見されないことが47
で提示される。しかし、所与の書き込み動作に1もしく
はそれより多くの従属状態チェックが内在することが4
6で決定される場合、これらチェックの内の第1のチェ
ックについての照会がデータベースに対して48でラン
され、該ランのリターン結果が当該ランの期待結果と4
9で比較される。実際の及び期待される結果が整合する
場合、インデックスKは51で再度評価され、追加の従
属状態チェックが行われるかどうかが決定される。追加
のチェックが行われる場合、インデックスKは52で減
分され、次の従属状態チェックが48及び49で行われ
る。
【0023】任意の従属状態照会に応答してデータベー
スによってリターンされた実際の結果が期待結果に整合
しないことが49で見いだされる場合、衝突検出プロセ
ス43は53で”衝突”状態を結論する。一方、所与の
書き込み動作に対する従属状態チェックの全てが満足さ
れる場合、衝突検出プロセスは54で”非衝突”状態を
結論する。
【0024】明らかに、要求されたアップデートが依存
する読み出された任意のデータのバージョンスタンプを
従属状態照会がチェックすることによって、従属状態セ
ットは従来の楽観的な同時性制御を提供可能である。し
かし、従属状態チェックメカニズムはより一般的であ
る。例えば、従属状態チェックは”ブラインド”書き込
みを可能とし、その場合クライアントはデータベースの
任意のコピーへのアクセスを有さないで特定の条件が維
持されている仮定のもとにデータベースアップデート要
求を行う。例えば、クライアントはラップトップコンピ
ュータを使用して特定ルームでのミーティングのスケジ
ューリングを所望する場合があり、この場合、ルームカ
レンダーのコピーへのアクセスをクライアントが現在有
していなくとも当該ルームは所望の時間に空いているこ
とが仮定される。このケースにおいて、ミーティングル
ームカレンダーをアップデートしてルーム予約を試みる
書き込み動作は従属状態照会を含むことが想定され、該
従属状態照会は、サーバによる書き込み動作の実行に先
立ちランされ、当該ミーティングに対して特定されたタ
イムスロットにおいて当該ルームが空いているかどうか
を決定することが想定される。 D.アップデート衝突のアプリケーション固有の解決 有利にも、当該システムはアップデート衝突を検出する
だけでなく任意の検出された衝突を解決する。楽観的同
時性制御を有するデータベースシステムにおいて頻繁に
取られる衝突解決の1つのアプローチは、衝突するトラ
ンザクションの各々を単に中止することである。他のシ
ステムは、それらが検出した衝突の解決を人間に依存す
る。しかし、人間に依る解決は移動コンピュータ環境に
おいて不利である。なぜなら、アンチ−エントロピーを
介して書き込みがバックグラウンドを伝搬している間
に、ユーザーがアップデートを特定のサーバへ送出して
通信を断つ可能性があるからである。従って、書き込み
衝突が検出される時(即ち、従属状態チェックが失敗し
た場合)ユーザーはアクセス不可能である場合がある。
【0025】例示された実施例において、同時に要求さ
れた書き込み動作の順序が問題とならないかもしくはデ
ータベースのコピーを維持する各サーバにおいてアプリ
ケーション固有の方法で適切に処理可能であるような非
常に多くのアプリケーションが存在するという仮定に基
づき衝突を自動的に解決する方法を書き込みが特定可能
とするよう規定が設けられる。この衝突解決プロセスを
達成するために、図5に示されるように、各書き込み動
作は”マージプロシジャー”と呼ばれるアプリケーショ
ン固有のプロシジャーを含み、該プロシジャーは、図5
に示されるように、書き込み衝突が53で検出される場
合に(図4参照)呼び出される。このプロシジャーは、
実行サーバに存在するデータベースコピーを読み出し、
57のように現行データベース内容に対して適正である
代替アップデートセットを56のように生成することに
よって衝突を解決する。
【0026】マージプロシジャーの実行によって生成さ
れたリバイズされたアップデートセットは、データベー
スに適用される新たな要素セットから構成されることが
可能であり、該要素セットは、ヌル要素セットか(即ち
なにも適用されない)、データベースの特別なエラーロ
グ関係に適用される1もしくはそれより多くの要素セッ
トか、もしくは前記要素セットの組み合わせである。
【0027】クライアントで発生し、サーバへ送られ、
58のように保護された環境で実行されるという点でマ
ージプロシジャーは移動エージェントに類似する。しか
し、より一般的エージェントとは異なり、該エージェン
トはサーバのデータベースを読み出し及び書き込み可能
であるのみである。マージプロシジャーの実行は、デー
タベース内容の、及びマージプロシジャーの静的データ
の決定論的関数でなければならない。
【0028】通常、これらマージプロシジャーの実行に
対して”保護された環境”を提供するために、マージプ
ロシジャーの各々は関数であり、該関数は、Tclのよ
うな適切な言語で書かれ、マージプロシジャーを実行す
るサーバのアドレス空間にある新たに作成されたインタ
プリタでランされる。インタプリタは、マージプロシジ
ャーをランした後に終了する。
【0029】マージプロシジャー関数は入力パラメータ
を取らないが、出力として新たなアップデートセットを
生成する。より詳細には、マージプロシジャーは、デー
タベースの現行状態に対するリードオンリーデータベー
ス照会の結果を呼び出し及び受信することが可能であ
る。しかし、このこと以外は、マージプロシジャーは、
それらの周囲の存在に関する情報を取得不可能であり、
(それらが生成するアップデートセットをリターンする
ことによって以外は)それらの周囲の存在に影響を及ぼ
すことが不可能である。特に、マージプロシジャーは、
現在時間、もしくはサーバの多くの他のリソースの状
態、もしくはサーバがランするホストのような非決定論
的変数について照会不可能である。なぜなら、そのよう
な照会は非決定論的結果を生成する可能性があるからで
ある。適切には、禁止動作を棄却するために使用される
Tclインタプリタを修正することによってこれら制限
が実行される。そのような”安全な”インタプリタは当
業者には周知である。
【0030】ディレクトリをファイルする同時アップデ
ートの自動的解決が過去に提案され、FicusやCo
daのようなシステムで現在利用されている。これらの
システムは、マージプロシジャーに類似の、アプリケー
ション固有の解決プロシジャーのサポートの追加を近年
行っており、該プロシジャーはサーバに登録され、衝突
発生時に自動的に呼び出される。しかし、これら既存の
システムにおいて、呼び出される適正な解決プロシジャ
ーは、アップデートされるファイルのタイプのようなフ
ァイル特性に基づき選択される。マージプロシジャー
は、アプリケーションのセマンティクスに基づき、また
特定の書き込みについての意図した効果に基づき各書き
込み動作に対してカスタマイズされることが可能である
ため、より柔軟である。例えば、前述のカレンダーアプ
リケーションにおいて、第1の選択がすでになされてい
る場合、マージプロシジャーは代替ミーティング時間リ
ストを含むことが可能である。
【0031】要約すると、瞬間的システムにおいて、書
き込み動作は、要求されたアップデート、従属状態セッ
ト、及びマージプロシジャーから構成される。従属状態
セット及びマージプロシジャーの両者は、アプリケーシ
ョンのセマンティクスによって指示され、アプリケーシ
ョンによって要求される各書き込み動作に対して変化す
ることが可能である。従属状態チェックの検証、マージ
プロシジャーの実行、及びアップデートセットの適用
は、サーバ上の他のデータベースアクセスに関して自動
的に実行される。 E.書き込みの安定化 本システムが意図する複製データベースの弱い一貫性と
は、書き込み動作は1つのサーバにおいて所望のアップ
デートを生成可能であるが、該動作は他の1つのサーバ
において衝突として検出され得ることを意味し、従っ
て、そのマージプロシジャーの実行結果として全く異な
るアップデートが生成される。また、マージプロシジャ
ーの実行は現行データベース状態に依存する可能性があ
るため、書き込みのマージプロシジャーは異なるサーバ
において異なる結果を生成する可能性がある。特に、過
去の書き込みから成る異なるセットをサーバが見る場
合、もしくは、サーバが書き込みを異なる順序で処理す
る場合、変化する結果か生成され得る。最終的一貫性を
達成するために、サーバは全ての書き込みを受信しなけ
ればならないだけでなく、これら書き込みを適用する順
序に整合しなければならない。本文中において示される
ように、アンチ−エントロピーを介して得られる特定の
書き込みは、先行して得られた他の書き込みの前に順序
付けられる必要が生じる可能性があり、従って、先行す
る書き込みが取り消され、サーバのデータベースコピー
へ再適用される可能性がある。書き込みの再適用によっ
て、該書き込みの過去の実行によって生成されたアップ
デートとは異なる方法で該書き込みがデータベースをア
ップデートする可能性がある。
【0032】データベースに対する書き込みの効果が不
変である場合、即ち、未来において決して取消及び再実
行されることがない場合、書き込みは”安定化”された
と認識される。所与の書き込みの安定性を検出する1つ
の方法は、各サーバに関する充分な情報を収集し、所与
の書き込みに先行して順序付けられた他の書き込みが存
在しないこと、及びそのような書き込みが未来において
許容されないことを決定することである。不幸にして、
このような形態で書き込みが安定化するレートは、アン
チ−エントロピーが全てのサーバ間で情報を伝搬するレ
ートに依存する。例えば、超過期間に対して通信断とさ
れるサーバは、極度に安定化を遅延させ、多数の書き込
みを後にロールバックさせることが予想される。
【0033】書き込みログ60の概略によって図6に示
されるように、例示される実施例は書き込みを明示的
に”コミット”する概念を含む。書き込みがコミットさ
れると、全ての他のコミットされた書き込みに関する当
該書き込みの順序は固定され、コミットされていない書
き込みは当該書き込みの前に順序付けられず、従って、
当該書き込みは安定となる。まだコミットされていない
書き込みは”テンタティブ”と呼ばれる。
【0034】クライアントは、所与の書き込みがコミッ
トされているかテンタティブであるかについて照会可能
である。例示されるシステムは、所望の場合にクライア
ントがテンタティブデータを読み出すことを可能とす
る。しかし、テンタティブデータ及び固有の不安定性を
処理するよう作成されていないアプリケーションは、そ
れらの要求を単にコミットデータをリターンすることに
限定する可能性がある。この選択は、他のシステムによ
って過去に実施されてきた硬直したルーズな読み出し動
作に類似する。本質的に、各サーバはデータベースの2
つの視野を維持する。1つは、コミットデータを反映す
るだけのコピーであり、もう1つは、現在サーバに対し
て既知であるテンタティブな書き込みも反映する”フ
ル”コピーである。フルコピーは、テンタティブな書き
込みが基本サーバに到達する場合にデータベースが含む
こととなる推定物である。
【0035】書き込みをコミットする1つの方法は、サ
ーバの大部分において特定の種類のコンセンサスプロト
コルをランすることである。しかし、移動コンピュータ
間で発生するネットワーク分割のタイプに対しては充分
に機能しない。
【0036】この代わりに、瞬間的システムにおいて、
各データベースは1つの識別されたサーバ、即ち”基
本”サーバを有し、該サーバはデータベースへの書き込
みをコミットする責任を負う。この他の”2次的”サー
バは書き込みをテンタティブに受信し、アンチ−エント
ロピーを介してそれらを基本サーバへ伝搬する。2次的
サーバが基本サーバと通信し、それらのテンタティブな
書き込みを基本サーバへ伝搬した後、基本サーバはこれ
ら書き込みをコミットされた書き込みへ変換する。コミ
ットされた書き込みの情報及びそれらの順序は、再びア
ンチ−エントロピーを介して基本サーバから2次的サー
バへ伝搬して戻される。基本サーバの存在は、他の2次
的サーバが通信断状態のままであっても書き込みをコミ
ット可能とする。多くの場合、基本サーバはアップデー
ト活動領域付近に配置されることが可能であり、従っ
て、より短時間で書き込みをコミット可能となる。
【0037】より詳細には、前述のタイプの明示的コミ
ットプロセスの使用を介して書き込みを安定化するため
に、クライアントアプリケーションからサーバが受信す
る書き込み動作は、この他のサーバから受信されたもの
とは異なる形態で処理される。図7に示されるように、
クライアントから受信された書き込みは、61のように
最初に唯一のIDをアサインされる。新たな書き込みが
常にサーバの書き込みログ端で順序づけられるような方
法で各サーバによって唯一のIDが選択される。次に、
書き込みが意図されるデータベースに対するサーバ内の
書き込みログ(図6)のテール即ち”若い”端部に対し
て62のように書き込みが追加される。更に、63のよ
うに書き込みが実行されてデータベースの現行状態がア
ップデートされる。
【0038】一方、図8に示されるように、新たな書き
込み(即ち、64で決定される、書き込みログ60にな
い書き込み)がアンチ−エントロピーを介して他のサー
バから受信される場合、該書き込みは書き込みログ60
の若い端部に必ずしも追加されない。その代わりに、ソ
ートキーが用いられて65のように該書き込みが書き込
みログにソートされた順序で挿入される。コミットされ
た書き込みを順序付けるためのソートキーとしてコミッ
トシーケンスナンバー(CSN)が使用され、一方、テ
ンタティブな書き込みを順序付けるためのソートキーと
して書き込みIDが使用される。これらソートキー及び
それらが書き込みにアサインされる方法は以下により詳
細に説明される。しかし、現時点において、テンタティ
ブな書き込み及びコミットされた書き込みの両者が、書
き込みもしくはそれらの任意のサブセットを有する全て
のサーバにおいてこの2つの異なるクラス化形態で一貫
して順序付けられることは理解されるべきである。しか
し、サーバのテンタティブな書き込みの内の1つがコミ
ットされたことを該サーバが認識する時に発生する書き
込みのクラス化は、該書き込みが他の1つもしくはそれ
より多くのテンタティブな書き込みに対して再順序づけ
されることを必要とする。なぜならば、コミットされた
書き込みに対しては異なる異なるソートキーが使用され
るからである。本文中において明らかとなるように、再
順序付けの頻度及び大きさを低減するために好ましくは
特定の処理ステップが取られる。このような処理ステッ
プは再順序付けを実行するコンピュータコストのために
必要であるが、特定の再順序付けは依然として予想され
る。
【0039】他のサーバから受信された書き込みを65
でサーバが書き込みログへ挿入する場合、書き込みが書
き込みログ60の若い端部に挿入されるのかもしくはそ
の他の特定な位置に挿入されるのかをサーバは常に決定
する。書き込みがログの若い端部に単に追加されること
が見いだされる場合、書き込みは63で実行されてデー
タベースの現行状態がアップデートされる(図3参
照)。書き込みが書き込みログ60の他の任意の位置に
ソートされる場合、68のようにロールバックプロシジ
ャーが呼び出され、新たな書き込みが書き込みログ60
に挿入される位置に対応する状態までデータベースがロ
ールバックされ、次に、新たな書き込みに対する挿入位
置と書き込みログ60の若い端部との間の書き込みログ
内に位置する全ての書き込みがソートされた順序でシー
ケンシャルに再実行される。
【0040】先に説明したように、書き込みはそれがコ
ミットされた後にのみ安定である。更に、書き込みがコ
ミットされると、それは再実行される必要はない。従っ
て、サーバはどの書き込みがコミットされたかを識別す
る規定を有することのみを必要とし、コミットされるこ
とがわかっている書き込み動作を全て記憶する必要はな
い。従って、特定の記憶容量セービングが実現可能とな
る。
【0041】書き込みをコミットし、任意の所与のデー
タベースに対して全てのコミットされた書き込みの一貫
した順序付けが存在することを保証するために、各デー
タベースは同時に1つのサーバ(”基本サーバ”)のみ
に依存する。この基本サーバは、最初に書き込みを受信
する場合(即ち、書き込みがクライアントアプリケーシ
ョンから受信されるかもしくは他のサーバから受信され
る場合)にこれら書き込みの各々をコミットし、コミッ
トされた書き込み状態は次にアンチ−エントロピーによ
って全ての他のサーバへ伝搬される。図9は、クライア
ントから書き込みを受信する場合の基本サーバの動作を
示す。基本サーバがクライアントから受信する各書き込
みは、61のように唯一の書き込みIDをアサインさ
れ、69のように標準カウント順序で次の有効なCSN
をアサインされる。次に、70のように書き込みログ
(コミットされた書き込みのみを有するログ)のテール
に書き込みが追加され、63のように書き込みが実行さ
れる。
【0042】図10に示されるように、2次的サーバが
アンチ−エントロピーを介して他のサーバから受信する
書き込みが90で検査され、それらが当該サーバに対す
る書き込みログ60内の適正位置にあるかどうかが決定
される。適正位置にある場合、91のように書き込みは
無視される。しかし、これ以外の場合、書き込みは図8
に従って92で更に処理されて新たな書き込みであるか
どうかが決定され、新たな書き込みである場合、サーバ
の書き込みログの適正なテンタティブ位置に挿入され、
フルデータベースに適用される。更に、書き込みはまた
93で検査され、基本サーバによってコミットされたか
どうかが決定される。書き込みが有効なCSNを有する
ことが93で見いだされる場合、2次的サーバで該書き
込みをコミットし、且つ、書き込みをコミットすること
が再順序づけを必要とする場合に該書き込み及び全ての
テンタティブな書き込みを再実行するプロセスが94で
呼び出される。図11を参照すると、他のサーバから受
信された書き込みをコミットする一方で、71のように
2次的サーバは該サーバが有する任意の過去の書き込み
レコードを該サーバのテンタティブな書き込みから除去
し、72のようにその書き込みログのコミットされた書
き込み部分の若い端部に当該書き込みを追加する。書き
込みログ60内の書き込みの順序付けがこの再クラス化
によって影響されないことが73で決定される場合、こ
れ以上の動作は必要とされない。しかし、再クラス化が
書き込みの順序付けを変化させる場合、73のようにデ
ータベースは書き込みログ60内の新たな書き込み位置
に対応する状態までロールバックされ、該位置と書き込
みログ60のテンタティブ部分の若い端部との間の全て
の書き込みは63で再実行される。
【0043】データベースの”ロールバック”及び”ロ
ールフォワード”プロシジャーは、データベースシステ
ムアーキテクチャに対する周知のツールである。しか
し、完全性のために、適切なロールバックプロシジャー
が図11に示される。図に示されるように、該プロシジ
ャーは、(1)75のように書き込みレコードの書き込
みログ内のロールバックされる位置ロケーションに対し
てポジションインデックスpを設定すること、及び、
(2)76のように書き込みログ内の書き込みレコード
の総数に対してポインタk及びスレショルドカウントn
を設定することによって初期化される。繰り返し取消プ
ロセスが次に77においてデータベース上でランされ、
データベースに対する最新の書き込みの影響が逐次的に
取り消され、これと同時に、これら書き込みの各々の影
響が取り消された後にポインタインデックスkが78で
減分され、取り消される必要のある書き込みがまだある
かどうかを79で決定するチェックが行われる。(デー
タベースに適用されていない書き込みの取消は行われ
ず、書き込みは該書き込みがデータベースに適用された
順序とは異なる順序で取り消されることが可能であ
る。)このプロセス77−79は、ポインタインデック
スkがポジションインデックスpと同一の書き込みログ
内の位置を示すことが79で決定されるまで継続する。
このことが発生すると、ポインタkがその時に示してい
る書き込みが63で実行される(図3)。書き込みログ
60の若い端部の書き込みレコード以外の任意の書き込
みレコードをポインタkが示していることが81で決定
される場合、ポインタkは82で減分され、ログの若い
端部へ向かう順序で次の書き込みが63で実行される。
ポインタkが書き込みログ60(図6)の若い端部を示
していることが81で決定されるまで、この書き込み再
実行プロシジャー63,81−82は次の書き込み命令
に従い実行される。
【0044】図13は、書き込みの再順序付けを発生す
るタイプのシナリオを示しており、図14は、図13の
シナリオを追跡し、書き込みを有する現行ログ及び書き
込みをサーバが受信する状態を示す。例示を簡単にする
ために、該シナリオは、サーバS1−Sn の各々が初期
状態として単一のコミットされた書き込みW0を保持す
ることを仮定する。サーバSn は基本サーバであること
が意図され、従って該サーバは書き込みW1及びW2の
コミットに対して唯一責任を負う。
【0045】先の説明から理解されるように、コミット
された書き込みはそれらのコミットシーケンスナンバー
(CSN)に従って順序付けられる。一方、テンタティ
ブな書き込みは、それらが最初に受信された時間を示す
タイムスタンプによって最初に順序付けられ、それらが
最初に受信されたサーバのIDによって2次的に順序付
けられる。タイムスタンプとサーバIDの両者はIDに
含められる。サーバIDは、同一のタイムスタンプ値を
有するテンタティブな書き込みの順序づけを明確にする
ための2次的ソートキーとして使用される。 F.クライアント及び通信断グループによるテンタティ
ブデータの読み出し 書き込みを要求するクライアントは、一般的に、データ
ベースに対する後続の読み出し要求をこれらアップデー
トに反映させることを所望する。更に、これらクライア
ントの内の特定のクライアントは、彼らの過去の書き込
みを読み出すことに依存する書き込みさえも要求する可
能性がある。クライアントが基本サーバと通信断状態に
あってアップデートが直ちにコミット不可能な場合でさ
えも、この可能性は確実に存在する。いづれにしても、
可能な限り、クライアントは彼らのアップデートがテン
タティブであるこを認識しないべきであり、アップデー
トが後にコミットする場合に変化を観測しないべきであ
る。即ち、テンタティブな結果は可能な限り常にコミッ
トされた結果に等しくなるべきである。
【0046】2つの2次的サーバがアンチ−エントロピ
ーを介してテンタティブな書き込みを交換する場合、彼
らはこの書き込みに対する”テンタティブな”順序付け
に同意する。先の説明から理解されるように、順序は第
1にタイムスタンプに基づき、該タイムスタンプは当該
書き込みを最初に受信したサーバによって各当該書き込
みにアサインされる。従って、異なるタイムスタンプを
有する同一の書き込みセットを有する任意の2サーバは
それら書き込みを同一に順序付ける。従って、基本サー
バから通信断状態にあるサーバグループは、書き込みを
どのように順序付け内部衝突をどのように解決するかに
関して同意に達する。この書き込み順序付けは、書き込
みをコミットするために基本サーバが使用する順序とは
異なるという点でテンタティブである。しかし、通信断
グループ以外のクライアントが衝突アップデートを実行
しないケースにおいては、書き込みは、テンタティブな
順序で基本サーバによってコミットされることが可能で
あり、また最終的にそのようにコミットされ、該書き込
みがテンタティブなデータベースに対して有した影響と
同一の影響をコミットされたデータベースに与えること
が可能である。 結論 本発明により提供されるアーキテクチャは、個別にもし
くはグループとして他のユーザから通信断状態となる可
能性のあるユーザーによって読み出し及びアップデート
が可能な共有データベースをサポートする。このアーキ
テクチャの特定の態様は、同様のもしくは異なる要求を
有する他のシステムにおいて使用可能である。例えば、
本文中に記載されたアプリケーション固有の衝突検出
は、検出された衝突の解決を人間による解決に依存する
システムにおいて使用可能である。同様に、アプリケー
ション固有の衝突解決方法論は、衝突検出にバージョン
ベクトルを利用するシステムにおいて使用可能である。
【0047】書き込み動作を処理するステップは、以下
のように要約される。 0.ユーザーもしくは他のサーバから書き込み動作を受
信する。 1.ユーザーから受信する場合、<サーバID,タイム
スタンプ>の形態の唯一の識別子(ID)を書き込みに
アサインし、コミットシーケンスナンバー(CSN)に
INFINITY(無限大)をアサインする。無限大の
CSN値は当該書き込みがテンタティブであることを示
す。 2.基本サーバから受信する場合、(最後にアサインさ
れたCSN+1)をCSNにアサインする。 3.ログ内の全ての書き込みが、最初にCSNによっ
て、次にタイムスタンプによって、最後にサーバIDに
よって順序付けられるよう、当該書き込みをサーバの書
き込みログに挿入する。 4.当該書き込みが過去にログ内に存在していた場合、
該書き込みはログのコミット部分にエンターされ、前の
インスタンスを削除して新たな書き込みログを生4.当
該書き込みがログのコミット部分にエンターされる時に
該書き込みが過去からログ内に存在していた場合、前の
インスタンスを削除して新たな書き込みログを生成す
る。 5.当該書き込みが書き込みログの終端でない場合、新
たな書き込みの直前位置までサーバのデータベースをロ
ールバックする。 6.新たな書き込みからログのテールまでのログ内の各
書き込みに対して以下を実行する。
【0048】6.1 データベース上で従属状態照会を
ランし、結果を取得する。 6.2 取得結果が期待結果に等しくない場合、ステッ
プ6.5に進む。
【0049】6.3 期待されたアップデートをデータ
ベースに実行する。 6.4 次の各ステップをスキップしてステップ6.に
進む。
【0050】6.5 マージプロシジャーを実行し、リ
バイズされたアップデートを取得する。
【0051】6.6 リバイズされたアップデートをデ
ータベースに実行する。 前記に要約されたプロセスの衝突する書き込み部分のア
プリケーション固有の検出を利用するために、 −前記に要約されたプロセスのステップ2を除去し、 −ステップ6.5及び6.6を新たなステップ”6.5
書き込み動作を中止し、及び/又は衝突をユーザーに
報告する。”で置き換える。また、このプロセス自体に
よってもしくは特定の他のプロセスにおける検出された
書き込み衝突のアプリケーション固有の解決を利用する
ために、 −ステップ2を除去し、 −ステップ6.1及び6.2を新たなステップ”6.1
バージョンベクトルの比較もしくは特定の方法によっ
て衝突が検出された場合、ステップ6.5に進む。”で
置き換える。最後に、コミットされたデータ及びテンタ
ティブなデータの2つのデータクラスを維持する概念を
利用するために、 −ステップ6.1及び6.2を除去し、 −ステップ6.4、6.5、及び6.6を除去する。
【0052】
【発明の効果】以上説明したように、本発明により、他
のユーザから通信断状態となる可能性のあるユーザによ
って読み出し及びアップデートが可能な共有データベー
スをサポートするアーキテクチャが提供される。
【図面の簡単な説明】
【図1】本発明を実施するために使用可能なクライアン
ト/サーバアーキテクチャのブロック図。
【図2】選択されたセッション保証をクライアントに代
わって実施するセッションマネージャーを含むよう図1
のアーキテクチャが拡張された図。
【図3】書き込み実行プロセスのフロー図。
【図4】アプリケーション固有の衝突検出プロセスのフ
ロー図。
【図5】アプリケーション固有の衝突解決プロセスのフ
ロー図。
【図6】コミットされた書き込みとテンタティブな書き
込みとを区別し、安定なデータを有するデータベー
ス(”コミットされたデータベース”)と潜在的に不安
定なデータを有するデータベース(”フルデータベー
ス”)とを識別する書き込みログの概略図。
【図7】クライアントアプリケーションから受信された
書き込みを処理するプロセスのフロー図。
【図8】アンチ−エントロピーを介して他のサーバから
受信された書き込みを処理するプロセスのフロー図。
【図9】基本サーバによってクライアントアプリケーシ
ョンから受信された書き込みを処理するプロセスのフロ
ー図。
【図10】アンチ−エントロピーを介して2次的サーバ
において他のサーバから受信された書き込みを処理する
プロセスを示す、図8を拡張した図。
【図11】2次的サーバにおいて書き込みをコミットす
るプロセスを示す、図10を拡張した図。
【図12】データベースのロールバクプロセスを示すフ
ロー図。
【図13】書き込みの再順序付けを発生するタイプのシ
ナリオを示す図。
【図14】図13のシナリオの追跡を示す図。
【符号の説明】
11 サーバ 15 クライアント 30 データベース 32 セッションマネージャー
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アラン ジェイ.ディーマース アメリカ合衆国 95006 カリフォルニ ア州 ボルダー クリーク ホプキンス グルク 720 (72)発明者 カリン ピーターセン アメリカ合衆国 94025 カリフォルニ ア州 メンロ パーク シャロン パー ク ドライヴ 350 ナンバー エヌ307 (72)発明者 マイケル ジェイ.スプレイツァー アメリカ合衆国 95376 カリフォルニ ア州 トレイシー ブリストルコーン ドライヴ 1941 (72)発明者 ブレント ビー.ウェルチ アメリカ合衆国 94043 カリフォルニ ア州 マウンテン ビュー デル アヴ ェニュー 2540 (56)参考文献 特開 平5−298171(JP,A) 特開 平4−359332(JP,A) 特開 平6−332778(JP,A) 特開 平6−318165(JP,A) 特開 平6−318164(JP,A) 特開 平6−301588(JP,A) 特開 平6−301581(JP,A) 特開 平6−223007(JP,A) 特開 平6−215032(JP,A) 特開 平6−195250(JP,A) 特開 平6−168169(JP,A) 特開 平5−289921(JP,A) 特開 平5−225293(JP,A) 国際公開94/12938(WO,A) 米国特許5210824(US,A) 米国特許5321834(US,A) 米国特許4914586(US,A) GEORGE F.COULOUS & JEAN DOLLMORE 著 水野忠則 訳「分散システム コンセプ トとデザイン」(1991−6−15)電気書 院、P.307−345、”第8章 協調サー バとファイルの複製" BILL GRAYBROOK著 信 國弘毅 訳「OLTP オンライントラ ンザクション処理システム」(1994. 5.30)富士ソフトウエア、p.277− 306、”第12章 分散トランザクション 処理"

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 一貫性の弱い複製されたデータベースを
    管理する方法であって、 書き込み動作によってアップデートが意図される前記デ
    ータベースのインスタンスに対する当該書き込み動作の
    衝突を識別する、アプリケーション固有の従属状態チェ
    ック機構の各々を書き込み動作に内在させるステップを
    備え、 前記従属状態チェック機構によって識別された任意の衝
    突を解決する、アプリケーション固有の衝突解決機構の
    各々を書き込み動作に内在させるステップを備え、 前記データベースの各インスタンスに対する書き込みロ
    グのコミットされた部分及びテンタティブな部分を維持
    し、安定な実行順序を有する前記データベースの前記イ
    ンスタンスに対する書き込みアップデートと安定な実行
    順序を有さない前記データベースの前記インスタンスに
    対する書き込みアップデートとを区別するステップを備
    え、 当該セッションに対する前記データベースの全てのイン
    スタンスにわたり当該セッションに対して選択された任
    意の実施可能なセッション一貫性保証を実施するステッ
    プを備える、データベース管理方法。
JP7313276A 1994-12-07 1995-11-30 データベース管理方法 Expired - Lifetime JP2731376B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/352,012 US5581754A (en) 1994-12-07 1994-12-07 Methodology for managing weakly consistent replicated databases
US352012 1994-12-07

Publications (2)

Publication Number Publication Date
JPH08241234A JPH08241234A (ja) 1996-09-17
JP2731376B2 true JP2731376B2 (ja) 1998-03-25

Family

ID=23383426

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7313276A Expired - Lifetime JP2731376B2 (ja) 1994-12-07 1995-11-30 データベース管理方法

Country Status (4)

Country Link
US (1) US5581754A (ja)
EP (1) EP0716382B1 (ja)
JP (1) JP2731376B2 (ja)
DE (1) DE69528338T2 (ja)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5671407A (en) * 1994-12-07 1997-09-23 Xerox Corporation Application-specific conflict detection for weakly consistent replicated databases
US5684990A (en) * 1995-01-11 1997-11-04 Puma Technology, Inc. Synchronization of disparate databases
US5751958A (en) * 1995-06-30 1998-05-12 Peoplesoft, Inc. Allowing inconsistency in a distributed client-server application
US6098078A (en) * 1995-12-29 2000-08-01 Lucent Technologies Inc. Maintaining consistency of database replicas
US5745904A (en) * 1996-01-12 1998-04-28 Microsoft Corporation Buffered table user index
US5873096A (en) * 1997-10-08 1999-02-16 Siebel Systems, Inc. Method of maintaining a network of partially replicated database system
US6604117B2 (en) 1996-03-19 2003-08-05 Siebel Systems, Inc. Method of maintaining a network of partially replicated database system
US5812793A (en) * 1996-06-26 1998-09-22 Microsoft Corporation System and method for asynchronous store and forward data replication
US5819272A (en) * 1996-07-12 1998-10-06 Microsoft Corporation Record tracking in database replication
US6212529B1 (en) * 1996-11-13 2001-04-03 Puma Technology, Inc. Synchronization of databases using filters
US7302446B1 (en) 1996-11-13 2007-11-27 Intellisync Corporation Synchronizing databases
US7013315B1 (en) 1996-11-13 2006-03-14 Intellisync Corporation Synchronization of databases with record sanitizing and intelligent comparison
US5943676A (en) 1996-11-13 1999-08-24 Puma Technology, Inc. Synchronization of recurring records in incompatible databases
US6405218B1 (en) 1996-11-13 2002-06-11 Pumatech, Inc. Synchronizing databases
WO1998040804A2 (en) * 1997-02-26 1998-09-17 Siebel Systems, Inc. Distributed relational database
US5956704A (en) * 1997-06-05 1999-09-21 Oracle Corporation Method and apparatus for parallelizing operations that insert data into an existing data container
US6170063B1 (en) 1998-03-07 2001-01-02 Hewlett-Packard Company Method for performing atomic, concurrent read and write operations on multiple storage devices
US6016501A (en) * 1998-03-18 2000-01-18 Bmc Software Enterprise data movement system and method which performs data load and changed data propagation operations
US6029178A (en) * 1998-03-18 2000-02-22 Bmc Software Enterprise data movement system and method which maintains and compares edition levels for consistency of replicated data
US6035307A (en) * 1998-03-30 2000-03-07 Bmc Software Enterprise data movement system and method including opportunistic performance of utilities and data move operations for improved efficiency
US6925477B1 (en) 1998-03-31 2005-08-02 Intellisync Corporation Transferring records between two databases
US6343299B1 (en) 1998-11-16 2002-01-29 International Business Machines Corporation Method and apparatus for random update synchronization among multiple computing devices
US7007003B1 (en) 1998-12-04 2006-02-28 Intellisync Corporation Notification protocol for establishing synchronization mode for use in synchronizing databases
US7756830B1 (en) 1999-03-31 2010-07-13 International Business Machines Corporation Error detection protocol
US6473776B2 (en) 1999-04-16 2002-10-29 International Business Machines Corporation Automatic prunning for log-based replication
US6493796B1 (en) * 1999-09-01 2002-12-10 Emc Corporation Method and apparatus for maintaining consistency of data stored in a group of mirroring devices
US6557111B1 (en) 1999-11-29 2003-04-29 Xerox Corporation Multicast-enhanced update propagation in a weakly-consistant, replicated data storage system
US7359920B1 (en) 2001-04-18 2008-04-15 Intellisync Corporation Communication protocol for synchronization of personal information management databases
US6996581B2 (en) 2001-09-28 2006-02-07 International Business Machines Corporation Template management of database instances
US20030088615A1 (en) * 2001-11-06 2003-05-08 Gordon Good Update resolution procedure for a directory server
GB2402297B (en) 2003-05-15 2005-08-17 Sun Microsystems Inc Update dependency control for multi-master replication
GB2401693B (en) * 2003-05-15 2005-08-17 Sun Microsystems Inc Conflictless replication in a multi-master directory system
US7237141B2 (en) * 2003-06-19 2007-06-26 Lsi Corporation Method for recovering data from a redundant storage object
US7506309B2 (en) * 2004-03-23 2009-03-17 General Motors Corporation Method for managing vehicle software configuration updates
US7353227B2 (en) * 2004-07-23 2008-04-01 Sap Aktiengesellschaft Conflict resolution engine
US7487471B2 (en) * 2004-07-23 2009-02-03 Sap Ag User interface for conflict resolution management
US20060106879A1 (en) * 2004-11-16 2006-05-18 International Business Machines Corporation Conflict resolution in a synchronization framework
US7627614B2 (en) * 2005-03-03 2009-12-01 Oracle International Corporation Lost write detection and repair
JP5088734B2 (ja) * 2007-11-22 2012-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 耐障害性トランザクション処理システム及び処理方法
US20110178984A1 (en) * 2010-01-18 2011-07-21 Microsoft Corporation Replication protocol for database systems
US8825601B2 (en) * 2010-02-01 2014-09-02 Microsoft Corporation Logical data backup and rollback using incremental capture in a distributed database
US8484661B2 (en) * 2010-03-19 2013-07-09 At&T Mobility Ii Llc Agnostic execution cluster for an agnostic execution environment
US9107140B2 (en) 2010-08-13 2015-08-11 At&T Mobility Ii Llc Carrier-driven bearer path selection
US10152500B2 (en) 2013-03-14 2018-12-11 Oracle International Corporation Read mostly instances
US9767178B2 (en) 2013-10-30 2017-09-19 Oracle International Corporation Multi-instance redo apply
US9892153B2 (en) 2014-12-19 2018-02-13 Oracle International Corporation Detecting lost writes
US10180954B2 (en) * 2015-05-29 2019-01-15 Nuodb, Inc. Disconnected operation within distributed database systems
US10747752B2 (en) 2015-10-23 2020-08-18 Oracle International Corporation Space management for transactional consistency of in-memory objects on a standby database
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
US10698771B2 (en) 2016-09-15 2020-06-30 Oracle International Corporation Zero-data-loss with asynchronous redo shipping to a standby database
US10891291B2 (en) 2016-10-31 2021-01-12 Oracle International Corporation Facilitating operations on pluggable databases using separate logical timestamp services
US11475006B2 (en) 2016-12-02 2022-10-18 Oracle International Corporation Query and change propagation scheduling for heterogeneous database systems
US10691722B2 (en) 2017-05-31 2020-06-23 Oracle International Corporation Consistent query execution for big data analytics in a hybrid database
US11122083B1 (en) 2017-09-08 2021-09-14 F5 Networks, Inc. Methods for managing network connections based on DNS data and network policies and devices thereof
US11048590B1 (en) 2018-03-15 2021-06-29 Pure Storage, Inc. Data consistency during recovery in a cloud-based storage system
US20190342380A1 (en) 2018-05-07 2019-11-07 Microsoft Technology Licensing, Llc Adaptive resource-governed services for performance-compliant distributed workloads
EP3877859A4 (en) * 2018-12-11 2022-01-05 Huawei Technologies Co., Ltd. READ / WRITE CONFLICT DETECTION FOR A COMMON MEMORY DATABASE WITH SEVERAL MASTERS

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914586A (en) 1987-11-06 1990-04-03 Xerox Corporation Garbage collector for hypermedia systems
US5210824A (en) 1989-03-03 1993-05-11 Xerox Corporation Encoding-format-desensitized methods and means for interchanging electronic document as appearances
US5321834A (en) 1989-11-28 1994-06-14 Xerox Corporation Method and system for reclaiming unreferenced computer memory space

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3889904T2 (de) * 1987-09-08 1995-01-12 Digital Equipment Corp Namensverwaltung für ein digitaldatenverarbeitungssystemnetzwerk.
JPH04359332A (ja) * 1991-06-06 1992-12-11 Nec Corp 端末機ファイル管理システム
US5241675A (en) * 1992-04-09 1993-08-31 Bell Communications Research, Inc. Method for enforcing the serialization of global multidatabase transactions through committing only on consistent subtransaction serialization by the local database managers
JPH05298171A (ja) * 1992-04-20 1993-11-12 Casio Comput Co Ltd データ処理装置
US5434994A (en) * 1994-05-23 1995-07-18 International Business Machines Corporation System and method for maintaining replicated data coherency in a data processing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914586A (en) 1987-11-06 1990-04-03 Xerox Corporation Garbage collector for hypermedia systems
US5210824A (en) 1989-03-03 1993-05-11 Xerox Corporation Encoding-format-desensitized methods and means for interchanging electronic document as appearances
US5321834A (en) 1989-11-28 1994-06-14 Xerox Corporation Method and system for reclaiming unreferenced computer memory space

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BILL GRAYBROOK著 信國弘毅 訳「OLTP オンライントランザクション処理システム」(1994.5.30)富士ソフトウエア、p.277−306、"第12章 分散トランザクション処理"
GEORGE F.COULOUS & JEAN DOLLMORE 著 水野忠則 訳「分散システム コンセプトとデザイン」(1991−6−15)電気書院、P.307−345、"第8章 協調サーバとファイルの複製"

Also Published As

Publication number Publication date
DE69528338D1 (de) 2002-10-31
EP0716382B1 (en) 2002-09-25
JPH08241234A (ja) 1996-09-17
US5581754A (en) 1996-12-03
DE69528338T2 (de) 2003-01-23
EP0716382A1 (en) 1996-06-12

Similar Documents

Publication Publication Date Title
JP2731376B2 (ja) データベース管理方法
JP2731373B2 (ja) 書き込み衝突検出方法
JP2731374B2 (ja) 書き込み衝突解決方法
JP2731375B2 (ja) データ識別方法
Helal et al. Replication techniques in distributed systems
US5581753A (en) Method for providing session consistency guarantees
US5999931A (en) Concurrency control protocols for management of replicated data items in a distributed database system
Weihl Distributed version management for read-only actions
US6938070B2 (en) Conflict resolution for collaborative work system
EP0081056A2 (en) A data processing network having a distributed data file access control
Barbará-Millá et al. The demarcation protocol: A technique for maintaining constraints in distributed database systems
EP0730766A1 (en) Computer method and apparatus for asynchronous ordered operations
DuBourdieux Implementation of Distributed Transactions.
Jia et al. Highly concurrent directory management in the Galaxy distributed system
Alonso et al. Partitioned data objects in distributed databases
Anastassopoulos et al. A unified approach to distributed concurrency control
Lomet Consistent timestamping for transactions in distributed systems
Tiwari et al. Issues in replicated data for distributed real-time database systems
Barreto Optimistic replication in weakly connected resource-constrained environments
Gustavsson et al. Decentralized and continuous consistency management in distributed real-time databases with multiple writers of replicated data
Rasheed Twin-transaction model to support mobile data access
Bloch A practical approach to replication of abstract data objects
Chen Performance of Concurrency Control and Data Allocation in Distributed Database Systems
Ho Consistency in Optimistic Replication Systems
Zhou et al. A token-based independent update protocol for managing replicated objects

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19971209

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

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

Free format text: PAYMENT UNTIL: 20071219

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20081219

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20091219

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20101219

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20101219

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 14

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 14

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20131219

Year of fee payment: 16

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