JPH08115246A - セッションの一貫性を保証する方法 - Google Patents
セッションの一貫性を保証する方法Info
- Publication number
- JPH08115246A JPH08115246A JP7244973A JP24497395A JPH08115246A JP H08115246 A JPH08115246 A JP H08115246A JP 7244973 A JP7244973 A JP 7244973A JP 24497395 A JP24497395 A JP 24497395A JP H08115246 A JPH08115246 A JP H08115246A
- Authority
- JP
- Japan
- Prior art keywords
- session
- server
- client
- write
- guarantee
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
に対して、「セッション」ごとに、クライアントの選択
した一貫性保証を提供する。 【解決手段】 少なくとも一台のクライアントのデータ
ベースアクセスおよび更新要求から各々が構成されてい
るような複数のセッションを定義し、前記少なくとも一
台のクライアントによって、任意の保証の適切さが決定
された場合に、所定の保証の集合から、各セッションの
関連一貫性保証の関連部分集合を選択し、少なくとも一
台のクライアントがセッション中に異なるサーバにアク
セスするときにおいても、前記セッションの最中に前記
少なくとも一台のクライアントの選択保証を実施する。
Description
スのクライアントにデータの一貫性(consistency)を保
証するための方法に関するものであり、更に詳しくいう
と、セッションの間中、クライアントに一貫性を保証す
るための方法に関するものである。
セスを提供するシステムにおいて、一般的に何らかの形
でデータの「複製」が行われる。例えば、システムによ
っては、各々がシステムデータベースの完全な複製を有
する多数のデータ「サーバ」に分割されるものもある。
これらサーバは、多数の「クライアント」からの要求を
処理する。一般に、かかる要求は、システムのベースの
「読出し」と「書込み」という形で入ってくる。
トに対して柔軟性と可用性を与えるものである。移動性
のあるクライアントは、さっき接続していたものと違う
サーバに後で接続するためだけに、断続的にシステムを
切断する。全部のサーバでデータが完全に(そして完璧
に)複製されていれば、移動性のあるクライアントは、
少なくとも一つのサーバに接続できさえすれば、常にそ
こで全部のシステムデータにアクセスするであろう。
数のクライアントとサーバを有するシステムでは、「完
璧な」複製は一般に非実際的すなわち極端に費用を要す
る。クライアントによってもたらされる(書込みによ
る)変更は、完璧な複製を保証するために、必ず全部の
システムサーバに速やかに伝播される必要がある。そう
でなければ、クライアントの中に、まだ更新されていな
い、すなわち複製の完璧性に反するサーバーのデータ項
目にアクセスするものが出る可能性がある。従って、こ
の条件を緩和するための別の計画が現れた。
更事項がシステム中くまなく更新されること、または、
不一致が生じた場合にある種のサーバ起動コールバック
を行うこと、が要求される。強一貫性のシステムは高度
なデータ一貫性を提供するが、しばしば代償となる犠牲
は可用性である。例えば、このようなデータベースのク
ライアントは、更新されたばかりで全部のサーバ中にデ
ータの更新が行われるまでブロックされているデータに
アクセスする場合があるかも知れない。
サーバは、全部のシステム更新内容を含んでいないかも
知れないデータにアクセスを許される。かかるシステム
は、一般に、サーバ間の更新内容の「遅延」伝播(すな
わち、更新内容が時間をかけてサーバ間に伝播する)を
特徴とする。従ってクライアントは、別の複製のデータ
を読んだときに不一致の価値を見出す。それにも関わら
ず、弱一貫性のシステムは、その高い可用性、優れたス
ケーラビリティ、およびデザインの単純さにより、人気
がある。これらの利益は、複製間の同期化がほとんど或
は全くない状態で、読出しと書込みが実施されるように
する能力により生じたものである。
書き動作の配列に関する保証がないため、ユーザならび
にアプリケーション業務を混乱させる可能性がある。ユ
ーザは、あるデータ項目のいずれかの内容を読み、後か
ら、古いほうの内容を読むことがあるかも知れない。同
様に、あるユーザが、いずれか別のデータの読出しに基
づいてデータ項目を更新しても、別の人は、その基礎と
なったデータを見ずに、更新された項目だけを読む場合
がある。弱一貫性のシステムの重大問題は、たった一人
のユーザまたはアプリケーション業務がデータ変更を行
っているときにおいても、不一致の生じる可能性がある
ことである。例えば、分散形データベースシステム中の
移動性のあるクライアントは、あるサーバで書込みを行
ない、後から別のサーバで読出しを行うことがある。二
作業間のあいだに二つのサーバが互いに同期化されなけ
れば、クライアントは不一致な結果を見ることになる。
性は、相互排他的な目標であることがあるので、システ
ムデザイナー達は、歩み寄りの道をとろうと努力してき
た。しかしながら、システムは一般に、各自が別々のセ
キュリティと利用可能性のニーズを有する莫大数のクラ
イアントをサポートしているため、このトレードオフに
対するシステム基模で課せられる解決は、クライアント
の将来展望という点では最適状態に及ばない。クライア
ントの中には、利用可能性を損なっても更なるデータ一
貫性を欲するものもいるが、しばしば不一致バージョン
を入手することを意味するとしても、複数のデータコピ
ーにアクセスすることを好むものもいる。
が、適切な、個別決定された、自分自身のためのデータ
一貫性とデータ利用可能性のバランスを確立できるよう
にする機構を提供する必要がある。
eakly consistent)複製データベースのクライアントに
対して、「セッション」ごとに、クライアントの選択し
た一貫性保証を、提供するものである。「セッション」
とは、論理的に関連付けられる、データベースに対する
読出しと書込みの順序と広義に定義される。セッション
は、同時に存在する他のセッションとは実質的に独立に
開始および終了される。しかしながらクライアントは、
クローンセッションおよび/またはマージセッションが
許可される。
境の図である。図2は、クライアントとサーバとセッシ
ョンマネージャの構成の一例である。図3は、クライア
ントの申し込みによって引き起こされた単純なセッショ
ンの一例を示す。図4と5は、各々、「自分の書込み読
出し」保証が不在の場合と存在する場合のクライアント
トランザクションの一例を示す。図6と7は、各々、
「単調読出し」保証が課せられない場合と課せられる場
合のクライアントトランザクションを示す。図8と9
は、各々、「読出し後書込み」保証が課せられない場合
と課せられる場合のクライアントトランザクションを示
す。図10と11は、各々、「単調書込み」保証が課せ
られない場合と課せられる場合のクライアントトランザ
クションを示す。図12と13は、セッションマネージ
ャによって実施される発見ならびに実施プロセスのフロ
ーチャートである。図14は、セッションマネージャの
ブロック図である。図15は、サーバば十分に最新情報
に接しているかを判定するバージョンベクトルの使用法
を示す。
アント/サーバ」モデル10において、サーバ12は種
々クライアント14によって作成された、または、他の
サーバからコピーされたデータの陳列所(すなわちデー
タベース)である。文中、「データベース」という用語
は、特定のデータモデルまたは組織を意味するものでは
ない。データベースは、単にデータ項目の集合であり、
データ項目というのは、従来のファイルから関連データ
ベース中の集合までのいずれかである。
たは一人または複数のクライアント14と通信中である
ように図示されている。これらの通信回線は、連続して
いる場合もあるし、時々とぎれる場合もある。クライア
ントとサーバ間の最も一般的なやりとりは、種々のサー
バ12に保存されているデータに対する「読出し」また
は「書込み」要求の形で発生する。「読出し」または
「書込み」要求は、データベースに保存されている特定
データ項目に対して指定的なものである場合もあるし、
あるいは、データベース照会の形を取る場合もある。例
えば、「読出し」は、「特定ファイルの中身をリターン
せよ」というような単純な検索回収作業の場合もある
し、「100,000ドル以上になった全従業員の氏名
をリターンせよ」というような複雑な照会の場合もあ
る。書込み操作はデータベースを更新する。一方、「書
込み」は、データ項目の作成、変更、削除に関わる場合
もある。実際のところ、書込みは、サーバのデータベー
スの複数の項目を最小限更新するトランザクションを表
す場合さえある。
タベースを見ることは、しばしば役に立つ。従って、
「DB(S,t)」は、時間t以前にサーバSに受信さ
れた、順序付けられた「書込み」配列であると定義され
る。tが現在の時間である場合には、それは、DB
(S)として書き込まれ、サーバのデータベースの現在
の内容を表す。概念的にサーバSは、空のデータベース
で初めて所定順序でDB(S)の各書込みを適用するこ
とによって、自身のデータベースのコピーを作成する。
実際的には、サーバは、結果として得られたデータベー
スのエントリの順序が変更されないでいる限り、別の順
序で書込みを処理できる。従って、例えば、DB(S)
の書込みの順序は、必ずしもサーバSが最初に書込みを
受信した順序とは一致しない。
くでもなく、瞬時にでもなく)徐々に普及するので、モ
デル10のデータべースは「弱一貫性」である。弱一貫
性であるため、サーバが異なるとデータベースのコピー
が変化する。すなわち、二台のサーバS1とS2につい
て、DB(S1,t)とDB(S2,t)は必ずしも等
しくない。しかしながら、アップデートが無い状態では
サーバは全く同じデータベースへ収束するので「究極的
一貫性」が存在する。言い換えると、各々の書込みWに
ついて、どのサーバSのDB(S,t)にもWが存在す
る時間tが存在する。偶発的一貫性は、「全伝播」(す
なわち、更新された全データが最後に各サーバに受信さ
れる場合)と「一貫した順序付け」(すなわち、「順序
依存性」を有する書込みが、全部のサーバで同様に順序
付けられた場合)という二特性によって決まる。
は、種々サーバをわたるデータの複製について二つの仮
定を立てる。まず、モデル10は、複製が「遅延」伝播
によって行われると仮定する。遅延伝播は、各々の書込
みが時間をかけて他のサーバに伝播されるものである。
第二に、モデル10は、全部のサーバは全部の「非可
変」書込み(すなわち、データベースへの適用の「順
序」により、異なる二つのデータベースになる書込み)
を同じ順序でデータベースに適用する、と仮定する。そ
のため、「書込み順序(W1,W2)」は、書込みW2
の前に書込みW1が順序付けられているか否かを示す論
理術語として定義される。このように、書込み順序(W
1,W2)が真であれば、W1は、W1とW2の両方を
受信したいずれかサーバのDB(S)で、W2の前に順
序付けられるはずである。
みの順序に同意する(従って、論理書込み順序(W1,
W2)が満足されているか検査もする)ための種々技術
のいずれかを利用できる。かかる技術の一つでは、書込
みは、提示される書込み要求の順序に基づいてサーバが
与える「発信タイムスタンプ」によって順序付けられ
る。しかしながら、書込みが実施された実際の時間によ
って書込みを順序付けるという要求がないので、書込み
順序を決定するためにタイムスタンプを利用することは
サーバがクロックに同期していたことを意味するもので
はない。
ある書込みを生じさせる。すなわち、二台のクライアン
トが同じデータ項目に対して同時的な両立し得ない更新
を行うことがある。既存のシステムは、いろいろな方法
で矛盾のある書込みを解決する。システムの中には、書
込み順序によって、どの書込みが最初に命ぜられたかを
判断するものもあるし、検出された矛盾の解決を人間に
頼るものもある。
ト、サーバ、セッションマネージャとして識別される実
体の、説明に役立つ通信経路を表す。これらの実体は、
同じもしくは異なるホストに常駐する。その場合、最適
なのは別々の通信手段にすることである。例えば、ホス
トの同じアドレス空間に二つの実体が常駐する場合は、
単純な手続き呼び出しが適切な通信手段であるのに対
し、二つの実体が異なるホストに常駐する場合は遠隔手
順呼び出し(RPC)が最適である。
部として、セッションマネージャ22とやりとりする。
同一セッションに複数のクライアントが属する場合もあ
るし、各々のクライアントが複数のセッションに参加す
る場合もある。いずれか任意のセッションは、一つのセ
ッションマネージャによって操作されるが、一つのセッ
ションマネージャが複数のセッションを操作する場合も
ある。セッションマネージャ22は、クライアント14
に代わってサーバとやりとりする。サーバは自分たち同
士でやりとりを行って、更新を伝播する。
する。セッション識別子は、セッションマネージャによ
って異なるセッションを区別するために使用される。同
一セッション識別子を使用することにより、複数クライ
アントが一つのセッションに参加することができる。従
って、クライアントは、共有したいセッションのセッシ
ョン識別子を交換できなくてはならない。
の初期設定、セッション毎のデータ保証集合の選択、セ
ッション毎のこれら保証の実施、を処理する。サーバ1
2からのデータベースサービスは、一般的にはクライア
ント14から要求される。クライアントはセッションの
一部として要求を行う。セッションの一貫性保証を実施
するために、クライアントは、そのセッションに対して
応答可能なセッションマネージャ22にSの要求を行
う。セッションマネージャは適当なサーバとやりとりし
て、クライアントのデータベース要求を実施する。
セッションならびにそれらの保証を実施するので、サー
バは一般に、どのセッションが活動中であるかを知らな
い。サーバ12は、要求を満足するデータを、そのデー
タベース30から検索回収した後、それを要求元にリタ
ーンすることによって、読出し要求を処理する。書込み
要求は一般に、そのデータベースの内容を変更すること
によって処理される。
ーバは、自分の現在の状態を記憶する必要がある。大ま
かに言うと、サーバの「状態」は、サーバが「知ってい
る」全書込みの集合のことである。この書込み情報の細
分性は、データの大きさによって異なる。しかしなが
ら、書込み情報の細分化が細かいほど、保証実施の諸経
費が大きくなる。
ースが十分に「最新な」ものであるか否かを判断し、一
貫性保証の実施を容易にすることである。到達可能ない
ずれのサーバのデータベースも十分に「最新な」もので
なかった場合には、セッションマネージャはクライアン
トに通知を行う。大まかな意味で、「セッション」と
は、一台または複数台のクライアントによって出された
一連の読出しおよび書込み要求である。このように、ク
ライアントは、セッションの開始とその持続時間の制御
に多大な自由裁量を与えられる。更に、下記の基本命令
により、更なる機能性も提供される。
例の概略に示されているように、セッションの基本命令
により、クライアントはセッションを開始、終了、格下
げ、コピー作成、併合することができる。セッションを
「開始」するには、クライアントはセッションマネージ
ャにStart Sessionを呼び出す。セッショ
ンマネージャは、それに応答して、「セッションID」
(”SID”)により固有に識別される「セッション状
態」を、割り当てる。セッション状態は、”Read
Set”、”Write Set”、”Guarant
ee Set”といった状態変数を含む。
イアントからセッションマネージャに渡されるパラメー
タである。従って、このパラメータは、セッションの最
中に実施されるべく指定された所定保証事項のリストで
ある。任意のセッションの”Read Set”は、セ
ッション中に発生する読出しに「関連した」書込み集合
である。この書込み集合は、そのサーバで実施される読
出し結果によって指定の保証集合が満たされることを保
証することがサーバに知られなくてはならない書込み集
合となるように定義される。Read Setは、セッ
ション中に発生したあらゆる読出しの関連書込み集合の
和集合である。Read Setに含まれる書込みは、
クライアントの書込みから、または、別のサーバから生
じる。”Write Set”は、クライアントまたは
任意セッションのクライアント関係者から発生する。
アントはセッションマネージャでEnd Sessio
nを呼び出して、終了させるセッションを固有に識別す
るSIDを渡す。セッションを終わらせるとき、セッシ
ョンマネージャは、終了されたセッションの状態に対し
て予め割り当てられていたメモリを単に割り当て解除
し、SIDの参照を外す。
0(例えば、Start Sessionコード192
が供給される)とセッション状態210の記憶領域から
成るセッションマネージャのブロック図である。図3
は、アプリケーション業務24による具体例としてのセ
ッションを図示したものであり、そのコード32が示さ
れている。セッションマネージャ22は、ライブラリと
してリンクされることによるアプリケーション業務24
の一部である場合もあるし、アプリケーション業務とは
関係無く、ネームサービスにより捜し出され、RPSイ
ンフラストラクチャによりアクセスされる別個のプロセ
スの場合もある。
中に実施したい所定保証事項のリストを渡す。次に、セ
ッションマネージャ22は、セッションを識別するため
にセッションID(”G1”)をリターンする。”G
1”は、GS(すなわち、保証集合)214、RS(す
なわち、Read Set)216、WS(すなわち、
Write Set)218というフィールドを含むセ
ッション状態210に対するポインタ212として実施
される。これらのフィールドは、動的にリンクされるリ
スト、従って、セッションの最中にフィールドを成長さ
せるリストとして実施される。セッションマネージャの
記憶領域は、一度に一つ以上の活動中セッション(例え
ば、セッションG2 220)を含む。
読出しおよび書込みは、存在セッションID,G1を含
んでいる。読出しおよび書込みコマンドは、各々、セッ
ションマネージャ190にある読出しおよび書込み手順
に対する呼び出しとして実施される。読出しの場合、セ
ッションマネージャはセッションID G1を積極的に
取り去り、どのサーバが十分に最新であるか確認し、こ
のようなサーバの少なくとも一つに待ち行列を発行し、
その結果をアプリケーション業務に戻し、必要に応じて
セッション状態のRSを更新する。書込みの場合、セッ
ションマネージャ190はセッションID G1を取り
去り、そのサーバが適切であるか確認し、少なくとも一
つの適切なサーバにアップデートを発行し、必要に応じ
てセッション状態のWSを更新する。
ョン業務24はEnd Sessionコールを出す。
次いで、セッションマネージャは、セッションG1に使
用されていた記憶領域を回復し、当該特定セッションの
セッションIDの参照を外す。
て、三つの仮定が立てられている。 (1) 各クライアントが始めた書込みの場合、サーバ
はその書込みに固有に割り当てられた、そのシステムで
唯一の書込みID(WID)をリターンする。 (2) 各読出しの場合、サーバは、待つ行列の結果
と、当該「読出し」に「関係する」WIDの集合をリタ
ーンする。 (3) クライアントは、サーバの状態(すなわち、サ
ーバに「知られている」全部の書込みの集合)を獲得で
きる。
ーバからセッションマネージャに戻されると、読出しに
関連するWIDがRead Setに添えられる。同様
に、クライアントの書込みに応じて返されるWIDは、
Write Setに添えられる。
利用可能性のトレードオフを、システム基模のデザイ
ン選択として享受するのではなく、自由に決定できる。
クライアントにとってのの「優れた」戦略は、このよう
な保証を最少数選択してクライアントの目的に合わせる
ことであるが、これは、そうすることにより、任意のセ
ッションの最中に出される特定の読出し/書込み要求
が、いずれかの適切なサーバによって満足される機会が
最大限になるからである。
初に保証の部分集合が選択されると)、クライアントは
セッションマネージャに対してDowngrade G
uaranteeを呼び出すことによって保証を格下げ
することもある。いずれか与えられた時間に実施される
全ての保証はセッション開始からの実施であるので、保
証の格下げは「統合された」セッションという概念を失
なわない。
データベースを更新し、その後すぐに、まだ更新されて
いない別のサーバで読んだために、その更新が消えてし
まったように見えることを確認するだけのためにデータ
ベースから読出しを行なうと混乱をきたす危険があるの
で、「自分の書込み読出し(RYW)」保証が望まし
い。この保証は、あるセッション内で行われたいずれか
書込みの効果を、そのセッション内の読出しで見られる
ことを保証するものである。具体的にいうと、次の通り
である。
Rが書込みWの次にある場合、Rは時間tにサーバSに
て実施され、その後、WはDB(S,t)に収められ
る。
書込みに続く読出しが直前に書き込まれた情報をリター
ンするということを保証されない。これは、読出しはセ
ッション外で実施された(おそらく他のクライアントに
よる)別の書込みを見る場合もあるからである。
説明するものである。図4は、RYWを実施しないで、
望ましくない結果が生じる筋書を示す。
C1”)は、$100から$150への新残高を反映す
べく自分の新預金口座をサーバ12a(S1)にて更新
する。 ステップ42: S1は、その変更をサーバ12c(S
n)に「遅延」伝播する。 ステップ43と44: 続いて、C1はサーバ12b
(S2)にて自分の口座残高を「読出し」、「古い」預
金残高$100を受け取る。 ステップ45: それからしばらくして、S1はS2へ
更新を遅延伝播する。
保証が選択および実施されている点が異なる。図4で
は、クライアントC1が次のプログラムを実行すると仮
定する。 G=Start Session(RYW); Write(G,X,150); Value=Read(G,X); End Session(G);
「開始」し、新残高$150をS1に書き込む。 ステップ52: S1はその書込みに対してWIDを割
り当てて、C1にリターンする。 ステップ53: C1は、新WIDをそのWrite
Setに添る。 ステップ54: S1は、現在のデータならびに元の更
新要求に関わるWIDを、Snに遅延更新する。 ステップ55: C1は、S1またはSnから、セッシ
ョンGで読み出さなくてはならないことを「発見」す
る。 ステップ56: C1はセッションGにてSnから読出
しを行う。 ステップ57: S2は新残高$150をリターンす
る。 ステップ58: S1は後でS2を更新する。
ョンマネージャによって実施されるプロセスであって、
実施保証に対するクライアントの要求を満足するデータ
を有する適当なサーバ集合を見つけることである。大ま
かにいうと、これは、クライアントの現要求に応じて、
任意のクライアントが「到達可能な」全部のサーバを捜
し出し、そのようなサーバ全部に対して、それらの書込
み情報(すなわち、サーバの書込み集合またはDB
(S))の照会を行い、サーバの書込み集合とクライア
ントのWrite Setおよび/またはRead S
etを比較して、これらサーバのWrite Setが
クライアントのWrite Setおよび/またはRe
ad Setを含んでいるか検査することによって、達
成される。いずれのサーバのWrite Setもこの
検査を満足しない場合には、データは「保証」されな
い。それにも関わらず、クライアントはセッションを終
了し、保証に関わり無く、とにかくデータを検索回収す
ることを選択できる。
基本ステップを必要とする。サーバにより書込みが受け
付けられた場合には必ず、セッションの書込み集合にそ
の割り当てWIDが加えられる。サーバSの時間tの各
読出しの前に、セッションマネージャは、その書込み集
合がDB(S,t)の部分集合であることを確認しなく
てはならない。この確認は、クライアントの書込み集合
をサーバに渡すことによってサーバで行うことも、サー
バのWIDリストを検索回収することによってクライア
ントで行うことも出来る。セッションマネージャは、チ
ェックが成功したものを発見するまで、利用可能サーバ
を試し続けることが出来る。適切なサーバが見つからな
い場合、保証が提供されないことをクライアントに対し
て報告する。
最新化するデータベースを観察することができる。単調
読出し保証は、セッション内の以前の読出しで書込み効
果がも目撃された全部の書込みが入っているデータベー
スコピーに対してのみ、読出し操作が行われることを保
証するものである。
み」)が必要である。直感的にいうと、書込み集合がデ
ータベースの書込みの「十分」を含んでいれば、書込み
集合は読出しの結果を「完全」に判断するので、書込み
集合に対する読出し実行の結果は、全データベースに対
する読出し実行と同じものである。具体的にいうと、W
SがDB(S,t)の部分集合である場合、あるいは、
部分集合であるだけでも、書込み集合WSは、読出しR
とDB(S,t)について完全であり、ならびに、WS
を含み且つDB(S,t)の部分集合でもあるいずれか
集合WS2について、WS2に適用される結果Rは、D
B(S,t)に適用される結果Rと同じである。
しRとDB(S,t)にとって完全な最小書込み集合を
リターンする機能のことである。DB(S,t)は、い
ずれか読出しについて完全であるから、完全集合は確か
に存在する。最小完全集合が固有のものでない場合、結
合は、自由裁量であるが決定論的に破壊される。これら
の定義から、単調読出し保証は次のように正確に定義で
きる。
出しR1が発生し、R1は時間t1にサーバS1にアク
セスし、R2は時間t2にサーバS2にアクセスするな
らば、関連書込み(S1,t1,R1)は、DB(S
2,t2)のサーブ集合である。
要求でアプリケーションに応じて、MR保証を図で示し
たものである。図6は、MR保証がない場合の結果を示
す。 ステップ61: C1はサーバS1にて、$100から
$150への新残高を反映するように、自分の預金口座
を更新する。 ステップ62: S1は、その変更をサーバSnに「遅
延」伝播する。 ステップ63とステップ64: 次いでC2は、Snに
てC1の口座残高の「読出し」を行って、「新しい」口
座残高$150を受け取る。 ステップ65とステップ66: 再びC2は、C1の口
座残高を、今度はS2から読出し、「古い」残高$10
0を受け取る。 ステップ67: それからしばらくして、S1はS2へ
更新を遅延伝播する。
とも先程の読出しと同じくらいに最新ものであることを
保証することなく、先程読出したデータを読み出すこと
を許可される。
証が実施されている点が異なる。図7では、クライアン
トC2が次のプログラムを実行すると仮定する。 G=Start Session(MR); Write(G,X); Value=Read(G,X); End Session(G);
Gを「開始」し、$150という新残高をS1に書き込
む。S1はその書込みに対する固有のWIDをリターン
する。 ステップ73: S1は、WIDと一緒に、更新をSn
に遅延伝播する。 ステップ74と75: C2はSnから残高を読み出
す。Snは要求に応じて、その結果に関連するWIDと
一緒に、残高をリターンする。 ステップ76: C2は、そのセッション状態で格納さ
れているそのRead Setに、WIDを収める。 ステップ77: その後、C2は残高の別のコピーを欲
し、S1とSnだけが「十分に」最新なものであること
を「発見」する。 ステップ78と79: C2は残高について、S1の読
出し要求を行う。S1は、WIDと一緒に残高をリター
ンする。 ステップ80: S1は後で、WIDと一緒にS2を更
新する。
最新な唯一のサーバであるというC2の発見は、RYW
保証について前述されたのと同様な発見プロセスを伴う
ものである。唯一異なるのは、MR保証は、クライアン
トの(Write Setではなく)Read Set
に対してサーバのWIDを比較することである。
て、伝統的な読出し/書込み依存が、書込み順に保存さ
れることを保証するものである。従って、データベース
のあらゆるコピーにおいて、セッション中になされた書
込みは、そのセッション中の以前の読出しで効果が目撃
された書込みの後に順序付けられる。
1が書込みW2に先んじ、R1が時間t1にサーバS1
で実施されるならば、いずれかサーバS2について、W
2がDB(S2)にある場合、関連書込み(S1,t
1,R1)のいずれかW1もDB(S2)と書込み順序
(W1,W2)にある。
セッション外のクライアントに影響を及ぼす。以前に目
撃されている書込みの後にクライアントの実施する書込
みが発生することをセッションが観察するだけでなく、
他のすべてのクライアントも、セッション保証を要求し
ているか否かに関わり無く、同一な書込み順序付けを見
る。
み操作に関する二つの制約に関連がある。「書込み順
序」に関する制約は、結局、全部のデータベースの複製
が反映する全体的な順序で、書込みが以前の関連書込み
に続くことを保証する。「伝播」に関する制約は、全部
のサーバ(従って、全部のクライアントも)は、関わり
のある以前の書込み全部を目撃した後に、ある書込みを
見るだけであることを保証する。アプリケーション業務
の中には、下記の読出し後書込み緩和変更がサポートさ
れるように、これらの制約の一方のみを要求するものも
ある。
ション内で読出しR1が書込みW2に先んじ、R1が時
間t1にサーバS1で実施されるならば、関連書込み
(S1,t1,R1)のいずれかW1について、書込み
順序(W1,W2)である。 WFRO−保証(「伝播」制約): セッション内で読
出しR1が書込みW2に先んじ、R1が時間t1にサー
バS1で実施されるならば、いずれかのサーバS2もつ
いて、W2がDB(S2)にあれば、関連書込み(S
1,t1,R1)のいずれかW1もDB(S2)にあ
る。
要求に関連したWFR保証を図で示すものである。図8
は、WFR保証が実施されない場合の結果を示す。 ステップ81: C1はサーバS1にて、$100から
$150への新残高を反映するように、自分の預金口座
を更新する。 ステップ82: S1は、その変更をサーバSnに「遅
延」伝播する。 ステップ83とステップ84: 次いでC2は、Snに
てC1の$150となる口座残高の「読出し」を行う。 ステップ85: C2は新残高$200をS2に書き込
む。 ステップ86: S2は$200という値をSnに伝播
する。しかしながら、Snは、残高は$150のまま、
C1からの更新をC2からの更新の後ろに順序付ける。 ステップ87: S1は$150という値をS2に伝播
する。このとき、S2は残高について、C1からの$1
50とC2からの$200という二種類の更新を受け取
っている。S2は、値は$150のまま、C1からの更
新を、C2からの更新の後に順序付ける。 ステップ88: S2は、$200という値をS1に伝
播する。今度は、S1は残高について、C1からの$1
50とC2からの$200という二種類の更新を受け取
っている。S1は、所定のアルゴリズムを利用して、値
は$150のまま、C1からの更新を、C2からの更新
の後に順序付けるが、である。
ョンは、実際には正しい現残高に先行するバージョンで
ある。
保証が実施されている点が異なる。図9では、クライア
ントC2が次のプログラムを実行すると仮定する。 G=Start Session(WFR); Value=Read(G,X); Write(G,X,Value+50); End Session(G);
Gを「開始」し、$150という新残高をS1に書き込
む。S1はその書込みに対する固有のWIDをリターン
する。 ステップ93: S1は、WIDと一緒に、更新をSn
に遅延伝播する。 ステップ94と95: C2はSnから残高を読み出
す。Snは要求に応じて、その結果に関連するWIDと
一緒に、残高をリターンする。 ステップ96: C2は、そのセッション状態にて格納
されているそのRead SetにWIDを収める。 ステップ97: その後、C2は残高を更新することを
欲し、S1とSnだけが「十分に」最新なものであるこ
とを「発見」する。 ステップ98と99: C2は残高について、Snの書
込み要求を行う。Snは固有WIDをリターンする。 ステップ100: Snは後で、WIDと一緒に、S1
とSnで行われた書き込みを、その書込み順序で渡すこ
とによって、S2を更新する。 ステップ101: S1は、WIDと一緒に、その更新
されたデータを渡すが、S2は、既にこのWIDを見た
と知らせるので、この更新を再処理することはない。 ステップ102: その後、Snはその更新データと固
有WIDを利用して、S1を更新する。
し保証と違って、読出し後書込み保証を実施するには、
サーバの挙動に二つの追加制約を課す必要がある。
から新しい書込みW2を受け付けるとき、既にDB
(S,t)に入っているいずれかW1について、書込み
順序(W1,W2)が真であることを保証する。 制約2: W2が、時間tにサーバS1からサーバS2
へ伝播されるならば、いずれか先に順序付けられたDB
(S1,t)内のW1もS2に伝播される。
t)内の書込みに対してではなく、セッションの読出し
集合または書込み集合のいずれか書込みW1に対して守
られなくてはならない。
込みは、必ず以前の書込みの後に続くということを意味
するものである。具体的に述べると次の通りである。
が書込みW2に先んじるならば、いずれかサーバS2に
ついて、W2がDB(S2)内にあれば、S1もDB
(S2)と書込み順序(W1,W2)にある。
セッション外のユーザの両方に関連のある保証を提供す
る。書込み後読出し保証でそうであったように、アプリ
ケーション業務が書込み順序と書込み伝播を別々に制御
できるよう、変更態様を定義することも出来る。
れていないクライアントトランザクションと実施されて
いるクライアントトランザクションを示すものである。
図10では、次の通りである。 ステップ111: C1はS1にて、$100から$1
50への残高を反映するように、自分の預金口座を更新
する。 ステップ112: C1はS2にて、残高$200を反
映するように、同じ預金口座を更新する。 ステップ113: S2は$200という更新値をSn
に「遅延」伝播する。 ステップ114と115: S1は、$150という値
をSnに伝播する。従って、Snはは残高について、S
1からの$150とW2からの$200という二種類の
更新を持っている。Snは順序付けアルゴリズムを適用
して、値は$150のまま、S1からの更新をS2から
の更新の後に順序付ける。従って、S1は$150とい
う値をS2に伝播し、結果として、S2の最終残高は$
150である。 ステップ116: S2は、$200という値をS1に
伝播する。このとき、S1は残高について、C1からの
$150とS2からの$200という二種類の更新を受
け取っている。S1は、値は$150のまま、C1から
の更新を、S2からの更新の後に順序付ける。
古いデータ値が伝播されサーバのデータベースに組込ま
れる、すなわち、新しい方の更新を上書きすることを
「許容した」ため、データベースに非一貫性が入り込
む。
R保証が実施されている点が異なる。図11では、クラ
イアントC2が次のプログラムを実行すると仮定する。 G=Start Session(MR); Write(G,X,150); Write(G,X,200); End Session(G);
は$150という新残高をS1に書き込む。S1はその
書込みに対する固有のWIDをリターンする。C1は、
そのWrite SetにWIDを収める。 ステップ124: C1は、再び残高を更新しようと
し、他のサーバが更新されていないので、S1に書込ま
なくてはならない、ということを発見する。 ステップ125、126、127: C2は新残高$2
00を書き込む。S1は、その書込みに対する固有WI
Dをリターンする。C1はセッションのそのWrite
SetにWIDを収める。 ステップ128: S1は、二種類の更新を、それらの
WIDと一緒に、Snに伝播する。 ステップ129: S1は、二種類の更新を、それらの
WIDと一緒に、S2に伝播する。
ものと同じサーバ挙動に関する制約を要する。これらの
制約が適所にあれば、単調読出しの実施は更に二つのス
テップを含む。サーバSが時間tに書込みを受け付ける
には、サーバのデータベースDB(S,t)は、セッシ
ョンの書込み集合を含んでいなくてはならない。また、
サーバによって書込みが受け付けられる場合には、必
ず、それに割り当てられたWIDが、その書込み集合に
加えられなくてはならない。
に効果的な実施を考慮するものである。バージョンベク
トルは、<サーバ,クロック>という順序の対であり、
各サーバに一組が割り当てられる。サーバの識別は、単
に、複製データベースの特定コピーに対する固有識別子
である。クロックは、人のサーバの単調に増加する論理
クロックの値である。この論理「クロック」に関する唯
一の制約は、サーバに受け付けられた各書込みの間に増
加しなくてはならない、ということである。<サーバ,
クロック>対はWIDとしてうまく役立つ。このセクシ
ョンでは、かかるWIDは最初に書込みを受け付けたサ
ーバによって割り当てられる、と仮定する。
身のバージョンベクトルを維持する。サーバのバージョ
ンベクトルが<S,c>であれば、サーバは、サーバS
のクロックの論理時間c以前にサーバSによってWID
が割り当てられた全部の書込みを受け取っている。この
不変事項を維持するために、サーバは遅延伝播のあい
だ、割当てWID順に書込みを転送しなくてはならな
い。サーバのバージョンベクトルは遅延伝播プロセスの
一部として更新されるので、バージョンベクトルはその
データベース内の書込み集合を正確に指定する。
トルと交換される、幾分かもっと実際的な保証を実施す
ることが可能である。
ジョンベクトルVを求めるには、V[S]=(Wでサー
バSによって割り当てられた最新WIDの時間(Sから
書込みがない場合は0))、と置く。 2) 二つのWIDの集合、Ws1とWs2の和集合を
表すバージョンベクトルVを求めるには、まず、上記の
ように、Ws1からV1、Ws2からV2を求める。次
に、全部のSについて、V[S]=MAX(V1
[S],V2[S])と置く。 3) WIDの一方の集合Ws1が、他方のWs2の部
分集合か否かを確認するには、まず、上記のように、W
s1からV1、Ws2からV2を求める。次に、V2が
V1を優越しているかチェックして確認するが、この場
合、優越とは、各対応構成要素において、一方のベクト
ルが他方のベクトル以上であること、と定義される。
のバージョンベクトルの利用を示す。図示の通り、セッ
ションG1 212について維持されている状態は、二
つのバージョンベクトルから成っている。一方は、セッ
ションの書込みを記録するためのもの(WV 22
4’)であり、他方は、セッションの書込みを記録する
ためのもの(RV 222’)である(すなわち、セッ
ションの書込みに「関連のある」書込み)。受け付け可
能なサーバを見つけるには、セッションマネージャは、
これらのセッションベクトルの一方または両方がサーバ
のバージョンベクトルによって優越されていることを、
チェックしなくてはならない。どちらのセッションベク
トルをチェックするかは、セッション内で実施される操
作と提供される保証によって異なる。図15の場合、S
1(12a)のバージョンベクトルのみが、セッション
G1のRV 222’を優越している。他のサーバから
S1が「見た」書込みは、少なくとも、セッションG1
が見た書込みと同じくらい最新なものである。Sk(1
2b)のバージョンベクトルは、S1の書込みを、セッ
ションG1と同じくらい多く見てはいないので、優越し
てはいない。
ンベクトルをリターンして、関連書込みを示す。実際的
には、サーバは一般に削除されたデータベースエントリ
を記憶していない。サーバは、バージョンベクトルに基
づいてデータベースのコピーを記憶しているだけであ
る。従って、サーバは、その現バージョンベクトルを関
連書込みの総評価として戻せるのである。これは、単調
読出し保証や書込み後読出し保証を損なうものではな
い。受け付け可能なサーバを選択したときにセッション
マメージャを過度に保守的にさせるだけである。
は、図12と13に示されている。いずれか任意のセッ
ションの最中に出される各々の読出しおよび書込み要求
は、は、この手順に基づいてされる。基本的には、この
手順は、利用可能な(すなわち、到達可能な)サーバの
全体集合で開始して(ステップ150)、どの保証が選
択されたかにより、セッションRead Set(また
はWrite Set)が、任意のサーバSで発生した
書込み(すなわち、DB(S))と比較される(ステッ
プ160と166)。セッションRead Set(ま
たはWrite Set)がDB(S)に無いならば、S
は、クライアントの要求を処理するのに適したサーバで
はない(すなわち、その保証はそのサーバに合わない)
(ステップ162)。適切なサーバがあったなら(ステ
ップ168)、そのサーバで読出し(または書込み)要
求が処理される(各々、ステップ170以降または17
6以降)。
この実施手順に対して、僅かながら変更が必要である。 ステップ160: サーバのバージョンベクトルがセッ
ションの読出しベクトルを「優越している」か、チェッ
クする。 ステップ166: サーバのバージョンベクトルがセッ
ションの書込みベクトルを「優越している」か、チェッ
クする。 ステップ172: セッションの読出しベクトル:=M
ax(読出しベクトル,関連書込みベクトル) ステップ178: セッションの書込みベクトル
[S]:=WID.クロック
出しまたは書込み操作を実施するサーバの許容選択選肢
である。従って、セッションマネージャが任意のサーバ
から「離れない」場合には、チェックを飛ばすことが出
来る。セッションマネーがが別のサーバに切り換える場
合にのみ、サーバの現バージョンベクトルをセッション
のベクトルに比較しなくてはならない。十分に細心なサ
ーバを発見するのを簡単にするために、セッションマネ
ージャは種々サーバのバージョンベクトルを貯蔵でき
る。サーバのデータベースは、サーバが受け取って組込
んだ多数の書込みに基づいて時間をかけて成長できるの
みであるので、貯蔵されたバージョンベクトルは、サー
バの知識の下限を表すものである。
ャの構成の一例を示す図である。
れた単純なセッションの一例を示す図である。
クライアントトランザクションの一例を示す図である。
のクライアントトランザクションの一例を示す図であ
る。
ライアントトランザクションを示す図である。
イアントトランザクションを示す図である。
のクライアントトランザクションを示す図である。
クライアントトランザクションを示す図である。
クライアントトランザクションを示す図である。
ライアントトランザクションを示す図である。
発見ならびに実施プロセスのフローチャートである。
発見ならびに実施プロセスのフローチャートである。
る。
判定するバージョンベクトルの使用法を示す図である。
2 セッションマネージャ、24 アプリケーション業
務、30 データベース、32 コード、190コード
ルーチン、192 Start Sessionコー
ド、210 セッション状態、212 ポインタ、21
4 保証集合、216 Read Set、218 W
rite Set
Claims (1)
- 【請求項1】 複数のサーバと複数のクライアントを有
し、前記クライアントのうちの少なくともいくつかが、
前記サーバが不一致なデータ値を包含する時間を含む種
々の時間に種々のサーバにアクセスすることがあり、前
記サーバは弱一貫性の複製データを保存し、前記データ
は前記クライアントによりアクセス可能で且つ更新可能
であり、前記データは、更新されると、前記更新データ
を有するサーバによって前記更新データを有しないサー
バに伝播されるデータベースシステムで、各々のセッシ
ョンに属するアクセスまたは更新要求に対して、毎セッ
ションベースで、いずれかセッションに参加しているあ
らゆるクライアントに対して、前記データの関連一貫性
保証を提供するための方法であって、 A) 少なくとも一台のクライアントのデータベースア
クセスおよび更新要求から各々が構成されているような
複数のセッションを定義するステップと、 B) 前記少なくとも一台のクライアントによって、任
意の保証の適切さが決定された場合に、所定の保証の集
合から、各セッションの関連一貫性保証の関連部分集合
を選択するステップと、 C) 少なくとも一台のクライアントがセッション中に
異なるサーバにアクセスするときにおいても、前記セッ
ションの最中に前記少なくとも一台のクライアントの選
択保証を実施するステップ、とから成る、前記方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US314971 | 1994-09-28 | ||
US08/314,971 US5581753A (en) | 1994-09-28 | 1994-09-28 | Method for providing session consistency guarantees |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH08115246A true JPH08115246A (ja) | 1996-05-07 |
Family
ID=23222284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7244973A Pending JPH08115246A (ja) | 1994-09-28 | 1995-09-22 | セッションの一貫性を保証する方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5581753A (ja) |
JP (1) | JPH08115246A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1031639A (ja) * | 1996-07-16 | 1998-02-03 | Nippon Telegr & Teleph Corp <Ntt> | クライアント状態管理方法およびその装置 |
JP2000132443A (ja) * | 1998-10-22 | 2000-05-12 | Internatl Business Mach Corp <Ibm> | コンピュータ、情報共有システム、及びレプリカ同一性保持方法 |
JP2002507021A (ja) * | 1998-03-12 | 2002-03-05 | クロスワールズ ソフトウエア インコーポレイテッド | 情報システムの独立性レベル及びトランザクション補償 |
WO2004059495A1 (ja) * | 2002-12-25 | 2004-07-15 | Matsushita Electric Industrial Co., Ltd. | 端末装置およびセッション管理装置 |
JP2011154631A (ja) * | 2010-01-28 | 2011-08-11 | Fujitsu Ltd | 確定クロック判定プログラム及び方法、並びにノード装置 |
Families Citing this family (116)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289390B1 (en) | 1993-08-18 | 2001-09-11 | Microsoft Corporation | System and method for performing remote requests with an on-line service network |
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 |
US6901433B2 (en) * | 1995-06-07 | 2005-05-31 | Microsoft Corporation | System for providing users with a filtered view of interactive network directory obtains from remote properties cache that provided by an on-line service |
US5774668A (en) * | 1995-06-07 | 1998-06-30 | Microsoft Corporation | System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing |
US5956489A (en) * | 1995-06-07 | 1999-09-21 | Microsoft Corporation | Transaction replication system and method for supporting replicated transaction-based services |
US7272639B1 (en) | 1995-06-07 | 2007-09-18 | Soverain Software Llc | Internet server access control and monitoring systems |
US5751958A (en) * | 1995-06-30 | 1998-05-12 | Peoplesoft, Inc. | Allowing inconsistency in a distributed client-server application |
US5933599A (en) * | 1995-07-17 | 1999-08-03 | Microsoft Corporation | Apparatus for presenting the content of an interactive on-line network |
US5941947A (en) * | 1995-08-18 | 1999-08-24 | Microsoft Corporation | System and method for controlling access to data entities in a computer network |
US5956509A (en) * | 1995-08-18 | 1999-09-21 | Microsoft Corporation | System and method for performing remote requests with an on-line service network |
US6098078A (en) * | 1995-12-29 | 2000-08-01 | Lucent Technologies Inc. | Maintaining consistency of database replicas |
US6006239A (en) * | 1996-03-15 | 1999-12-21 | Microsoft Corporation | Method and system for allowing multiple users to simultaneously edit a spreadsheet |
US5828847A (en) * | 1996-04-19 | 1998-10-27 | Storage Technology Corporation | Dynamic server switching for maximum server availability and load balancing |
US5812964A (en) * | 1996-04-29 | 1998-09-22 | Informix Software, Inc. | Multi-valued localized strings |
US5806065A (en) * | 1996-05-06 | 1998-09-08 | Microsoft Corporation | Data system with distributed tree indexes and method for maintaining the indexes |
US5857201A (en) * | 1996-06-18 | 1999-01-05 | Wright Strategies, Inc. | Enterprise connectivity to handheld devices |
US5812773A (en) * | 1996-07-12 | 1998-09-22 | Microsoft Corporation | System and method for the distribution of hierarchically structured data |
JPH1097571A (ja) * | 1996-09-20 | 1998-04-14 | Hitachi Ltd | 相談先端末接続方法 |
US5926816A (en) * | 1996-10-09 | 1999-07-20 | Oracle Corporation | Database Synchronizer |
US5884325A (en) * | 1996-10-09 | 1999-03-16 | Oracle Corporation | System for synchronizing shared data between computers |
US5943676A (en) | 1996-11-13 | 1999-08-24 | Puma Technology, Inc. | Synchronization of recurring records in incompatible databases |
US7302446B1 (en) | 1996-11-13 | 2007-11-27 | Intellisync Corporation | Synchronizing databases |
US6212529B1 (en) * | 1996-11-13 | 2001-04-03 | Puma Technology, Inc. | Synchronization of databases using filters |
US6405218B1 (en) | 1996-11-13 | 2002-06-11 | Pumatech, Inc. | Synchronizing databases |
US7013315B1 (en) | 1996-11-13 | 2006-03-14 | Intellisync Corporation | Synchronization of databases with record sanitizing and intelligent comparison |
US5907678A (en) | 1997-05-07 | 1999-05-25 | International Business Machines Corporation | Client/server system in which protocol caches for multiple sessions are selectively copied into a common checkpoint cache upon receiving a checkpoint request |
US6061714A (en) * | 1997-05-07 | 2000-05-09 | International Business Machines Corporation | Persistent cache synchronization and start up system |
US6189043B1 (en) * | 1997-06-09 | 2001-02-13 | At&T Corp | Dynamic cache replication in a internet environment through routers and servers utilizing a reverse tree generation |
US6182129B1 (en) * | 1997-09-11 | 2001-01-30 | International Business Machines Corporation | Apparatus, methods and computer program products for managing sessions with host-based application using session vectors |
JP2957551B2 (ja) * | 1997-12-12 | 1999-10-04 | 株式会社リコー | 分散型データベースシステムの一貫性管理方法およびコンピュータ読み取り可能な記録媒体 |
US9900305B2 (en) | 1998-01-12 | 2018-02-20 | Soverain Ip, Llc | Internet server access control and monitoring systems |
US6925477B1 (en) | 1998-03-31 | 2005-08-02 | Intellisync Corporation | Transferring records between two databases |
US6272502B1 (en) * | 1998-05-11 | 2001-08-07 | Lucent Technologies Inc. | Refreshing materialized views of a database to maintain consistency with underlying data |
US6138120A (en) * | 1998-06-19 | 2000-10-24 | Oracle Corporation | System for sharing server sessions across multiple clients |
US6317754B1 (en) * | 1998-07-03 | 2001-11-13 | Mitsubishi Electric Research Laboratories, Inc | System for user control of version /Synchronization in mobile computing |
US7305451B2 (en) * | 1998-08-24 | 2007-12-04 | Microsoft Corporation | System for providing users an integrated directory service containing content nodes located in different groups of application servers in computer network |
US6301643B1 (en) | 1998-09-03 | 2001-10-09 | International Business Machines Corporation | Multi-environment data consistency |
US6247141B1 (en) | 1998-09-24 | 2001-06-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Protocol for providing replicated servers in a client-server system |
US6279041B1 (en) | 1998-11-13 | 2001-08-21 | International Business Machines Corporation | Methods, systems and computer program products for differencing data communications using a message queue |
US7007003B1 (en) | 1998-12-04 | 2006-02-28 | Intellisync Corporation | Notification protocol for establishing synchronization mode for use in synchronizing databases |
US6574665B1 (en) * | 1999-02-26 | 2003-06-03 | Lucent Technologies Inc. | Hierarchical vector clock |
US6965896B1 (en) | 1999-04-20 | 2005-11-15 | International Business Machines Corporation | Active log read I/O balancing for log duplexing |
US6611915B1 (en) | 1999-05-27 | 2003-08-26 | International Business Machines Corporation | Selective loading of client operating system in a computer network |
GB2351165B (en) | 1999-06-18 | 2003-11-05 | Univ London | Method and apparatus for monitoring and maintaining the consistency of distributed documents |
US6374263B1 (en) * | 1999-07-19 | 2002-04-16 | International Business Machines Corp. | System for maintaining precomputed views |
US6922729B1 (en) * | 1999-07-30 | 2005-07-26 | International Business Machines Corporation | Multi-connection control system |
US6499037B1 (en) * | 1999-09-09 | 2002-12-24 | Lucent Technologies Inc. | System and method for serializing updates to ancestor sites in a distributed database |
US6421686B1 (en) | 1999-11-15 | 2002-07-16 | International Business Machines Corporation | Method of replicating data records |
EP1109106A1 (en) * | 1999-12-14 | 2001-06-20 | Sun Microsystems, Inc. | Reference data base |
US6523032B1 (en) * | 2000-05-12 | 2003-02-18 | Oracle Corporation | Servicing database requests using read-only database servers coupled to a master database server |
US20020059371A1 (en) * | 2000-11-16 | 2002-05-16 | Jamail John M. | Caching proxy streaming appliance systems and methods |
US7177917B2 (en) * | 2000-12-27 | 2007-02-13 | Softwired Ag | Scaleable message system |
US6892210B1 (en) * | 2000-12-29 | 2005-05-10 | Worldsync, Inc. | Database management and synchronization across a peer-to-peer network |
US7359920B1 (en) | 2001-04-18 | 2008-04-15 | Intellisync Corporation | Communication protocol for synchronization of personal information management databases |
KR20030097847A (ko) * | 2001-05-02 | 2003-12-31 | 시큐젠 코포레이션 | 컴퓨터 네트워크상에서 사용자를 생체인증하는 방법 |
US8112529B2 (en) * | 2001-08-20 | 2012-02-07 | Masterobjects, Inc. | System and method for asynchronous client server session communication |
US7752326B2 (en) * | 2001-08-20 | 2010-07-06 | Masterobjects, Inc. | System and method for utilizing asynchronous client server communication objects |
US7096236B2 (en) * | 2001-11-06 | 2006-08-22 | Sun Microsystems, Inc. | Change sequence number generator |
US7020684B2 (en) * | 2002-01-18 | 2006-03-28 | Bea Systems, Inc. | System and method for optimistic caching |
US6898587B2 (en) * | 2002-01-18 | 2005-05-24 | Bea Systems, Inc. | System and method for performing commutative operations in data access systems |
US7525940B2 (en) * | 2002-04-26 | 2009-04-28 | Nokia Siemens Networks Oy | Relocation of content sources during IP-level handoffs |
EP1581860A4 (en) * | 2002-12-23 | 2008-05-21 | Dexterra Inc | MOBILE DATA AND SOFTWARE UPGRADING SYSTEM AND METHOD |
US7366460B2 (en) * | 2003-01-23 | 2008-04-29 | Dexterra, Inc. | System and method for mobile data update |
US20040224674A1 (en) * | 2003-04-07 | 2004-11-11 | O'farrell Robert | System and method for context sensitive mobile data and software update |
US20050188095A1 (en) * | 2004-02-19 | 2005-08-25 | Jeffrey Gardiner | System for managing server user operation sessions |
US8140684B2 (en) * | 2004-02-19 | 2012-03-20 | Siemens Medical Solutions Usa, Inc. | Voice activated system for dynamically re-connecting user computer operation sessions |
FR2870022B1 (fr) * | 2004-05-07 | 2007-02-02 | Canon Kk | Procede et dispositif de distribution de donnees numeriques notamment pour reseau pair-a-pair |
US7962544B2 (en) * | 2004-05-25 | 2011-06-14 | Siemens Medical Solutions Usa, Inc. | Patient and device location dependent healthcare information processing system |
US7809764B2 (en) * | 2004-11-01 | 2010-10-05 | Microsoft Corporation | Method and apparatus for preserving dependancies during data transfer and replication |
US8601283B2 (en) * | 2004-12-21 | 2013-12-03 | Sandisk Technologies Inc. | Method for versatile content control with partitioning |
US8504849B2 (en) | 2004-12-21 | 2013-08-06 | Sandisk Technologies Inc. | Method for versatile content control |
US7707292B2 (en) * | 2005-03-18 | 2010-04-27 | Yahoo! Inc. | Method for signing into a mobile device over a network |
US7543000B2 (en) * | 2006-01-23 | 2009-06-02 | International Business Machines Corporation | Method and system combining state replication and operational-replay synchronization |
US8639939B2 (en) | 2006-07-07 | 2014-01-28 | Sandisk Technologies Inc. | Control method using identity objects |
US8613103B2 (en) | 2006-07-07 | 2013-12-17 | Sandisk Technologies Inc. | Content control method using versatile control structure |
US7734580B2 (en) * | 2007-01-29 | 2010-06-08 | Oracle International Corporation | Readable physical storage replica and standby database system |
US20080222111A1 (en) * | 2007-03-07 | 2008-09-11 | Oracle International Corporation | Database system with dynamic database caching |
US8660988B2 (en) * | 2008-01-07 | 2014-02-25 | 28Msec Inc. | Fine-grained and concurrent access to a virtualized disk in a distributed system |
US7991775B2 (en) * | 2008-08-08 | 2011-08-02 | Oracle International Corporation | Global checkpoint SCN |
US9104618B2 (en) | 2008-12-18 | 2015-08-11 | Sandisk Technologies Inc. | Managing access to an address range in a storage device |
US8321391B2 (en) * | 2009-03-05 | 2012-11-27 | Matrixx Software, Inc. | Conditional commit for data in a database |
US8504538B2 (en) * | 2009-03-05 | 2013-08-06 | Matrixx Software, Inc. | Dependent commit queue for a database |
US20100228707A1 (en) * | 2009-03-05 | 2010-09-09 | Buddha Software Inc. | System for rating a service |
US9286369B2 (en) * | 2009-12-30 | 2016-03-15 | Symantec Corporation | Data replication across enterprise boundaries |
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 |
US8589361B2 (en) * | 2010-08-30 | 2013-11-19 | Oracle International Corporation | Reduced disk space standby |
US8838919B2 (en) | 2010-08-30 | 2014-09-16 | Oracle International Corporation | Controlling data lag in a replicated computer system |
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 |
US8868492B2 (en) | 2011-06-15 | 2014-10-21 | Oracle International Corporation | Method for maximizing throughput and minimizing transactions response times on the primary system in the presence of a zero data loss standby replica |
US9189511B2 (en) * | 2011-09-07 | 2015-11-17 | Unisys Corporation | Free resources parameter for improving performance of database alterations |
US8775682B1 (en) | 2012-05-08 | 2014-07-08 | Google Inc. | Data synchronization with eventual consistency |
US10152500B2 (en) | 2013-03-14 | 2018-12-11 | Oracle International Corporation | Read mostly instances |
US10311154B2 (en) | 2013-09-21 | 2019-06-04 | Oracle International Corporation | Combined row and columnar storage for in-memory databases for OLTP and analytics workloads |
JP2015082313A (ja) * | 2013-10-24 | 2015-04-27 | 富士通株式会社 | Raid構成管理装置、raid構成管理プログラムおよびraid構成管理方法 |
US9767178B2 (en) | 2013-10-30 | 2017-09-19 | Oracle International Corporation | Multi-instance redo apply |
US10114580B1 (en) * | 2014-05-05 | 2018-10-30 | EMC IP Holding Company LLC | Data backup management on distributed storage systems |
US11657037B2 (en) | 2015-10-23 | 2023-05-23 | Oracle International Corporation | Query execution against an in-memory standby database |
US10747752B2 (en) | 2015-10-23 | 2020-08-18 | Oracle International Corporation | Space management for transactional consistency of in-memory objects on a 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 |
US10379961B2 (en) | 2017-04-11 | 2019-08-13 | International Business Machines Corporation | Ensuring metadata and index consistency using write intents |
US10803039B2 (en) | 2017-05-26 | 2020-10-13 | Oracle International Corporation | Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index |
US10691722B2 (en) | 2017-05-31 | 2020-06-23 | Oracle International Corporation | Consistent query execution for big data analytics in a hybrid database |
CN107562842A (zh) * | 2017-08-25 | 2018-01-09 | 北京市天元网络技术股份有限公司 | 资源数据的保护方法及设备 |
US10719446B2 (en) | 2017-08-31 | 2020-07-21 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
US10956335B2 (en) | 2017-09-29 | 2021-03-23 | Oracle International Corporation | Non-volatile cache access using RDMA |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US10802766B2 (en) | 2017-09-29 | 2020-10-13 | Oracle International Corporation | Database with NVDIMM as persistent storage |
US10732836B2 (en) | 2017-09-29 | 2020-08-04 | Oracle International Corporation | Remote one-sided persistent writes |
US11675761B2 (en) | 2017-09-30 | 2023-06-13 | Oracle International Corporation | Performing in-memory columnar analytic queries on externally resident data |
US20190342380A1 (en) | 2018-05-07 | 2019-11-07 | Microsoft Technology Licensing, Llc | Adaptive resource-governed services for performance-compliant distributed workloads |
US11170002B2 (en) | 2018-10-19 | 2021-11-09 | Oracle International Corporation | Integrating Kafka data-in-motion with data-at-rest tables |
-
1994
- 1994-09-28 US US08/314,971 patent/US5581753A/en not_active Expired - Lifetime
-
1995
- 1995-09-22 JP JP7244973A patent/JPH08115246A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1031639A (ja) * | 1996-07-16 | 1998-02-03 | Nippon Telegr & Teleph Corp <Ntt> | クライアント状態管理方法およびその装置 |
JP2002507021A (ja) * | 1998-03-12 | 2002-03-05 | クロスワールズ ソフトウエア インコーポレイテッド | 情報システムの独立性レベル及びトランザクション補償 |
JP2000132443A (ja) * | 1998-10-22 | 2000-05-12 | Internatl Business Mach Corp <Ibm> | コンピュータ、情報共有システム、及びレプリカ同一性保持方法 |
WO2004059495A1 (ja) * | 2002-12-25 | 2004-07-15 | Matsushita Electric Industrial Co., Ltd. | 端末装置およびセッション管理装置 |
CN100367251C (zh) * | 2002-12-25 | 2008-02-06 | 松下电器产业株式会社 | 终端装置和会话管理装置 |
JP2011154631A (ja) * | 2010-01-28 | 2011-08-11 | Fujitsu Ltd | 確定クロック判定プログラム及び方法、並びにノード装置 |
Also Published As
Publication number | Publication date |
---|---|
US5581753A (en) | 1996-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH08115246A (ja) | セッションの一貫性を保証する方法 | |
JP2731374B2 (ja) | 書き込み衝突解決方法 | |
JP2731373B2 (ja) | 書き込み衝突検出方法 | |
JP2731375B2 (ja) | データ識別方法 | |
CN104793988B (zh) | 跨数据库分布式事务的实现方法和装置 | |
US7716181B2 (en) | Methods, apparatus and computer programs for data replication comprising a batch of descriptions of data changes | |
US5751958A (en) | Allowing inconsistency in a distributed client-server application | |
US6275831B1 (en) | Data processing environment with methods providing contemporaneous synchronization of two or more clients | |
JP3851272B2 (ja) | ステートフル・プログラム・エンティティの作業負荷管理 | |
JP4237354B2 (ja) | トランザクション処理方法及びトランザクション処理システム | |
JPH08241234A (ja) | データベース管理方法 | |
CN101111840B (zh) | 用于在数据库管理系统中为文件操作提供锁定的技术 | |
US8756196B2 (en) | Propagating tables while preserving cyclic foreign key relationships | |
US7039669B1 (en) | Techniques for adding a master in a distributed database without suspending database operations at extant master sites | |
JPH07219830A (ja) | レプリケーション・ファシリティ | |
JP2004529442A (ja) | コンピュータシステムにおける特定用途向けロールバック | |
CN101268439A (zh) | 数据库片段克隆和管理 | |
JP2003522344A (ja) | データベース同期化/組織化システムおよび方法 | |
WO2009017534A1 (en) | Persistent query system for automatic on-demand data subscriptions from mobile devices | |
JP4497691B2 (ja) | データベース管理方法及び管理システム | |
US7246344B1 (en) | Drag and drop stateless data class specification and programming | |
CN108089926A (zh) | 一种获取分布式锁的方法、装置、设备及可读存储介质 | |
CN110457385A (zh) | 多租户环境中的可实体化的数据库对象 | |
US7072912B1 (en) | Identifying a common point in time across multiple logs | |
JPH1063557A (ja) | 分散ファイルの同期方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060510 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061020 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070119 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070216 |