JPH0816444A - クライアント・サーバ・コンピュータ・システム、及びそのクライアント・コンピュータ、サーバ・コンピュータ、並びにオブジェクト更新方法 - Google Patents
クライアント・サーバ・コンピュータ・システム、及びそのクライアント・コンピュータ、サーバ・コンピュータ、並びにオブジェクト更新方法Info
- Publication number
- JPH0816444A JPH0816444A JP6142764A JP14276494A JPH0816444A JP H0816444 A JPH0816444 A JP H0816444A JP 6142764 A JP6142764 A JP 6142764A JP 14276494 A JP14276494 A JP 14276494A JP H0816444 A JPH0816444 A JP H0816444A
- Authority
- JP
- Japan
- Prior art keywords
- client
- server
- updated
- version
- value
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
(57)【要約】
【目的】クライアント・サーバ・システム内のオブジェ
クトの一貫性を保持しつつ、クライアントとサーバとの
間で非同期にてキャッシュの更新動作を行い、クライア
ントで処理がブロックされる事態を回避し且つ通信回線
の負荷を軽減する。さらにシステム全体のパフォーマン
スを高める。 【構成】 クライアントは自身のキャッシュ内のオブジ
ェクトを更新した場合には、更新されたオブジェクトの
IDとその内容をサーバに送る。クライアントは自身の
オブジェクトのバージョンを0にし、他の処理を開始す
る。クライアントからの送信を受けて、サーバはそのI
Dのオブジェクトにサーバで更新ロックをかけ、サーバ
でのバージョンを最新のものにする。そして、サーバは
これには何等の応答を行わない。そして、トランザクシ
ョンが承認されて終了する場合には、サーバは更新内容
で自身のディスクを更新し、クライアントにサーバでの
バージョンを送る。
クトの一貫性を保持しつつ、クライアントとサーバとの
間で非同期にてキャッシュの更新動作を行い、クライア
ントで処理がブロックされる事態を回避し且つ通信回線
の負荷を軽減する。さらにシステム全体のパフォーマン
スを高める。 【構成】 クライアントは自身のキャッシュ内のオブジ
ェクトを更新した場合には、更新されたオブジェクトの
IDとその内容をサーバに送る。クライアントは自身の
オブジェクトのバージョンを0にし、他の処理を開始す
る。クライアントからの送信を受けて、サーバはそのI
Dのオブジェクトにサーバで更新ロックをかけ、サーバ
でのバージョンを最新のものにする。そして、サーバは
これには何等の応答を行わない。そして、トランザクシ
ョンが承認されて終了する場合には、サーバは更新内容
で自身のディスクを更新し、クライアントにサーバでの
バージョンを送る。
Description
【0001】
【産業上の利用分野】本発明は、クライアント・サーバ
・システム(クライアント・サーバ・コンピュータ・シ
ステムとも言う。)に関連し、更に詳しくはキャッシュ
を有するクライアント及びサーバを含むシステムにおい
て非同期にデータの更新を行う装置及び方法に係る。
・システム(クライアント・サーバ・コンピュータ・シ
ステムとも言う。)に関連し、更に詳しくはキャッシュ
を有するクライアント及びサーバを含むシステムにおい
て非同期にデータの更新を行う装置及び方法に係る。
【0002】ここで「オブジェクト」とは、データとそ
のアクセス手段とが一体となったもの、又はデータその
もの(データ・アイテム)を示すものとする。
のアクセス手段とが一体となったもの、又はデータその
もの(データ・アイテム)を示すものとする。
【0003】
【従来の技術】ワークステーションの能力の向上に伴
い、クライアント・サーバ・システムは、サーバ内に存
在する資源及び提供されるサービスを共有する有効な手
段として用いられるようになってきた。クライアントと
サーバは、例えばローカル・エリア・ネットワーク(L
AN)のような通信回線により接続されている。クライ
アントが、サーバ内に記憶されたオブジェクトを使用す
る場合、通信回線(ネットワーク)を介してサーバからそ
のオブジェクトを読み出してきて、それを用いて処理を
行う。よって、サーバ及びクライアントがキャッシュを
有し、ある程度以前に用いたオブジェクトを保持するこ
とは、通信回線のトラフィック及びオブジェクトへのア
クセス速度の両点で好ましい。
い、クライアント・サーバ・システムは、サーバ内に存
在する資源及び提供されるサービスを共有する有効な手
段として用いられるようになってきた。クライアントと
サーバは、例えばローカル・エリア・ネットワーク(L
AN)のような通信回線により接続されている。クライ
アントが、サーバ内に記憶されたオブジェクトを使用す
る場合、通信回線(ネットワーク)を介してサーバからそ
のオブジェクトを読み出してきて、それを用いて処理を
行う。よって、サーバ及びクライアントがキャッシュを
有し、ある程度以前に用いたオブジェクトを保持するこ
とは、通信回線のトラフィック及びオブジェクトへのア
クセス速度の両点で好ましい。
【0004】また通信の方法には、大きく分けて同期方
式と非同期方式がある。同期方式は、発信元が宛先にあ
る要求(リクエスト)等を発信し、それに対して宛先が
発信元に応答を返す必要があり、その応答を受け取るま
で発信元の処理は先に進むことができない方式である。
これに対し非同期方式は、発信元が宛先にある要求等を
発信しても、宛先の応答に関係なく、発信元の処理を先
に進める方式である。同期方式は、宛先の応答が確実に
返ってくるため通信が宛先に届いたということが確認で
き、又後に述べるロックにおいても比較的簡単なアルゴ
リズムを採用できるという点で好ましいが、一方で宛先
の応答を受け取るまで作業を先に進められないので処理
の平行性や、応答を返す分通信回線を混雑させるという
問題がある。これに対し非同期方式は、処理の平行性及
び通信回線のトラフィックの点でも、同期方式のような
問題は存在しないが、システム内におけるオブジェクト
の一貫性を保持することが難しい。このため、クライア
ント・サーバ・システムでトランザクションにより処理
を行うものにおいて、非同期方式は採用しにくかった。
式と非同期方式がある。同期方式は、発信元が宛先にあ
る要求(リクエスト)等を発信し、それに対して宛先が
発信元に応答を返す必要があり、その応答を受け取るま
で発信元の処理は先に進むことができない方式である。
これに対し非同期方式は、発信元が宛先にある要求等を
発信しても、宛先の応答に関係なく、発信元の処理を先
に進める方式である。同期方式は、宛先の応答が確実に
返ってくるため通信が宛先に届いたということが確認で
き、又後に述べるロックにおいても比較的簡単なアルゴ
リズムを採用できるという点で好ましいが、一方で宛先
の応答を受け取るまで作業を先に進められないので処理
の平行性や、応答を返す分通信回線を混雑させるという
問題がある。これに対し非同期方式は、処理の平行性及
び通信回線のトラフィックの点でも、同期方式のような
問題は存在しないが、システム内におけるオブジェクト
の一貫性を保持することが難しい。このため、クライア
ント・サーバ・システムでトランザクションにより処理
を行うものにおいて、非同期方式は採用しにくかった。
【0005】上述のように、非同期方式を用いた有効な
システムは従来なかったが、非同期方式を用いたシステ
ムを理解する上で同期方式を採用したシステムを理解す
るのは好ましい。以下、同期方式を採用したシステムに
ついて説明する。
システムは従来なかったが、非同期方式を用いたシステ
ムを理解する上で同期方式を採用したシステムを理解す
るのは好ましい。以下、同期方式を採用したシステムに
ついて説明する。
【0006】クライアント及びサーバがキャッシュを有
するシステムを図1に示す。サーバ3及びクライアント
A及びB(5,7)がネットワーク1により接続されて
いる。クライアントの数は任意である。サーバ3及びク
ライアントA及びB(5,7)は、それぞれキャッシュ
11,13,15を有している。またサーバ3はオブジ
ェクトを保持するためのディスク・ドライブ17を有し
ており、クライアントから読み出し又は更新(書き込
み)の要求があったオブジェクトをサーバ・キャッシュ
11に読み出し、サーバ・キャッシュ11のオブジェク
トのうち一定のオブジェクトを保管する。「一定の」と
は、例えばクライアントにおいて更新されたオブジェク
トが送られてきて、その更新の承認(コミット;commi
t)要求がなされたオブジェクト等である。このサーバ
・キャッシュ11及びディスク17の間のオブジェクト
のやりとりは各種の方法があり、キャッシュ内のオブジ
ェクトの保持方法、セキュリティ、バックアップ、リカ
バリー等に関する取扱いによって異なる。但し、本願発
明には直接関係ないので、これ以上は述べない。
するシステムを図1に示す。サーバ3及びクライアント
A及びB(5,7)がネットワーク1により接続されて
いる。クライアントの数は任意である。サーバ3及びク
ライアントA及びB(5,7)は、それぞれキャッシュ
11,13,15を有している。またサーバ3はオブジ
ェクトを保持するためのディスク・ドライブ17を有し
ており、クライアントから読み出し又は更新(書き込
み)の要求があったオブジェクトをサーバ・キャッシュ
11に読み出し、サーバ・キャッシュ11のオブジェク
トのうち一定のオブジェクトを保管する。「一定の」と
は、例えばクライアントにおいて更新されたオブジェク
トが送られてきて、その更新の承認(コミット;commi
t)要求がなされたオブジェクト等である。このサーバ
・キャッシュ11及びディスク17の間のオブジェクト
のやりとりは各種の方法があり、キャッシュ内のオブジ
ェクトの保持方法、セキュリティ、バックアップ、リカ
バリー等に関する取扱いによって異なる。但し、本願発
明には直接関係ないので、これ以上は述べない。
【0007】サーバ3は、ロック・マネージャ9を有し
ている。クライアント・サーバ・システムにおいては、
複数のクライアントが同一のオブジェクトを同時に読み
出そうとしたり、更新しようとする。このような場合
に、無秩序に読み出し及び更新を認めると、システム内
のオブジェクトに一貫性を持たせることが困難になる。
但し、複数のクライアントで同一オブジェクトを同時に
使っても(読み出しの場合)問題ない場合もある。そこで
ロック・マネージャ9に、同時アクセス(concurrenc
y)の管理を行わせる。
ている。クライアント・サーバ・システムにおいては、
複数のクライアントが同一のオブジェクトを同時に読み
出そうとしたり、更新しようとする。このような場合
に、無秩序に読み出し及び更新を認めると、システム内
のオブジェクトに一貫性を持たせることが困難になる。
但し、複数のクライアントで同一オブジェクトを同時に
使っても(読み出しの場合)問題ない場合もある。そこで
ロック・マネージャ9に、同時アクセス(concurrenc
y)の管理を行わせる。
【0008】同期方式によるロック・アルゴリズムに
は、以下のようなものがある。なお、以下の説明は、M.
J.Carey et al, 'Data Cashing Tradeoffs in Client-S
erverDBMS Architectures', Proceedings of the 1991
ACM SIGMOD, pp.357-366, May29,1991に記載されてい
る。
は、以下のようなものがある。なお、以下の説明は、M.
J.Carey et al, 'Data Cashing Tradeoffs in Client-S
erverDBMS Architectures', Proceedings of the 1991
ACM SIGMOD, pp.357-366, May29,1991に記載されてい
る。
【0009】(1)Basic 2PL(B2PL)(PLは
Phase Lock) 共有ロック(読み出しを行う時にかける読み出しロッ
ク)と排他的ロック(更新を行う時にかける書き込み又
は更新ロック)があり、サーバがロックを行う。図16
乃至図18は、このアルゴリズムを説明するために同一
の参照番号を用いる。図16において、サーバ・キャッ
シュ21とクライアント・キャッシュa23(クライア
ントAのキャッシュ)は、オブジェクトoid1を有す
る。クライアントAが、自身のキャッシュ23内のオブ
ジェクトoid1を更新する場合には、サーバに対して
通信回線29を介して更新要求updateRequest(oid1,con
tent)(オブジェクトの識別子,内容)を送る。サーバは
自身のキャッシュ21内のオブジェクトoid1に書き
込みロックをかけ、更新内容を受け取り、更新要求に対
してupdateReturen(OK)を返す。
Phase Lock) 共有ロック(読み出しを行う時にかける読み出しロッ
ク)と排他的ロック(更新を行う時にかける書き込み又
は更新ロック)があり、サーバがロックを行う。図16
乃至図18は、このアルゴリズムを説明するために同一
の参照番号を用いる。図16において、サーバ・キャッ
シュ21とクライアント・キャッシュa23(クライア
ントAのキャッシュ)は、オブジェクトoid1を有す
る。クライアントAが、自身のキャッシュ23内のオブ
ジェクトoid1を更新する場合には、サーバに対して
通信回線29を介して更新要求updateRequest(oid1,con
tent)(オブジェクトの識別子,内容)を送る。サーバは
自身のキャッシュ21内のオブジェクトoid1に書き
込みロックをかけ、更新内容を受け取り、更新要求に対
してupdateReturen(OK)を返す。
【0010】図17には、クライアントAが上述の更新
要求に対するサーバの承認を要求する場面の動作を示
す。この際にクライアントAは承認要求commitReques
t()をサーバに送る。サーバは、サーバ・キャッシュ2
1内のオブジェクトoid1のロックを解除し、クライ
アントAにcommitReturn(oid1)(オブジェクト識別子)
を返す。アボートの場合にも同様に、クライアントAが
アボート要求abortRequest()を送り、サーバがabortRet
urn(oid1)を返す。ここで特徴的なのは、クライアント
・キャッシュ23内のオブジェクトoid1は、commit
Return(oid1)を受け取ると、放棄されてしまうことであ
る。すなわち、トランザクションの間でキャッシュされ
たオブジェクトが放棄されるのである。これにより、古
いオブジェクトがクライアント・キャッシュに残ること
がないので、各キャッシュ内のオブジェクトの一貫性を
保つことができる。しかし、同じオブジェクトを後に直
ぐ用いる場合でもそのオブジェクトは放棄される。よっ
て、放棄する必要のないオブジェクトも放棄されること
になる場合があり、それにより読み出し要求が出されて
クライアントにオブジェクトを送る必要を生じ、通信回
線29が混雑することになる。
要求に対するサーバの承認を要求する場面の動作を示
す。この際にクライアントAは承認要求commitReques
t()をサーバに送る。サーバは、サーバ・キャッシュ2
1内のオブジェクトoid1のロックを解除し、クライ
アントAにcommitReturn(oid1)(オブジェクト識別子)
を返す。アボートの場合にも同様に、クライアントAが
アボート要求abortRequest()を送り、サーバがabortRet
urn(oid1)を返す。ここで特徴的なのは、クライアント
・キャッシュ23内のオブジェクトoid1は、commit
Return(oid1)を受け取ると、放棄されてしまうことであ
る。すなわち、トランザクションの間でキャッシュされ
たオブジェクトが放棄されるのである。これにより、古
いオブジェクトがクライアント・キャッシュに残ること
がないので、各キャッシュ内のオブジェクトの一貫性を
保つことができる。しかし、同じオブジェクトを後に直
ぐ用いる場合でもそのオブジェクトは放棄される。よっ
て、放棄する必要のないオブジェクトも放棄されること
になる場合があり、それにより読み出し要求が出されて
クライアントにオブジェクトを送る必要を生じ、通信回
線29が混雑することになる。
【0011】図18には、(クライアント・キャッシュ
bを有する)クライアントBがオブジェクトoid1を
読み出す場合の動作を示す。この際、(クライアント・
キャッシュcを有する)クライアントCが既に読み出し
ロックをかけているが、読み出しロックは共有ロックで
あるから、クライアントBは読み出しロックを要求する
ことができる。クライアントBはreadRequest(oid1)
(オブジェクト識別子)をサーバに送り、サーバはオブ
ジェクトoid1に対し重ねて読み出しロックを行い、
readReturn(content)(内容)をクライアントBに返
す。
bを有する)クライアントBがオブジェクトoid1を
読み出す場合の動作を示す。この際、(クライアント・
キャッシュcを有する)クライアントCが既に読み出し
ロックをかけているが、読み出しロックは共有ロックで
あるから、クライアントBは読み出しロックを要求する
ことができる。クライアントBはreadRequest(oid1)
(オブジェクト識別子)をサーバに送り、サーバはオブ
ジェクトoid1に対し重ねて読み出しロックを行い、
readReturn(content)(内容)をクライアントBに返
す。
【0012】読み出しのみ行った場合にも、上述した承
認又はアボート処理を行う。このように、トランザクシ
ョンにおいて書き込みや読み出しを行った後承認又はア
ボート動作を行うまでロックを保持し、2つの段階(ロ
ック段階とその解除段階)からなるので、2相(2 phas
e)ロック・アルゴリズムという。以上のようにして、更
新動作の後に更新したオブジェクトを放棄することによ
りトランザクション間のオブジェクトの一貫性を保持
し、且つ同時アクセスを可能にすることができる。
認又はアボート処理を行う。このように、トランザクシ
ョンにおいて書き込みや読み出しを行った後承認又はア
ボート動作を行うまでロックを保持し、2つの段階(ロ
ック段階とその解除段階)からなるので、2相(2 phas
e)ロック・アルゴリズムという。以上のようにして、更
新動作の後に更新したオブジェクトを放棄することによ
りトランザクション間のオブジェクトの一貫性を保持
し、且つ同時アクセスを可能にすることができる。
【0013】(2)Cashing 2PL(C2PL) 共有ロック(読み出しロック)と排他的ロック(書き込
み又は更新ロック)により、サーバがロックを行うのは
B2PLと同様である。C2PLは、B2PLがトラン
ザクションの間にクライアント・キャッシュ内のオブジ
ェクトを放棄してしまうのに対し、放棄することなく、
そのかわりにログ・シーケンス・ナンバ(又はバージョ
ン番号)をサーバ及びクライアントの各々でそのオブジ
ェクト毎に保持する方式である。
み又は更新ロック)により、サーバがロックを行うのは
B2PLと同様である。C2PLは、B2PLがトラン
ザクションの間にクライアント・キャッシュ内のオブジ
ェクトを放棄してしまうのに対し、放棄することなく、
そのかわりにログ・シーケンス・ナンバ(又はバージョ
ン番号)をサーバ及びクライアントの各々でそのオブジ
ェクト毎に保持する方式である。
【0014】図19を参照すると、サーバ及びクライア
ントA乃至Cは各々のキャッシュにオブジェクトoid
1を有している。オブジェクトoid1のそれぞれのバ
ージョンは、サーバが2、クライアントAが1、クライ
アントBが1、クライアントCが2である。よって、ク
ライアントCが最も最近に書き込みをしたことがわか
る。ここでクライアントCがオブジェクトoid1に書
き込みを行いたい場合、クライアントCは、通信回線3
9を介して更新要求updateRequest(oid1,content)(オ
ブジェクトの識別子,内容)をサーバに送る。サーバは、
オブジェクトoid1に書き込みロックをかけ、送られ
てきた内容を受け取る。さらにサーバは、自身の有する
オブジェクトoid1のバージョンを1インクリメント
し、ここではバージョンを3にする。そして、クライア
ントAにupdateReturn(serverVersion=3)を転送する。
クライアントAは、自身のオブジェクトoid1のバー
ジョンを最新のサーバ・バージョンである3に更新し、
更新動作を終了する。この方式の場合、クライアントA
はオブジェクトoid1の最新の内容を保持しているに
もかかわらず、サーバからupdateReturnを受け取ってク
ライアント・バージョンを更新するまで他の作業を全く
行うことができないという欠点がある。すなわち、クラ
イアントAはブロックされる(図19のblock)。
また、必ずupdateReturnを通信回線39を介して送るた
め、通信回線の混雑を引き起こすという欠点もある。
ントA乃至Cは各々のキャッシュにオブジェクトoid
1を有している。オブジェクトoid1のそれぞれのバ
ージョンは、サーバが2、クライアントAが1、クライ
アントBが1、クライアントCが2である。よって、ク
ライアントCが最も最近に書き込みをしたことがわか
る。ここでクライアントCがオブジェクトoid1に書
き込みを行いたい場合、クライアントCは、通信回線3
9を介して更新要求updateRequest(oid1,content)(オ
ブジェクトの識別子,内容)をサーバに送る。サーバは、
オブジェクトoid1に書き込みロックをかけ、送られ
てきた内容を受け取る。さらにサーバは、自身の有する
オブジェクトoid1のバージョンを1インクリメント
し、ここではバージョンを3にする。そして、クライア
ントAにupdateReturn(serverVersion=3)を転送する。
クライアントAは、自身のオブジェクトoid1のバー
ジョンを最新のサーバ・バージョンである3に更新し、
更新動作を終了する。この方式の場合、クライアントA
はオブジェクトoid1の最新の内容を保持しているに
もかかわらず、サーバからupdateReturnを受け取ってク
ライアント・バージョンを更新するまで他の作業を全く
行うことができないという欠点がある。すなわち、クラ
イアントAはブロックされる(図19のblock)。
また、必ずupdateReturnを通信回線39を介して送るた
め、通信回線の混雑を引き起こすという欠点もある。
【0015】図20を参照すると、クライアントAが上
述の更新要求に対するサーバの承認を要求する場面の動
作が示されている。クライアントAは、サーバに承認要
求commitRequest()を送る。これに対しサーバは、commi
tReturn()を返す。アボートする際にも同様にアボート
要求、アボート・リターンを送る。この場合、既にオブ
ジェクトoid1のサーバ・バージョン及びクライアン
トAのバージョンは同一に更新されているので、サーバ
はクライアントAにバージョン等を送らない。これで
は、通信回線の利用効率という点で無駄である。
述の更新要求に対するサーバの承認を要求する場面の動
作が示されている。クライアントAは、サーバに承認要
求commitRequest()を送る。これに対しサーバは、commi
tReturn()を返す。アボートする際にも同様にアボート
要求、アボート・リターンを送る。この場合、既にオブ
ジェクトoid1のサーバ・バージョン及びクライアン
トAのバージョンは同一に更新されているので、サーバ
はクライアントAにバージョン等を送らない。これで
は、通信回線の利用効率という点で無駄である。
【0016】図21を参照すると、クライアントBがオ
ブジェクトoid1の読み出しを行う際の動作が示され
ている。クライアントBは、自身のキャッシュ35内の
クライアント・バージョンが最新でない場合があるの
で、サーバに読み出し要求readRequest(oid1,clientVer
sion)(オブジェクトの識別子,クライアント・バージョ
ン)を送る。これに対しサーバは、サーバ・キャッシュ
31内のオブジェクトoid1に読み出しロックをかけ
る。さらに、サーバ・バージョンと送られてきたクライ
アント・バージョンを比較し、バージョンが同一かどう
かを判断する。同一であればクライアント・キャッシュ
内のオブジェクトは最新であるから、内容を返送する必
要はない。しかし、図21の場合には相違するので、ク
ライアントBのキャッシュ35は最新でない。よって、
サーバはクライアントBにreadReturn(serverVersion,c
ontent)(サーバ・バージョン,内容)を送り、キャッシ
ュ35内のオブジェクトoid1の内容を更新し、且つ
そのクライアント・バージョンをサーバ・バージョンと
同一に更新する。
ブジェクトoid1の読み出しを行う際の動作が示され
ている。クライアントBは、自身のキャッシュ35内の
クライアント・バージョンが最新でない場合があるの
で、サーバに読み出し要求readRequest(oid1,clientVer
sion)(オブジェクトの識別子,クライアント・バージョ
ン)を送る。これに対しサーバは、サーバ・キャッシュ
31内のオブジェクトoid1に読み出しロックをかけ
る。さらに、サーバ・バージョンと送られてきたクライ
アント・バージョンを比較し、バージョンが同一かどう
かを判断する。同一であればクライアント・キャッシュ
内のオブジェクトは最新であるから、内容を返送する必
要はない。しかし、図21の場合には相違するので、ク
ライアントBのキャッシュ35は最新でない。よって、
サーバはクライアントBにreadReturn(serverVersion,c
ontent)(サーバ・バージョン,内容)を送り、キャッシ
ュ35内のオブジェクトoid1の内容を更新し、且つ
そのクライアント・バージョンをサーバ・バージョンと
同一に更新する。
【0017】B2PLにおいて説明したように、C2P
Lも2相ロックであるから、読み出しのみ行った場合で
も承認またはアボート処理が必要となる。これにより、
ロックがはずされることとなる。
Lも2相ロックであるから、読み出しのみ行った場合で
も承認またはアボート処理が必要となる。これにより、
ロックがはずされることとなる。
【0018】このようにして、ロックとオブジェクトの
バージョンにより各クライアント・キャッシュの内容を
管理し、オブジェクトの一貫性の保持及び読み取り時に
は同時アクセスを可能にしている。
バージョンにより各クライアント・キャッシュの内容を
管理し、オブジェクトの一貫性の保持及び読み取り時に
は同時アクセスを可能にしている。
【0019】以上述べた方法は、各クライアント・キャ
ッシュの内容の一貫性を重視し、まずサーバのオブジェ
クトにロックをかける点に特徴がある。このような方法
は、クライアントの数が多いような場合、即ち読み出し
又は書き込みが頻繁に起こる場合に有効である。これに
対し、以下の方法がある。
ッシュの内容の一貫性を重視し、まずサーバのオブジェ
クトにロックをかける点に特徴がある。このような方法
は、クライアントの数が多いような場合、即ち読み出し
又は書き込みが頻繁に起こる場合に有効である。これに
対し、以下の方法がある。
【0020】楽観的2相ロック(O2PL) O2PLは、トランザクションの認証より前に、サーバ
側でロックを得ることなく、クライアントが読み出し/
書き込みロックをそのクライアントにて行う点が、上述
の2PLと異なる。つまり、あるクライアントは、他の
クライアントとロックがぶつからないと楽観的に考え、
処理を承認段階まで進めていく。承認段階で、もし処理
の間に他のクライアントとロックがぶつからないことを
確認できれば、トランザクションは成功する。しかし、
そうでなければトランザクションはアボートされ、全て
の処理は無駄になる。たとえば更新の場合、クライアン
トはそのクライアントのキャッシュにロック且つ更新を
行う。そして、認証段階において更新されたオブジェク
トをサーバに送信する。次いで、サーバは自身のキャッ
シュ内の当該オブジェクト上に更新コピー・ロック(書
き込みロックと同様)を行う。このロックが得られた後
に、サーバは、認証準備(prepare-to-commit)メッセー
ジを更新されたオブジェクトをキャッシュしている他の
すべてのクライアントに送信する。これらのクライアン
トは、更新コピー・ロックを自身のキャッシュ内の更新
されたオブジェクトに行う。関連するすべてのロックが
得られると、続いて以下のような異なるO2PLが実行
される。
側でロックを得ることなく、クライアントが読み出し/
書き込みロックをそのクライアントにて行う点が、上述
の2PLと異なる。つまり、あるクライアントは、他の
クライアントとロックがぶつからないと楽観的に考え、
処理を承認段階まで進めていく。承認段階で、もし処理
の間に他のクライアントとロックがぶつからないことを
確認できれば、トランザクションは成功する。しかし、
そうでなければトランザクションはアボートされ、全て
の処理は無駄になる。たとえば更新の場合、クライアン
トはそのクライアントのキャッシュにロック且つ更新を
行う。そして、認証段階において更新されたオブジェク
トをサーバに送信する。次いで、サーバは自身のキャッ
シュ内の当該オブジェクト上に更新コピー・ロック(書
き込みロックと同様)を行う。このロックが得られた後
に、サーバは、認証準備(prepare-to-commit)メッセー
ジを更新されたオブジェクトをキャッシュしている他の
すべてのクライアントに送信する。これらのクライアン
トは、更新コピー・ロックを自身のキャッシュ内の更新
されたオブジェクトに行う。関連するすべてのロックが
得られると、続いて以下のような異なるO2PLが実行
される。
【0021】(1)更新無効O2PL(O2PL−I) この方式では、サーバと認証を求めているクライアント
のキャッシュのみがオブジェクトの更新を受ける。他の
クライアントの更新されたコピーは無効とされる。 (2)更新伝播O2PL(O2PL−P) この方式では、更新内容は更新されたコピーを有する全
てのクライアントに伝播する。従って、クライアントは
最新の更新されたオブジェクトを有する。但し、更新し
たクライアントから全てのクライアントにオブジェクト
を伝播するのは、他のクライアントでそのオブジェクト
の使用確率が高くない場合には通信が無駄になる。 (3)動的O2PL(O2PL−D) この方式は、(1)及び(2)の中間であって、無効が適当で
ある場合にはキャッシュされたコピーを無効にし、伝播
することが有益であるようであれば変化を伝播する。
のキャッシュのみがオブジェクトの更新を受ける。他の
クライアントの更新されたコピーは無効とされる。 (2)更新伝播O2PL(O2PL−P) この方式では、更新内容は更新されたコピーを有する全
てのクライアントに伝播する。従って、クライアントは
最新の更新されたオブジェクトを有する。但し、更新し
たクライアントから全てのクライアントにオブジェクト
を伝播するのは、他のクライアントでそのオブジェクト
の使用確率が高くない場合には通信が無駄になる。 (3)動的O2PL(O2PL−D) この方式は、(1)及び(2)の中間であって、無効が適当で
ある場合にはキャッシュされたコピーを無効にし、伝播
することが有益であるようであれば変化を伝播する。
【0022】このように、更新時にあらかじめサーバに
おいてロックを得ないで更新を行うのは、長いトランザ
クションを行うことが多い場合や、クライアントの数が
少なく、更新や読み出しの回数が少ない場合に有効であ
る。そうでない場合ロックが1つぶつかってもトランザ
クションはアボートされ処理は進まないので、現実のシ
ステムではほとんど用いられていない。
おいてロックを得ないで更新を行うのは、長いトランザ
クションを行うことが多い場合や、クライアントの数が
少なく、更新や読み出しの回数が少ない場合に有効であ
る。そうでない場合ロックが1つぶつかってもトランザ
クションはアボートされ処理は進まないので、現実のシ
ステムではほとんど用いられていない。
【0023】しかし、B2PL、C2PLやO2PLに
しても同期方式であることから、同期による処理のブロ
ックや通信回線のトラフィック等の問題は免れない。
しても同期方式であることから、同期による処理のブロ
ックや通信回線のトラフィック等の問題は免れない。
【0024】
【発明が解決しようとする課題】よって本発明の目的
は、上記の同期方式の欠点を解決するものであり、高パ
フォーマンス及び高スループットのクライアント・サー
バ・システムを提供することである。
は、上記の同期方式の欠点を解決するものであり、高パ
フォーマンス及び高スループットのクライアント・サー
バ・システムを提供することである。
【0025】また他の目的は、クライアント・サーバ・
システムにおいて、非同期通信に適用してもシステム内
のオブジェクトの一貫性を保証するロック・システムを
取り入れることである。
システムにおいて、非同期通信に適用してもシステム内
のオブジェクトの一貫性を保証するロック・システムを
取り入れることである。
【0026】さらに他の目的は、処理の待ち時間を減少
させ、通信回線の負荷を軽減し、システムとしての能力
を最大限に引き出すことである。
させ、通信回線の負荷を軽減し、システムとしての能力
を最大限に引き出すことである。
【0027】
【0028】本発明は上述の目的を達成するためになさ
れたものであって、全体としてはサーバと、複数のクラ
イアントと、サーバとクライアント間を接続するネット
ワークとを有するクライアント・サーバ・コンピュータ
・システムである。また、処理の対象となるオブジェク
トはID及びその更新記録であるバージョン値により識
別される。そして各クライアント・コンピュータが、キ
ャッシュと、そのキャッシュ内にあるオブジェクトのバ
ージョンを管理する管理手段と、キャッシュ内にあるオ
ブジェクトを更新する手段と、更新されたオブジェクト
のID及びその内容をサーバに転送する転送手段とを有
し、管理手段が転送手段に応答して更新されたオブジェ
クトのバージョンを所定の予約値にした後に、他の処理
を開始することを特徴とするものである。これにより、
クライアントはサーバの応答を待つことなく処理を進行
させることができる。
れたものであって、全体としてはサーバと、複数のクラ
イアントと、サーバとクライアント間を接続するネット
ワークとを有するクライアント・サーバ・コンピュータ
・システムである。また、処理の対象となるオブジェク
トはID及びその更新記録であるバージョン値により識
別される。そして各クライアント・コンピュータが、キ
ャッシュと、そのキャッシュ内にあるオブジェクトのバ
ージョンを管理する管理手段と、キャッシュ内にあるオ
ブジェクトを更新する手段と、更新されたオブジェクト
のID及びその内容をサーバに転送する転送手段とを有
し、管理手段が転送手段に応答して更新されたオブジェ
クトのバージョンを所定の予約値にした後に、他の処理
を開始することを特徴とするものである。これにより、
クライアントはサーバの応答を待つことなく処理を進行
させることができる。
【0029】また、トランザクションが承認されて終了
した場合、終了時までに更新されたオブジェクトのID
及び最新のバージョン値をサーバから受信する受信手段
をさらに有し、管理手段が、受信手段に応答して更新さ
れたオブジェクトのバージョンを受信した最新のバージ
ョン値に更新してもよい。このようにすれば、サーバと
クライアントの同一オブジェクトに対するバージョン値
が同一となり、オブジェクトの内容の一貫性が完全に保
持される。
した場合、終了時までに更新されたオブジェクトのID
及び最新のバージョン値をサーバから受信する受信手段
をさらに有し、管理手段が、受信手段に応答して更新さ
れたオブジェクトのバージョンを受信した最新のバージ
ョン値に更新してもよい。このようにすれば、サーバと
クライアントの同一オブジェクトに対するバージョン値
が同一となり、オブジェクトの内容の一貫性が完全に保
持される。
【0030】さらに、トランザクションがアボートされ
て終了した場合に、終了時までに更新されたオブジェク
トのIDをサーバから受信する手段と、受信したオブジ
ェクトのIDにかかるオブジェクトを無効にする手段を
さらに有してもよい。これにより、アボートされた場合
でもクライアントとサーバのオブジェクトの内容の一貫
性には何等の問題がなくなる。
て終了した場合に、終了時までに更新されたオブジェク
トのIDをサーバから受信する手段と、受信したオブジ
ェクトのIDにかかるオブジェクトを無効にする手段を
さらに有してもよい。これにより、アボートされた場合
でもクライアントとサーバのオブジェクトの内容の一貫
性には何等の問題がなくなる。
【0031】また同様なクライアント・サーバ・コンピ
ュータ・システムにおいて、サーバ・コンピュータが、
キャッシュと、そのキャッシュ内にあるオブジェクトの
バージョンを管理するバージョン管理手段と、クライア
ントにより更新されたオブジェクトのID及びその内容
を、クライアントから受信する受信手段と、更新された
オブジェクトに書き込みロックをするロック管理手段と
を有し、バージョン管理手段が更新されたオブジェクト
のバージョンを最新の値に更新し、さらにトランザクシ
ョンが承認されて終了した場合に、終了時までに更新さ
れたオブジェクトのID及び最新のバージョン値をクラ
イアントに送る手段を有すると、不必要な応答をなくす
ことにより通信回線の負荷を減少させることができる。
更新されたオブジェクトのID及びその内容は、一括し
てクライアントに送ってもよい。
ュータ・システムにおいて、サーバ・コンピュータが、
キャッシュと、そのキャッシュ内にあるオブジェクトの
バージョンを管理するバージョン管理手段と、クライア
ントにより更新されたオブジェクトのID及びその内容
を、クライアントから受信する受信手段と、更新された
オブジェクトに書き込みロックをするロック管理手段と
を有し、バージョン管理手段が更新されたオブジェクト
のバージョンを最新の値に更新し、さらにトランザクシ
ョンが承認されて終了した場合に、終了時までに更新さ
れたオブジェクトのID及び最新のバージョン値をクラ
イアントに送る手段を有すると、不必要な応答をなくす
ことにより通信回線の負荷を減少させることができる。
更新されたオブジェクトのID及びその内容は、一括し
てクライアントに送ってもよい。
【0032】この場合、トランザクションがアボートさ
れて終了した場合に、終了時までに更新されたオブジェ
クトの内容を棄却し、更新されたオブジェクトのIDを
クライアントに送る手段をサーバがさらに有しても、同
様に不必要な応答をなくすことになる。
れて終了した場合に、終了時までに更新されたオブジェ
クトの内容を棄却し、更新されたオブジェクトのIDを
クライアントに送る手段をサーバがさらに有しても、同
様に不必要な応答をなくすことになる。
【0033】また本発明の他の態様として、各々キャッ
シュを含むサーバ及び複数のクライアントと、サーバと
クライアント間を接続するネットワークとを有するクラ
イアント・サーバ・コンピュータ・システムがある。ま
た、処理の対象となるオブジェクトはID及びその更新
記録であるバージョン値により識別される。このシステ
ムにおいて、クライアントのキャッシュ内にあるオブジ
ェクトを更新する更新ステップと、更新されたオブジェ
クトのID及びその内容をサーバに転送する転送ステッ
プと、転送ステップに応答してクライアント内の更新さ
れたオブジェクトのバージョンを所定の予約値にするバ
ージョン更新ステップと、バージョン更新ステップに応
答して、クライアントに他の処理を開始させるステップ
と、転送ステップに応答して、クライアントにより更新
されたオブジェクトのID及びその内容を、サーバにお
いて受信する受信ステップと、サーバにおける更新され
たオブジェクトに、書き込みロックをかけるロック・ス
テップと、更新されたオブジェクトのサーバにおけるバ
ージョンを最新の値に更新する更新ステップと、トラン
ザクションが承認されて終了した場合に、終了時までに
更新されたオブジェクトのID及び最新のバージョン値
をクライアントに送るステップとを実行するオブジェク
ト更新方法がある。これにより、クライアントはサーバ
の応答を待つことによりブロックされることなく処理を
進行することができ、サーバも応答を1回省略すること
で他の処理を行うことができる。
シュを含むサーバ及び複数のクライアントと、サーバと
クライアント間を接続するネットワークとを有するクラ
イアント・サーバ・コンピュータ・システムがある。ま
た、処理の対象となるオブジェクトはID及びその更新
記録であるバージョン値により識別される。このシステ
ムにおいて、クライアントのキャッシュ内にあるオブジ
ェクトを更新する更新ステップと、更新されたオブジェ
クトのID及びその内容をサーバに転送する転送ステッ
プと、転送ステップに応答してクライアント内の更新さ
れたオブジェクトのバージョンを所定の予約値にするバ
ージョン更新ステップと、バージョン更新ステップに応
答して、クライアントに他の処理を開始させるステップ
と、転送ステップに応答して、クライアントにより更新
されたオブジェクトのID及びその内容を、サーバにお
いて受信する受信ステップと、サーバにおける更新され
たオブジェクトに、書き込みロックをかけるロック・ス
テップと、更新されたオブジェクトのサーバにおけるバ
ージョンを最新の値に更新する更新ステップと、トラン
ザクションが承認されて終了した場合に、終了時までに
更新されたオブジェクトのID及び最新のバージョン値
をクライアントに送るステップとを実行するオブジェク
ト更新方法がある。これにより、クライアントはサーバ
の応答を待つことによりブロックされることなく処理を
進行することができ、サーバも応答を1回省略すること
で他の処理を行うことができる。
【0034】また、サーバにおける更新されたオブジェ
クトのID及び最新のバージョン値をクライアントにお
いて受信する受信ステップと、クライアントにおける更
新されたオブジェクトのバージョンを、受信した最新の
バージョン値に更新するステップとをさらに実行すれ
ば、システム内でのバージョン管理が完全となる。
クトのID及び最新のバージョン値をクライアントにお
いて受信する受信ステップと、クライアントにおける更
新されたオブジェクトのバージョンを、受信した最新の
バージョン値に更新するステップとをさらに実行すれ
ば、システム内でのバージョン管理が完全となる。
【0035】さらに、トランザクションがアボートされ
て終了した場合に、終了時までに更新されたオブジェク
トのサーバにおける内容を破棄し、更新されたオブジェ
クトのIDをクライアントに送るステップをさらに実行
すれば、サーバでは更新されたオブジェクトを2度と用
いないようにできる。
て終了した場合に、終了時までに更新されたオブジェク
トのサーバにおける内容を破棄し、更新されたオブジェ
クトのIDをクライアントに送るステップをさらに実行
すれば、サーバでは更新されたオブジェクトを2度と用
いないようにできる。
【0036】また、トランザクションがアボートされて
終了した場合に、終了時までに更新されたオブジェクト
のIDをクライアントにて受信するステップと、受信さ
れたオブジェクトのIDにかかるクライアント内のオブ
ジェクトを無効にするステップとをさらに実行すると、
クライアントにおいても無効にされたオブジェクトの確
認ができる。
終了した場合に、終了時までに更新されたオブジェクト
のIDをクライアントにて受信するステップと、受信さ
れたオブジェクトのIDにかかるクライアント内のオブ
ジェクトを無効にするステップとをさらに実行すると、
クライアントにおいても無効にされたオブジェクトの確
認ができる。
【0037】さらに他の態様として、同様なクライアン
ト・サーバ・コンピュータ・システムであって、クライ
アントのキャッシュ内にあるオブジェクトを更新する、
クライアント内の更新手段と、更新されたオブジェクト
のID及びその内容をサーバに転送する、クライアント
内の転送手段と、転送に応答して更新されたオブジェク
トのバージョンを所定の予約値にする、クライアント内
のバージョン更新手段と、バージョン更新手段に応答し
て、クライアントに他の処理を開始させる手段と、転送
に応答して、クライアントにより更新されたオブジェク
トのID及びその内容を受信する、サーバ内の受信手段
と、サーバにおいて更新されたオブジェクトに書き込み
ロックをかける、サーバ内のロック管理手段と、更新さ
れたオブジェクトのサーバにおけるバージョンを最新の
値に更新する、サーバ内のバージョン管理手段と、トラ
ンザクションが承認されて終了した場合に、終了時まで
に更新されたオブジェクトのID及び最新のバージョン
値をクライアントに送る、サーバ内の転送手段とを有す
るものもある。このうち、クライアントにおける転送手
段、バージョン更新手段、更新手段、他の処理を開始さ
せる手段は、実施例で述べるクライアントの制御装置内
にある。サーバにおける受信手段、バージョン管理手
段、転送手段も、実施例で述べるサーバの制御装置内に
ある。
ト・サーバ・コンピュータ・システムであって、クライ
アントのキャッシュ内にあるオブジェクトを更新する、
クライアント内の更新手段と、更新されたオブジェクト
のID及びその内容をサーバに転送する、クライアント
内の転送手段と、転送に応答して更新されたオブジェク
トのバージョンを所定の予約値にする、クライアント内
のバージョン更新手段と、バージョン更新手段に応答し
て、クライアントに他の処理を開始させる手段と、転送
に応答して、クライアントにより更新されたオブジェク
トのID及びその内容を受信する、サーバ内の受信手段
と、サーバにおいて更新されたオブジェクトに書き込み
ロックをかける、サーバ内のロック管理手段と、更新さ
れたオブジェクトのサーバにおけるバージョンを最新の
値に更新する、サーバ内のバージョン管理手段と、トラ
ンザクションが承認されて終了した場合に、終了時まで
に更新されたオブジェクトのID及び最新のバージョン
値をクライアントに送る、サーバ内の転送手段とを有す
るものもある。このうち、クライアントにおける転送手
段、バージョン更新手段、更新手段、他の処理を開始さ
せる手段は、実施例で述べるクライアントの制御装置内
にある。サーバにおける受信手段、バージョン管理手
段、転送手段も、実施例で述べるサーバの制御装置内に
ある。
【0038】また、サーバ内の転送手段が、トランザク
ションがアボートされて終了した場合に、終了時までに
更新されたオブジェクトの内容を破棄し、更新されたオ
ブジェクトのIDをクライアントに送ると、サーバで無
効となるオブジェクトをディスクに記憶してしまうこと
がなくなる。
ションがアボートされて終了した場合に、終了時までに
更新されたオブジェクトの内容を破棄し、更新されたオ
ブジェクトのIDをクライアントに送ると、サーバで無
効となるオブジェクトをディスクに記憶してしまうこと
がなくなる。
【0039】さらに、トランザクションがアボートされ
て終了した場合に、終了時までに更新されたオブジェク
トのIDを受信する、クライアント内の受信手段と、受
信されたオブジェクトのIDにかかるクライアント内の
オブジェクトを無効にするクライアント内の手段とを有
すると、クライアントとサーバにおいて更新されたオブ
ジェクトに内容の不一致が生じない。
て終了した場合に、終了時までに更新されたオブジェク
トのIDを受信する、クライアント内の受信手段と、受
信されたオブジェクトのIDにかかるクライアント内の
オブジェクトを無効にするクライアント内の手段とを有
すると、クライアントとサーバにおいて更新されたオブ
ジェクトに内容の不一致が生じない。
【0040】さらに、トランザクションが承認されて終
了した場合に、終了時までに更新されたオブジェクトの
ID及び最新のバージョン値を受信するクライアントの
受信手段をさらに有し、クライアント内のバージョン更
新手段が、更新されたオブジェクトの最新のバージョン
でクライアント内のバージョンを更新すると、クライア
ントは更新されたオブジェクトに関しサーバと同一のバ
ージョンを保持することができる。
了した場合に、終了時までに更新されたオブジェクトの
ID及び最新のバージョン値を受信するクライアントの
受信手段をさらに有し、クライアント内のバージョン更
新手段が、更新されたオブジェクトの最新のバージョン
でクライアント内のバージョンを更新すると、クライア
ントは更新されたオブジェクトに関しサーバと同一のバ
ージョンを保持することができる。
【0041】さらに他の態様は、同様なクライアント・
サーバ・コンピュータ・システムは、クライアントのキ
ャッシュ内にあるオブジェクトを更新する、クライアン
ト内の更新手段と、あるオブジェクトの読み出し要求を
行う手段と、更新されたオブジェクトのID及びその内
容、又は読み出し要求のなされたオブジェクトのID及
びそのオブジェクトのクライアントでのバージョンをサ
ーバに転送する、クライアント内の転送手段と、オブジ
ェクトが更新された場合には更新されたオブジェクトの
ID及びその内容の転送に応答して、更新されたオブジ
ェクトのバージョンを所定の予約値にする、クライアン
ト内のバージョン管理手段と、オブジェクトが更新され
た場合にはバージョン管理手段に応答してクライアント
に他の処理を開始させ、読み出し要求がなされた場合に
はクライアントに処理を休止させる手段とを有する。さ
らに、クライアント内の転送手段に応答して、クライア
ントにより更新されたオブジェクトのID及びその内
容、又は読み出し要求のなされたオブジェクトのID及
びそのオブジェクトのクライアントでのバージョンを受
信する、サーバ内の受信手段と、オブジェクトが更新さ
れた場合には更新されたオブジェクトに書き込みロック
をかけ、読み出し要求がなされた場合には読み出し要求
のなされたオブジェクトに読み出しロックをかける、サ
ーバ内のロック管理手段と、オブジェクトが更新された
場合には更新されたオブジェクトのサーバにおけるバー
ジョンを最新の値に更新し、読み出し要求がなされた場
合には転送されたクライアントでのバージョンとサーバ
内でのバージョンを比較する、サーバ内のバージョン管
理手段と、読み出し要求がなされた場合であって、サー
バ内のバージョン管理手段によりクライアントでのバー
ジョンがサーバ内でのバージョンより古いと判断された
場合には、読み出し要求のなされたオブジェクトの内容
及びサーバでのバージョンをサーバから転送し、それ以
外の場合には読み出し要求のなされたオブジェクトのサ
ーバでのバージョンを転送し、オブジェクトが更新され
た場合であって、トランザクションが承認されて終了し
た場合に、終了時までに更新されたオブジェクトのID
及び最新のバージョン値をクライアントに送る、サーバ
内の転送手段と、読み出し要求がなされた場合には、サ
ーバ内の転送手段に応答して読み出し要求のなされたオ
ブジェクトの内容、サーバ内のバージョンを受信し、オ
ブジェクトが更新された場合であって、トランザクショ
ンが承認されて終了した場合には、トランザクションの
終了時までに更新されたオブジェクトのID及び最新の
バージョン値を受信する、クライアント内の受信手段も
有する。これにより読み出しも可能となる。
サーバ・コンピュータ・システムは、クライアントのキ
ャッシュ内にあるオブジェクトを更新する、クライアン
ト内の更新手段と、あるオブジェクトの読み出し要求を
行う手段と、更新されたオブジェクトのID及びその内
容、又は読み出し要求のなされたオブジェクトのID及
びそのオブジェクトのクライアントでのバージョンをサ
ーバに転送する、クライアント内の転送手段と、オブジ
ェクトが更新された場合には更新されたオブジェクトの
ID及びその内容の転送に応答して、更新されたオブジ
ェクトのバージョンを所定の予約値にする、クライアン
ト内のバージョン管理手段と、オブジェクトが更新され
た場合にはバージョン管理手段に応答してクライアント
に他の処理を開始させ、読み出し要求がなされた場合に
はクライアントに処理を休止させる手段とを有する。さ
らに、クライアント内の転送手段に応答して、クライア
ントにより更新されたオブジェクトのID及びその内
容、又は読み出し要求のなされたオブジェクトのID及
びそのオブジェクトのクライアントでのバージョンを受
信する、サーバ内の受信手段と、オブジェクトが更新さ
れた場合には更新されたオブジェクトに書き込みロック
をかけ、読み出し要求がなされた場合には読み出し要求
のなされたオブジェクトに読み出しロックをかける、サ
ーバ内のロック管理手段と、オブジェクトが更新された
場合には更新されたオブジェクトのサーバにおけるバー
ジョンを最新の値に更新し、読み出し要求がなされた場
合には転送されたクライアントでのバージョンとサーバ
内でのバージョンを比較する、サーバ内のバージョン管
理手段と、読み出し要求がなされた場合であって、サー
バ内のバージョン管理手段によりクライアントでのバー
ジョンがサーバ内でのバージョンより古いと判断された
場合には、読み出し要求のなされたオブジェクトの内容
及びサーバでのバージョンをサーバから転送し、それ以
外の場合には読み出し要求のなされたオブジェクトのサ
ーバでのバージョンを転送し、オブジェクトが更新され
た場合であって、トランザクションが承認されて終了し
た場合に、終了時までに更新されたオブジェクトのID
及び最新のバージョン値をクライアントに送る、サーバ
内の転送手段と、読み出し要求がなされた場合には、サ
ーバ内の転送手段に応答して読み出し要求のなされたオ
ブジェクトの内容、サーバ内のバージョンを受信し、オ
ブジェクトが更新された場合であって、トランザクショ
ンが承認されて終了した場合には、トランザクションの
終了時までに更新されたオブジェクトのID及び最新の
バージョン値を受信する、クライアント内の受信手段も
有する。これにより読み出しも可能となる。
【0042】また、オブジェクトを更新した場合であっ
て、トランザクションが承認されて終了した場合に、ク
ライアント内のバージョン管理手段が、クライアントに
おける更新されたオブジェクトのバージョンを受信した
最新のバージョン値でクライアント内のバージョンを更
新したり、トランザクションがアボートされて終了した
場合に、サーバ内の転送手段が、トランザクションが終
了するまでに更新されたオブジェクトのIDをクライア
ントに送り、クライアント内の受信手段が、更新された
オブジェクトのIDを受信し、クライアント内のバージ
ョン管理手段が、更新されたオブジェクトのIDを無効
とすると、サーバ及びクライアントにおいてオブジェク
トの内容に一貫性を保持させることができる。
て、トランザクションが承認されて終了した場合に、ク
ライアント内のバージョン管理手段が、クライアントに
おける更新されたオブジェクトのバージョンを受信した
最新のバージョン値でクライアント内のバージョンを更
新したり、トランザクションがアボートされて終了した
場合に、サーバ内の転送手段が、トランザクションが終
了するまでに更新されたオブジェクトのIDをクライア
ントに送り、クライアント内の受信手段が、更新された
オブジェクトのIDを受信し、クライアント内のバージ
ョン管理手段が、更新されたオブジェクトのIDを無効
とすると、サーバ及びクライアントにおいてオブジェク
トの内容に一貫性を保持させることができる。
【0043】さらに、読み出し要求がなされた場合であ
って、クライアント内の受信手段に応答して、読み出し
要求のなされたオブジェクトを休止した処理を再開させ
る手段をさらに有すると、読み出されたオブジェクトを
用いて後の処理を実行することができる。
って、クライアント内の受信手段に応答して、読み出し
要求のなされたオブジェクトを休止した処理を再開させ
る手段をさらに有すると、読み出されたオブジェクトを
用いて後の処理を実行することができる。
【実施例】図1に示した全体図は本発明においても同様
である。但し、本発明の特徴的部分については追加して
述べる。
である。但し、本発明の特徴的部分については追加して
述べる。
【0044】ここで追加すべきことは、あるクライアン
トによりサーバ・キャッシュ11内のオブジェクトが更
新された場合、その更新されたオブジェクトと同じオブ
ジェクトを有する他のクライアントに、最新の更新され
たオブジェクトの内容が伝播されるわけでない、という
ことである。また、本発明のロックマネージャ9は、基
本的に2相ロック・アルゴリズムを用いる。即ち、ロッ
クは、そのトランザクションが承認(コミット)される
か、アボートされるかするまで保持される。そして、読
み出しロックは、他のクライアントによる書き込み(更
新)要求をブロックし、書き込みロックは、他のクライ
アントによる読み出しロック及び更新ロックをブロック
する。このようにして、ロックマネージャ9はオブジェ
クトに対する同時アクセス及びオブジェクト内容の一貫
性保持を可能にしている。
トによりサーバ・キャッシュ11内のオブジェクトが更
新された場合、その更新されたオブジェクトと同じオブ
ジェクトを有する他のクライアントに、最新の更新され
たオブジェクトの内容が伝播されるわけでない、という
ことである。また、本発明のロックマネージャ9は、基
本的に2相ロック・アルゴリズムを用いる。即ち、ロッ
クは、そのトランザクションが承認(コミット)される
か、アボートされるかするまで保持される。そして、読
み出しロックは、他のクライアントによる書き込み(更
新)要求をブロックし、書き込みロックは、他のクライ
アントによる読み出しロック及び更新ロックをブロック
する。このようにして、ロックマネージャ9はオブジェ
クトに対する同時アクセス及びオブジェクト内容の一貫
性保持を可能にしている。
【0045】また、クライアント・キャッシュ13,1
5は、クライアントがあるオブジェクトの更新を行えば
直ぐに更新されるが、サーバ・キャッシュ11及びサー
バ3に接続されたディスク17での更新は、その更新要
求が一旦FIFO(first-in-first-out)等の待ち行列
に入れられ、サーバ3のプロセッサ(図示せず)のワー
クロードが減少した時に、1つずつ処理される。そし
て、そのトランザクションが承認された時に、すべての
更新処理を完了させる。
5は、クライアントがあるオブジェクトの更新を行えば
直ぐに更新されるが、サーバ・キャッシュ11及びサー
バ3に接続されたディスク17での更新は、その更新要
求が一旦FIFO(first-in-first-out)等の待ち行列
に入れられ、サーバ3のプロセッサ(図示せず)のワー
クロードが減少した時に、1つずつ処理される。そし
て、そのトランザクションが承認された時に、すべての
更新処理を完了させる。
【0046】サーバの概略図を図2に示す。サーバ3は
ネットワーク1と接続されているわけであるが、直接接
続されているのは制御装置301である。制御装置30
1はロック・マネージャ9に接続され、キャッシュ1
1、ディスク17にも接続されている。制御装置301
はまたsendDataFlag313(図2ではF)を有する。こ
のフラグ313は後に詳述するが、読み出しアルゴリズ
ムにおいてオブジェクトの内容をクライアントに送らね
ばならない場合に立てるフラグである。制御装置301
は、各種要求を受信し各種応答を送信し、後に述べるオ
ブジェクトのバージョン管理や、ロック・マネージャへ
のロック要求、キャッシュとのオブジェクトの出し入
れ、ディスクへのオブジェクトの出し入れ等を行う。キ
ャッシュ11には更新テーブル311があり、更新され
たオブジェクトのID及びそのバージョンを記憶する。
また、ディスク17にはサーバ・ログ309があり、ト
ランザクションが承認されるまで更新されたオブジェク
トの内容を保持する。更新テーブル、サーバ・ログ等は
後に詳しく述べる。
ネットワーク1と接続されているわけであるが、直接接
続されているのは制御装置301である。制御装置30
1はロック・マネージャ9に接続され、キャッシュ1
1、ディスク17にも接続されている。制御装置301
はまたsendDataFlag313(図2ではF)を有する。こ
のフラグ313は後に詳述するが、読み出しアルゴリズ
ムにおいてオブジェクトの内容をクライアントに送らね
ばならない場合に立てるフラグである。制御装置301
は、各種要求を受信し各種応答を送信し、後に述べるオ
ブジェクトのバージョン管理や、ロック・マネージャへ
のロック要求、キャッシュとのオブジェクトの出し入
れ、ディスクへのオブジェクトの出し入れ等を行う。キ
ャッシュ11には更新テーブル311があり、更新され
たオブジェクトのID及びそのバージョンを記憶する。
また、ディスク17にはサーバ・ログ309があり、ト
ランザクションが承認されるまで更新されたオブジェク
トの内容を保持する。更新テーブル、サーバ・ログ等は
後に詳しく述べる。
【0047】クライアントA(5)の概略図を図3に示
す。クライアントAはネットワーク1と接続している
が、直接接続しているのはサーバと同じく制御装置50
1である。制御装置501はクライアントのオブジェク
トのバージョン管理や、各種要求を転送し各種応答を受
信する。また、クライアント・キャッシュ13とオブジ
ェクトの出し入れ等も行う。キャッシュ13とも接続さ
れている。
す。クライアントAはネットワーク1と接続している
が、直接接続しているのはサーバと同じく制御装置50
1である。制御装置501はクライアントのオブジェク
トのバージョン管理や、各種要求を転送し各種応答を受
信する。また、クライアント・キャッシュ13とオブジ
ェクトの出し入れ等も行う。キャッシュ13とも接続さ
れている。
【0048】まず図4には更新アルゴリズムの概要を示
す。サーバとクライアントA,B及びCが通信回線49
にて接続されているのは、従来技術の説明の際に示した
図と同様である。ここで更新の対象となるオブジェクト
はオブジェクトoid1である。本発明では上述したC
2PLと同様にバージョン番号を用いてシステム内のオ
ブジェクトの内容の一貫性を保つようにしている。最初
の段階ではサーバ・キャッシュ41内のオブジェクトo
id1のバージョンは2で、クライアントAのキャッシ
ュ43及びクライアントBのキャッシュ45内のバージ
ョンは1、クライアントCのキャッシュ47内のバージ
ョンは2である。よって、最新のバージョンを有するク
ライアントBが前回更新処理を行ったということがわか
る。ここで、クライアントAがキャッシュ43に有する
オブジェクトoid1を更新しようとすると、クライア
ントAはサーバに更新要求updateRequest(oid1,conten
t)(オブジェクトの識別子,内容)を送る。クライアン
トAは更新要求を送ると、キャッシュ43内のオブジェ
クトoid1のバーションを' 0' にする。この' 0'
は、未承認(commit)中ではあるが最新のバージョンを
示す。このバージョンを' 0' にすることは本発明の特
徴の1つであり、これによりクライアントAの有するオ
ブジェクトoid1は、更新動作が承認されるまでサー
バ・キャッシュ41内における最新のバージョンを受け
取ることなく、それが最新であることを認識できるよう
になる。この' 0' は0である必要はなく、即ち他のバ
−ジョン番号として用いられるおそれのない数、記号等
でよい。
す。サーバとクライアントA,B及びCが通信回線49
にて接続されているのは、従来技術の説明の際に示した
図と同様である。ここで更新の対象となるオブジェクト
はオブジェクトoid1である。本発明では上述したC
2PLと同様にバージョン番号を用いてシステム内のオ
ブジェクトの内容の一貫性を保つようにしている。最初
の段階ではサーバ・キャッシュ41内のオブジェクトo
id1のバージョンは2で、クライアントAのキャッシ
ュ43及びクライアントBのキャッシュ45内のバージ
ョンは1、クライアントCのキャッシュ47内のバージ
ョンは2である。よって、最新のバージョンを有するク
ライアントBが前回更新処理を行ったということがわか
る。ここで、クライアントAがキャッシュ43に有する
オブジェクトoid1を更新しようとすると、クライア
ントAはサーバに更新要求updateRequest(oid1,conten
t)(オブジェクトの識別子,内容)を送る。クライアン
トAは更新要求を送ると、キャッシュ43内のオブジェ
クトoid1のバーションを' 0' にする。この' 0'
は、未承認(commit)中ではあるが最新のバージョンを
示す。このバージョンを' 0' にすることは本発明の特
徴の1つであり、これによりクライアントAの有するオ
ブジェクトoid1は、更新動作が承認されるまでサー
バ・キャッシュ41内における最新のバージョンを受け
取ることなく、それが最新であることを認識できるよう
になる。この' 0' は0である必要はなく、即ち他のバ
−ジョン番号として用いられるおそれのない数、記号等
でよい。
【0049】サーバはクライアントAからの更新要求を
受け取ると、サーバ・キャッシュ41内のオブジェクト
oid1に更新ロックをし、更新内容を受け取る。そし
て、サーバ・キャッシュ41内でのオブジェクトoid
1のバージョンである2を、1インクリメントして3と
する。サーバはクライアントAにrequestReturnは返さ
ない。すなわち更新処理が非同期に行うことができ、ク
ライアントAはサーバからの応答を待つことなく、次の
作業を行うことができる。また応答を行わない分、通信
回線49のトラフィックも混雑することなく済む。
受け取ると、サーバ・キャッシュ41内のオブジェクト
oid1に更新ロックをし、更新内容を受け取る。そし
て、サーバ・キャッシュ41内でのオブジェクトoid
1のバージョンである2を、1インクリメントして3と
する。サーバはクライアントAにrequestReturnは返さ
ない。すなわち更新処理が非同期に行うことができ、ク
ライアントAはサーバからの応答を待つことなく、次の
作業を行うことができる。また応答を行わない分、通信
回線49のトラフィックも混雑することなく済む。
【0050】図5に承認アルゴリズムの概要を示す。図
4において、クライアントAは自身のキャッシュ43内
のオブジェクトoid1に書き込みを行ったわけである
が、承認がなされたわけではない。よって、クライアン
トAは承認要求commitRequest()をサーバに送る。サー
バはサーバ・キャッシュ45内のオブジェクトoid1
の更新ロックを解除し、承認応答commitReturn(oid1,se
rverVersion)(オブジェクトの識別子,サーバ・バージ
ョン)をクライアントAに送る。サーバにより送られた
承認応答により、クライアントAは自身のキャッシュ4
3内のオブジェクトoid1のバージョンをサーバ・バ
ージョン(ここでは3)と同じものに更新し、承認動作
を終了する。上述したC2PLの承認動作では、承認応
答commitReturn()であって、実質的に何等のオブジェク
トを送ることがない。このように意味のない通信を行う
と通信回線49のトラフィックを混雑させることにな
る。また上述したC2PLの更新要求に対する承認応答
を行わなくとも、データの一貫性保持という点において
何等問題がない。本発明のようにすれば、通信回線とク
ライアントの処理のブロックという両方の問題を解決す
ることとなる。アボート・アルゴリズムはここでは示さ
ないが、基本的に同様に行う。また、同一トランザクシ
ョン内に複数の更新がある場合には承認又はアボート時
に、オブジェクトIDと対応するサーバ・バージョンを
まとめてクライアントに送る。
4において、クライアントAは自身のキャッシュ43内
のオブジェクトoid1に書き込みを行ったわけである
が、承認がなされたわけではない。よって、クライアン
トAは承認要求commitRequest()をサーバに送る。サー
バはサーバ・キャッシュ45内のオブジェクトoid1
の更新ロックを解除し、承認応答commitReturn(oid1,se
rverVersion)(オブジェクトの識別子,サーバ・バージ
ョン)をクライアントAに送る。サーバにより送られた
承認応答により、クライアントAは自身のキャッシュ4
3内のオブジェクトoid1のバージョンをサーバ・バ
ージョン(ここでは3)と同じものに更新し、承認動作
を終了する。上述したC2PLの承認動作では、承認応
答commitReturn()であって、実質的に何等のオブジェク
トを送ることがない。このように意味のない通信を行う
と通信回線49のトラフィックを混雑させることにな
る。また上述したC2PLの更新要求に対する承認応答
を行わなくとも、データの一貫性保持という点において
何等問題がない。本発明のようにすれば、通信回線とク
ライアントの処理のブロックという両方の問題を解決す
ることとなる。アボート・アルゴリズムはここでは示さ
ないが、基本的に同様に行う。また、同一トランザクシ
ョン内に複数の更新がある場合には承認又はアボート時
に、オブジェクトIDと対応するサーバ・バージョンを
まとめてクライアントに送る。
【0051】図6に本発明における読み取りアルゴリズ
ムの概要を示す。図6にはクライアントBがオブジェク
トoid1の読み取り動作を要求する場面が記載されて
いるが、これはC2PLにおける読み取りアルゴリズム
(図21)と同様である。なぜなら、更新は非同期にす
ることができても、読み取りは読み取りを要求したクラ
イアントのキャッシュ(ここではキャッシュ45)内に
最新の内容のオブジェクトが格納されている場合を除
き、サーバから最新の内容を読み取ってこなければ、必
要な処理が実行でないので、非同期ということはありえ
ないからである。また図示しないが、読み取り動作のみ
を行った場合においても、承認またはアボート処理が必
要となる。これは本発明が基本的に2相ロック方式を採
用しているので、従来技術の部分で説明したようにロッ
クを外す必要があるからである。残余の部分は同様であ
るので説明は省略する(図21での説明を参照のこ
と)。
ムの概要を示す。図6にはクライアントBがオブジェク
トoid1の読み取り動作を要求する場面が記載されて
いるが、これはC2PLにおける読み取りアルゴリズム
(図21)と同様である。なぜなら、更新は非同期にす
ることができても、読み取りは読み取りを要求したクラ
イアントのキャッシュ(ここではキャッシュ45)内に
最新の内容のオブジェクトが格納されている場合を除
き、サーバから最新の内容を読み取ってこなければ、必
要な処理が実行でないので、非同期ということはありえ
ないからである。また図示しないが、読み取り動作のみ
を行った場合においても、承認またはアボート処理が必
要となる。これは本発明が基本的に2相ロック方式を採
用しているので、従来技術の部分で説明したようにロッ
クを外す必要があるからである。残余の部分は同様であ
るので説明は省略する(図21での説明を参照のこ
と)。
【0052】図7乃至図10により、さらに詳しく本発
明を説明する。図7を参照すれば、クライアントの71
において更新処理が開始される。トランザクションが開
始され、クライアントは、自身のキャッシュ内にあるオ
ブジェクトiに書き込みを行う(ステップ73)。その
後、書き込みロックの要求、オブジェクトID(ここで
はi)及びその更新内容をパラメータとする更新要求up
dateRequest(objectID,data)をサーバへ送信する(ステ
ップ75)。ネットワークを介してこの更新要求はサー
バに送られる。クライアントは、自身のキャッシュ内の
オブジェクトiに対するクライアント・バージョンを'
0' に更新する。
明を説明する。図7を参照すれば、クライアントの71
において更新処理が開始される。トランザクションが開
始され、クライアントは、自身のキャッシュ内にあるオ
ブジェクトiに書き込みを行う(ステップ73)。その
後、書き込みロックの要求、オブジェクトID(ここで
はi)及びその更新内容をパラメータとする更新要求up
dateRequest(objectID,data)をサーバへ送信する(ステ
ップ75)。ネットワークを介してこの更新要求はサー
バに送られる。クライアントは、自身のキャッシュ内の
オブジェクトiに対するクライアント・バージョンを'
0' に更新する。
【0053】サーバは、自身のキャッシュ内にあるオブ
ジェクトiに書き込みロックを要求し(ステップ7
9)、そのオブジェクトi上に他のトランザクションに
よる書き込み又は読み出しロックがかけられていないか
をチェックする(ステップ81)。これは、ロックがか
かっているにもかかわらず本更新要求を認めてしまえ
ば、オブジェクトiのシステム内における一貫性を失っ
てしまうからである。もし、1つでもロックがかかって
いれば(書き込みロックは1つのみしか認められない
が、読み出しロックは複数認められる。)、ロックがは
ずれるまで、この更新要求はブロックされる。実際に
は、サーバのロック・マネージャが他のトランザクショ
ンの承認又はアボート要求を受け取るまで(ステップ9
5)、ロックは解除されない(ステップ97)。もし何
等のロックがなされていなければ、オブジェクトiに書
き込みロックをする(ステップ83)。
ジェクトiに書き込みロックを要求し(ステップ7
9)、そのオブジェクトi上に他のトランザクションに
よる書き込み又は読み出しロックがかけられていないか
をチェックする(ステップ81)。これは、ロックがか
かっているにもかかわらず本更新要求を認めてしまえ
ば、オブジェクトiのシステム内における一貫性を失っ
てしまうからである。もし、1つでもロックがかかって
いれば(書き込みロックは1つのみしか認められない
が、読み出しロックは複数認められる。)、ロックがは
ずれるまで、この更新要求はブロックされる。実際に
は、サーバのロック・マネージャが他のトランザクショ
ンの承認又はアボート要求を受け取るまで(ステップ9
5)、ロックは解除されない(ステップ97)。もし何
等のロックがなされていなければ、オブジェクトiに書
き込みロックをする(ステップ83)。
【0054】オブジェクトiにロックをした後は、サー
バのプロセッサのワークロードが少なくなるまで、更新
要求はサーバの更新待ち行列に入れられる。ワークロー
ドが少なくなれば、順に待ち行列から取り出し、オブジ
ェクトiの内容がサーバ・キャッシュに存在するかを検
査する(ステップ85)。もしキャッシュ内に存在して
いるならば、オブジェクトiのサーバ・バージョンを1
インクリメントする(serverVersion=serverVersion+
1)。もし存在していないのならば、1インクリメントす
ることはできないので、serverVersion=1とする。この
後にサーバ・キャッシュ内のオブジェクトiを更新し、
サーバ・キャッシュに存在しない場合には、更新内容を
キャッシュに書き込む。
バのプロセッサのワークロードが少なくなるまで、更新
要求はサーバの更新待ち行列に入れられる。ワークロー
ドが少なくなれば、順に待ち行列から取り出し、オブジ
ェクトiの内容がサーバ・キャッシュに存在するかを検
査する(ステップ85)。もしキャッシュ内に存在して
いるならば、オブジェクトiのサーバ・バージョンを1
インクリメントする(serverVersion=serverVersion+
1)。もし存在していないのならば、1インクリメントす
ることはできないので、serverVersion=1とする。この
後にサーバ・キャッシュ内のオブジェクトiを更新し、
サーバ・キャッシュに存在しない場合には、更新内容を
キャッシュに書き込む。
【0055】サーバは、トランザクションごとに更新テ
ーブルを有しており、更新要求に係るオブジェクトID
及びサーバ・バージョンを新項目としてこの更新テーブ
ルに加える(ステップ89)。また、サーバはサーバ・
ログを有しており、これはトランザクション承認時にデ
ィスクの内容を更新するためものである。よって、オブ
ジェクトiの更新内容をサーバ・ログに書き込む(ステ
ップ93)。
ーブルを有しており、更新要求に係るオブジェクトID
及びサーバ・バージョンを新項目としてこの更新テーブ
ルに加える(ステップ89)。また、サーバはサーバ・
ログを有しており、これはトランザクション承認時にデ
ィスクの内容を更新するためものである。よって、オブ
ジェクトiの更新内容をサーバ・ログに書き込む(ステ
ップ93)。
【0056】これにより更新アルゴリズムのひととおり
の説明は終了するが、トランザクションが終了するま
で、クライアントの更新要求又は読み出し要求にサーバ
が対応する動作は続く。すなわち、1のトランザクショ
ン内で複数のオブジェクトを更新したり、同一のオブジ
ェクトを複数回更新したりすることもある。さらに、複
数のオブジェクトを読み出したりすることもある。トラ
ンザクションは、次に説明する承認又はアボート・アル
ゴリズムが終了するまで続く。
の説明は終了するが、トランザクションが終了するま
で、クライアントの更新要求又は読み出し要求にサーバ
が対応する動作は続く。すなわち、1のトランザクショ
ン内で複数のオブジェクトを更新したり、同一のオブジ
ェクトを複数回更新したりすることもある。さらに、複
数のオブジェクトを読み出したりすることもある。トラ
ンザクションは、次に説明する承認又はアボート・アル
ゴリズムが終了するまで続く。
【0057】図8には、承認アルゴリズムの詳細を示
す。クライアントがトランザクションを終了させる場合
には、2つの方法がある。一方は、トランザクション内
の全ての処理(更新、読み出し)を有効なものとして扱
う方法、他方は、トランザクション内の全ての処理(更
新、読み出し)を無効なものとして扱う方法である。承
認アルゴリズムは、その前者にあたる。
す。クライアントがトランザクションを終了させる場合
には、2つの方法がある。一方は、トランザクション内
の全ての処理(更新、読み出し)を有効なものとして扱
う方法、他方は、トランザクション内の全ての処理(更
新、読み出し)を無効なものとして扱う方法である。承
認アルゴリズムは、その前者にあたる。
【0058】クライアントは、トランザクション内の全
ての処理を有効なものとして扱いたい場合に、承認要求
をサーバに送る(ステップ101)。commitRequest()
がネットワークを介してサーバに送られる。このcommit
Requestがサーバによって受け取られると、バックアッ
プ用であるサーバ・ログの内容でサーバの有するディス
クを更新する(ステップ103)。更新するのは当然更
新動作が生じた時のみである。この後、サーバは承認さ
れたトランザクションでオブジェクトになされたロック
を全て解除する(ステップ105)。これは更新及び読
み出しロックの両方である。そして、承認対象のトラン
ザクションの更新テーブル(更新が行われた場合に項目
が追加される。)の内容をクライアントの返す(ステッ
プ107)。これはcommitReturn(ID,version)により、
ネットワークを介してクライアントに送られる。クライ
アントは、送られてきた更新テーブルの内容で、自身の
キャッシュ内にあるオブジェクトのバージョンをサーバ
・バージョンで更新することとなる(ステップ10
9)。これにてトランザクションが終了する(ステップ
110)。
ての処理を有効なものとして扱いたい場合に、承認要求
をサーバに送る(ステップ101)。commitRequest()
がネットワークを介してサーバに送られる。このcommit
Requestがサーバによって受け取られると、バックアッ
プ用であるサーバ・ログの内容でサーバの有するディス
クを更新する(ステップ103)。更新するのは当然更
新動作が生じた時のみである。この後、サーバは承認さ
れたトランザクションでオブジェクトになされたロック
を全て解除する(ステップ105)。これは更新及び読
み出しロックの両方である。そして、承認対象のトラン
ザクションの更新テーブル(更新が行われた場合に項目
が追加される。)の内容をクライアントの返す(ステッ
プ107)。これはcommitReturn(ID,version)により、
ネットワークを介してクライアントに送られる。クライ
アントは、送られてきた更新テーブルの内容で、自身の
キャッシュ内にあるオブジェクトのバージョンをサーバ
・バージョンで更新することとなる(ステップ10
9)。これにてトランザクションが終了する(ステップ
110)。
【0059】図9に、アボート・アルゴリズムの詳細を
示す。クライアントが、何らかの理由でトランザクショ
ンの処理を放棄せざるを得なくなった時、アボート要求
をサーバに送る(ステップ121)。abortRequest()が
ネットワークを介してサーバに送られる。このabortReq
uestがサーバによって受け取られると、サーバは更新テ
ーブルを検査する。そのトランザクションの更新テーブ
ルに1つでも項目がある場合には、その項目のオブジェ
クトのサーバ・キャッシュでのコピーは無効にされる
(ステップ123)。これは、更新アルゴリズムの説明
において述べたように、更新要求をサーバが受け取った
場合にはキャッシュの内容を更新してしまうからであ
る。また、サーバの有するディスクに書き込む必要もな
いので、サーバ・ログの内容を破棄する(ステップ12
5)。そしてトランザクションは終了するので、ロック
は必要ない。書き込み及び読み出しロックを全て解除す
る(ステップ127)。上述のように更新されたオブジ
ェクトのサーバ・キャッシュの内容は無効にされたの
で、それに対応してクライアント・キャッシュにおいて
もそのオブジェクトを無効にしなければならない。そこ
で、サーバは更新テーブルの内容をクライアントに返す
(ステップ129)。abortReturn(ID)がクライアント
に送られ、クライアントはその送られてきたオブジェク
トのIDから、クライアント・キャッシュ内の更新され
たオブジェクトを見つけだし、無効にする(ステップ1
31)。これにてトランザクションが終了する(ステッ
プ133)。
示す。クライアントが、何らかの理由でトランザクショ
ンの処理を放棄せざるを得なくなった時、アボート要求
をサーバに送る(ステップ121)。abortRequest()が
ネットワークを介してサーバに送られる。このabortReq
uestがサーバによって受け取られると、サーバは更新テ
ーブルを検査する。そのトランザクションの更新テーブ
ルに1つでも項目がある場合には、その項目のオブジェ
クトのサーバ・キャッシュでのコピーは無効にされる
(ステップ123)。これは、更新アルゴリズムの説明
において述べたように、更新要求をサーバが受け取った
場合にはキャッシュの内容を更新してしまうからであ
る。また、サーバの有するディスクに書き込む必要もな
いので、サーバ・ログの内容を破棄する(ステップ12
5)。そしてトランザクションは終了するので、ロック
は必要ない。書き込み及び読み出しロックを全て解除す
る(ステップ127)。上述のように更新されたオブジ
ェクトのサーバ・キャッシュの内容は無効にされたの
で、それに対応してクライアント・キャッシュにおいて
もそのオブジェクトを無効にしなければならない。そこ
で、サーバは更新テーブルの内容をクライアントに返す
(ステップ129)。abortReturn(ID)がクライアント
に送られ、クライアントはその送られてきたオブジェク
トのIDから、クライアント・キャッシュ内の更新され
たオブジェクトを見つけだし、無効にする(ステップ1
31)。これにてトランザクションが終了する(ステッ
プ133)。
【0060】図10には、読み出しアルゴリズムの詳細
が示されている。クライアントは、トランザクション中
にオブジェクトjを読み出す必要がある場合、自身のキ
ャッシュ内にそのオブジェクトjが存在するかを検査す
る(ステップ141)。もし、オブジェクトjがキャッ
シュ内にある場合には、そのオブジェクトjのバージョ
ンを検査する。また、オブジェクトjがキャッシュ内に
ない場合には、その仮にそのオブジェクトjのバージョ
ンを' −1' として扱う(ステップ143)。クライア
ントはオブジェクトjを有していないことを知らせなけ
ればならないので、' −1' としたのである。バージョ
ンは、通常1から1づつインクリメントされるが、未承
認の最新バージョンが' 0' であり、それ以外のもので
なければならない。よって、' −1' でなくとも、上述
の条件を満たす他の数字又は記号でもよい。
が示されている。クライアントは、トランザクション中
にオブジェクトjを読み出す必要がある場合、自身のキ
ャッシュ内にそのオブジェクトjが存在するかを検査す
る(ステップ141)。もし、オブジェクトjがキャッ
シュ内にある場合には、そのオブジェクトjのバージョ
ンを検査する。また、オブジェクトjがキャッシュ内に
ない場合には、その仮にそのオブジェクトjのバージョ
ンを' −1' として扱う(ステップ143)。クライア
ントはオブジェクトjを有していないことを知らせなけ
ればならないので、' −1' としたのである。バージョ
ンは、通常1から1づつインクリメントされるが、未承
認の最新バージョンが' 0' であり、それ以外のもので
なければならない。よって、' −1' でなくとも、上述
の条件を満たす他の数字又は記号でもよい。
【0061】次にクライアントは、読み出しロック要
求、オブジェクトID、クライアント・バージョンをパ
ラメータとする読み出し要求をサーバに送る(ステップ
145)。readRequest(objectID,clientVersion)がネ
ットワークを介してサーバに送られる。サーバではread
Requestによりオブジェクトjに読み出しロックを要求
する(ステップ147)。ここでオブジェクトjに他の
トランザクションによる書き込みロックがなされている
かを検査する(ステップ149)。読み出しロックがか
かっている場合には問題ない。オブジェクトjのシステ
ム内における内容の一貫性に問題ないからである。も
し、書き込みロックがなされているならば、ロック・マ
ネージャはそのトランザクションが終了するまで待ち
(ステップ157)、そのトランザクションが終了すれ
ばロックが解除される(ステップ159)。
求、オブジェクトID、クライアント・バージョンをパ
ラメータとする読み出し要求をサーバに送る(ステップ
145)。readRequest(objectID,clientVersion)がネ
ットワークを介してサーバに送られる。サーバではread
Requestによりオブジェクトjに読み出しロックを要求
する(ステップ147)。ここでオブジェクトjに他の
トランザクションによる書き込みロックがなされている
かを検査する(ステップ149)。読み出しロックがか
かっている場合には問題ない。オブジェクトjのシステ
ム内における内容の一貫性に問題ないからである。も
し、書き込みロックがなされているならば、ロック・マ
ネージャはそのトランザクションが終了するまで待ち
(ステップ157)、そのトランザクションが終了すれ
ばロックが解除される(ステップ159)。
【0062】ロック解除されるかロックがなされていな
ければ、オブジェクトjがサーバ・キャッシュ内に存在
しているかを検査する(ステップ151)。もし、サー
バ・キャッシュ内になければ、ディスクから読み出し、
serverVersionを1にセットする。また、この場合に
は、クライアント・キャッシュと一貫性がとれていない
のが明らかであるから、ディスクから読み出したオブジ
ェクトjをクライアントに送らねばならない。そこで、
オブジェクトjを送ることを明らかにするためにsendDa
taFlagをセットする(ステップ155)。もし、サーバ
・キャッシュにオブジェクトjが存在するならば、クラ
イアント・バージョンとサーバ・バージョンを比較す
る。同じであるか、クライアント・バージョンが' 0'
であれば、クライアントにオブジェクトjの内容を送り
直す必要はないので、sendDataFlagはセットしない。そ
うでない場合には、クライアント・キャッシュとサーバ
・キャッシュの内容に差異があるのでsendDataFlagをセ
ットする(ステップ153)。サーバは、クライアント
にサーバ・バージョンとsendDataFlagがセットされてい
る場合にはオブジェクトjの内容を送信する(ステップ
161)。
ければ、オブジェクトjがサーバ・キャッシュ内に存在
しているかを検査する(ステップ151)。もし、サー
バ・キャッシュ内になければ、ディスクから読み出し、
serverVersionを1にセットする。また、この場合に
は、クライアント・キャッシュと一貫性がとれていない
のが明らかであるから、ディスクから読み出したオブジ
ェクトjをクライアントに送らねばならない。そこで、
オブジェクトjを送ることを明らかにするためにsendDa
taFlagをセットする(ステップ155)。もし、サーバ
・キャッシュにオブジェクトjが存在するならば、クラ
イアント・バージョンとサーバ・バージョンを比較す
る。同じであるか、クライアント・バージョンが' 0'
であれば、クライアントにオブジェクトjの内容を送り
直す必要はないので、sendDataFlagはセットしない。そ
うでない場合には、クライアント・キャッシュとサーバ
・キャッシュの内容に差異があるのでsendDataFlagをセ
ットする(ステップ153)。サーバは、クライアント
にサーバ・バージョンとsendDataFlagがセットされてい
る場合にはオブジェクトjの内容を送信する(ステップ
161)。
【0063】readReturn(severVersion,data)がクライ
アントに送られ、クライアントはオブジェクトjの内容
が送られていれば、その内容で自身のキャッシュを更新
し、クライアント・バージョンをサーバ・バージョンに
更新する。そうでない場合には、自身のキャッシュにあ
るオブジェクトjが最新であるから、それをもって処理
を行うことになる(ステップ163)。
アントに送られ、クライアントはオブジェクトjの内容
が送られていれば、その内容で自身のキャッシュを更新
し、クライアント・バージョンをサーバ・バージョンに
更新する。そうでない場合には、自身のキャッシュにあ
るオブジェクトjが最新であるから、それをもって処理
を行うことになる(ステップ163)。
【0064】図11にupdateRequest(objectID,data)の
データ・フォーマットを示す。dataはオブジェクトの内
容を示す。このupdateRequestは、上述したように更新
要求の際にクライアントがサーバに送信するものであ
る。更新要求であるから、updateRequestの最初に1バ
イトのwriteLock要求部分があり、書き込みロックをす
る対象のオブジェクトのobjectID(8バイト)が続く。
この後ろに更新されたオブジェクトのデータ・サイズを
示す4バイトのdata_size、そのデータ・サイズの更新
内容data_contentが付く。ここで、updateRequest(obje
ctID,data)のdataは、data_sizeとdata_contentからな
る。更新要求updateRequestでは、この内容のみで十分
である。
データ・フォーマットを示す。dataはオブジェクトの内
容を示す。このupdateRequestは、上述したように更新
要求の際にクライアントがサーバに送信するものであ
る。更新要求であるから、updateRequestの最初に1バ
イトのwriteLock要求部分があり、書き込みロックをす
る対象のオブジェクトのobjectID(8バイト)が続く。
この後ろに更新されたオブジェクトのデータ・サイズを
示す4バイトのdata_size、そのデータ・サイズの更新
内容data_contentが付く。ここで、updateRequest(obje
ctID,data)のdataは、data_sizeとdata_contentからな
る。更新要求updateRequestでは、この内容のみで十分
である。
【0065】図12にcommitReturn(ID,version)のデー
タ・フォーマットを示す。このcommitReturnは、commit
Request()に応答してサーバがクライアントに送信する
ものであり、更新テーブルの内容を含む。この更新テー
ブルには複数の項目が存在することもある。よって、8
バイトのオブジェクトIDと、2バイトのサーバ・バー
ジョンとが更新テーブルの項目数だけ続く形式になる。
但し、最後のみ8バイトのNULLを付け、終了するこ
とを示す。
タ・フォーマットを示す。このcommitReturnは、commit
Request()に応答してサーバがクライアントに送信する
ものであり、更新テーブルの内容を含む。この更新テー
ブルには複数の項目が存在することもある。よって、8
バイトのオブジェクトIDと、2バイトのサーバ・バー
ジョンとが更新テーブルの項目数だけ続く形式になる。
但し、最後のみ8バイトのNULLを付け、終了するこ
とを示す。
【0066】図13にabortReturn(ID)のデータ・フォ
ーマットを示す。このabortReturnは、abortRequestに
応答してサーバがクライアントに送信するものであり、
更新テーブルの内容を含む。しかし、実際はクライアン
トのキャッシュ内にある更新されたオブジェクトを無効
にするためにabortReturnは必要なのであるから、commi
tReturnのようなサーバ・バージョンは必要ない。よっ
て、更新テーブル内のオブジェクトIDのみ含ませれば
よい。但し、上述のように更新テーブルには複数の項目
が存在する可能性があるので、その項目数だけ8バイト
のオブジェクトIDが続く。そして、終了を示すために
8バイトのNULLが最後に付く。
ーマットを示す。このabortReturnは、abortRequestに
応答してサーバがクライアントに送信するものであり、
更新テーブルの内容を含む。しかし、実際はクライアン
トのキャッシュ内にある更新されたオブジェクトを無効
にするためにabortReturnは必要なのであるから、commi
tReturnのようなサーバ・バージョンは必要ない。よっ
て、更新テーブル内のオブジェクトIDのみ含ませれば
よい。但し、上述のように更新テーブルには複数の項目
が存在する可能性があるので、その項目数だけ8バイト
のオブジェクトIDが続く。そして、終了を示すために
8バイトのNULLが最後に付く。
【0067】図14にreadRequest(objectID,clientVer
sion)のデータ・フォーマットを示す。このreadRequest
はクライアントが読み出し要求を行う際にサーバに送信
する。読み出し要求をする際には読み出しロックをしな
ければならないので、1バイトの読み出しロック要求部
分があり、その後に読み出すオブジェクトのID(8バ
イト)がある。そして、クライアント・バージョンとサ
ーバ・バージョンの比較をするので2バイトのclientVe
rsion部分がある。
sion)のデータ・フォーマットを示す。このreadRequest
はクライアントが読み出し要求を行う際にサーバに送信
する。読み出し要求をする際には読み出しロックをしな
ければならないので、1バイトの読み出しロック要求部
分があり、その後に読み出すオブジェクトのID(8バ
イト)がある。そして、クライアント・バージョンとサ
ーバ・バージョンの比較をするので2バイトのclientVe
rsion部分がある。
【0068】図15にreadReturn(serverVersion,data)
のデータ・フォーマットを示す。このreadReturnは、ク
ライアントのreadRequestに応答してサーバが送信す
る。クライアント・キャッシュのバージョンをサーバ・
バージョンで更新しなければならないので2バイトのse
rverVersion部分がある。但し、クライアント・バージ
ョンとサーバ・バージョンが同じである場合(クライア
ント・バージョンが最新である場合)、更新は行われな
い。次に、読み出したオブジェクトのデータ・サイズを
示す4バイトのdata_size部分と、そのデータ・サイズ
分のオブジェクトの内容data_contentがある。但し、ク
ライアント・バージョンが最新であることが分かった場
合には、サーバからクライアントにオブジェクトの内容
を送る必要がないので、その時にはサーバ・バージョン
のみ送られる。なお、readReturn(serverVersion,data)
のdataは、data_sizeとdata_contentからなる。
のデータ・フォーマットを示す。このreadReturnは、ク
ライアントのreadRequestに応答してサーバが送信す
る。クライアント・キャッシュのバージョンをサーバ・
バージョンで更新しなければならないので2バイトのse
rverVersion部分がある。但し、クライアント・バージ
ョンとサーバ・バージョンが同じである場合(クライア
ント・バージョンが最新である場合)、更新は行われな
い。次に、読み出したオブジェクトのデータ・サイズを
示す4バイトのdata_size部分と、そのデータ・サイズ
分のオブジェクトの内容data_contentがある。但し、ク
ライアント・バージョンが最新であることが分かった場
合には、サーバからクライアントにオブジェクトの内容
を送る必要がないので、その時にはサーバ・バージョン
のみ送られる。なお、readReturn(serverVersion,data)
のdataは、data_sizeとdata_contentからなる。
【0069】上述したupdateRequest,commitReturn,abo
rtReturn,readRequest,readReturnのデータ・フォーマ
ットの先頭部分には、それぞれのRequest,Returnを識別
するビット列が付く。これらのビット列はシステム等に
より異なり、各種の方法がある。例えば、それぞれに番
号を付して、それを用いる場合や、これらのコマンドの
名前をコード化したもの等がある。これらの事項は本発
明の主要部でないのでこれ以上述べない。但し、上述に
含まれないcommitReturn,abortReturnにはデータはな
く、それらを識別するためのビット列のみであるから図
は省略した。
rtReturn,readRequest,readReturnのデータ・フォーマ
ットの先頭部分には、それぞれのRequest,Returnを識別
するビット列が付く。これらのビット列はシステム等に
より異なり、各種の方法がある。例えば、それぞれに番
号を付して、それを用いる場合や、これらのコマンドの
名前をコード化したもの等がある。これらの事項は本発
明の主要部でないのでこれ以上述べない。但し、上述に
含まれないcommitReturn,abortReturnにはデータはな
く、それらを識別するためのビット列のみであるから図
は省略した。
【0070】以上本発明を説明したが、構成については
種々の変更が可能であり、例えばオブジェクトのバージ
ョンの付け方、特に更新時にクライアントのバージョン
を仮に' 0' にすること、読み出し時にクライアントの
バージョンを' −1' にすることは、他のバージョン番
号から識別できればよい。また、他のバージョン番号は
昇順で付けてあるが、一定値からの降順で付してもよ
い。また、クライアントとサーバの数は幾つでもよく、
ネットワークの種類も任意である。サーバが複数の場合
(マルチ・サーバ)、1つのクライアントから並列に数
個のサーバに対してブロックせずに更新できるので、も
っと効果的である。この場合、複数のサーバが並列に働
くので、システム全体のパフォーマンスが高くなる。
種々の変更が可能であり、例えばオブジェクトのバージ
ョンの付け方、特に更新時にクライアントのバージョン
を仮に' 0' にすること、読み出し時にクライアントの
バージョンを' −1' にすることは、他のバージョン番
号から識別できればよい。また、他のバージョン番号は
昇順で付けてあるが、一定値からの降順で付してもよ
い。また、クライアントとサーバの数は幾つでもよく、
ネットワークの種類も任意である。サーバが複数の場合
(マルチ・サーバ)、1つのクライアントから並列に数
個のサーバに対してブロックせずに更新できるので、も
っと効果的である。この場合、複数のサーバが並列に働
くので、システム全体のパフォーマンスが高くなる。
【0071】
【発明の効果】以上のように、上記の同期方式の欠点を
解決し、高パフォーマンス及び高スループットのクライ
アント・サーバ・システムを提供できた。
解決し、高パフォーマンス及び高スループットのクライ
アント・サーバ・システムを提供できた。
【0072】また、クライアント・サーバ・システムに
おいて、非同期通信を使っても一貫性を保証するロック
・システムを取り入れることもできた。
おいて、非同期通信を使っても一貫性を保証するロック
・システムを取り入れることもできた。
【0073】さらに、処理の待ち時間を減少させ、通信
回線の負荷を軽減し、システムとしての能力を最大限に
引き出すこともできた。
回線の負荷を軽減し、システムとしての能力を最大限に
引き出すこともできた。
【0074】本発明の典型的な適用範囲としてはデータ
ベースが考えられるが、これのみにとどまらず、トラン
ザクション単位で処理を行うクライアント・サーバ・シ
ステムであればよい。このように適用範囲が広いのも1
つの効果と言える。本発明の典型的な適用例としては、
複数のレプリカ・サーバ(同じオブジェクトのコピーを
有するサーバ)を並列に更新するシステムが取り上げら
れる。レプリカ・サーバは、高信頼性であり、ローカル
・コピーにより高速アクセスができるので、実際のシス
テムではよく用いられる。
ベースが考えられるが、これのみにとどまらず、トラン
ザクション単位で処理を行うクライアント・サーバ・シ
ステムであればよい。このように適用範囲が広いのも1
つの効果と言える。本発明の典型的な適用例としては、
複数のレプリカ・サーバ(同じオブジェクトのコピーを
有するサーバ)を並列に更新するシステムが取り上げら
れる。レプリカ・サーバは、高信頼性であり、ローカル
・コピーにより高速アクセスができるので、実際のシス
テムではよく用いられる。
【図1】本発明及び従来技術の全体ブロック図である。
【図2】本発明のサーバのブロック図である。
【図3】本発明のクライアントのブロック図である。
【図4】本発明に書き込み(更新)アルゴリズムの概略
図である。
図である。
【図5】本発明に承認アルゴリズムの概略図である。
【図6】本発明の読み出しアルゴリズムの概略図であ
る。
る。
【図7】本発明の書き込みアルゴリズムの詳細な図面で
ある。
ある。
【図8】本発明の承認アルゴリズムの詳細な図面であ
る。
る。
【図9】本発明のアボート・アルゴリズムの詳細な図面
である。
である。
【図10】本発明の読み出しアルゴリズムの詳細な図面
である。
である。
【図11】本発明のupdateRequestのデータ・フォーマ
ットである。
ットである。
【図12】本発明のcommitReturnのデータ・フォーマッ
トである。
トである。
【図13】本発明のabortReturnのデータ・フォーマッ
トである。
トである。
【図14】本発明のreadRequestのデータ・フォーマッ
トである。
トである。
【図15】本発明のreadReturnのデータ・フォーマット
である。
である。
【図16】従来技術1の更新アルゴリズムの概略図であ
る。
る。
【図17】従来技術1の承認アルゴリズムの概略図であ
る。
る。
【図18】従来技術1の読み出しアルゴリズムの概略図
である。
である。
【図19】従来技術2の更新アルゴリズムの概略図であ
る。
る。
【図20】従来技術2の承認アルゴリズムの概略図であ
る。
る。
【図21】従来技術2のアボート・アルゴリズムの概略
図である。
図である。
1 ネットワーク 3 サーバ 5 クライアントA 7 クライアントB 9 ロック・マネージャ 11 サーバ・キャッシュ 13 クライアント・キャッシュa 15 クライアント・キャッシュb 17 ディスク 21 サーバ・キャッシュ 23 クライアント・キャッシュa 25 クライアント・キャッシュb 27 クライアント・キャッシュc 29 通信回線 31 サーバ・キャッシュ 33 クライアント・キャッシュa 35 クライアント・キャッシュb 37 クライアント・キャッシュc 39 通信回線 41 サーバ・キャッシュ 43 クライアント・キャッシュa 45 クライアント・キャッシュb 47 クライアント・キャッシュc 49 通信回線 301 制御装置 309 サーバ・ログ 311 更新テーブル 313 フラグ 501 制御装置
Claims (17)
- 【請求項1】サーバと、複数のクライアントと、前記サ
ーバと前記クライアント間を接続するネットワークとを
有するクライアント・サーバ・コンピュータ・システム
において、処理の対象となるオブジェクトはID及びそ
の更新記録であるバージョン値により識別され、 各クライアント・コンピュータが、 キャッシュと、 前記キャッシュ内にあるオブジェクトのバージョン値を
管理する管理手段と、 前記キャッシュ内にあるオブジェクトを更新する手段
と、 更新されたオブジェクトのID及びその内容をサーバに
転送する転送手段とを有し、 前記管理手段が前記転送手段に応答して前記更新された
オブジェクトのバージョン値を所定値にした後に、他の
処理を開始することを特徴とするクライアント・コンピ
ュータ。 - 【請求項2】トランザクションが承認されて終了した場
合、終了時までに更新されたオブジェクトのID及び最
新のバージョン値を前記サーバから受信する受信手段を
さらに有し、 前記管理手段が、前記受信手段に応答して前記更新され
たオブジェクトのバージョン値を受信した前記最新のバ
ージョン値に更新することを特徴とする請求項1記載の
クライアント・コンピュータ。 - 【請求項3】トランザクションがアボートされて終了し
た場合に、終了時までに更新されたオブジェクトのID
を前記サーバから受信する手段と、 受信した前記IDにかかる前記オブジェクトを無効にす
る手段とをさらに有する請求項1記載のクライアント・
コンピュータ。 - 【請求項4】サーバと、複数のクライアントと、前記サ
ーバと前記クライアント間を接続するネットワークとを
有するクライアント・サーバ・コンピュータ・システム
において、処理の対象となるオブジェクトはID及びそ
の更新記録であるバージョン値により識別され、 サーバ・コンピュータが、 キャッシュと、 前記キャッシュ内にあるオブジェクトのバージョン値を
管理するバージョン管理手段と、 前記クライアントにより更新されたオブジェクトのID
及びその内容を、前記クライアントから受信する受信手
段と、 前記更新されたオブジェクトに書き込みロックをかける
ロック管理手段とを有し、 前記バージョン管理手段が前記更新されたオブジェクト
のバージョン値を最新の値に更新し、 さらに、 トランザクションが承認されて終了した場合に、終了時
までに更新されたオブジェクトのID及び最新のバージ
ョン値を前記クライアントに送る手段を有することを特
徴とするサーバ・コンピュータ。 - 【請求項5】トランザクションがアボートされて終了し
た場合に、終了時までに更新されたオブジェクトの内容
を破棄し、前記更新されたオブジェクトのIDを前記ク
ライアントに送る手段をさらに有する請求項4記載のサ
ーバ・コンピュータ。 - 【請求項6】各々キャッシュを含むサーバ及び複数のク
ライアントと、前記サーバと前記クライアント間を接続
するネットワークとを有するクライアント・サーバ・コ
ンピュータ・システムにおいて、処理の対象となるオブ
ジェクトはID及びその更新記録であるバージョン値に
より識別され、 前記クライアントのキャッシュ内にあるオブジェクトを
更新する更新ステップと、 更新された前記オブジェクトのID及びその内容をサー
バに転送する転送ステップと、 前記転送ステップに応答して前記クライアント内の更新
されたオブジェクトのバージョン値を所定値にするバー
ジョン更新ステップと、 前記バージョン更新ステップに応答して、前記クライア
ントに他の処理を開始させるステップと、 前記転送ステップに応答して、前記クライアントにより
更新されたオブジェクトのID及びその内容を、前記サ
ーバにおいて受信する受信ステップと、 前記サーバにおける前記更新されたオブジェクトに、書
き込みロックをかけるロック・ステップと、 前記更新されたオブジェクトのサーバにおけるバージョ
ン値を最新の値に更新する更新ステップと、 トランザクションが承認されて終了した場合に、終了時
までに更新されたオブジェクトのID及び最新のバージ
ョン値を前記クライアントに送るステップとを含むオブ
ジェクト更新方法。 - 【請求項7】前記サーバにおける前記更新されたオブジ
ェクトのID及び最新のバージョン値を前記クライアン
トにおいて受信する受信ステップと、 前記クライアントにおける前記更新されたオブジェクト
のバージョン値を、受信した前記最新のバージョン値に
更新するステップとをさらに含む請求項6記載のオブジ
ェクト更新方法。 - 【請求項8】トランザクションがアボートされて終了し
た場合に、終了時までに更新されたオブジェクトの内容
を破棄し、前記更新されたオブジェクトのIDを前記ク
ライアントに送るステップをさらに含む請求項6又は請
求項7記載のオブジェクト更新方法。 - 【請求項9】トランザクションがアボートされて終了し
た場合に、終了時までに更新されたオブジェクトのID
を前記クライアントにて受信するステップと、 受信された前記IDにかかる前記クライアント内の前記
オブジェクトを無効にするステップとをさらに含む請求
項8記載のオブジェクト更新方法。 - 【請求項10】各々キャッシュを含むサーバ及び複数の
クライアントと、前記サーバと前記クライアント間を接
続するネットワークとを有するクライアント・サーバ・
コンピュータ・システムであって、処理の対象となるオ
ブジェクトはID及びその更新記録であるバージョン値
により識別され、 前記クライアントのキャッシュ内にあるオブジェクトを
更新する、前記クライアント内の更新手段と、 更新された前記オブジェクトのID及びその内容をサー
バに転送する、前記クライアント内の転送手段と、 前記転送に応答して前記更新されたオブジェクトのバー
ジョン値を所定値にする、前記クライアント内のバージ
ョン更新手段と、 前記バージョン更新手段に応答して、前記クライアント
に他の処理を開始させる手段と、 前記転送に応答して、前記クライアントにより更新され
たオブジェクトのID及びその内容を受信する、前記サ
ーバ内の受信手段と、 前記サーバにおいて前記更新されたオブジェクトに書き
込みロックをかける、前記サーバ内のロック管理手段
と、 前記更新されたオブジェクトのサーバにおけるバージョ
ン値を最新の値に更新する、前記サーバ内のバージョン
管理手段と、 トランザクションが承認されて終了した場合に、終了時
までに更新されたオブジェクトのID及び最新のバージ
ョン値を前記クライアントに送る、前記サーバ内の転送
手段とを有するクライアント・サーバ・コンピュータ・
システム。 - 【請求項11】前記サーバ内の転送手段が、トランザク
ションがアボートされて終了した場合に、終了時までに
更新されたオブジェクトの内容を破棄し、前記更新され
たオブジェクトのIDを前記クライアントに送ることを
特徴とする請求項10記載のクライアント・サーバ・コ
ンピュータ・システム。 - 【請求項12】トランザクションがアボートされて終了
した場合に、終了時までに更新されたオブジェクトのI
Dを受信する、前記クライアント内の受信手段と、 受信された前記IDにかかる前記クライアント内のオブ
ジェクトを無効にするクライアント内の手段とをさらに
有する請求項11記載のクライアント・サーバ・コンピ
ュータ・システム。 - 【請求項13】トランザクションが承認されて終了した
場合に、終了時までに更新されたオブジェクトのID及
び最新のバージョン値を受信する前記クライアントの受
信手段をさらに有し、 前記クライアント内のバージョン更新手段が、前記更新
されたオブジェクトの最新のバージョン値で前記クライ
アント内のバージョン値を更新することを特徴とする請
求項10記載のクライアント・サーバ・コンピュータ・
システム。 - 【請求項14】各々キャッシュを含むサーバ及び複数の
クライアントと、前記サーバと前記クライアント間を接
続するネットワークとを有するクライアント・サーバ・
コンピュータ・システムであって、処理の対象となるオ
ブジェクトはID及びその更新記録であるバージョン値
により識別され、 前記クライアントのキャッシュ内にあるオブジェクトを
更新する、前記クライアント内の更新手段と、 あるオブジェクトの読み出し要求を行う手段と、 更新されたオブジェクトのID及びその内容、又は読み
出し要求のなされた前記オブジェクトのID及びそのオ
ブジェクトのクライアントでのバージョン値をサーバに
転送する、前記クライアント内の転送手段と、 オブジェクトが更新された場合には前記更新されたオブ
ジェクトのID及びその内容の転送に応答して、前記更
新されたオブジェクトのバージョン値を所定値にする、
前記クライアント内のバージョン管理手段と、 オブジェクトが更新された場合には前記バージョン管理
手段に応答して前記クライアントに他の処理を開始さ
せ、読み出し要求がなされた場合には前記クライアント
に処理を休止させる手段と、 前記クライアント内の転送手段に応答して、前記クライ
アントにより更新されたオブジェクトのID及びその内
容、又は前記読み出し要求のなされたオブジェクトのI
D及びそのオブジェクトのクライアントでのバージョン
値を受信する、前記サーバ内の受信手段と、 オブジェクトが更新された場合には前記更新されたオブ
ジェクトに書き込みロックをかけ、読み出し要求がなさ
れた場合には前記読み出し要求のなされたオブジェクト
に読み出しロックをかける、前記サーバ内のロック管理
手段と、 オブジェクトが更新された場合には前記更新されたオブ
ジェクトのサーバにおけるバージョン値を最新の値に更
新し、読み出し要求がなされた場合には前記転送された
クライアントでのバージョン値と前記サーバ内でのバー
ジョン値を比較する、前記サーバ内のバージョン管理手
段と、 読み出し要求がなされた場合であって、前記サーバ内の
バージョン管理手段により前記クライアントでのバージ
ョン値が前記サーバ内でのバージョン値より古いと判断
された場合には、前記読み出し要求のなされたオブジェ
クトの内容及び前記サーバでのバージョン値を前記サー
バから転送し、それ以外の場合には前記読み出し要求の
なされたオブジェクトの前記サーバでのバージョン値を
転送し、 オブジェクトが更新された場合であって、トランザクシ
ョンが承認されて終了した場合に、終了時までに更新さ
れたオブジェクトの最新のバージョン値を前記クライア
ントに送る、前記サーバ内の転送手段と、 読み出し要求がなされた場合には、前記サーバ内の転送
手段に応答して前記読み出し要求のなされたオブジェク
トの内容、前記サーバ内のバージョン値を受信し、 オブジェクトが更新された場合であって、トランザクシ
ョンが承認されて終了した場合には、前記トランザクシ
ョンの終了時までに更新されたオブジェクトのID及び
最新のバージョン値を受信する、前記クライアント内の
受信手段とを有するクライアント・サーバ・コンピュー
タ・システム。 - 【請求項15】オブジェクトを更新した場合であって、 トランザクションが承認されて終了した場合に、前記ク
ライアント内のバージョン管理手段が、前記クライアン
トにおける前記更新されたオブジェクトのバージョン値
を受信した前記最新のバージョン値に前記クライアント
内のバージョン値を更新することを特徴とする請求項1
4記載のクライアント・サーバ・コンピュータ・システ
ム。 - 【請求項16】オブジェクトを更新した場合であって、 トランザクションがアボートされて終了した場合に、前
記サーバ内の転送手段は、トランザクションが終了する
までに更新されたオブジェクトのIDをクライアントに
送り、 前記クライアント内の受信手段は、前記更新されたオブ
ジェクトのIDを受信し、 前記クライアント内のバージョン管理手段が、受信した
前記IDにかかる前記オブジェクトを無効とすることを
特徴とする請求項14記載のクライアント・サーバ・コ
ンピュータ・システム。 - 【請求項17】読み出し要求がなされた場合であって、 前記クライアント内の受信手段に応答して、前記休止し
た処理を再開させる手段をさらに有する請求項14記載
のクライアント・サーバ・コンピュータ・システム。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6142764A JP2507235B2 (ja) | 1994-06-24 | 1994-06-24 | クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法 |
| EP95304316A EP0689140A3 (en) | 1994-06-24 | 1995-06-21 | Client-server computer system and method for updating the client, server, and objects |
| US08/494,458 US5734898A (en) | 1994-06-24 | 1995-06-26 | Client-server computer system and method for updating the client, server, and objects |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6142764A JP2507235B2 (ja) | 1994-06-24 | 1994-06-24 | クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0816444A true JPH0816444A (ja) | 1996-01-19 |
| JP2507235B2 JP2507235B2 (ja) | 1996-06-12 |
Family
ID=15323046
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6142764A Expired - Lifetime JP2507235B2 (ja) | 1994-06-24 | 1994-06-24 | クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5734898A (ja) |
| EP (1) | EP0689140A3 (ja) |
| JP (1) | JP2507235B2 (ja) |
Cited By (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000511010A (ja) * | 1996-05-15 | 2000-08-22 | アールタイム・インコーポレーテッド | 多ユーザアプリケーションにおける通信ネットワーク用の分配システム |
| KR100404786B1 (ko) * | 1998-03-31 | 2003-11-07 | 인터내셔널 비지네스 머신즈 코포레이션 | 클라이언트/서버 컴퓨팅 시스템에서 이용되는 클라이언트/서버 프로세싱 장치 및 방법과 기록 매체 |
| JP2006525571A (ja) * | 2003-04-29 | 2006-11-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピューティング環境のオブジェクトへのアクセスの管理 |
| JP2007501468A (ja) * | 2003-08-06 | 2007-01-25 | オラクル・インターナショナル・コーポレイション | 効率的なバージョン制御を有するデータベース管理システム |
| JP2010157090A (ja) * | 2008-12-26 | 2010-07-15 | Works Applications:Kk | 帳票管理装置、帳票管理プログラム及び帳票管理方法 |
| JP2011003147A (ja) * | 2009-06-22 | 2011-01-06 | Nippon Telegr & Teleph Corp <Ntt> | クライアント装置、サーバ装置、コンピュータシステム、および、ファイルシステムアクセス方法、並びに、クライアントプログラムおよびサーバプログラム |
| JP2012033126A (ja) * | 2010-08-03 | 2012-02-16 | Nec Corp | データベースシステム、データベース更新方法およびデータベース更新プログラム |
| JP2015230689A (ja) * | 2014-06-06 | 2015-12-21 | 株式会社東芝 | データベース装置およびデータアクセス方法 |
| JP2016066333A (ja) * | 2014-09-26 | 2016-04-28 | 株式会社野村総合研究所 | データベースのロック制御システム及び方法 |
| US9386073B2 (en) | 2012-08-20 | 2016-07-05 | International Business Machines Corporation | Techniques for performing processing for database |
| JPWO2014199568A1 (ja) * | 2013-06-12 | 2017-02-23 | 日本電気株式会社 | 永続記憶装置へのデータ書込制御方法 |
| WO2017056145A1 (ja) * | 2015-09-28 | 2017-04-06 | 株式会社日立製作所 | ストレージシステム、ストレージ装置、およびストレージシステムの制御方法 |
| JP2018537740A (ja) * | 2015-10-29 | 2018-12-20 | ドロップボックス, インコーポレイテッド | デジタルコンテンツアイテムのマルチプレミスホスティングのための同期プロトコル |
| US10691718B2 (en) | 2015-10-29 | 2020-06-23 | Dropbox, Inc. | Synchronization protocol for multi-premises hosting of digital content items |
| US10699025B2 (en) | 2015-04-01 | 2020-06-30 | Dropbox, Inc. | Nested namespaces for selective content sharing |
| US10819559B2 (en) | 2016-01-29 | 2020-10-27 | Dropbox, Inc. | Apparent cloud access for hosted content items |
| US10963430B2 (en) | 2015-04-01 | 2021-03-30 | Dropbox, Inc. | Shared workspaces with selective content item synchronization |
| US11290531B2 (en) | 2019-12-04 | 2022-03-29 | Dropbox, Inc. | Immediate cloud content item creation from local file system interface |
Families Citing this family (136)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0863382A (ja) * | 1994-08-19 | 1996-03-08 | Fujitsu Ltd | 分散システムにおけるデータ整合性確認方法及びデータ整合性確認装置 |
| US5956712A (en) * | 1995-06-07 | 1999-09-21 | International Business Machines Corporation | Byte range locking in a distributed environment |
| US5848241A (en) * | 1996-01-11 | 1998-12-08 | Openframe Corporation Ltd. | Resource sharing facility functions as a controller for secondary storage device and is accessible to all computers via inter system links |
| GB2313524A (en) * | 1996-05-24 | 1997-11-26 | Ibm | Providing communications links in a computer network |
| JPH103416A (ja) * | 1996-06-14 | 1998-01-06 | Canon Inc | 情報処理装置およびその方法 |
| US6006034A (en) * | 1996-09-05 | 1999-12-21 | Open Software Associates, Ltd. | Systems and methods for automatic application version upgrading and maintenance |
| AT1751U1 (de) * | 1996-09-30 | 1997-10-27 | Kuehn Eva | Koordinations-system |
| US6138141A (en) * | 1996-10-18 | 2000-10-24 | At&T Corp | Server to client cache protocol for improved web performance |
| US6061740A (en) * | 1996-12-09 | 2000-05-09 | Novell, Inc. | Method and apparatus for heterogeneous network management |
| KR100258966B1 (ko) * | 1997-05-02 | 2000-06-15 | 윤종용 | 시리얼 통신을 이용한 바이오스 업그레이드 방법 |
| US6061714A (en) * | 1997-05-07 | 2000-05-09 | International Business Machines Corporation | Persistent cache synchronization and start up system |
| 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 |
| US5999947A (en) * | 1997-05-27 | 1999-12-07 | Arkona, Llc | Distributing database differences corresponding to database change events made to a database table located on a server computer |
| US6219675B1 (en) * | 1997-06-05 | 2001-04-17 | Microsoft Corporation | Distribution of a centralized database |
| US6145006A (en) * | 1997-06-25 | 2000-11-07 | Emc Corporation | Method and apparatus for coordinating locking operations of heterogeneous host computers accessing a storage subsystem |
| US5920725A (en) * | 1997-07-02 | 1999-07-06 | Adaptivity Inc. | Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors |
| US6119167A (en) * | 1997-07-11 | 2000-09-12 | Phone.Com, Inc. | Pushing and pulling data in networks |
| US6014667A (en) * | 1997-10-01 | 2000-01-11 | Novell, Inc. | System and method for caching identification and location information in a computer network |
| JPH11120048A (ja) * | 1997-10-20 | 1999-04-30 | Fujitsu Ltd | クライアント/サーバ分散システムにおけるデータキャッシング装置及び方法並びにデータキャッシングプログラムを記録した媒体 |
| US6192518B1 (en) | 1998-01-22 | 2001-02-20 | Mis Only, Inc. | Method for distributing software over network links via electronic mail |
| US6799224B1 (en) * | 1998-03-10 | 2004-09-28 | Quad Research | High speed fault tolerant mass storage network information server |
| JPH11259395A (ja) * | 1998-03-11 | 1999-09-24 | Nec Corp | ネットワーク管理システム及びその管理方法並びにその制御プログラムを記録した記録媒体 |
| JPH11259284A (ja) * | 1998-03-12 | 1999-09-24 | Fujitsu Ltd | オンラインプログラム更新システム及びプログラム更新用プログラムを記録したコンピュータ読み取り可能な記録媒体 |
| US6260155B1 (en) | 1998-05-01 | 2001-07-10 | Quad Research | Network information server |
| US6973455B1 (en) * | 1999-03-03 | 2005-12-06 | Emc Corporation | File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator |
| US6243706B1 (en) * | 1998-07-24 | 2001-06-05 | Avid Technology, Inc. | System and method for managing the creation and production of computer generated works |
| CA2245963C (en) * | 1998-08-26 | 2009-10-27 | Qnx Software Systems Ltd. | Distributed kernel operating system |
| US6182245B1 (en) | 1998-08-31 | 2001-01-30 | Lsi Logic Corporation | Software test case client/server system and method |
| US6230165B1 (en) * | 1998-10-16 | 2001-05-08 | Cerulean | Method for encoding and transporting database objects over bandwidth constrained networks |
| 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 |
| US6708224B1 (en) * | 1999-01-19 | 2004-03-16 | Netiq Corporation | Methods, systems and computer program products for coordination of operations for interrelated tasks |
| US7010554B2 (en) * | 2002-04-04 | 2006-03-07 | Emc Corporation | Delegation of metadata management in a storage system by leasing of free file system blocks and i-nodes from a file system owner |
| US6219676B1 (en) * | 1999-03-29 | 2001-04-17 | Novell, Inc. | Methodology for cache coherency of web server data |
| US20060193606A1 (en) * | 1999-04-21 | 2006-08-31 | Interactual Technologies, Inc. | Two navigation |
| US7178106B2 (en) * | 1999-04-21 | 2007-02-13 | Sonic Solutions, A California Corporation | Presentation of media content from multiple media sources |
| US6529949B1 (en) * | 2000-02-07 | 2003-03-04 | Interactual Technologies, Inc. | System, method and article of manufacture for remote unlocking of local content located on a client device |
| US6769130B1 (en) * | 2000-01-20 | 2004-07-27 | Interactual Technologies, Inc. | System, method and article of manufacture for late synchronization during the execution of a multimedia event on a plurality of client computers |
| CA2388565A1 (en) | 1999-04-21 | 2000-10-26 | Research Investment Network, Inc. | System, method and article of manufacture for updating content stored on a portable storage medium |
| US7448021B1 (en) | 2000-07-24 | 2008-11-04 | Sonic Solutions, A California Corporation | Software engine for combining video or audio content with programmatic content |
| US6453420B1 (en) | 1999-04-21 | 2002-09-17 | Research Investment Network, Inc. | System, method and article of manufacture for authorizing the use of electronic content utilizing a laser-centric medium |
| US20060041639A1 (en) * | 1999-04-21 | 2006-02-23 | Interactual Technologies, Inc. | Platform detection |
| US6941383B1 (en) | 2000-01-20 | 2005-09-06 | Interactual Technologies, Inc. | System, method and article of manufacture for java/javascript component in a multimedia synchronization framework |
| US7458091B1 (en) | 2000-01-20 | 2008-11-25 | Sonic Solutions, A California Corporation | System, method and article of manufacture for a business layer component in a multimedia synchronization framework |
| US7188193B1 (en) | 2000-01-20 | 2007-03-06 | Sonic Solutions, A California Corporation | System, method and article of manufacture for a synchronizer component in a multimedia synchronization framework |
| US7346920B2 (en) | 2000-07-07 | 2008-03-18 | Sonic Solutions, A California Corporation | System, method and article of manufacture for a common cross platform framework for development of DVD-Video content integrated with ROM content |
| US20050182828A1 (en) * | 1999-04-21 | 2005-08-18 | Interactual Technologies, Inc. | Platform specific execution |
| US7062765B1 (en) | 1999-05-25 | 2006-06-13 | Realnetworks, Inc. | System and method for updating information via a network |
| US6996627B1 (en) | 1999-05-25 | 2006-02-07 | Realnetworks, Inc. | System and method for providing update information |
| US6874104B1 (en) | 1999-06-11 | 2005-03-29 | International Business Machines Corporation | Assigning recoverable unique sequence numbers in a transaction processing system |
| US6438548B1 (en) * | 1999-06-30 | 2002-08-20 | International Business Machines Corporation | Method of and system for managing documents in a bandwidth constrained environment |
| US6427172B1 (en) * | 1999-07-20 | 2002-07-30 | Cyberstar, L.P. | Method and apparatus for internet cache content delivery via a data distribution system |
| US7349902B1 (en) * | 1999-08-04 | 2008-03-25 | Hewlett-Packard Development Company, L.P. | Content consistency in a data access network system |
| US6618751B1 (en) * | 1999-08-20 | 2003-09-09 | International Business Machines Corporation | Systems and methods for publishing data with expiration times |
| JP2001075785A (ja) * | 1999-09-09 | 2001-03-23 | Nec Corp | データ更新システム |
| US6330560B1 (en) | 1999-09-10 | 2001-12-11 | International Business Machines Corporation | Multiple manager to multiple server IP locking mechanism in a directory-enabled network |
| US6442654B1 (en) * | 1999-12-10 | 2002-08-27 | International Business Machines Corporation | Operating system support for in-server caching of documents |
| US7392481B2 (en) * | 2001-07-02 | 2008-06-24 | Sonic Solutions, A California Corporation | Method and apparatus for providing content-owner control in a networked device |
| US20050251732A1 (en) * | 2000-01-20 | 2005-11-10 | Interactual Technologies, Inc. | System, method and article of manufacture for executing a multimedia event on a plurality of client computers using a synchronization host engine |
| US6792436B1 (en) * | 2000-02-11 | 2004-09-14 | Persistence Software, Inc. | Method for synchronizing multiple software caches in a memory |
| US7263476B1 (en) * | 2000-06-12 | 2007-08-28 | Quad Research | High speed information processing and mass storage system and method, particularly for information and application servers |
| US7689510B2 (en) | 2000-09-07 | 2010-03-30 | Sonic Solutions | Methods and system for use in network management of content |
| US7779097B2 (en) | 2000-09-07 | 2010-08-17 | Sonic Solutions | Methods and systems for use in network management of content |
| AU2002232594A1 (en) * | 2000-10-30 | 2002-05-15 | Tririga, Inc. | Item specification object management system |
| US7512635B1 (en) * | 2000-12-18 | 2009-03-31 | Bmc Software, Inc. | System and method for updating information on a computer system using a limited amount of space |
| US20020083265A1 (en) * | 2000-12-26 | 2002-06-27 | Brough Farrell Lynn | Methods for increasing cache capacity |
| US7177866B2 (en) * | 2001-03-16 | 2007-02-13 | Gravic, Inc. | Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only |
| US7103586B2 (en) * | 2001-03-16 | 2006-09-05 | Gravic, Inc. | Collision avoidance in database replication systems |
| US6662196B2 (en) * | 2001-03-16 | 2003-12-09 | Iti, Inc. | Collision avoidance in bidirectional database replication |
| US7315884B2 (en) * | 2001-04-03 | 2008-01-01 | Hewlett-Packard Development Company, L.P. | Reduction of network retrieval latency using cache and digest |
| US7640582B2 (en) * | 2003-04-16 | 2009-12-29 | Silicon Graphics International | Clustered filesystem for mix of trusted and untrusted nodes |
| US7120762B2 (en) * | 2001-10-19 | 2006-10-10 | Wisconsin Alumni Research Foundation | Concurrent execution of critical sections by eliding ownership of locks |
| US7370044B2 (en) * | 2001-11-19 | 2008-05-06 | Equifax, Inc. | System and method for managing and updating information relating to economic entities |
| US6970981B2 (en) * | 2001-12-21 | 2005-11-29 | Tibco Software, Inc. | Method and apparatus to maintain consistency between an object store and a plurality of caches utilizing transactional updates to data caches |
| US7305397B2 (en) * | 2002-01-31 | 2007-12-04 | Tririga Llc | Caching data communications to reduce latency |
| US7444302B2 (en) * | 2002-06-14 | 2008-10-28 | Ellie Mae, Inc. | Online system for fulfilling loan applications from loan originators |
| US7472089B2 (en) | 2002-08-15 | 2008-12-30 | Ellie Mae, Inc. | Loan origination system interface for online loan application processing |
| US7281165B2 (en) * | 2003-06-12 | 2007-10-09 | Inventec Corporation | System and method for performing product tests utilizing a single storage device |
| EP1642419B1 (en) * | 2003-06-25 | 2013-03-27 | Philips Intellectual Property & Standards GmbH | A method of decentralized medium access control in a communications network |
| US7412496B2 (en) * | 2003-08-22 | 2008-08-12 | Emc Corporation | Management of the file-modification time attribute in a multi-processor file server system |
| US7380246B2 (en) * | 2003-12-15 | 2008-05-27 | Lenovo (Singapore) Pte. Ltd. | Method and system of accessing at least one target file in a computer system with an operating system with file locking implemented with byte-range locking |
| FR2870022B1 (fr) * | 2004-05-07 | 2007-02-02 | Canon Kk | Procede et dispositif de distribution de donnees numeriques notamment pour reseau pair-a-pair |
| US20050289152A1 (en) * | 2004-06-10 | 2005-12-29 | Earl William J | Method and apparatus for implementing a file system |
| US20060069753A1 (en) * | 2004-06-18 | 2006-03-30 | Limin Hu | Automatic web-based client-server application program update system |
| US8990254B2 (en) * | 2004-07-02 | 2015-03-24 | Ellie Mae, Inc. | Loan origination software system for processing mortgage loans over a distributed network |
| US8074041B2 (en) * | 2004-12-09 | 2011-12-06 | International Business Machines Corporation | Apparatus, system, and method for managing storage space allocation |
| US7574456B2 (en) * | 2004-12-16 | 2009-08-11 | Sap Ag | Bidirectional update of client-server objects |
| JP4254718B2 (ja) * | 2005-01-31 | 2009-04-15 | ブラザー工業株式会社 | コンテンツ提供システム,クライアントデバイス,サーバおよびプログラム |
| US7627614B2 (en) * | 2005-03-03 | 2009-12-01 | Oracle International Corporation | Lost write detection and repair |
| US7716182B2 (en) | 2005-05-25 | 2010-05-11 | Dassault Systemes Enovia Corp. | Version-controlled cached data store |
| US7840682B2 (en) | 2005-06-03 | 2010-11-23 | QNX Software Systems, GmbH & Co. KG | Distributed kernel operating system |
| US8667184B2 (en) * | 2005-06-03 | 2014-03-04 | Qnx Software Systems Limited | Distributed kernel operating system |
| US7617216B2 (en) * | 2005-09-07 | 2009-11-10 | Emc Corporation | Metadata offload for a file server cluster |
| US9983874B2 (en) | 2006-03-16 | 2018-05-29 | International Business Machines Corporation | Structure for a circuit function that implements a load when reservation lost instruction to perform cacheline polling |
| US9390015B2 (en) | 2006-03-16 | 2016-07-12 | International Business Machines Corporation | Method for performing cacheline polling utilizing a store and reserve instruction |
| US8219763B2 (en) | 2006-03-16 | 2012-07-10 | International Business Machines Corporation | Structure for performing cacheline polling utilizing a store and reserve instruction |
| US7822728B1 (en) | 2006-11-08 | 2010-10-26 | Emc Corporation | Metadata pipelining and optimization in a file server |
| US9112808B2 (en) | 2007-02-06 | 2015-08-18 | At&T Intellectual Property Ii, L.P. | Devices, systems, and methods for providing data |
| JPWO2008139521A1 (ja) * | 2007-04-27 | 2010-07-29 | 富士通株式会社 | リモートファイルシステム、端末装置およびサーバ装置 |
| US8600798B1 (en) | 2007-09-21 | 2013-12-03 | Ellie Mae, Inc. | Loan screening |
| JP5159375B2 (ja) | 2008-03-07 | 2013-03-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メタバースにおけるオブジェクトの真贋判断システム、方法及びそのコンピュータ・プログラム |
| US8176256B2 (en) * | 2008-06-12 | 2012-05-08 | Microsoft Corporation | Cache regions |
| US8943271B2 (en) * | 2008-06-12 | 2015-01-27 | Microsoft Corporation | Distributed cache arrangement |
| US8676919B2 (en) * | 2008-06-26 | 2014-03-18 | Microsoft Corporation | Asynchronously editing a synchronous data store, such as a project management data store |
| US8819208B2 (en) | 2010-03-05 | 2014-08-26 | Solidfire, Inc. | Data deletion in a distributed data storage system |
| TWI446351B (zh) * | 2010-05-27 | 2014-07-21 | Wistron Corp | 資料寫入方法與電腦系統 |
| US8667057B1 (en) | 2010-10-01 | 2014-03-04 | Google Inc. | Method and system for delivering object update messages including payloads |
| US8819357B2 (en) * | 2011-07-12 | 2014-08-26 | Vmware, Inc. | Method and system for ensuring cache coherence of metadata in clustered file systems |
| US8560662B2 (en) * | 2011-09-12 | 2013-10-15 | Microsoft Corporation | Locking system for cluster updates |
| US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
| US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
| US8954673B1 (en) * | 2012-03-20 | 2015-02-10 | Emc International Company | Using a conditional read request and a hash to determine synchronization of data in a cache at a host with data in storage array |
| JP2013222373A (ja) * | 2012-04-18 | 2013-10-28 | Fujitsu Ltd | ストレージシステム、キャッシュ制御プログラムおよびキャッシュ制御方法 |
| US10152500B2 (en) | 2013-03-14 | 2018-12-11 | Oracle International Corporation | Read mostly instances |
| CN103455359A (zh) * | 2013-09-22 | 2013-12-18 | 金蝶软件(中国)有限公司 | 一种补丁安装方法、设备及系统 |
| US9767178B2 (en) | 2013-10-30 | 2017-09-19 | Oracle International Corporation | Multi-instance redo apply |
| US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
| US9633070B2 (en) * | 2014-03-31 | 2017-04-25 | International Business Machines Corporation | Increase database performance by reducing required communications and information transfers |
| CN105245560B (zh) * | 2014-07-11 | 2019-11-08 | 阿里巴巴集团控股有限公司 | 一种实现分布式缓存的方法、装置及系统 |
| US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
| US9892153B2 (en) | 2014-12-19 | 2018-02-13 | Oracle International Corporation | Detecting lost writes |
| US10204320B2 (en) | 2015-04-30 | 2019-02-12 | Teletracking Technologies, Inc. | Integrated system for producing procedural data change sets communicated to client devices |
| US10721333B2 (en) * | 2015-04-30 | 2020-07-21 | Teletracking Technologies, Inc. | Integrated system for producing procedural data change sets communicated to multiple client devices |
| US10339132B2 (en) * | 2015-07-09 | 2019-07-02 | Netapp, Inc. | Flow control technique for EOS system |
| 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 |
| US10902185B1 (en) * | 2015-12-30 | 2021-01-26 | Google Llc | Distributed collaborative storage with operational transformation |
| US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
| US10698771B2 (en) | 2016-09-15 | 2020-06-30 | Oracle International Corporation | Zero-data-loss with asynchronous redo shipping to a standby database |
| US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
| 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 |
| US10437724B2 (en) | 2017-05-02 | 2019-10-08 | International Business Machines Corporation | Providing data values in a timely fashion using asynchronous data store operations including selectively returning a value from a cache or a value determined by an asynchronous computation |
| US10540282B2 (en) | 2017-05-02 | 2020-01-21 | International Business Machines Corporation | Asynchronous data store operations including selectively returning a value from cache or a value determined by an asynchronous computation |
| US10691722B2 (en) | 2017-05-31 | 2020-06-23 | Oracle International Corporation | Consistent query execution for big data analytics in a hybrid database |
| US10765948B2 (en) | 2017-12-22 | 2020-09-08 | Activision Publishing, Inc. | Video game content aggregation, normalization, and publication systems and methods |
| US11712627B2 (en) | 2019-11-08 | 2023-08-01 | Activision Publishing, Inc. | System and method for providing conditional access to virtual gaming items |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4648036A (en) * | 1985-03-06 | 1987-03-03 | At&T Bell Laboratories | Method for controlling query and update processing in a database system |
| US4887204A (en) * | 1987-02-13 | 1989-12-12 | International Business Machines Corporation | System and method for accessing remote files in a distributed networking environment |
| US5202971A (en) * | 1987-02-13 | 1993-04-13 | International Business Machines Corporation | System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock |
| US4897781A (en) * | 1987-02-13 | 1990-01-30 | International Business Machines Corporation | System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment |
| US5261069A (en) * | 1990-08-13 | 1993-11-09 | Hewlett-Packard Company | Method of maintaining consistency of cached data in a database system |
| US5287496A (en) * | 1991-02-25 | 1994-02-15 | International Business Machines Corporation | Dynamic, finite versioning for concurrent transaction and query processing |
| JP3213766B2 (ja) * | 1992-03-16 | 2001-10-02 | 株式会社日立製作所 | レプリケートファイル更新システム |
| US5452447A (en) * | 1992-12-21 | 1995-09-19 | Sun Microsystems, Inc. | Method and apparatus for a caching file server |
| US5553279A (en) * | 1993-10-08 | 1996-09-03 | International Business Machines Corporation | Lossless distribution of time series data in a relational data base network |
| US5490270A (en) * | 1994-06-16 | 1996-02-06 | International Business Machines Corporation | Simultaneous updates to the modification time attribute of a shared file in a cluster having a server and client nodes |
-
1994
- 1994-06-24 JP JP6142764A patent/JP2507235B2/ja not_active Expired - Lifetime
-
1995
- 1995-06-21 EP EP95304316A patent/EP0689140A3/en not_active Withdrawn
- 1995-06-26 US US08/494,458 patent/US5734898A/en not_active Expired - Fee Related
Cited By (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002198960A (ja) * | 1996-05-15 | 2002-07-12 | Sony Computer Entertainment America Inc | 多ユーザアプリケーションにおける通信ネットワーク用の分配システム |
| JP2000511010A (ja) * | 1996-05-15 | 2000-08-22 | アールタイム・インコーポレーテッド | 多ユーザアプリケーションにおける通信ネットワーク用の分配システム |
| KR100404786B1 (ko) * | 1998-03-31 | 2003-11-07 | 인터내셔널 비지네스 머신즈 코포레이션 | 클라이언트/서버 컴퓨팅 시스템에서 이용되는 클라이언트/서버 프로세싱 장치 및 방법과 기록 매체 |
| JP2006525571A (ja) * | 2003-04-29 | 2006-11-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピューティング環境のオブジェクトへのアクセスの管理 |
| US8700584B2 (en) | 2003-04-29 | 2014-04-15 | International Business Machines Corporation | Managing access to objects of a computing environment |
| JP2007501468A (ja) * | 2003-08-06 | 2007-01-25 | オラクル・インターナショナル・コーポレイション | 効率的なバージョン制御を有するデータベース管理システム |
| JP2010157090A (ja) * | 2008-12-26 | 2010-07-15 | Works Applications:Kk | 帳票管理装置、帳票管理プログラム及び帳票管理方法 |
| JP2011003147A (ja) * | 2009-06-22 | 2011-01-06 | Nippon Telegr & Teleph Corp <Ntt> | クライアント装置、サーバ装置、コンピュータシステム、および、ファイルシステムアクセス方法、並びに、クライアントプログラムおよびサーバプログラム |
| JP2012033126A (ja) * | 2010-08-03 | 2012-02-16 | Nec Corp | データベースシステム、データベース更新方法およびデータベース更新プログラム |
| US9386073B2 (en) | 2012-08-20 | 2016-07-05 | International Business Machines Corporation | Techniques for performing processing for database |
| JPWO2014199568A1 (ja) * | 2013-06-12 | 2017-02-23 | 日本電気株式会社 | 永続記憶装置へのデータ書込制御方法 |
| US9767023B2 (en) | 2013-06-12 | 2017-09-19 | Nec Corporation | Method of controlling data writing to persistent storage device |
| JP2015230689A (ja) * | 2014-06-06 | 2015-12-21 | 株式会社東芝 | データベース装置およびデータアクセス方法 |
| JP2016066333A (ja) * | 2014-09-26 | 2016-04-28 | 株式会社野村総合研究所 | データベースのロック制御システム及び方法 |
| US10963430B2 (en) | 2015-04-01 | 2021-03-30 | Dropbox, Inc. | Shared workspaces with selective content item synchronization |
| US12118112B2 (en) | 2015-04-01 | 2024-10-15 | Dropbox, Inc. | Nested namespaces for selective content sharing |
| US11580241B2 (en) | 2015-04-01 | 2023-02-14 | Dropbox, Inc. | Nested namespaces for selective content sharing |
| US10699025B2 (en) | 2015-04-01 | 2020-06-30 | Dropbox, Inc. | Nested namespaces for selective content sharing |
| WO2017056145A1 (ja) * | 2015-09-28 | 2017-04-06 | 株式会社日立製作所 | ストレージシステム、ストレージ装置、およびストレージシステムの制御方法 |
| US10691718B2 (en) | 2015-10-29 | 2020-06-23 | Dropbox, Inc. | Synchronization protocol for multi-premises hosting of digital content items |
| US10740350B2 (en) | 2015-10-29 | 2020-08-11 | Dropbox, Inc. | Peer-to-peer synchronization protocol for multi-premises hosting of digital content items |
| US11144573B2 (en) | 2015-10-29 | 2021-10-12 | Dropbox, Inc. | Synchronization protocol for multi-premises hosting of digital content items |
| US10685038B2 (en) | 2015-10-29 | 2020-06-16 | Dropbox Inc. | Synchronization protocol for multi-premises hosting of digital content items |
| JP2018537740A (ja) * | 2015-10-29 | 2018-12-20 | ドロップボックス, インコーポレイテッド | デジタルコンテンツアイテムのマルチプレミスホスティングのための同期プロトコル |
| US10819559B2 (en) | 2016-01-29 | 2020-10-27 | Dropbox, Inc. | Apparent cloud access for hosted content items |
| US11290531B2 (en) | 2019-12-04 | 2022-03-29 | Dropbox, Inc. | Immediate cloud content item creation from local file system interface |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2507235B2 (ja) | 1996-06-12 |
| EP0689140A2 (en) | 1995-12-27 |
| US5734898A (en) | 1998-03-31 |
| EP0689140A3 (en) | 1998-02-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2507235B2 (ja) | クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法 | |
| US7600063B2 (en) | Techniques for improved read-write concurrency | |
| US6934727B2 (en) | Dynamic synchronization of tables | |
| US6385701B1 (en) | Method, system and program products for sharing data between varied clients using token management | |
| US8745707B2 (en) | Method and apparatus providing optimistic locking of shared computer resources | |
| US7895249B2 (en) | Selective file purging for delete or rename | |
| US5202971A (en) | System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock | |
| US8321389B2 (en) | Method, apparatus and computer program product for maintaining file system client directory caches with parallel directory writes | |
| CA2587529C (en) | Infrastructure for performing file operations by a database server | |
| US8700584B2 (en) | Managing access to objects of a computing environment | |
| US6850969B2 (en) | Lock-free file system | |
| US7734582B2 (en) | Apparatus, system, and method for cache synchronization | |
| US6862595B1 (en) | Method and apparatus for implementing a shared message queue using a list structure | |
| US20110137861A1 (en) | Methods for Achieving Efficient Coherent Access to Data in a Cluster of Data Processing Computing Nodes | |
| US20020116538A1 (en) | High-performance memory queue | |
| JP2003058404A (ja) | 分散データベースの同時実行制御システム | |
| JPH10506742A (ja) | 経路指定ノードにおける同期化プロシージャ | |
| CN117851079A (zh) | 操作广播表的方法、装置、电子设备和计算机可读介质 | |
| JPH0588954A (ja) | データベースの更新方法 | |
| JPH0981438A (ja) | クライアントサーバシステムにおける自動排他制御システム | |
| Cho | A hybrid concurrency control with deadlock-free approach | |
| JP3328118B2 (ja) | マルチタスクトランザクション通信制御装置 | |
| CN115118445A (zh) | 用于在hpc集群中获取授权的方法、装置和系统 | |
| KR940007842B1 (ko) | 트랜잭션 기능을 위한 동시성 제어 방법 | |
| Kirmse | Implementation of the two-phase commit protocol in Thor |