JPH08241236A - 書き込み衝突解決プロセス - Google Patents

書き込み衝突解決プロセス

Info

Publication number
JPH08241236A
JPH08241236A JP7313274A JP31327495A JPH08241236A JP H08241236 A JPH08241236 A JP H08241236A JP 7313274 A JP7313274 A JP 7313274A JP 31327495 A JP31327495 A JP 31327495A JP H08241236 A JPH08241236 A JP H08241236A
Authority
JP
Japan
Prior art keywords
write
database
server
writes
procedure
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
JP7313274A
Other languages
English (en)
Other versions
JP2731374B2 (ja
Inventor
Alan J Demers
ジェイ.ディーマース アラン
Karin Petersen
ピーターセン カリン
Michael J Spreitzer
ジェイ.スプレイツァー マイケル
Douglas B Terry
ビー.テリー ダグラス
Marvin M Theimer
エム.セイマー マーヴィン
Brent B Welch
ビー.ウェルチ ブレント
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 JPH08241236A publication Critical patent/JPH08241236A/ja
Application granted granted Critical
Publication of JP2731374B2 publication Critical patent/JP2731374B2/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

Landscapes

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

Abstract

(57)【要約】 【課題】 データベースへの書き込み衝突を解決する。 【解決手段】一貫性の弱い複製されたデータベースシス
テムに対する書き込み動作は、アプリケーション固有の
内在するプロシジャーを有し、関連する書き込み動作が
そのようなデータベースの所与のインスタンスの現行状
態と衝突することが見いだされる場合は常に、衝突を解
決するために該プロシジャーが呼び出される。該プロシ
ジャーは、プロシジャーを与えるアプリケーションの要
求を満足するよう構成された方法でそのような衝突を解
決するよう調整される任意のプロシジャーである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複製された、一貫
性の弱いデータ記憶システムに関し、より詳細には、そ
のようなシステムにおいてアプリケーション固有の衝突
解決を実施する自動化された方法に関する。
【0002】
【従来の技術及び発明が解決しようとする課題】複製さ
れた、一貫性の弱いデータベースシステムは、低速もし
くは間欠通信リンクによって複数のユーザ間でデータを
共有することを含むアプリケーションに適している。例
えば、これらアプリケーションは、理想的なネットワー
ク接続性に乏しいポータブルマシンを含む移動コンピュ
ータ環境においてランすることが可能である。ユーザー
のコンピュータは、ネットワークインフラストラクチャ
に依存するセルモデムもしくはパケット無線トランシー
バのような無線通信デバイスであることが可能であり、
該ネットワークインフラストラクチャは、大域的に有効
でないこと及び/又は非常に費用がかかる欠点を有す
る。そのようなコンピュータは、特定の商用パーソナル
デジタルアシスタント(PDA)で有効な赤外線”ビー
ム”ポートのようなショートレンジの見通し内通信を使
用することが可能である。これとは別に、該コンピュー
タは従来のモデムを有することが可能であり、該モデム
は、データを送信及び受信する場合に電話回線に物理的
に接続されることが要求されるか、もしくは、ドッキン
グステーションに挿入される場合にシステムの残りの部
分と通信することのみが可能である。実際、コンピュー
タの唯一の通信デバイスがディスケットであることが可
能であり、人間によってマシン間で転送される。従っ
て、移動コンピュータは、該コンピュータがデータ共有
を望む多くのもしくは全ての他のデバイスからの派生的
で時に不本意な通信断を被る可能性がある。
【0003】現実的に、移動ユーザーは、間欠的なネッ
トワーク接続性にも係わらず、彼らのアポイントメント
カレンダー、文献データベース、ミィーティングノー
ト、開発設計ドキュメント、ニュース掲示板、及び他の
タイプのデータを共有することを所望する可能性があ
る。従って、移動クライアントが共有データの読み出し
及び書き込みを活発に行うことを可能とするシステムに
対する要求が存在する。そのようなシステムは、ほとん
ど確実に所望の及び不本意な通信断を処理しなければな
らないにも係わらず、ユーザーから見た場合に、可能な
限り、中央集約化された高度に有効なデータベースサー
ビスのように動作しなければならない。
【0004】
【課題を解決するための手段】従って、本発明により、
一貫性の弱い複製されたデータベースシステムに対する
書き込み動作は、アプリケーション固有の内在するプロ
シジャーを有し、関連する書き込み動作がそのようなデ
ータベースの所与のインスタンスの現行状態と衝突する
ことが見いだされる場合は常に、衝突を解決するために
該プロシジャーが呼び出される。該プロシジャーは、プ
ロシジャーを与えるアプリケーションの要求を満足する
よう構成された方法でそのような衝突を解決するよう調
整される任意のプロシジャーである。
【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 Guara
ntees for Weakly Consiste
nnt Replicated Data”(Proc
eedings International Con
ference on Parallel and D
istributed Information Sy
stems(PDIS),Austin,TX,Sep
tember 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で
呼び出される。
【0043】図11を参照すると、他のサーバから受信
された書き込みをコミットする一方で、71のように2
次的サーバは該サーバが有する任意の過去の書き込みレ
コードを該サーバのテンタティブな書き込みから除去
し、72のようにその書き込みログのコミットされた書
き込み部分の若い端部に当該書き込みを追加する。書き
込みログ60内の書き込みの順序付けがこの再クラス化
によって影響されないことが73で決定される場合、こ
れ以上の動作は必要とされない。しかし、再クラス化が
書き込みの順序付けを変化させる場合、73のようにデ
ータベースは書き込みログ60内の新たな書き込み位置
に対応する状態までロールバックされ、該位置と書き込
みログ60のテンタティブ部分の若い端部との間の全て
の書き込みは63で再実行される。
【0044】データベースの”ロールバック”及び”ロ
ールフォワード”プロシジャーは、データベースシステ
ムアーキテクチャに対する周知のツールである。しか
し、完全性のために、適切なロールバックプロシジャー
が図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は次の書き込み命令
に従い実行される。
【0045】図13は、書き込みの再順序付けを発生す
るタイプのシナリオを示しており、図14は、図13の
シナリオを追跡し、書き込みを有する現行ログ及び書き
込みをサーバが受信する状態を示す。例示を簡単にする
ために、該シナリオは、サーバS1−Sn の各々が初期
状態として単一のコミットされた書き込みW0を保持す
ることを仮定する。サーバSn は基本サーバであること
が意図され、従って該サーバは書き込みW1及びW2の
コミットに対して唯一責任を負う。
【0046】先の説明から理解されるように、コミット
された書き込みはそれらのコミットシーケンスナンバー
(CSN)に従って順序付けられる。一方、テンタティ
ブな書き込みは、それらが最初に受信された時間を示す
タイムスタンプによって最初に順序付けられ、それらが
最初に受信されたサーバのIDによって2次的に順序付
けられる。タイムスタンプとサーバIDの両者はIDに
含められる。サーバIDは、同一のタイムスタンプ値を
有するテンタティブな書き込みの順序づけを明確にする
ための2次的ソートキーとして使用される。 F.クライアント及び通信断グループによるテンタティ
ブデータの読み出し 書き込みを要求するクライアントは、一般的に、データ
ベースに対する後続の読み出し要求をこれらアップデー
トに反映させることを所望する。更に、これらクライア
ントの内の特定のクライアントは、彼らの過去の書き込
みを読み出すことに依存する書き込みさえも要求する可
能性がある。クライアントが基本サーバと通信断状態に
あってアップデートが直ちにコミット不可能な場合でさ
えも、この可能性は確実に存在する。いづれにしても、
可能な限り、クライアントは彼らのアップデートがテン
タティブであるこを認識しないべきであり、アップデー
トが後にコミットする場合に変化を観測しないべきであ
る。即ち、テンタティブな結果は可能な限り常にコミッ
トされた結果に等しくなるべきである。
【0047】2つの2次的サーバがアンチ−エントロピ
ーを介してテンタティブな書き込みを交換する場合、彼
らはこの書き込みに対する”テンタティブな”順序付け
に同意する。先の説明から理解されるように、順序は第
1にタイムスタンプに基づき、該タイムスタンプは当該
書き込みを最初に受信したサーバによって各当該書き込
みにアサインされる。従って、異なるタイムスタンプを
有する同一の書き込みセットを有する任意の2サーバは
それら書き込みを同一に順序付ける。従って、基本サー
バから通信断状態にあるサーバグループは、書き込みを
どのように順序付け内部衝突をどのように解決するかに
関して同意に達する。この書き込み順序付けは、書き込
みをコミットするために基本サーバが使用する順序とは
異なるという点でテンタティブである。しかし、通信断
グループ以外のクライアントが衝突アップデートを実行
しないケースにおいては、書き込みは、テンタティブな
順序で基本サーバによってコミットされることが可能で
あり、また最終的にそのようにコミットされ、該書き込
みがテンタティブなデータベースに対して有した影響と
同一の影響をコミットされたデータベースに与えること
が可能である。 結論 本発明により提供されるアーキテクチャは、個別にもし
くはグループとして他のユーザから通信断状態となる可
能性のあるユーザーによって読み出し及びアップデート
が可能な共有データベースをサポートする。このアーキ
テクチャの特定の態様は、同様のもしくは異なる要求を
有する他のシステムにおいて使用可能である。例えば、
本文中に記載されたアプリケーション固有の衝突検出
は、検出された衝突の解決を人間による解決に依存する
システムにおいて使用可能である。同様に、アプリケー
ション固有の衝突解決方法論は、衝突検出にバージョン
ベクトルを利用するシステムにおいて使用可能である。
【0048】書き込み動作を処理するステップは、以下
のように要約される。 0.ユーザーもしくは他のサーバから書き込み動作を受
信する。 1.ユーザーから受信する場合、<サーバID,タイム
スタンプ>の形態の唯一の識別子(ID)を書き込みに
アサインし、コミットシーケンスナンバー(CSN)に
INFINITY(無限大)をアサインする。無限大の
CSN値は当該書き込みがテンタティブであることを示
す。 2.基本サーバから受信する場合、(最後にアサインさ
れたCSN+1)をCSNにアサインする。 3.ログ内の全ての書き込みが、最初にCSNによっ
て、次にタイムスタンプによって、最後にサーバIDに
よって順序付けられるよう、当該書き込みをサーバの書
き込みログに挿入する。 4.当該書き込みが過去にログ内に存在していた場合、
該書き込みはログのコミット部分にエンターされ、前の
インスタンスを削除して新たな書き込みログを生成す
る。 5.当該書き込みが書き込みログの終端でない場合、新
たな書き込みの直前までサーバのデータベースをロール
バックする。 6.新たな書き込みからログのテールまでの各書き込み
に対して以下を実行する。
【0049】6.1 データベース上で従属状態照会を
ランして結果をえる。 6.2 該結果が期待結果に等しくない場合、ステップ
6.5へ進む。
【0050】6.3 期待されたアップデートをデータ
ベースで実行する。 6.4 次のステップをスキップしてステップ6.へ戻
る。
【0051】6.5 マージプロシジャーを実行してリ
バイズされたデータを得る。 6.6 リバイズされたアップデートをデータベースで
実行する。 4.当該書き込みがログのコミット部分にエンターされ
る時に該書き込みが過去からログ内に存在していた場
合、前のインスタンスを削除して新たな書き込みログを
生成する。 5.当該書き込みが書き込みログの終端でない場合、新
たな書き込みの直前位置までサーバのデータベースをロ
ールバックする。 6.新たな書き込みからログのテールまでのログ内の各
書き込みに対して以下を実行する。
【0052】6.1 データベース上で従属状態照会を
ランし、結果を取得する。 6.2 取得結果が期待結果に等しくない場合、ステッ
プ6.5に進む。
【0053】6.3 期待されたアップデートをデータ
ベースに実行する。 6.4 次の各ステップをスキップしてステップ6.に
進む。
【0054】6.5 マージプロシジャーを実行し、リ
バイズされたアップデートを取得する。
【0055】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を除去する。
【0056】
【発明の効果】以上説明したように、本発明により、他
のユーザから通信断状態となる可能性のあるユーザによ
って読み出し及びアップデートが可能な共有データベー
スをサポートするアーキテクチャが提供される。
【図面の簡単な説明】
【図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)発明者 カリン ピーターセン アメリカ合衆国 94025 カリフォルニア 州 メンロ パーク シャロン パーク ドライヴ 350 ナンバー エヌ307 (72)発明者 マイケル ジェイ.スプレイツァー アメリカ合衆国 95376 カリフォルニア 州 トレイシー ブリストルコーン ドラ イヴ 1941 (72)発明者 ダグラス ビー.テリー アメリカ合衆国 94070 カリフォルニア 州 サン カルロス ビバリー ドライヴ 240 (72)発明者 マーヴィン エム.セイマー アメリカ合衆国 94043 カリフォルニア 州 マウンテン ビュー アルヴィン ス トリート 2447 (72)発明者 ブレント ビー.ウェルチ アメリカ合衆国 94043 カリフォルニア 州 マウンテン ビュー デル アヴェニ ュー 2540

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 データベースのインスタンスと、前記デ
    ータベースの前記インスタンスをアップデートするため
    に提示される書き込みとの間に存在することが見いださ
    れる衝突を解決する、アプリケーション固有のプロセス
    であって、 前記アプリケーションによって特定される任意のマージ
    プロシジャーを前記書き込み動作の各々に関係づけるス
    テップを備え、マージプロシジャーの実行の影響は、前
    記マージプロシジャーが実行される任意の時点において
    前記データベースの前記インスタンスの任意の所与の状
    態に対して決定論的であり、 所与の書き込み動作が前記データベースの前記インスタ
    ンスと衝突する場合は常に、所与の書き込み動作に関係
    するマージプロシジャーを実行するステップを備え、前
    記マージプロシジャーは、所与の書き込み動作によって
    本来意図される任意のアップデートに代わって前記デー
    タベースに適用されるアップデートセットを生成する、
    書き込み衝突解決プロセス。
JP7313274A 1994-12-07 1995-11-30 書き込み衝突解決方法 Expired - Lifetime JP2731374B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US352014 1994-12-07
US08/352,014 US5603026A (en) 1994-12-07 1994-12-07 Application-specific conflict resolution for weakly consistent replicated databases

Publications (2)

Publication Number Publication Date
JPH08241236A true JPH08241236A (ja) 1996-09-17
JP2731374B2 JP2731374B2 (ja) 1998-03-25

Family

ID=23383438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7313274A Expired - Lifetime JP2731374B2 (ja) 1994-12-07 1995-11-30 書き込み衝突解決方法

Country Status (4)

Country Link
US (1) US5603026A (ja)
EP (1) EP0716384B1 (ja)
JP (1) JP2731374B2 (ja)
DE (1) DE69528339T2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11327987A (ja) * 1998-05-18 1999-11-30 Sharp Corp データベース管理装置、および、そのプログラムが記録された記録媒体
JPH11327989A (ja) * 1998-05-18 1999-11-30 Sharp Corp データベース管理装置、および、そのプログラムが記録された記録媒体
JP2000040025A (ja) * 1998-05-18 2000-02-08 Sharp Corp デ―タベ―ス管理装置、および、そのプログラムが記録された記録媒体
JP2000089995A (ja) * 1998-09-04 2000-03-31 Visto Corp ネットワークにおけるワークスペースエレメントの多数のコピーを安全に同期させる方法およびシステム

Families Citing this family (81)

* 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
US5751958A (en) * 1995-06-30 1998-05-12 Peoplesoft, Inc. Allowing inconsistency in a distributed client-server application
US5899998A (en) * 1995-08-31 1999-05-04 Medcard Systems, Inc. Method and system for maintaining and updating computerized medical records
US6098078A (en) * 1995-12-29 2000-08-01 Lucent Technologies Inc. Maintaining consistency of database replicas
US5864837A (en) * 1996-06-12 1999-01-26 Unisys Corporation Methods and apparatus for efficient caching in a distributed environment
US5857201A (en) * 1996-06-18 1999-01-05 Wright Strategies, Inc. Enterprise connectivity to handheld devices
US5870743A (en) * 1996-06-24 1999-02-09 Oracle Corporation Method and apparatus for parallelizing operations that create a table
US5819272A (en) * 1996-07-12 1998-10-06 Microsoft Corporation Record tracking in database replication
US5956704A (en) * 1997-06-05 1999-09-21 Oracle Corporation Method and apparatus for parallelizing operations that insert data into an existing data container
US6185598B1 (en) * 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US7054935B2 (en) 1998-02-10 2006-05-30 Savvis Communications Corporation Internet content delivery network
US8296396B2 (en) 1998-02-10 2012-10-23 Level 3 Communications, Llc Delivering resources to clients in a distributed computing environment with rendezvous based on load balancing and network conditions
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
US6178441B1 (en) * 1998-09-21 2001-01-23 International Business Machines Corporation Method and system in a computer network for the reliable and consistent ordering of client requests
US6421701B1 (en) * 1999-01-29 2002-07-16 International Business Machines Corporation Method and system for replication support in a remote method invocation system
US7756830B1 (en) 1999-03-31 2010-07-13 International Business Machines Corporation Error detection protocol
US6275470B1 (en) * 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
US8543901B1 (en) 1999-11-01 2013-09-24 Level 3 Communications, Llc Verification of content stored in a network
US6557111B1 (en) 1999-11-29 2003-04-29 Xerox Corporation Multicast-enhanced update propagation in a weakly-consistant, replicated data storage system
US8688474B2 (en) * 2000-06-26 2014-04-01 Epic Systems Corporation Patient health record access system
US8050944B2 (en) * 2000-09-20 2011-11-01 Epic Systems Corporation Intelligent patient visit information management and navigation system
US7251610B2 (en) * 2000-09-20 2007-07-31 Epic Systems Corporation Clinical documentation system for use by multiple caregivers
US20020055918A1 (en) * 2000-11-08 2002-05-09 Patrick Hlathein Operating room resource management system incorporating an interactive, visual method for coordinating multiple, interdependent
US7275220B2 (en) * 2000-12-22 2007-09-25 Epic Systems Corporation System and method for a seamless user interface for an integrated electronic health care information system
US6983423B2 (en) * 2000-12-22 2006-01-03 Epic Systems Corporation Electronic system for collecting and communicating clinical order information in an acute care setting
US7231391B2 (en) * 2001-02-06 2007-06-12 Quest Software, Inc. Loosely coupled database clusters with client connection fail-over
US20020129146A1 (en) * 2001-02-06 2002-09-12 Eyal Aronoff Highly available database clusters that move client connections between hosts
US20020138746A1 (en) * 2001-03-23 2002-09-26 Mark Buttner Method of generating a secure output file
US20020138636A1 (en) * 2001-03-23 2002-09-26 Mark Buttner Method for automatically mass generating personalized data report outputs
US20020165898A1 (en) * 2001-05-03 2002-11-07 Joe Duffy Recipient-determined method for sharing tasks in an advanced electronic messaging/workflow system
US6993522B2 (en) * 2001-06-27 2006-01-31 Microsoft Corporation System and method for resolving conflicts detected during a synchronization session
US20030061073A1 (en) * 2001-08-01 2003-03-27 Khiang Seow Method and system for displaying patient information
EP2290916B1 (en) * 2001-09-28 2015-12-16 Level 3 CDN International, Inc. Configurable adaptive global traffic control and management
US7860964B2 (en) * 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
US7373644B2 (en) 2001-10-02 2008-05-13 Level 3 Communications, Llc Automated server replication
US20080279222A1 (en) * 2001-10-18 2008-11-13 Level 3 Communications Llc Distribution of traffic across a computer network
US20030079027A1 (en) * 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
US20030154110A1 (en) * 2001-11-20 2003-08-14 Ervin Walter Method and apparatus for wireless access to a health care information system
US20030130872A1 (en) * 2001-11-27 2003-07-10 Carl Dvorak Methods and apparatus for managing and using inpatient healthcare information
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
US20030220821A1 (en) * 2002-04-30 2003-11-27 Ervin Walter System and method for managing and reconciling asynchronous patient data
US20030220816A1 (en) * 2002-04-30 2003-11-27 Andy Giesler System and method for managing interactions between machine-generated and user-defined patient lists
US6898609B2 (en) * 2002-05-10 2005-05-24 Douglas W. Kerwin Database scattering system
US20030220817A1 (en) * 2002-05-15 2003-11-27 Steve Larsen System and method of formulating appropriate subsets of information from a patient's computer-based medical record for release to various requesting entities
US20040010465A1 (en) * 2002-05-20 2004-01-15 Cliff Michalski Method and apparatus for exception based payment posting
US20040010422A1 (en) * 2002-05-20 2004-01-15 Cliff Michalski Method and apparatus for batch-processed invoicing
EP1376396A1 (en) * 2002-06-28 2004-01-02 Sap Ag Decentralized data distribution
US7139690B2 (en) * 2002-07-22 2006-11-21 Microsoft Corporation Object-level conflict detection in an object-relational database system
US7979294B2 (en) * 2002-07-31 2011-07-12 Epic Systems Corporation System and method for providing decision support to appointment schedulers in a healthcare setting
US8825502B2 (en) * 2003-09-30 2014-09-02 Epic Systems Corporation System and method for providing patient record synchronization in a healthcare setting
US20050071195A1 (en) * 2003-09-30 2005-03-31 Cassel David A. System and method of synchronizing data sets across distributed systems
US20060080140A1 (en) * 2004-02-09 2006-04-13 Epic Systems Corporation System and method for providing a clinical summary of patient information in various health care settings
US7506309B2 (en) * 2004-03-23 2009-03-17 General Motors Corporation Method for managing vehicle software configuration updates
US20050234741A1 (en) * 2004-04-16 2005-10-20 Sumit Rana Electronic appointment scheduling for medical resources
US8428968B2 (en) * 2004-05-10 2013-04-23 Epic Systems Corporation Interactive system for patient access to electronic medical records
US20060004605A1 (en) * 2004-06-21 2006-01-05 Epic Systems Corporation System and method for a comprehensive interactive graphical representation of a health care facility for managing patient care and health care facility resources
US20050283387A1 (en) * 2004-06-21 2005-12-22 Epic Systems Corporation System for providing an interactive anatomical graphical representation of a body for use in a health care environment
US8725547B2 (en) * 2004-08-24 2014-05-13 Epic Systems Corporation Utilization indicating schedule scanner
US20060047554A1 (en) * 2004-08-24 2006-03-02 Steven Larsen Rules based resource scheduling
US20060053034A1 (en) * 2004-09-08 2006-03-09 Epic Systems Corporation System and method for providing a real-time status for managing encounters in health care settings
US20060085381A1 (en) * 2004-10-20 2006-04-20 Epic Systems Corporation Remote deployment access system and method
US20060117021A1 (en) * 2004-11-29 2006-06-01 Epic Systems Corporation Shared account information method and apparatus
US8140370B2 (en) * 2005-01-20 2012-03-20 Epic Systems Corporation System and method for reducing the steps involved in searching for available appointment times and scheduling appointments in a health care environment
DE102005010690B4 (de) * 2005-03-09 2007-04-12 Knorr-Bremse Systeme für Schienenfahrzeuge GmbH Öleingespritzter Verdichter mit Temperaturschalter
EP2274684A4 (en) 2008-04-04 2012-12-05 Level 3 Communications Llc HANDLING LONG TAIL CONTENT IN A CONTENT DELIVERY NETWORK (CDN)
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US20090319525A1 (en) * 2008-06-23 2009-12-24 Microsoft Corporation Lost write protection via stream-based replication
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
US9171044B2 (en) * 2010-02-16 2015-10-27 Oracle International Corporation Method and system for parallelizing database requests
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
US9436502B2 (en) 2010-12-10 2016-09-06 Microsoft Technology Licensing, Llc Eventually consistent storage and transactions in cloud based environment
US9009726B2 (en) * 2010-12-10 2015-04-14 Microsoft Technology Licensing, Llc Deterministic sharing of data among concurrent tasks using pre-defined deterministic conflict resolution policies
CN103842995A (zh) * 2011-08-01 2014-06-04 标记公司 在分布式数据库中的一般化的协调
US9609492B2 (en) 2013-10-17 2017-03-28 Openet Telecom Ltd. Method and system for dynamically creating tunnels suitable for metering and managing usage data for applications and services
US20160026711A1 (en) * 2014-07-22 2016-01-28 Netapp. Inc. Event processing using distributed tables for storage services compatibility

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04359332A (ja) * 1991-06-06 1992-12-11 Nec Corp 端末機ファイル管理システム
US5210824A (en) * 1989-03-03 1993-05-11 Xerox Corporation Encoding-format-desensitized methods and means for interchanging electronic document as appearances
JPH05298171A (ja) * 1992-04-20 1993-11-12 Casio Comput Co Ltd データ処理装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1989002631A1 (en) * 1987-09-08 1989-03-23 Digital Equipment Corporation Naming service for networked digital data processing system
US4914586A (en) 1987-11-06 1990-04-03 Xerox Corporation Garbage collector for hypermedia systems
US5321834A (en) 1989-11-28 1994-06-14 Xerox Corporation Method and system for reclaiming unreferenced computer memory space
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
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
US5210824A (en) * 1989-03-03 1993-05-11 Xerox Corporation Encoding-format-desensitized methods and means for interchanging electronic document as appearances
JPH04359332A (ja) * 1991-06-06 1992-12-11 Nec Corp 端末機ファイル管理システム
JPH05298171A (ja) * 1992-04-20 1993-11-12 Casio Comput Co Ltd データ処理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11327987A (ja) * 1998-05-18 1999-11-30 Sharp Corp データベース管理装置、および、そのプログラムが記録された記録媒体
JPH11327989A (ja) * 1998-05-18 1999-11-30 Sharp Corp データベース管理装置、および、そのプログラムが記録された記録媒体
JP2000040025A (ja) * 1998-05-18 2000-02-08 Sharp Corp デ―タベ―ス管理装置、および、そのプログラムが記録された記録媒体
JP2000089995A (ja) * 1998-09-04 2000-03-31 Visto Corp ネットワークにおけるワークスペースエレメントの多数のコピーを安全に同期させる方法およびシステム

Also Published As

Publication number Publication date
US5603026A (en) 1997-02-11
EP0716384B1 (en) 2002-09-25
DE69528339D1 (de) 2002-10-31
EP0716384A1 (en) 1996-06-12
JP2731374B2 (ja) 1998-03-25
DE69528339T2 (de) 2003-01-23

Similar Documents

Publication Publication Date Title
JP2731374B2 (ja) 書き込み衝突解決方法
JP2731375B2 (ja) データ識別方法
JP2731376B2 (ja) データベース管理方法
JP2731373B2 (ja) 書き込み衝突検出方法
US5581753A (en) Method for providing session consistency guarantees
US6275831B1 (en) Data processing environment with methods providing contemporaneous synchronization of two or more clients
US8095504B2 (en) N-way synchronization of computer databases
US7716181B2 (en) Methods, apparatus and computer programs for data replication comprising a batch of descriptions of data changes
CN1848849B (zh) 复制目录修改的方法和装置
EP0730766A1 (en) Computer method and apparatus for asynchronous ordered operations
JP2001513926A (ja) 複数レベルのリモート・クライアントを持つ部分的複製分散データベース
US20100169289A1 (en) Two Phase Commit With Grid Elements
JPH0728679A (ja) チェックイン・チェックアウトモデルにおける施錠方式
DuBourdieux Implementation of Distributed Transactions.
US7072912B1 (en) Identifying a common point in time across multiple logs
Segun et al. Transaction management in a mobile data access system
Rasheed Twin-transaction model to support mobile data access
Barreto Optimistic replication in weakly connected resource-constrained environments
Le et al. A mobile database sharing protocol to increase data availability in mobile environments
Gupta et al. CCRTRD-A concurrency control technique in real time replicated databases
Cova et al. Kriton Kyrimis, Kenneth Salem, Patricia Simpson, Annemarie Spauster
Lam et al. HONG KONG email: cskylam@ cityu. edu. hk
Byun et al. Fault-tolerant quorum consensus scheme for replication control in mobile distributed database systems: FTQC
Lee et al. Optimistic scheduling for transaction management in mobile database systems
Goodman Optimistic processing for distributed database systems in a partitioned network

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