JPH0799509B2 - メモリへのデータブロックのエントリを制御する方法 - Google Patents
メモリへのデータブロックのエントリを制御する方法Info
- Publication number
- JPH0799509B2 JPH0799509B2 JP3294645A JP29464591A JPH0799509B2 JP H0799509 B2 JPH0799509 B2 JP H0799509B2 JP 3294645 A JP3294645 A JP 3294645A JP 29464591 A JP29464591 A JP 29464591A JP H0799509 B2 JPH0799509 B2 JP H0799509B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data block
- computer system
- data
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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
- 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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【0001】
【産業上の利用分野】本発明は多重システムデータ共用
複合系をサービスするキャッシュへのデータのキャッシ
ングに関する。特に本発明は共用キャッシュにおける一
つのデータベースシステムによるデータページの、他の
システムがそのページの後のコピーのキャッシングを行
うことが出来るようなキャッシングに関する。本発明は
そのような条件を検出し、共用キャッシュへの非更新ペ
ージの入力を防止する技術に関する。
複合系をサービスするキャッシュへのデータのキャッシ
ングに関する。特に本発明は共用キャッシュにおける一
つのデータベースシステムによるデータページの、他の
システムがそのページの後のコピーのキャッシングを行
うことが出来るようなキャッシングに関する。本発明は
そのような条件を検出し、共用キャッシュへの非更新ペ
ージの入力を防止する技術に関する。
【0002】
【従来の技術】個々に動作する複数のコンピュータシス
テムがデータを共用するデータベースシステムでは、異
なるシステムでのデータの一貫性を維持するために大規
模なロッキングが必要である。「コンピュータ・アーキ
テクチャ・アンド・デザイン(COMPUTER ARCHITECTURE
AND DESIGN)、アデイスン・ウェズリ(Addison Wesle
y)出版、1989でA.J.ヴァンデゴール(A.J. va
n de Goor)は拡散したプロセサ間での共用データが、
そのデータへのパスが複数であり、そのデータを局所的
に変更する機会があるためにデータの複数の一致しない
コピーの存在する確率の問題を生じさせるものとしてデ
ータの一貫性の問題を論じている。
テムがデータを共用するデータベースシステムでは、異
なるシステムでのデータの一貫性を維持するために大規
模なロッキングが必要である。「コンピュータ・アーキ
テクチャ・アンド・デザイン(COMPUTER ARCHITECTURE
AND DESIGN)、アデイスン・ウェズリ(Addison Wesle
y)出版、1989でA.J.ヴァンデゴール(A.J. va
n de Goor)は拡散したプロセサ間での共用データが、
そのデータへのパスが複数であり、そのデータを局所的
に変更する機会があるためにデータの複数の一致しない
コピーの存在する確率の問題を生じさせるものとしてデ
ータの一貫性の問題を論じている。
【0003】このデータ一貫性の問題の解決法が提案さ
れている。それらのすべては本質的に中央ロケーション
からとり出されるデータの大域ロックの存在にもとづく
ものである。データのページ化を考えると、多重コンピ
ュータシステム内の一つのディスクに記憶されるデータ
を記憶する一つのコンピュータシステムがデータページ
の大域ロックを獲得し、そのページを得て更新する。こ
のロックはそのページが更新のために獲得されているこ
とを他のコンピュータシステムに知らせる。そのページ
のロックを解く前に、そのロックを保持するコンピュー
タシステムはそのページをディスクに書込み、その後他
のコンピュータシステムにそれらシステムのローカルキ
ャッシュに保持されうるそのページのコピーを無効にす
るメッセージを発生して送る。このページのロックはそ
のページにアクセスするすべての他のコンピュータから
肯定応答が入るまで解放されない。この方法は米国特許
第4399504号明細書に示されている。本出願人か
ら市販されている製品はデータ共用特徴を備えたIMS
/VSシステムである。
れている。それらのすべては本質的に中央ロケーション
からとり出されるデータの大域ロックの存在にもとづく
ものである。データのページ化を考えると、多重コンピ
ュータシステム内の一つのディスクに記憶されるデータ
を記憶する一つのコンピュータシステムがデータページ
の大域ロックを獲得し、そのページを得て更新する。こ
のロックはそのページが更新のために獲得されているこ
とを他のコンピュータシステムに知らせる。そのページ
のロックを解く前に、そのロックを保持するコンピュー
タシステムはそのページをディスクに書込み、その後他
のコンピュータシステムにそれらシステムのローカルキ
ャッシュに保持されうるそのページのコピーを無効にす
るメッセージを発生して送る。このページのロックはそ
のページにアクセスするすべての他のコンピュータから
肯定応答が入るまで解放されない。この方法は米国特許
第4399504号明細書に示されている。本出願人か
ら市販されている製品はデータ共用特徴を備えたIMS
/VSシステムである。
【0004】従来の大域ロックシステムはデータの一貫
性を維持する上において大きな利点を与える。しかしな
がら、それに固有のオーバヘッドの問題には一つのペー
ジが更新されるときI/O手順を行い、そして他のシス
テムにそれを知らせてロックを解くためのI/O手順後
のメッセージ交換を行う必要がある。
性を維持する上において大きな利点を与える。しかしな
がら、それに固有のオーバヘッドの問題には一つのペー
ジが更新されるときI/O手順を行い、そして他のシス
テムにそれを知らせてロックを解くためのI/O手順後
のメッセージ交換を行う必要がある。
【0005】非データ共用の単一システムの場合にこの
従来のIBM IMS/VSを用いると、このIBM
IMS/VSはトランザクション間でデータ一貫性を維
持する場合に、各トランザクションが完全にコミットさ
れる前に変更されたデータをログレコードと共に記憶手
段に書込むためにデータを更新する必要のあるコミット
ポリシーを実行することによる余分なオーバヘッドが生
じる。これには夫々の変更トランザクションについてペ
ージ当り一つのI/O手順が必要であり、これがオーバ
ヘッドコストを増加させる。
従来のIBM IMS/VSを用いると、このIBM
IMS/VSはトランザクション間でデータ一貫性を維
持する場合に、各トランザクションが完全にコミットさ
れる前に変更されたデータをログレコードと共に記憶手
段に書込むためにデータを更新する必要のあるコミット
ポリシーを実行することによる余分なオーバヘッドが生
じる。これには夫々の変更トランザクションについてペ
ージ当り一つのI/O手順が必要であり、これがオーバ
ヘッドコストを増加させる。
【0006】他方、単一システム内のIBM DB2の
非データ共用の場合は一つのトランザクションにコミッ
トするために更新されたページを記憶手段に書きもどす
ためのI/O手順を必要としないポリシーに従う。上記
のプロトコルが、複数のコンピュータシステムが1以上
のデータ記憶サイトをアクセスするデータ共用状況の下
にあるIBM DB2で用いられるとすると、パフォー
マンスは記憶手段への所要の書きもどしとメッセージの
遅れのために著しく劣化する。これに関してはアデイス
ン・ウェズリ(Addison-Wessley )出版社、1986年
の「データベース・システム入門(AN INTRODUCTION TO
DATABASE SYSTEMS )」の第1巻第593〜595ペー
ジのC.J.デート(C.J. Date )の同時性についての
論文を参照されたい。
非データ共用の場合は一つのトランザクションにコミッ
トするために更新されたページを記憶手段に書きもどす
ためのI/O手順を必要としないポリシーに従う。上記
のプロトコルが、複数のコンピュータシステムが1以上
のデータ記憶サイトをアクセスするデータ共用状況の下
にあるIBM DB2で用いられるとすると、パフォー
マンスは記憶手段への所要の書きもどしとメッセージの
遅れのために著しく劣化する。これに関してはアデイス
ン・ウェズリ(Addison-Wessley )出版社、1986年
の「データベース・システム入門(AN INTRODUCTION TO
DATABASE SYSTEMS )」の第1巻第593〜595ペー
ジのC.J.デート(C.J. Date )の同時性についての
論文を参照されたい。
【0007】多重レベルの記憶手段を含む多重コンピュ
ータ、データ共用システムにおいては、記憶手段の第一
レベルが独立動作するコンピュータシステムで共用され
る1以上の直接アクセス記憶装置(DASD)からな
る。階層配置される記憶システムについての代表的な分
類法によれば、DASDと他のそのような記憶機構を
「2次」記憶手段に分類する。これに関し、2次記憶手
段は、データがCPUにより直接に照合されうるように
なる前にデータを「1次」記憶手段に動かさねばならな
いすべてのファシリティを含む。詳細についてはアデイ
スン・ウェズリ(Addison Wesley)出版社1990年、
デティール(Detiel)著「オペレーティングシステム
(OPERATINGSYSTEMS )」第2版を参照されたい。また
更に、キャッシング技術は共用データ用の高速で高頻度
のアクセスを受ける記憶手段を与えるのに有用である。
種々の理由によりデータはDASDからの獲得後にデー
タベースシステムにより共用キャッシュに入れられる。
これに関しては共用キャッシュは多重コンピュータ、デ
ータ共用システムについての1次レベルの記憶手段に含
まれる。
ータ、データ共用システムにおいては、記憶手段の第一
レベルが独立動作するコンピュータシステムで共用され
る1以上の直接アクセス記憶装置(DASD)からな
る。階層配置される記憶システムについての代表的な分
類法によれば、DASDと他のそのような記憶機構を
「2次」記憶手段に分類する。これに関し、2次記憶手
段は、データがCPUにより直接に照合されうるように
なる前にデータを「1次」記憶手段に動かさねばならな
いすべてのファシリティを含む。詳細についてはアデイ
スン・ウェズリ(Addison Wesley)出版社1990年、
デティール(Detiel)著「オペレーティングシステム
(OPERATINGSYSTEMS )」第2版を参照されたい。また
更に、キャッシング技術は共用データ用の高速で高頻度
のアクセスを受ける記憶手段を与えるのに有用である。
種々の理由によりデータはDASDからの獲得後にデー
タベースシステムにより共用キャッシュに入れられる。
これに関しては共用キャッシュは多重コンピュータ、デ
ータ共用システムについての1次レベルの記憶手段に含
まれる。
【0008】
【発明が解決しようとする課題】そのような構成では、
一つのコンピュータシステムが一つのデータブロックを
キャッシングの目的をもってDASDから得て他のコン
ピュータシステムにより変更し、キャッシュしたがDA
SDにもどされていない場合に一つの潜在的な問題があ
る。この場合、DASDから得られた前のブロックをキ
ャッシュ内の更新されたブロックの「ダウンレベル」バ
ージョンと呼ぶ。この問題はDASDバージョンのロッ
クの費用を発生させずにこのダウンレベルバージョンに
よる更新ブロックの重ね書きを防止することである。
一つのコンピュータシステムが一つのデータブロックを
キャッシングの目的をもってDASDから得て他のコン
ピュータシステムにより変更し、キャッシュしたがDA
SDにもどされていない場合に一つの潜在的な問題があ
る。この場合、DASDから得られた前のブロックをキ
ャッシュ内の更新されたブロックの「ダウンレベル」バ
ージョンと呼ぶ。この問題はDASDバージョンのロッ
クの費用を発生させずにこのダウンレベルバージョンに
よる更新ブロックの重ね書きを防止することである。
【0009】一般に大域ロックプルトコルはデータ共用
の場合に目的とするもののレコードへのアクセスを直列
化するためにデータベースシステムで用いられる。本発
明者等はこれらを更に広く用いられるようにしようとす
るものである。また一般的に異なるデータベースシステ
ムからのそのページへの更新を直列化するためのそのペ
ージでの大域ロックがある。ここで述べる直列化を回避
するには、2次記憶手段から異なるデータベースシステ
ムにより共用キャッシュにダウンレベルページを挿入す
ることである。
の場合に目的とするもののレコードへのアクセスを直列
化するためにデータベースシステムで用いられる。本発
明者等はこれらを更に広く用いられるようにしようとす
るものである。また一般的に異なるデータベースシステ
ムからのそのページへの更新を直列化するためのそのペ
ージでの大域ロックがある。ここで述べる直列化を回避
するには、2次記憶手段から異なるデータベースシステ
ムにより共用キャッシュにダウンレベルページを挿入す
ることである。
【0010】本発明の目的は、共用キャッシュ内の任意
のデータページが他の共用データ記憶資源から得られた
そのページの前のバージョンで重ね書きされないように
する、共用データ多重コンピュータシステムにおける方
法および装置を提供することである。
のデータページが他の共用データ記憶資源から得られた
そのページの前のバージョンで重ね書きされないように
する、共用データ多重コンピュータシステムにおける方
法および装置を提供することである。
【0011】本発明の一つの重要な利点は、一つのDA
SDから得られそして複数の自律コンピュータシステム
により共用されるメモリにキャッシュされたデータの一
貫性を維持しつつDASDアクセス用に既知の方法およ
び装置の維持を許すことである。
SDから得られそして複数の自律コンピュータシステム
により共用されるメモリにキャッシュされたデータの一
貫性を維持しつつDASDアクセス用に既知の方法およ
び装置の維持を許すことである。
【0012】本発明の重要な目的は、データが共用され
る電子的メモリ内でキャッシュされる多重システムデー
タ共用複合体を動作させるための方法を提供することで
ある。
る電子的メモリ内でキャッシュされる多重システムデー
タ共用複合体を動作させるための方法を提供することで
ある。
【0013】
【課題を解決するための手段】多重システムデータ共用
複合体には第1コンピュータシステムで実行するデータ
ベースシステムは共用キャッシュ内で更新されたページ
をキャッシュし、その間、他のデータベースシステムが
DASDから得られるそのページのコピーのキャッシュ
を試みる。本発明はそのような条件を検出し、ロックの
ような直列化機構を用いずにDASDから得られるコピ
ーの入力を阻止する。
複合体には第1コンピュータシステムで実行するデータ
ベースシステムは共用キャッシュ内で更新されたページ
をキャッシュし、その間、他のデータベースシステムが
DASDから得られるそのページのコピーのキャッシュ
を試みる。本発明はそのような条件を検出し、ロックの
ような直列化機構を用いずにDASDから得られるコピ
ーの入力を阻止する。
【0014】本発明の特徴はキャッシュにデータブロッ
クを入れるときの一致性を保証するために高レベルロッ
クを必要とせずに、多重システムデータ共用複合体にお
ける共用キャッシュの動作を行わせる技術にある。本発
明においてはキャッシュへのデータブロックの挿入に用
いられる「条件付書込」手順と、データブロックに対し
て出される第1読取要求がキャッシュミスを生じさせる
時点でのデータブロックの「所有権」の追跡を開始する
キャッシュ登録簿が重要である。第1のキャッシュミス
の時点でキャッシュ登録簿が要求されたデータブロック
を含むように更新され、そして要求を出すコンピュータ
システムがそのブロックの現コピーを有するものとして
識別される。読取要求に応じてキャッシュミス表示を受
けると、要求を出すコンピュータシステムがDASDか
らそのデータブロックをとり出してキャッシュに置く。
このDASDからのデータブロックをキャッシュに置く
には条件付書込オペレーションが用いられる。条件付書
込オペレーションではキャッシュ登録簿がDASDから
得られるページ保持するコンピュータシステムについて
チェックされ、そのコンピュータシステムがそのキャッ
シュ登録簿にそのページの現コピーを有するものとし
て、またレコードされていれば、この条件付書込オペレ
ーションは受け入れられそのページがキャッシュに挿入
される。コンピュータシステムの要求を満足させておく
ために条件付書込要求を出す能力は、そのキャッシュに
識別されたデータブロックの更新されたバージョンを置
く他のコンピュータシステムからの書込動作または適正
化された再使用されている登録簿入力によってのみ無効
とされる。
クを入れるときの一致性を保証するために高レベルロッ
クを必要とせずに、多重システムデータ共用複合体にお
ける共用キャッシュの動作を行わせる技術にある。本発
明においてはキャッシュへのデータブロックの挿入に用
いられる「条件付書込」手順と、データブロックに対し
て出される第1読取要求がキャッシュミスを生じさせる
時点でのデータブロックの「所有権」の追跡を開始する
キャッシュ登録簿が重要である。第1のキャッシュミス
の時点でキャッシュ登録簿が要求されたデータブロック
を含むように更新され、そして要求を出すコンピュータ
システムがそのブロックの現コピーを有するものとして
識別される。読取要求に応じてキャッシュミス表示を受
けると、要求を出すコンピュータシステムがDASDか
らそのデータブロックをとり出してキャッシュに置く。
このDASDからのデータブロックをキャッシュに置く
には条件付書込オペレーションが用いられる。条件付書
込オペレーションではキャッシュ登録簿がDASDから
得られるページ保持するコンピュータシステムについて
チェックされ、そのコンピュータシステムがそのキャッ
シュ登録簿にそのページの現コピーを有するものとし
て、またレコードされていれば、この条件付書込オペレ
ーションは受け入れられそのページがキャッシュに挿入
される。コンピュータシステムの要求を満足させておく
ために条件付書込要求を出す能力は、そのキャッシュに
識別されたデータブロックの更新されたバージョンを置
く他のコンピュータシステムからの書込動作または適正
化された再使用されている登録簿入力によってのみ無効
とされる。
【0015】
【実施例】本発明は不揮発性電子メモリの形の共用キャ
ッシュを含む多重システムデータ共用複合体の構造にお
いて、データの数種のバージョン間に一貫性を維持しつ
つデータ資源を共用できるようにキャッシュを動作させ
る方法を提供するものである。
ッシュを含む多重システムデータ共用複合体の構造にお
いて、データの数種のバージョン間に一貫性を維持しつ
つデータ資源を共用できるようにキャッシュを動作させ
る方法を提供するものである。
【0016】多重コンピュータデータ共用システムにお
けるデータの一貫性のポリシーが更新されたページの書
込みを要求すれば、重要な特徴を有するアーキテクチャ
が用いられる。そのようなアーキテクチャが図1に示さ
れている。これは複数の独立して動作するコンピュータ
システム10,11,12を含み、これらコンピュータ
システムが直接アクセス記憶装置(DASD)14と1
5に記憶されたデータを共用する。DASD14と15
は例えば多重ディスクとそのためのデイスクドライブを
含むものとすることが出来る。このアーキテクチャはN
個のコンピュータシステムS1〜SNを含み、夫々のシ
ステムがデータベース管理システム(DBMS)を含ん
でいる。このDBMSはDASD14と15におけるデ
ータベースの含むデータの作成、構成および変更を制御
すると共にデータベース内のデータへのアクセスを制御
する。また、これらコンピュータシステムにより共用さ
れるキャッシュとして機能する高速不揮発性電子メモリ
16が設けられる。このメモリ16は高速リンク18,
19,20によりコンピュータシステム10,11,1
2に付加される。以後このメモリ16をNVメモリとも
称する。
けるデータの一貫性のポリシーが更新されたページの書
込みを要求すれば、重要な特徴を有するアーキテクチャ
が用いられる。そのようなアーキテクチャが図1に示さ
れている。これは複数の独立して動作するコンピュータ
システム10,11,12を含み、これらコンピュータ
システムが直接アクセス記憶装置(DASD)14と1
5に記憶されたデータを共用する。DASD14と15
は例えば多重ディスクとそのためのデイスクドライブを
含むものとすることが出来る。このアーキテクチャはN
個のコンピュータシステムS1〜SNを含み、夫々のシ
ステムがデータベース管理システム(DBMS)を含ん
でいる。このDBMSはDASD14と15におけるデ
ータベースの含むデータの作成、構成および変更を制御
すると共にデータベース内のデータへのアクセスを制御
する。また、これらコンピュータシステムにより共用さ
れるキャッシュとして機能する高速不揮発性電子メモリ
16が設けられる。このメモリ16は高速リンク18,
19,20によりコンピュータシステム10,11,1
2に付加される。以後このメモリ16をNVメモリとも
称する。
【0017】DASD14および15へのアクセスとメ
モリ16へのアクセスを比較すると、メモリ16は比較
的高速の半導体メモリである。更に、メモリ16のコン
ピュータシステムへの付加は例えば非常に高速(数百メ
ガバイト/秒)のデータ転送を与える光ファイバ通信チ
ャンネルで行われる。一般的に比較的高速のメモリ16
において行われるI/O動作は数十マイクロ秒であり、
比較的低速のDASDとのI/Oは数十ミリ秒である。
モリ16へのアクセスを比較すると、メモリ16は比較
的高速の半導体メモリである。更に、メモリ16のコン
ピュータシステムへの付加は例えば非常に高速(数百メ
ガバイト/秒)のデータ転送を与える光ファイバ通信チ
ャンネルで行われる。一般的に比較的高速のメモリ16
において行われるI/O動作は数十マイクロ秒であり、
比較的低速のDASDとのI/Oは数十ミリ秒である。
【0018】メモリ16は好適にはすべてのメモリ動作
を管理するプロセッサの形である管理ロジック17を含
む。この管理ロジック17は例えば局部プログラムメモ
リと私用メモリを有する高性能マイクロプロセッサを含
むことが出来、管理ロジック装置がコンピュータシステ
ム10,11,12とメッセージ型のメモリアクセスト
ランザクションにおいて関係づけることが出来るように
なっている。
を管理するプロセッサの形である管理ロジック17を含
む。この管理ロジック17は例えば局部プログラムメモ
リと私用メモリを有する高性能マイクロプロセッサを含
むことが出来、管理ロジック装置がコンピュータシステ
ム10,11,12とメッセージ型のメモリアクセスト
ランザクションにおいて関係づけることが出来るように
なっている。
【0019】コンピュータシステム10,11,12に
ついてはそれらのエンティティは例えばIBM/309
0システムを含むことが出来、このシステムの夫々は私
用キャッシュを有する多重プロセッサアーキテクチャを
含み、また、IMS/VSまたはDS2タイプのデータ
ベース管理システムをサポートすることが出来る。
ついてはそれらのエンティティは例えばIBM/309
0システムを含むことが出来、このシステムの夫々は私
用キャッシュを有する多重プロセッサアーキテクチャを
含み、また、IMS/VSまたはDS2タイプのデータ
ベース管理システムをサポートすることが出来る。
【0020】本発明は図1のデータ共用複合体で実施さ
れる。図2は本発明の実施に必要な構成要件を示す。メ
モリ16内には共用キャッシュ20で示す半導体メモリ
がある。この共用キャッシュ20は好適には不揮発性で
ある従来の多重ポート高速ランダムアクセスメモリを含
むことが出来る。この共用キャッシュ20はデータブロ
ックの記憶に用いられる。例えば、キャッシュ20はデ
ータページ21の記憶に用いることが出来る。
れる。図2は本発明の実施に必要な構成要件を示す。メ
モリ16内には共用キャッシュ20で示す半導体メモリ
がある。この共用キャッシュ20は好適には不揮発性で
ある従来の多重ポート高速ランダムアクセスメモリを含
むことが出来る。この共用キャッシュ20はデータブロ
ックの記憶に用いられる。例えば、キャッシュ20はデ
ータページ21の記憶に用いることが出来る。
【0021】管理ロジック17はシステムリスト22と
ページ登録簿24の記憶の維持のための私用のメモリ資
源を有する。リストおよび登録簿22と24は従来通り
に管理ロジック17によりアクセスされる。例えば、周
知のハッシングルックアップ機構を用いてそれらデータ
構造をアクセスすることが出来る。システムリスト22
は、夫々がメモリ16に機能的に接続された一つのコン
ピュータシステムを識別する複数のエントリを含むデー
タ構造である。例えばコンピュータシステムS1,S
2,……,SNが接続されるとすれば、それらがこのシ
ステムリスト22にリストされる。
ページ登録簿24の記憶の維持のための私用のメモリ資
源を有する。リストおよび登録簿22と24は従来通り
に管理ロジック17によりアクセスされる。例えば、周
知のハッシングルックアップ機構を用いてそれらデータ
構造をアクセスすることが出来る。システムリスト22
は、夫々がメモリ16に機能的に接続された一つのコン
ピュータシステムを識別する複数のエントリを含むデー
タ構造である。例えばコンピュータシステムS1,S
2,……,SNが接続されるとすれば、それらがこのシ
ステムリスト22にリストされる。
【0022】共用キャッシュ20は「ストアスルー」キ
ャッシュとは異なり、「ストアイン」キャッシュとして
動作する。これに関し、「ストアイン」キャッシュと
は、2次記憶手段に同時に更新されたページを書込む
(「ストアスルー」)必要を伴わずに更新されたページ
が書込みうるキャッシュである。
ャッシュとは異なり、「ストアイン」キャッシュとして
動作する。これに関し、「ストアイン」キャッシュと
は、2次記憶手段に同時に更新されたページを書込む
(「ストアスルー」)必要を伴わずに更新されたページ
が書込みうるキャッシュである。
【0023】共用キャッシュ20にキャッシュされたペ
ージはソフトウェアで指定された名前で識別される。そ
れ故、共用キャッシュ20への読取または書込み要求に
はその要求のオブジェクトであるページの名前の特定が
必要である。登録簿24はREADコマンドまたはWR
ITEコマンドのオブジェクトであるページ名で周知の
やり方で索引づけされる。登録簿24内の代表的なエン
トリは25で示してある。本発明においては、それに関
連する登録簿25のフィールドを図2に示す。これらは
ページ名フィールド26、空ビット(EB)フィールド
27、ページアドレスフィールド28、変更ビット(C
B)フィールド30およびシステム有効ビットベクトル
(SV BIT VECTOR)フィールド31を含
む。
ージはソフトウェアで指定された名前で識別される。そ
れ故、共用キャッシュ20への読取または書込み要求に
はその要求のオブジェクトであるページの名前の特定が
必要である。登録簿24はREADコマンドまたはWR
ITEコマンドのオブジェクトであるページ名で周知の
やり方で索引づけされる。登録簿24内の代表的なエン
トリは25で示してある。本発明においては、それに関
連する登録簿25のフィールドを図2に示す。これらは
ページ名フィールド26、空ビット(EB)フィールド
27、ページアドレスフィールド28、変更ビット(C
B)フィールド30およびシステム有効ビットベクトル
(SV BIT VECTOR)フィールド31を含
む。
【0024】ページ名フィールド26は登録簿24に管
理ロジック17を索引づけするフィールドである。管理
ロジック17がREADコマンドまたはWRITEコマ
ンドを受けるとすると、それにはそのページを識別する
パラメータPの値が伴う。管理ロジック17はPの値を
ハッシングプロセスに供し、このプロセスがページ名が
既にあれば、それにより直ちに登録簿をアクセスするた
めに、そのロジックで使用される値を発生する。ページ
名フィールドが置かれてしまうと、ページアドレスフィ
ールド28がその識別されたページの共用キャッシュ内
のアドレスをポイントするために用いられる。本発明の
実施においては登録簿エントリはそのページの読取要求
がはじめに入ったときに発生される。この時点で登録簿
のページアドレスフィールドは、そのページが次の書込
動作において書込まれるまでブランクとされる。
理ロジック17を索引づけするフィールドである。管理
ロジック17がREADコマンドまたはWRITEコマ
ンドを受けるとすると、それにはそのページを識別する
パラメータPの値が伴う。管理ロジック17はPの値を
ハッシングプロセスに供し、このプロセスがページ名が
既にあれば、それにより直ちに登録簿をアクセスするた
めに、そのロジックで使用される値を発生する。ページ
名フィールドが置かれてしまうと、ページアドレスフィ
ールド28がその識別されたページの共用キャッシュ内
のアドレスをポイントするために用いられる。本発明の
実施においては登録簿エントリはそのページの読取要求
がはじめに入ったときに発生される。この時点で登録簿
のページアドレスフィールドは、そのページが次の書込
動作において書込まれるまでブランクとされる。
【0025】EB,CBおよびSV BIT VECT
ORフィールドの夫々の意味を表Iに示す。
ORフィールドの夫々の意味を表Iに示す。
【0026】 表 I 空ビット =1 そのページ用のデータがキャッシュ内にない(そのページの 登録簿エントリのみ存在する)。 =0 そのページ用のデータがキャッシュの「キャッシュ内ページ アドレス」フィールド内に示された位置に存在する。 変更ビット=1 キャッシュされたページが変更される。すなわちそのページ のDASDバージョンがNVメモリ内のものと比較してダウ ンレベルである。 =0 キャッシュされたページは変更されない。すなわち、ページ のDASDバージョンはNVメモリ内のものと同一である。 システム有効ビ キャッシュに付加されるシステム毎に1ビット。1であれば ットベクトル 識別されたシステムメモリ内にキャッシュされたページは有 (SVBV) 効である。0であればそのページは有効でない。このビット アレイのサイズは具体的実施により決まる。
【0027】管理ロジック17は必要に応じて登録簿エ
ントリを作成し、管理し、削除する。登録簿24内のエ
ントリの正確な構成は本発明に特有のものであるが、こ
れらのアクティビティは周知の機構を用いて行われる。
管理ロジック17は本発明に特有な読取および書込み動
作に従って、共用キャッシュ20からデータを得てそれ
にデータを入れるために周知のごとくに構成されてい
る。管理ロジック17はまた「キャッシュミス」および
「キャッシュヒット」信号を発生する周知のキャッシュ
管理能力を有する。これら信号は共用キャッシュ20に
接続されるコンピュータシステムによって与えられるR
EADコマンドに応じて発生される。「キャッシュミ
ス」信号は、識別されたページが共用キャッシュ20に
ないことを示し、「キャッシュヒット」信号は識別され
たページがキャッシュ20にあることを示す。
ントリを作成し、管理し、削除する。登録簿24内のエ
ントリの正確な構成は本発明に特有のものであるが、こ
れらのアクティビティは周知の機構を用いて行われる。
管理ロジック17は本発明に特有な読取および書込み動
作に従って、共用キャッシュ20からデータを得てそれ
にデータを入れるために周知のごとくに構成されてい
る。管理ロジック17はまた「キャッシュミス」および
「キャッシュヒット」信号を発生する周知のキャッシュ
管理能力を有する。これら信号は共用キャッシュ20に
接続されるコンピュータシステムによって与えられるR
EADコマンドに応じて発生される。「キャッシュミ
ス」信号は、識別されたページが共用キャッシュ20に
ないことを示し、「キャッシュヒット」信号は識別され
たページがキャッシュ20にあることを示す。
【0028】READコマンドおよびWRITEコマン
ドは図1の多重システム複合体内のコンピュータシステ
ムで発生される。これらコマンドは管理ロジック17か
らの応答を引き出す。本発明はコマンドと応答が周知の
メッセージプロトコルによりコンピュータシステムと管
理ロジックとの間で交換されうるようにしようとするも
のである。更に、本発明は、管理ロジック17から応答
が入るまで、READコマンドまたはWRITEコマン
ドを出すコンピュータシステムが待機状態を維持するか
ら、共用キッシュ20へのアクセスが同期的となるよう
にしようとするものである。共用キャッシュ20を形成
する半導体メモリの速度は同期メッセージ通過構成に特
有の遅延を減少させる。
ドは図1の多重システム複合体内のコンピュータシステ
ムで発生される。これらコマンドは管理ロジック17か
らの応答を引き出す。本発明はコマンドと応答が周知の
メッセージプロトコルによりコンピュータシステムと管
理ロジックとの間で交換されうるようにしようとするも
のである。更に、本発明は、管理ロジック17から応答
が入るまで、READコマンドまたはWRITEコマン
ドを出すコンピュータシステムが待機状態を維持するか
ら、共用キッシュ20へのアクセスが同期的となるよう
にしようとするものである。共用キャッシュ20を形成
する半導体メモリの速度は同期メッセージ通過構成に特
有の遅延を減少させる。
【0029】本発明はまた、図1の多重システムデータ
共用複合体のコンピュータシステムが周知の手段、例え
ばIBM IMS形システムの共用ディスク能力を用い
てDASDへのアクセスを得るようにしようとするもの
である。周知のように、そのようなアクセスは一つのコ
ンピュータシステムが一つのDASDにREADコマン
ドまたはWRITEコマンドが与えられる間、待機状態
に入らないから非同期である。
共用複合体のコンピュータシステムが周知の手段、例え
ばIBM IMS形システムの共用ディスク能力を用い
てDASDへのアクセスを得るようにしようとするもの
である。周知のように、そのようなアクセスは一つのコ
ンピュータシステムが一つのDASDにREADコマン
ドまたはWRITEコマンドが与えられる間、待機状態
に入らないから非同期である。
【0030】図2に示すように、各コンピュータシステ
ムは識別されたバッファを含んでいる。このバッファは
そのコンピュータシステムとNVメモリ16との間で交
換されるデータをステージするために用いられる。例え
ばコンピュータシステム10はバッファ101を含み、
また、バッファ120がコンピュータシステム12に設
けられる。このデータ共用複合体のすべてのコンピュー
タシステムがそのような私用バッファを有する。更に、
コンピュータシステムの内の一つが管理ロジック17に
READコマンドまたはWRITEコマンドを出せば、
このコンピュータシステムはそれ自体のバッファ内の、
要求されたデータが入れられるべき、あるいは得られる
べきアドレスを送る。
ムは識別されたバッファを含んでいる。このバッファは
そのコンピュータシステムとNVメモリ16との間で交
換されるデータをステージするために用いられる。例え
ばコンピュータシステム10はバッファ101を含み、
また、バッファ120がコンピュータシステム12に設
けられる。このデータ共用複合体のすべてのコンピュー
タシステムがそのような私用バッファを有する。更に、
コンピュータシステムの内の一つが管理ロジック17に
READコマンドまたはWRITEコマンドを出せば、
このコンピュータシステムはそれ自体のバッファ内の、
要求されたデータが入れられるべき、あるいは得られる
べきアドレスを送る。
【0031】本発明はDASDから共用キャッシュへの
データの動きおよびそのように動かされたデータの更新
に関する。これに関し、共用キャッシュへの入力のため
にDASDからコンピュータシステムにより得られるデ
ータページは表Iではそのページの登録簿エントリが変
更ビット1を有するとき「ダウンレベル」ページとされ
る。DASDから得られたページについての登録簿内の
変更ビットおよび空ビットが共に0にセットされると、
そのページは「クリーンページ」とされる。これに関
し、そのページのDASDバージョンは共用キャッシュ
20内のそのページのバージョンと同一である。
データの動きおよびそのように動かされたデータの更新
に関する。これに関し、共用キャッシュへの入力のため
にDASDからコンピュータシステムにより得られるデ
ータページは表Iではそのページの登録簿エントリが変
更ビット1を有するとき「ダウンレベル」ページとされ
る。DASDから得られたページについての登録簿内の
変更ビットおよび空ビットが共に0にセットされると、
そのページは「クリーンページ」とされる。これに関
し、そのページのDASDバージョンは共用キャッシュ
20内のそのページのバージョンと同一である。
【0032】本発明は一群の固有のコマンドとそれらコ
マンドの実行により生じる変化の登録簿エントリの登録
に依存する。これらコマンドをまず説明する。次に、他
のシステムから読取要求によりキャッシュミスが生じた
後にページのダウンレベルバージョンをキャッシュしよ
うとする間に更新されたページをキャッシュする一つの
システムの可能性にもかかわらず、そのページのデータ
の完全性を維持しつつ、図1の多重システムデータ共用
複合体内にページをキャッシュするためにいかにしてそ
れらコマンドが非ブロッキング直列化をサポートするか
について説明する。本発明の実施に当っては、一つの与
えられたページをオブジェクトとするコマンドがメモリ
16内の管理ロジック17によりそのページについての
他のコマンドと直列化される。
マンドの実行により生じる変化の登録簿エントリの登録
に依存する。これらコマンドをまず説明する。次に、他
のシステムから読取要求によりキャッシュミスが生じた
後にページのダウンレベルバージョンをキャッシュしよ
うとする間に更新されたページをキャッシュする一つの
システムの可能性にもかかわらず、そのページのデータ
の完全性を維持しつつ、図1の多重システムデータ共用
複合体内にページをキャッシュするためにいかにしてそ
れらコマンドが非ブロッキング直列化をサポートするか
について説明する。本発明の実施に当っては、一つの与
えられたページをオブジェクトとするコマンドがメモリ
16内の管理ロジック17によりそのページについての
他のコマンドと直列化される。
【0033】ここにおいて図1のメモリシステム16は
次のコマンドをサポートする:CONNECTコマン
ド。これはNVメモリ16に接続する図1の多重システ
ムデータ共用複合体におけるデータベースシステムのイ
ンスタンスのようなソフトウェアシステムにより実行さ
れる。CONNECTコマンドに応じて管理ロジック1
7がこの接続システムの識別をシステムリスト22に入
れて登録簿24に現在存在するすべてのエントリおよび
その後になされるすべてのエントリのSVビットベクト
ル内にこの接続システムについてのフィールドを与え
る。
次のコマンドをサポートする:CONNECTコマン
ド。これはNVメモリ16に接続する図1の多重システ
ムデータ共用複合体におけるデータベースシステムのイ
ンスタンスのようなソフトウェアシステムにより実行さ
れる。CONNECTコマンドに応じて管理ロジック1
7がこの接続システムの識別をシステムリスト22に入
れて登録簿24に現在存在するすべてのエントリおよび
その後になされるすべてのエントリのSVビットベクト
ル内にこの接続システムについてのフィールドを与え
る。
【0034】READ PAGE CS,P,バッファ
アドレス。Sはそのコマンドを出すシステムを識別し、
Pは要求されたページを識別し、バッファアドレスはそ
のページを配布すべきそのシステムのバッファのアドレ
スを示す。
アドレス。Sはそのコマンドを出すシステムを識別し、
Pは要求されたページを識別し、バッファアドレスはそ
のページを配布すべきそのシステムのバッファのアドレ
スを示す。
【0035】WRITE PAGE(S,P,CB=
1,バッファアドレス)。このコマンドは「無条件」W
RITEである。WRITE PAGEコマンドが出さ
れると、そのコマンドを共に入力されるパラメータは識
別されたページについてのCBフィールドに対応するC
Bパラメータを含む。このページの更新は変更ビットを
1にセットすることにより示される。
1,バッファアドレス)。このコマンドは「無条件」W
RITEである。WRITE PAGEコマンドが出さ
れると、そのコマンドを共に入力されるパラメータは識
別されたページについてのCBフィールドに対応するC
Bパラメータを含む。このページの更新は変更ビットを
1にセットすることにより示される。
【0036】CONDITIONAL WRITE
(S,P,CB=0,バッファアドレス)。このCON
DITIONAL WRITEコマンドはNVメモリ
に、条件付きで書込むコンピュータシステムが2次記憶
手段から得たが変更されていないページを入れるために
用いられる。
(S,P,CB=0,バッファアドレス)。このCON
DITIONAL WRITEコマンドはNVメモリ
に、条件付きで書込むコンピュータシステムが2次記憶
手段から得たが変更されていないページを入れるために
用いられる。
【0037】図3において、READ PAGEコマン
ドに応じた管理ロジック処理についての動作の流れが示
されている。まず、管理ロジック17はWAIT状態5
0となっており、そこからUNCONDITIONAL
WRITE,CONDITIONAL WRITEま
たはREAD PAGEのプロセスを含む少なくとも三
つのプロセスの内の任意の一つに出ることが出来る。図
3において、上記の形を有するREADコマンドが入っ
たと仮定する。これはREADプロセスステップ60で
示される。READ PAGEコマンドを与える際に、
それを出すコンピュータシステムはそれ自体(SI、す
なわちi番目のシステム)、要求されたページ(P)、
および読取られたページを送るべきコンピュータシステ
ム内のバッファアドレスを識別する。管理ロジック17
で行われるこの読取プロセスは三つのケースを有する。
ドに応じた管理ロジック処理についての動作の流れが示
されている。まず、管理ロジック17はWAIT状態5
0となっており、そこからUNCONDITIONAL
WRITE,CONDITIONAL WRITEま
たはREAD PAGEのプロセスを含む少なくとも三
つのプロセスの内の任意の一つに出ることが出来る。図
3において、上記の形を有するREADコマンドが入っ
たと仮定する。これはREADプロセスステップ60で
示される。READ PAGEコマンドを与える際に、
それを出すコンピュータシステムはそれ自体(SI、す
なわちi番目のシステム)、要求されたページ(P)、
および読取られたページを送るべきコンピュータシステ
ム内のバッファアドレスを識別する。管理ロジック17
で行われるこの読取プロセスは三つのケースを有する。
【0038】第一のケースは、識別されたページPのエ
ントリが登録簿24にあり、そのページのEビットが0
にセットされて要求されたページが共用キャッシュ20
にあることを示すとき生じる。これら条件は夫々決定ス
テップ61と62でテストされる。再決定が肯定である
場合には、この読取プロセスがステップ63でそのエン
トリのSVビットベクトル内の識別されたi番目のコン
ピュータシステム(SI)に対応するビットを1にセッ
トし、ステップ64で特定されたバッファアドレスのデ
ータページをもどしステップ66でキャッシュヒット標
識をもどす。
ントリが登録簿24にあり、そのページのEビットが0
にセットされて要求されたページが共用キャッシュ20
にあることを示すとき生じる。これら条件は夫々決定ス
テップ61と62でテストされる。再決定が肯定である
場合には、この読取プロセスがステップ63でそのエン
トリのSVビットベクトル内の識別されたi番目のコン
ピュータシステム(SI)に対応するビットを1にセッ
トし、ステップ64で特定されたバッファアドレスのデ
ータページをもどしステップ66でキャッシュヒット標
識をもどす。
【0039】このケースの意味は、共用キャッシュ20
にすでにあるページについて読取要求が出れば、そのペ
ージはキャッシュヒット標識と共にリクエスタに無条件
でもどされることである。リクエスタについてのSビッ
トはこのシステムのもつページPのコピーが現在のもの
であることを示すために第1の状態(1)に条件づけら
れる。
にすでにあるページについて読取要求が出れば、そのペ
ージはキャッシュヒット標識と共にリクエスタに無条件
でもどされることである。リクエスタについてのSビッ
トはこのシステムのもつページPのコピーが現在のもの
であることを示すために第1の状態(1)に条件づけら
れる。
【0040】第2のケースでは、登録簿24にページP
についてのエントリはあるが、そのページが共用キャッ
シュ20にまだ入れられていないものとする。この場
合、ページ読取ステップ60に続き、決定ステップ61
の結果が肯定、決定ステップ62の結果が否定となる。
ここで、要求を行うシステムのSビットは第1状態(す
なわち「1」)に条件づけられ、キャッシュミスが出さ
れる。この場合、前のREAD PAGEコマンドは管
理ロジック17に入っており、登録簿のエントリをつく
るがそのページはまだDASDからとり出されていな
い。
についてのエントリはあるが、そのページが共用キャッ
シュ20にまだ入れられていないものとする。この場
合、ページ読取ステップ60に続き、決定ステップ61
の結果が肯定、決定ステップ62の結果が否定となる。
ここで、要求を行うシステムのSビットは第1状態(す
なわち「1」)に条件づけられ、キャッシュミスが出さ
れる。この場合、前のREAD PAGEコマンドは管
理ロジック17に入っており、登録簿のエントリをつく
るがそのページはまだDASDからとり出されていな
い。
【0041】最後のケースではページP用の登録簿エン
トリはなく、管理ロジック17は決定ステップ61の否
定出力に従ってステップ70,71,72を次々に実行
する。これに関し、ステップ70で管理ロジックはペー
ジP用の登録簿エントリをつくり(使用可能な記憶手段
があるとして)、まずこのつくられたエントリ用の全S
Vビットベクトルを第2状態(好適には「0」)に条件
づける。次に、Eビットが1に、CBが0にセットさ
れ、要求システム用のSビットが第1状態に条件づけら
れる。最後に、キャッシュミスがステップ68で出さ
れ、このロジックは待機状態となる。
トリはなく、管理ロジック17は決定ステップ61の否
定出力に従ってステップ70,71,72を次々に実行
する。これに関し、ステップ70で管理ロジックはペー
ジP用の登録簿エントリをつくり(使用可能な記憶手段
があるとして)、まずこのつくられたエントリ用の全S
Vビットベクトルを第2状態(好適には「0」)に条件
づける。次に、Eビットが1に、CBが0にセットさ
れ、要求システム用のSビットが第1状態に条件づけら
れる。最後に、キャッシュミスがステップ68で出さ
れ、このロジックは待機状態となる。
【0042】この最後のケースではシステムSIはペー
ジP用の第1READ要求を出しており、このページが
共用キャッシュ20に入れられる前の次のREAD要求
はステップ60,61,62,67,68を経る。要求
されたページがDASDから共用キャッシュ20に上げ
られてしまうと、READ要求はステップ60,61,
62,63,64,66を経る。
ジP用の第1READ要求を出しており、このページが
共用キャッシュ20に入れられる前の次のREAD要求
はステップ60,61,62,67,68を経る。要求
されたページがDASDから共用キャッシュ20に上げ
られてしまうと、READ要求はステップ60,61,
62,63,64,66を経る。
【0043】更新されたページを共用キャッシュ20に
書込むために管理ロジックで用いられるこのプロセスは
図4に示してある。ページはREAD PAGEコマン
ドにより共用キャッシュ20からとり出された後に更新
出来る。あるいは、ページはDASDから得られた後で
あって、そのページが共用キャッシュ20に入れられる
前にも更新しうる。システムSIがページPを獲得し、
そのページを更新しておりそして今、そのページを共用
キャッシュ20に書込まねばらならないものとする。シ
ステムSIは更新されたこのページPの書込みのために
CB=1のWRITEコマンドを出す。このWRITE
コマンドに応じた管理ロジックによる処理を図4に示
す。
書込むために管理ロジックで用いられるこのプロセスは
図4に示してある。ページはREAD PAGEコマン
ドにより共用キャッシュ20からとり出された後に更新
出来る。あるいは、ページはDASDから得られた後で
あって、そのページが共用キャッシュ20に入れられる
前にも更新しうる。システムSIがページPを獲得し、
そのページを更新しておりそして今、そのページを共用
キャッシュ20に書込まねばらならないものとする。シ
ステムSIは更新されたこのページPの書込みのために
CB=1のWRITEコマンドを出す。このWRITE
コマンドに応じた管理ロジックによる処理を図4に示
す。
【0044】図4においては三つのケース、すなわち、
ページP用のエントリが登録簿24にあり、そしてE=
0(そのページが共用キャッシュ20にある)であるケ
ース、ページP用のエントリはあるが、そのページはま
だいずれの形でも共用キャッシュ20に入れられていな
いケース、あるいは登録簿にそのページP用のエントリ
がないケース、がある。
ページP用のエントリが登録簿24にあり、そしてE=
0(そのページが共用キャッシュ20にある)であるケ
ース、ページP用のエントリはあるが、そのページはま
だいずれの形でも共用キャッシュ20に入れられていな
いケース、あるいは登録簿にそのページP用のエントリ
がないケース、がある。
【0045】第1のケースでは管理ロジック17(図
4)で行われる書込プロセスはステップ70,71,7
2を経てステップ73,74,75,76を実行する。
ステップ73でページP用の登録簿エントリのCBフィ
ールドが1にセットされる。次にステップ74でページ
Pの現在のバージョンがWRITEコマンドを有するバ
ッファアドレスのデータで重ね書きされる。次に、その
ページのデータエントリ用のSV BIT VECTO
R内のSビットがWRITEコマンドを出すシステム用
のSビットを除きすべて0にセットされる。ステップ7
5により管理ロジックはそのコマンドの許可をステップ
76で要求システムにもどし待機状態50に入る。
4)で行われる書込プロセスはステップ70,71,7
2を経てステップ73,74,75,76を実行する。
ステップ73でページP用の登録簿エントリのCBフィ
ールドが1にセットされる。次にステップ74でページ
Pの現在のバージョンがWRITEコマンドを有するバ
ッファアドレスのデータで重ね書きされる。次に、その
ページのデータエントリ用のSV BIT VECTO
R内のSビットがWRITEコマンドを出すシステム用
のSビットを除きすべて0にセットされる。ステップ7
5により管理ロジックはそのコマンドの許可をステップ
76で要求システムにもどし待機状態50に入る。
【0046】第2のケースでは管理ロジック17は待機
状態50からステップ70と71を経て決定ステップ7
2で否定となり、ステップ77,78,79,75,7
6を実行する。ステップ77で要求されたページ用の登
録簿エントリ内の変更ビットが1にセットされる。ステ
ップ78で共用キャッシュ20内にページP用のスペー
スが割当てられ、データがシステムS1のバッファアド
レスからそのスペースに移され、そのページのキャッシ
ュアドレスがそのページの登録簿エントリのページアド
レスフィールドに置かれる。次にステップ79で空ビッ
トがページPの登録簿エントリ内に0にセットされ、ス
テップ75が実行され、それに続きブロックはそのコマ
ンドの許可をもどし待機状態50に入る。
状態50からステップ70と71を経て決定ステップ7
2で否定となり、ステップ77,78,79,75,7
6を実行する。ステップ77で要求されたページ用の登
録簿エントリ内の変更ビットが1にセットされる。ステ
ップ78で共用キャッシュ20内にページP用のスペー
スが割当てられ、データがシステムS1のバッファアド
レスからそのスペースに移され、そのページのキャッシ
ュアドレスがそのページの登録簿エントリのページアド
レスフィールドに置かれる。次にステップ79で空ビッ
トがページPの登録簿エントリ内に0にセットされ、ス
テップ75が実行され、それに続きブロックはそのコマ
ンドの許可をもどし待機状態50に入る。
【0047】第3のケースではページP用の登録簿エン
トリがないとき、決定ステップ71は否定となり、ステ
ップ81〜85,76が実行され、それに続きロジック
は待機状態50に入る。ステップ81で登録簿エントリ
がページPについてつくられ、ステップ82でそのペー
ジのエントリ用のスペースが共用キャッシュに割当てら
れる。ステップ83と84において、登録簿エントリ内
の関連するビットが条件づけられる。ステップ83でそ
のページのSVビットベクトル内のすべてのビットが0
に初期化され、Eビットが0にセットされる。次にステ
ップ84で要求システム(ビットSI)用のSビットが
1にされ、変更ビットも1にセットされてそのページが
変更されたことを示し、そのページのアドレスがエント
リに置かれる。ステップ85でページP用の登録簿エン
トリが登録簿に入れられ、そのページがキャッシュの割
当てられた位置に置かれる。このときロジックは許可を
もどし、待機に入る。
トリがないとき、決定ステップ71は否定となり、ステ
ップ81〜85,76が実行され、それに続きロジック
は待機状態50に入る。ステップ81で登録簿エントリ
がページPについてつくられ、ステップ82でそのペー
ジのエントリ用のスペースが共用キャッシュに割当てら
れる。ステップ83と84において、登録簿エントリ内
の関連するビットが条件づけられる。ステップ83でそ
のページのSVビットベクトル内のすべてのビットが0
に初期化され、Eビットが0にセットされる。次にステ
ップ84で要求システム(ビットSI)用のSビットが
1にされ、変更ビットも1にセットされてそのページが
変更されたことを示し、そのページのアドレスがエント
リに置かれる。ステップ85でページP用の登録簿エン
トリが登録簿に入れられ、そのページがキャッシュの割
当てられた位置に置かれる。このときロジックは許可を
もどし、待機に入る。
【0048】図4の書込プロセスは要求が拒否されない
のであるから無条件である。更に、WRITEケースの
いずれの実行も問題のページについての変化ビットをセ
ットしそのページのSVビットベクトルのすべてのビッ
トを0にするものであり、書込コンピュータシステムに
ついてのビットを保管する。次のCONDITIONA
L WRITEの説明から明らかとなるように、WRI
TW中の非書込コンピュータシステムのSビットを0に
することは共用キャッシュへのダウンレベルページのエ
ントリを防止する。しかしながら、このWRITEは後
に生じる無条件WRITEの完了を妨げるものではな
い。常に一つのシステムのみが一つのページを変更する
ようにするため、本発明ではWRITEロックを書込シ
ステムにより獲得する。
のであるから無条件である。更に、WRITEケースの
いずれの実行も問題のページについての変化ビットをセ
ットしそのページのSVビットベクトルのすべてのビッ
トを0にするものであり、書込コンピュータシステムに
ついてのビットを保管する。次のCONDITIONA
L WRITEの説明から明らかとなるように、WRI
TW中の非書込コンピュータシステムのSビットを0に
することは共用キャッシュへのダウンレベルページのエ
ントリを防止する。しかしながら、このWRITEは後
に生じる無条件WRITEの完了を妨げるものではな
い。常に一つのシステムのみが一つのページを変更する
ようにするため、本発明ではWRITEロックを書込シ
ステムにより獲得する。
【0049】管理ロジック17において用いる条件付き
書込処理を示す図5の処理においてシステムS1がNV
メモリからキャッシュミスを受け、2次記憶手段からペ
ージを受けたがまだそれを変更しておらず、共用キャッ
シュ20にそれをキャッシュしようとしているものとす
る。管理ロジック17に送られるパラメータ群内でシス
テムS1は変更ビットを0にセットし、そのコンピュー
タシステムの所有するそのページがそのページの2次記
憶手段バージョンと等しいことを示す。ここでも三つの
ケースがある。
書込処理を示す図5の処理においてシステムS1がNV
メモリからキャッシュミスを受け、2次記憶手段からペ
ージを受けたがまだそれを変更しておらず、共用キャッ
シュ20にそれをキャッシュしようとしているものとす
る。管理ロジック17に送られるパラメータ群内でシス
テムS1は変更ビットを0にセットし、そのコンピュー
タシステムの所有するそのページがそのページの2次記
憶手段バージョンと等しいことを示す。ここでも三つの
ケースがある。
【0050】第1のケースではシステムS1がCB=0
の条件付WRITEコマンドを出す。このコマンドはス
テップ90に入り、登録簿24がページPに対応するエ
ントリについてチェックされる。このページが登録簿で
あればステップ91は肯定となり、ステップ92でその
エントリの空ビットがチェックされてそのページがキャ
ッシュにあるかどうかを決定する。もしステップ92が
肯定であればそのページではキャッシュにある。この時
点でシステムSI用のSビットは、他のシステムがその
ページを変更したかどうかの決定のためにそのページエ
ンリトのSVビットベクトル内でチェックされる。S1
ビットが1にセットされれば、そのページへの変更は生
じておらず、ステップ93は肯定となる。ここで管理ロ
ジック17はそのページがキャッシュにあり、S1によ
り与えられるページがキャッシュ内のページと同じであ
り、そのページでの重ね書きが要求されないことを決定
する。このように管理ロジック17はステップ95でC
ONDITIONAL WRITEの許可を示す適正な
コードをもどす。しかしながら、システムSIのメモリ
から共用キャッシュ20へのデータの転送はない。この
ロジックは次に待機に入る。
の条件付WRITEコマンドを出す。このコマンドはス
テップ90に入り、登録簿24がページPに対応するエ
ントリについてチェックされる。このページが登録簿で
あればステップ91は肯定となり、ステップ92でその
エントリの空ビットがチェックされてそのページがキャ
ッシュにあるかどうかを決定する。もしステップ92が
肯定であればそのページではキャッシュにある。この時
点でシステムSI用のSビットは、他のシステムがその
ページを変更したかどうかの決定のためにそのページエ
ンリトのSVビットベクトル内でチェックされる。S1
ビットが1にセットされれば、そのページへの変更は生
じておらず、ステップ93は肯定となる。ここで管理ロ
ジック17はそのページがキャッシュにあり、S1によ
り与えられるページがキャッシュ内のページと同じであ
り、そのページでの重ね書きが要求されないことを決定
する。このように管理ロジック17はステップ95でC
ONDITIONAL WRITEの許可を示す適正な
コードをもどす。しかしながら、システムSIのメモリ
から共用キャッシュ20へのデータの転送はない。この
ロジックは次に待機に入る。
【0051】第2のケースではページP用の登録簿エン
トリがあり、ステップ91は肯定となる。しかしなが
ら、ステップ92で管理ロジック17が、そのページが
キャッシュになく、決定ステップ92が否定となるとす
ると、次に決定ステップ97に入る。ステップ97でペ
ージP用のSVビットベクトルのビットSIが検査され
る。このビットが1にセットされていれば、システムS
Iは有効ページを所有する。この時点で決定ステップ9
7は肯定となる。共用キャッシュ内にスペースが割当て
られ、そのページのデータがシステムS1のバッファア
ドレスからそのスペースに移される。ステップ100で
Eビットが0にセットされる。ステップ102でページ
アドレスが登録簿にセットされ、登録簿にエントリが置
かれる。最後に管理ロジックがシステムSIにCOND
ITIONAL WRITEの許可をもどし待機に入
る。
トリがあり、ステップ91は肯定となる。しかしなが
ら、ステップ92で管理ロジック17が、そのページが
キャッシュになく、決定ステップ92が否定となるとす
ると、次に決定ステップ97に入る。ステップ97でペ
ージP用のSVビットベクトルのビットSIが検査され
る。このビットが1にセットされていれば、システムS
Iは有効ページを所有する。この時点で決定ステップ9
7は肯定となる。共用キャッシュ内にスペースが割当て
られ、そのページのデータがシステムS1のバッファア
ドレスからそのスペースに移される。ステップ100で
Eビットが0にセットされる。ステップ102でページ
アドレスが登録簿にセットされ、登録簿にエントリが置
かれる。最後に管理ロジックがシステムSIにCOND
ITIONAL WRITEの許可をもどし待機に入
る。
【0052】このケースではステップ97は否定である
とする。このときシステムSIは有効ページを所有せ
ず、条件付書込処理がステップ105で終了し、管理ロ
ジック17がCONDITIONAL WRITEコマ
ンドの拒否をシステムSIにもどし、待機状態50に入
る。
とする。このときシステムSIは有効ページを所有せ
ず、条件付書込処理がステップ105で終了し、管理ロ
ジック17がCONDITIONAL WRITEコマ
ンドの拒否をシステムSIにもどし、待機状態50に入
る。
【0053】最後に管理ロジックが受け入れたCOND
ITIONAL WRITEコマンドに応じて、登録簿
24にページP用のエントリがなされなかったと決定す
れば、決定ステップ91は否定となり、コマンド処理が
終了しそのコマンドがステップ105で拒否され、管理
ロジックは待機状態50に入る。本発明の実施態様例 図6を参照して本発明の具体的実施態様の一例を述べ
る。コマンドと処理を上述のものとすると、この例は、
一つのページについてのコマンドが直列に処理される場
合にNVメモリで複数のシステムが非ブロッキング直列
化をもってそのページを読取り、更新しうるとき、本発
明はこのページのダウンレベルバージョンをそのページ
の最新のコピーに重ね書きしないようにするものである
ことを示す。非ブロッキング直列化は、ブロッキング直
列化には要求の待ち行列化、要求の回復が必要であり、
複雑な回復機構が必要であるから、ブロッキング直列化
より有利である。
ITIONAL WRITEコマンドに応じて、登録簿
24にページP用のエントリがなされなかったと決定す
れば、決定ステップ91は否定となり、コマンド処理が
終了しそのコマンドがステップ105で拒否され、管理
ロジックは待機状態50に入る。本発明の実施態様例 図6を参照して本発明の具体的実施態様の一例を述べ
る。コマンドと処理を上述のものとすると、この例は、
一つのページについてのコマンドが直列に処理される場
合にNVメモリで複数のシステムが非ブロッキング直列
化をもってそのページを読取り、更新しうるとき、本発
明はこのページのダウンレベルバージョンをそのページ
の最新のコピーに重ね書きしないようにするものである
ことを示す。非ブロッキング直列化は、ブロッキング直
列化には要求の待ち行列化、要求の回復が必要であり、
複雑な回復機構が必要であるから、ブロッキング直列化
より有利である。
【0054】この例ではデータを共用する二つのシステ
ムS1とS2があるものとする。この例における事象の
シーケンスを示すため、ページPについての代表的な登
録簿エントリ200を用いる。また、時間の経過を下向
きの矢印「時間」で示す。
ムS1とS2があるものとする。この例における事象の
シーケンスを示すため、ページPについての代表的な登
録簿エントリ200を用いる。また、時間の経過を下向
きの矢印「時間」で示す。
【0055】まず、動作209でシステムS1がページ
PについてのREAD PAGEコマンドを出すものと
する。更に、NVメモリはPについての登録簿エントリ
を有しないものとする。この場合、管理ロジックは動作
210でREAD処理のケース3を実行し、P用の登録
簿エントリをつくり、ページ各フィールドを満たすこと
によってそのエントリを初期化し、空ビットフィールド
を1にセットし、ページアドレスフィールドを0にセッ
トし、変化ビットフィールドを0にセツトし、S1とS
2フィールドにS1=1,S2=0を付加する。ケース
3の読取処理の終りに、動作211でNVメモリがシス
テムS1にキャッシュミス標識を出し、その場合S1は
動作212で2次記憶手段からのページPの読取プロセ
スを開始する。
PについてのREAD PAGEコマンドを出すものと
する。更に、NVメモリはPについての登録簿エントリ
を有しないものとする。この場合、管理ロジックは動作
210でREAD処理のケース3を実行し、P用の登録
簿エントリをつくり、ページ各フィールドを満たすこと
によってそのエントリを初期化し、空ビットフィールド
を1にセットし、ページアドレスフィールドを0にセッ
トし、変化ビットフィールドを0にセツトし、S1とS
2フィールドにS1=1,S2=0を付加する。ケース
3の読取処理の終りに、動作211でNVメモリがシス
テムS1にキャッシュミス標識を出し、その場合S1は
動作212で2次記憶手段からのページPの読取プロセ
スを開始する。
【0056】次にS2が動作214でページPについて
のREAD PAGEコマンドを出すとする。この場
合、管理ロジックは動作215で読取処理ケース2を実
行し、S2=1をセットし、動作216でキャッシュミ
スをもどす。この時点でシステムS2は動作218で2
次記憶手段からのページPの読取処理を開始する。
のREAD PAGEコマンドを出すとする。この場
合、管理ロジックは動作215で読取処理ケース2を実
行し、S2=1をセットし、動作216でキャッシュミ
スをもどす。この時点でシステムS2は動作218で2
次記憶手段からのページPの読取処理を開始する。
【0057】ここでシステムS2はページPのDASD
バージョンを得る最初のシステムであるとする。このバ
ージョンではシステムS2は動作219でCONDIT
IONAL WRITEをCB=0と共にNVメモリに
出す。ページPについてのページエントリを得たがその
ページのコピーがキャッシュになく、SVビットベクト
ルビットがS2=1であると、管理ロジック17は動作
220でCONDITIONAL WRITEコマンド
処理ステップ90,91,92,97,99,100,
102を実行し、そのページを共用キャッシュ20に入
れ、Eビットを0にセットし、そのページのキャッシュ
アドレスを登録簿に入れ、動作221でCONDITI
ONAL WRITEの許可を出す。
バージョンを得る最初のシステムであるとする。このバ
ージョンではシステムS2は動作219でCONDIT
IONAL WRITEをCB=0と共にNVメモリに
出す。ページPについてのページエントリを得たがその
ページのコピーがキャッシュになく、SVビットベクト
ルビットがS2=1であると、管理ロジック17は動作
220でCONDITIONAL WRITEコマンド
処理ステップ90,91,92,97,99,100,
102を実行し、そのページを共用キャッシュ20に入
れ、Eビットを0にセットし、そのページのキャッシュ
アドレスを登録簿に入れ、動作221でCONDITI
ONAL WRITEの許可を出す。
【0058】次にシステムS1がそれをDASDから読
取る前にシステムS2がページPを更新し、動作223
でCB=1と共にWRITEコマンドを出すとする。こ
れに応じ、管理ロジック17は動作225でWRITE
処理のケース1を実行し、SV BIT VECTOR
内のビットS1を0に変化させる。これは、システムS
1の所有するページPのコピーがダウンレベルであるこ
とを示す。
取る前にシステムS2がページPを更新し、動作223
でCB=1と共にWRITEコマンドを出すとする。こ
れに応じ、管理ロジック17は動作225でWRITE
処理のケース1を実行し、SV BIT VECTOR
内のビットS1を0に変化させる。これは、システムS
1の所有するページPのコピーがダウンレベルであるこ
とを示す。
【0059】最後に、ページPについて動作212にお
けるシステムS1により開始されるディスク読取処理が
完了したとする。このとき、システムS1は動作227
でページPのダウンレベルバージョンをCONDITI
ONAL WRITEコマンドによりNVメモリに置こ
うとする。管理ロジック17はCONDITIONAL
WRITE処理のステップ90〜93を経て、決定ス
テップ93を否定とし、動作228でCONDITIO
NAL WRITEを拒否する。CONDITIONA
L WRITEの拒否により、システムS1は他のRE
ADPAGEコマンド動作230でNVメモリからペー
ジPを得ることが出来る。
けるシステムS1により開始されるディスク読取処理が
完了したとする。このとき、システムS1は動作227
でページPのダウンレベルバージョンをCONDITI
ONAL WRITEコマンドによりNVメモリに置こ
うとする。管理ロジック17はCONDITIONAL
WRITE処理のステップ90〜93を経て、決定ス
テップ93を否定とし、動作228でCONDITIO
NAL WRITEを拒否する。CONDITIONA
L WRITEの拒否により、システムS1は他のRE
ADPAGEコマンド動作230でNVメモリからペー
ジPを得ることが出来る。
【0060】第1レベルの記憶手段から得たページを共
用NVメモリに移すためのブロッキング直列化プロセス
は、登録簿エントリまたはデータがないことによりコマ
ンドがキャッシュミスを生じさせてもNVメモリが第1
READ PAGEコマンドでそのページのキャッシン
グ(SVビットベクトル内)の追跡を開始するから、良
好に機能する。他のシステムからの無条件WRITEコ
マンドはページP用の変更ビットをセットし、そのペー
ジのSVビットベクトル内の書込システム以外のすべて
の他のシステムのSビットをリセットする。次のCON
DITIONAL WRITEコマンドの処理は(a)
SVビットベクトル内の書込システムのSビットまたは
(b)ページ用の登録簿エントリの欠除による。NVメ
モリは上記いずれの場合もCONDITIONAL W
RITEコマンドを拒否する。
用NVメモリに移すためのブロッキング直列化プロセス
は、登録簿エントリまたはデータがないことによりコマ
ンドがキャッシュミスを生じさせてもNVメモリが第1
READ PAGEコマンドでそのページのキャッシン
グ(SVビットベクトル内)の追跡を開始するから、良
好に機能する。他のシステムからの無条件WRITEコ
マンドはページP用の変更ビットをセットし、そのペー
ジのSVビットベクトル内の書込システム以外のすべて
の他のシステムのSビットをリセットする。次のCON
DITIONAL WRITEコマンドの処理は(a)
SVビットベクトル内の書込システムのSビットまたは
(b)ページ用の登録簿エントリの欠除による。NVメ
モリは上記いずれの場合もCONDITIONAL W
RITEコマンドを拒否する。
【0061】ケース(a)についてCONDITION
AL WRITEコマンドを拒否する理由は、他のシス
テムがそのページを更新していることがあり、あるいは
NVメモリがそのエントリを失った後再びつくったこと
がありうるからである。
AL WRITEコマンドを拒否する理由は、他のシス
テムがそのページを更新していることがあり、あるいは
NVメモリがそのエントリを失った後再びつくったこと
がありうるからである。
【0062】ケース(b)についてCONDITION
AL WRITEコマンドが拒否される理由は、次のシ
ナリオ、すなわちシステムS1がページPのREAD
PAGEコマンドを出してキャッシュミスを受ける場合
について述べる。システムS1はこのとき、2次記憶手
段からそのページを読取る。その間、システムS2がペ
ージPのREAD PAGEコマンドを出し、キャッシ
ュミスを受け、システムS1の前に2次記憶手段からペ
ージPを得る。ここでシステムS2はページPに入るた
めにCONDITIONAL WRITEコマンドを出
し、ページPを更新してCB=1と共にWRITEコマ
ンドを出し、システムS1用のSビットに無効をマーク
する。(これは図6に示す処理である)。次にシステム
S2はページPをNVメモリから除去しそれを2次記憶
手段に書込む。ページP用の登録簿エントリ及び共用キ
ャッシュの割当分は利用可能となり、NVメモリにより
使用される。ここで、システムS1のCONDITIO
NAL WRITEコマンドが許可されるべきものとす
ると、ページPのダウンレベルコピーがNVメモリにキ
ャッシュされる。従ってCONDITIONAL WR
ITEコマンドはそのページPについての登録簿エント
リがない場合には拒否されねばならない。CB=1を伴うCONDITIONAL WRITE 本発明ではCONDITIONAL WRITEコマン
ドは変更ビットを1にセットしてコンピュータシステム
により出すことが出来る。これに関し、このコマンドは
そのコンピュータシステムが更新した、2次記憶手段か
ら得られるページをNVメモリに入れるために用いられ
る。この場合、コンピュータシステムは、CB=1を除
き上記と同一のパラメータ群を有するCONDITIO
NALWRITEコマンドで更新されたページをキャッ
シュに入れるように管理ロジック17を促す。この条件
で一つのページに対する更新の直列化のための大域ロッ
クが回避される。そのような大域ロックの回避は次の1
〜12に示す通りである。 1. システムS1がページP用のREAD PAGE
を出す。 2. システムS2がページP用のREAD PAGE
を出す。 3. システムS2がページPを得て、その共用キャッ
シュへの条件付き書込みの前にそのバッファでそのペー
ジを更新する。 4. システムS2がCB=1として、ページPについ
てのCONDITIONAL WRITEを出す。 5. システムS1がページPを得て、そのページをそ
のバッファで更新する。
AL WRITEコマンドが拒否される理由は、次のシ
ナリオ、すなわちシステムS1がページPのREAD
PAGEコマンドを出してキャッシュミスを受ける場合
について述べる。システムS1はこのとき、2次記憶手
段からそのページを読取る。その間、システムS2がペ
ージPのREAD PAGEコマンドを出し、キャッシ
ュミスを受け、システムS1の前に2次記憶手段からペ
ージPを得る。ここでシステムS2はページPに入るた
めにCONDITIONAL WRITEコマンドを出
し、ページPを更新してCB=1と共にWRITEコマ
ンドを出し、システムS1用のSビットに無効をマーク
する。(これは図6に示す処理である)。次にシステム
S2はページPをNVメモリから除去しそれを2次記憶
手段に書込む。ページP用の登録簿エントリ及び共用キ
ャッシュの割当分は利用可能となり、NVメモリにより
使用される。ここで、システムS1のCONDITIO
NAL WRITEコマンドが許可されるべきものとす
ると、ページPのダウンレベルコピーがNVメモリにキ
ャッシュされる。従ってCONDITIONAL WR
ITEコマンドはそのページPについての登録簿エント
リがない場合には拒否されねばならない。CB=1を伴うCONDITIONAL WRITE 本発明ではCONDITIONAL WRITEコマン
ドは変更ビットを1にセットしてコンピュータシステム
により出すことが出来る。これに関し、このコマンドは
そのコンピュータシステムが更新した、2次記憶手段か
ら得られるページをNVメモリに入れるために用いられ
る。この場合、コンピュータシステムは、CB=1を除
き上記と同一のパラメータ群を有するCONDITIO
NALWRITEコマンドで更新されたページをキャッ
シュに入れるように管理ロジック17を促す。この条件
で一つのページに対する更新の直列化のための大域ロッ
クが回避される。そのような大域ロックの回避は次の1
〜12に示す通りである。 1. システムS1がページP用のREAD PAGE
を出す。 2. システムS2がページP用のREAD PAGE
を出す。 3. システムS2がページPを得て、その共用キャッ
シュへの条件付き書込みの前にそのバッファでそのペー
ジを更新する。 4. システムS2がCB=1として、ページPについ
てのCONDITIONAL WRITEを出す。 5. システムS1がページPを得て、そのページをそ
のバッファで更新する。
【0063】6. システムS1がCB=1としてペー
ジPのCONDITIONAL WRITEを出す。 7. システムS1のCONDITIONAL WRI
TEは、ページPのSVビットベクトル内のビットS1
が「無効」とマークされる(その値は0)から拒否され
る。 8. システムS1がページPのREAD PAGEを
出す。 9. S1のREAD PAGEコマンドに応じて管理
ロジックがページPのSVビットベクトル内のビットS
1を「有効」にセットする(値1)。 10. システムS1が共用キャッシュまたは2次記憶手
段からページPの最新のバージョンを得る。このバージ
ョンはシステムS2でなされた更新を含みうる。 11. システムS1がそのバッファ内のページPを更新
する。 12. システムS1がCB=1としてCONDITIO
NAL WRITEコマンドを出す。
ジPのCONDITIONAL WRITEを出す。 7. システムS1のCONDITIONAL WRI
TEは、ページPのSVビットベクトル内のビットS1
が「無効」とマークされる(その値は0)から拒否され
る。 8. システムS1がページPのREAD PAGEを
出す。 9. S1のREAD PAGEコマンドに応じて管理
ロジックがページPのSVビットベクトル内のビットS
1を「有効」にセットする(値1)。 10. システムS1が共用キャッシュまたは2次記憶手
段からページPの最新のバージョンを得る。このバージ
ョンはシステムS2でなされた更新を含みうる。 11. システムS1がそのバッファ内のページPを更新
する。 12. システムS1がCB=1としてCONDITIO
NAL WRITEコマンドを出す。
【0064】他のシステムがページPを更新していない
とすると、システムS1のCONDITIONAL W
RITEコマンドは受け入れられ、そしてそれはシステ
ムS1とS2の更新を含みうる。従って本発明のこの例
では任意のコンピュータシステムにおいて共用キャッシ
ュ20への条件付き書込についてのシステムの障害には
CONDITIONAL WRITEコマンドが続き、
そしてこれはシステムがそのページの更新を行なおうと
する限り続く。このように、大域ロックを避け、CON
DITIONAL WRITEコマンドで更新が直列化
される。最良の態様 本発明では図1に示し説明したものが最良のシステムの
実施態様である。本発明は管理ロジック17およびコン
ピュータシステム10,11,12のデータベース管理
システムのプログラミングの形で実施しうる。そのよう
なプログラミングは図3,4,5のプロセスフロー図、
図6の動作のフロー図、およびそれらについての説明か
ら実現しうる。これに関し、管理ロジック17は図2の
共用キャッシュ20へのDASDから得られたデータの
非ブロック化キャッシングのための機構として実現しう
る。これは、管理ロジックが上記の説明およびフロー図
から引き出しうる回路を用いた部分的または完全にハー
ドワイヤードとされたものとすることを妨げるものでは
ない。
とすると、システムS1のCONDITIONAL W
RITEコマンドは受け入れられ、そしてそれはシステ
ムS1とS2の更新を含みうる。従って本発明のこの例
では任意のコンピュータシステムにおいて共用キャッシ
ュ20への条件付き書込についてのシステムの障害には
CONDITIONAL WRITEコマンドが続き、
そしてこれはシステムがそのページの更新を行なおうと
する限り続く。このように、大域ロックを避け、CON
DITIONAL WRITEコマンドで更新が直列化
される。最良の態様 本発明では図1に示し説明したものが最良のシステムの
実施態様である。本発明は管理ロジック17およびコン
ピュータシステム10,11,12のデータベース管理
システムのプログラミングの形で実施しうる。そのよう
なプログラミングは図3,4,5のプロセスフロー図、
図6の動作のフロー図、およびそれらについての説明か
ら実現しうる。これに関し、管理ロジック17は図2の
共用キャッシュ20へのDASDから得られたデータの
非ブロック化キャッシングのための機構として実現しう
る。これは、管理ロジックが上記の説明およびフロー図
から引き出しうる回路を用いた部分的または完全にハー
ドワイヤードとされたものとすることを妨げるものでは
ない。
【0065】
【発明の効果】本発明によれば、共用データ多重コンピ
ュータシステムにおいて、共用キャッシュ内の任意のデ
ータページが他の共用データ記憶資源から得られたその
ページの前のバージョンで重ね書きされないようにする
ことができる。
ュータシステムにおいて、共用キャッシュ内の任意のデ
ータページが他の共用データ記憶資源から得られたその
ページの前のバージョンで重ね書きされないようにする
ことができる。
【図1】共用キャッシュとして用いられる高速不揮発性
メモリを含む多重システムデータ共用複合体のブロック
図。
メモリを含む多重システムデータ共用複合体のブロック
図。
【図2】図1の共用メモリと本発明の実施に必要なデー
タ構造の詳細を示すブロック図。
タ構造の詳細を示すブロック図。
【図3】本発明によるREADコマンドについてのプロ
セスフローを示す図。
セスフローを示す図。
【図4】本発明による無条件WRITEについてのプロ
セスフロー図。
セスフロー図。
【図5】本発明によるCONDITIONAL WRI
TEコマンドについてのプロセスフロー図。
TEコマンドについてのプロセスフロー図。
【図6】本発明の方法を示すフロー図。
10,11,12 コンピュータシステム 14,15 DASD 16 NVメモリ 18,19,20 高速リンク 17 管理ロジック 20 共用キャッシュ 22 システムリスト 24 登録簿
Claims (9)
- 【請求項1】WRITEコマンドに応じて比較的高速の
メモリにデータを記憶させ、READコマンドに応じて
前記メモリからデータを得、更に前記メモリに記憶され
ているデータを示す登録簿エントリを生成、管理、及び
削除するための管理ロジック手段と、データを記憶する
ための比較的低速の記憶手段と、前記メモリ、前記管理
ロジック手段、及び前記記憶手段それぞれに接続されて
いる複数のコンプピュータシステムを含む複合システム
において、前記メモリへのデータブロックのエントリを
制御する方法であって、 第1コンピュータシステムがデータブロックを読み出す
ために前記管理ロジック手段にREADコマンドを与え
るステップと、 このREADコマンドに応じて、前記管理ロジック手段
が前記データブロックの登録簿エントリを生成するステ
ップと、 前記管理ロジック手段が登録簿の中に前記データブロッ
クのための登録簿エントリを保存するステップと、 第2コンピュータシステムが前記記憶手段から前記デー
タブロックを読取るステップと、 前記第2コンピュータシステムが前記メモリに前記デー
タブロックを記憶させるためにWRITEコマンドを発
生するステップと、 このWRITEコマンドに応じて、前記管理ロジック手
段がもし前記登録簿から前記データブロック用の登録簿
エントリが削除されていれば前記メモリへの前記データ
ブロックのエントリを禁止し、そうでなければ前記メモ
リに前記データブロックを記憶させるステップと、 を有する、比較的高速のメモリへのデータブロックのエ
ントリを制御する方法。 - 【請求項2】WRITEコマンドに応じて比較的高速の
メモリにデータを記憶させ、READコマンドに応じて
前記メモリからデータを得るための管理ロジック手段
と、データを記憶するための比較的低速の記憶手段と、
前記メモリ、前記管理ロジック手段、及び前記記憶手段
それぞれに接続されている複数のコンプピュータシステ
ムとを含む複合システムにおいて、前記メモリへのデー
タブロックのエントリを制御する方法であって、 データブロックを得るためにそのデータブロックが前記
メモリに記憶される前に第1コンピュータシステムによ
って発せられるREADコマンドに応じて、前記管理ロ
ジック手段が前記複数のコンピュータシステムそれぞれ
を示すシステム識別子を含みかつ前記データブロックを
示す登録簿エントリを登録簿内に生成し、記憶するステ
ップと、 前記READコマンドに応じて、前記管理ロジック手段
が第1コンピュータシステム用のシステム識別子に前記
データブロックのバージョンが有効であることを示す第
1状態をセットするステップと、 もし前記データブロックが第2コンピュータシステムに
よって更新されたバージョンであるならば、前記管理ロ
ジック手段が第1コンピュータシステム用のシステム識
別子に前記データブロックのバージョンが有効でないこ
とを示す第2状態をセットするステップと、 第1コンピュータシステムが前記記憶手段から前記デー
タブロックを読み出すステップと、 第1コンピュータシステムが前記データブロックを前記
メモリに記憶させるためにWRITEコマンドを発する
ステップと、 前記WRITEコマンドに応じて、前記管理ロジック手
段が、もし第1コンピュータシステム用のシステム識別
子が第2状態にセットされていれば、第1コンピュータ
システムから前記メモリへの前記データブロックを禁止
するステップと、 そうでないならば前記管理ロジック手段が、前記第1コ
ンピュータシステムから前記メモリへの前記データブロ
ックを記憶させるステップと、 を有する、比較的高速のメモリへデータブロックのエン
トリを制御する方法。 - 【請求項3】前記READコマンドは、 前記データブロックを示す登録簿エントリが登録簿に存
在するか否かをチェックするステップと、 もし前記データエントリが存在し、かつ前記データブロ
ックが前記メモリに存在していれば、前記第1コンピュ
ータシステム用のシステム識別子に前記第1状態をセッ
トし、前記第1コンピュータシステムに前記データブロ
ックが上記メモリ内にあることを指摘するステップと、 そうでないならば、前記第1コンピュータシステム用の
システム識別子を前記第1状態にセットし、前記第1コ
ンピュータシステムに前記データブロックが前記メモリ
内にないことを指摘するステップと、 を含んでいる、請求項2に記載の方法。 - 【請求項4】前記READコマンドは、 前記データブロックを示す登録簿エントリが登録簿に存
在しないならば、その登録簿にそのデータブロックを示
す登録簿エントリを記憶するステップと、 前記登録簿エントリに含まれる全てのシステム識別子に
前記第2状態を初期設定するステップと、 第1コンピュータシステム用のシステム識別子に前記第
1状態をセットするステップと、 前記第1コンピュータシステムに前記データブロックが
前記メモリに記憶されていないことを指摘するステップ
と、 を含んでいる請求項3に記載の方法。 - 【請求項5】前記第1コンピュータシステムから前記メ
モリへの前記データブロックを記憶させるステップは、 もし前記データブロックが前記メモリ内に記憶されてい
る場合、もし第1コンピュータイステム用のシステム識
別子が前記第2状態にセットされていれば第1コンピュ
ーラシステムにWRITEコマンドが受入れらないこと
を指摘するステップと、 そうでなければ第1コンピューラシステムにWRITE
コマンドが受入れられることを指摘するステップと、 を含んでいる、請求項2に記載の方法。 - 【請求項6】前記第1コンピュータシステムから前記メ
モリへの前記データブロックを記憶させるステップは、 前記データブロックを示す登録簿エントリが前記メモリ
に存在しかつ前記データブロックが前記メモリに存在し
ない場合、もし第1コンピュータシステム用のシステム
識別子が前記第2状態にセットされているならば、前記
メモリへの前記データブロックのエントリを禁止するス
テップと、 そうでなければ、第1コンピュータシステムからメモリ
へデータブロックを記憶させるステップと、 を含んでいる、請求項2に記載の方法。 - 【請求項7】前記データブロックを示す登録簿エントリ
が登録簿に存在しないならば、前記メモリへの前記デー
タブロックのエントリを禁止し、第1コンピュータシス
テムにそのエントリが拒絶されたことを指摘するステッ
プと、 を含んでいる請求項6に記載の方法。 - 【請求項8】比較的高速のメモリ、データを記憶するた
めの少なくとも1個の比較的低速の記憶手段、このメモ
リと記憶手段とに接続される複数のコンピュータシステ
ム、及び前記複数のコンピュータシステムに接続され、
前記メモリにおけるデータのキャッシングを直列化する
ための大域ロック機構を使用しない管理ロジック装置を
含むコンピュータ装置において、 前記管理ロジック装置は、 前記メモリに存在しないデータブロックの読み出し要求
に応じ、前記各コンピュータシステムそれぞれが有効な
データブロックのバージョンを有するか否かを示す複数
のシステム識別子フィールドを含むシステム有効ベクト
ルを前記メモリ内に生成し記憶するためのシステム有効
ベクトル手段と、 1つのコンピュータシステムからの要求に応じて、その
要求したコンピュータシステム用のシステム識別子フィ
ールドに、その要求したコンピュータシステムが有効な
データブロックのバージョンを有することを示す状態を
セットし、他の要求しなかった全てのコンピュータシス
テム用のシステム識別子フィールドに、各データブロッ
クが有効なデータブロックのバージョンを有してしない
ことを示す状態をセットするように、前記メモリ内にデ
ータブロックの更新バージョンを記憶する第1WRIT
E手段と、 前記記憶手段から得られるデータブロックのバージョン
を保持するコンピュータシステムからの要求に応じて、
前記記憶手段から得られるデータブロックのバージョン
を前記メモリに記憶し、前記データブロックのバージョ
ンを保持するその要求したコンピュータシステム用のシ
ステム識別子フィールドが、その要求したコンピュータ
システムが有効なデータブロックのバージョンを有する
ことを示す状態にセットされる時に、前記記憶手段から
得られるデータブロックのバージョンを前記メモリに記
憶する第2WRITE手段と、 を有するコンピュータ装置。 - 【請求項9】比較的高速のメモリ、データを記憶するた
めの少なくとも1個の比較的低速の記憶手段、このメモ
リおよび記憶手段に接続される複数のコンピュータシス
テム、及びWRITEコマンドに応じて前記メモリにデ
ータを記憶させ、READコマンドに応じてそのメモリ
からデータを獲得し又そのメモリに記憶されたデータに
対応する登録簿エントリを生成する管理ロジック手段を
含むシステムにおいて、前記メモリへのデータブロック
へのエントリを制御する方法であって、 第1コンピュータシステムが前記メモリからデータブロ
ックを読取るためにREADコマンドを発するステップ
と、 このREADコマンドに応じ、前記管理ロジック手段
は、前記各コンピュータシステムが有効なデータブロッ
クバージョンを有することを示す第1状態又は各コンピ
ュータシステムが有効なデータブロックバージョンを有
しないことを示す第2状態のいずれかが選択的にセット
される各コンピュータシステム毎のシステム識別子を含
む第1情報を有する前記データブロックに対応する登録
簿エントリを生成するステップと、 このREADコマンドに応じて、前記管理ロジック手段
が前記第1コンピュータシステム用のシステム識別子に
前記第1状態をセットするステップと、 第2コンピュータシステムが前記データブロックを更新
し、その更新されたデータブロックを前記メモリに書込
むステップと、 前記メモリへの更新されたデータブロックの書込みに応
じて、前記管理ロジック手段が前記第1コンピュータシ
ステム用のシステム識別子の状態を前記第2状態に変更
するステップと、 前記第1コンピュータシステムが、前記比較的低速な記
憶手段からデータブロックを得て、その記憶手段から得
たデータブロックを変更・更新されるように変更するス
テップと、 前記第1コンピュータシステムが、前記変更・更新され
たデータブロックを前記メモリに記憶するためにWRI
TEコマンドを発するステップと、 前記第1コンピュータシステム用のシステム識別子の前
記第2状態に応じて、前記管理ロジック手段が前記第1
コンピュータシステムから前記メモリへの前記変更・更
新されたデータブロックのエントリを禁止するステップ
と、 (a) 前記第1コンピュータシステムが前記メモリか
らのデータブロックを読み取るためにREADコマンド
を発するステップと、 (b) このREADコマンドに応じて、前記管理ロジ
ック手段が前記第1コンピュータシステム用のシステム
識別子の状態を前記第1状態に変えるステップと、 (c) 前記第1コンピュータシステムが変更・更新さ
れたデータブロックを前記メモリに記憶するために、W
RITEコマンドを発するステップと、 (d) もし前記第1コンピュータシステム用のシステ
ム識別子が前記第1状態であれば、前記管理ロジック手
段が変更・更新されたデータブロックを前記メモリに記
憶し、そうでない場合には上記変更・更新されたデータ
ブロックが前記メモリに記憶されるまで前記ステップ
(a)〜(d)を実行するステップと、 を含んでいる、メモリへのデータブロックのエントリを
制御する方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US628211 | 1990-12-14 | ||
| US07/628,211 US5276835A (en) | 1990-12-14 | 1990-12-14 | Non-blocking serialization for caching data in a shared cache |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04268649A JPH04268649A (ja) | 1992-09-24 |
| JPH0799509B2 true JPH0799509B2 (ja) | 1995-10-25 |
Family
ID=24517943
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3294645A Expired - Lifetime JPH0799509B2 (ja) | 1990-12-14 | 1991-11-11 | メモリへのデータブロックのエントリを制御する方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5276835A (ja) |
| EP (1) | EP0490526A3 (ja) |
| JP (1) | JPH0799509B2 (ja) |
Families Citing this family (67)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04284548A (ja) * | 1991-03-14 | 1992-10-09 | Nec Corp | データベース排他制御方式 |
| US5426747A (en) * | 1991-03-22 | 1995-06-20 | Object Design, Inc. | Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system |
| JP2533266B2 (ja) * | 1991-06-14 | 1996-09-11 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 共用デ―タシステムにおけるデ―タ資源のロッキング方法及びシステム間のデ―タロック管理方法 |
| EP0553743A1 (en) * | 1992-01-31 | 1993-08-04 | Motorola, Inc. | A cache controller |
| US5428761A (en) * | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
| US5408653A (en) * | 1992-04-15 | 1995-04-18 | International Business Machines Corporation | Efficient data base access using a shared electronic store in a multi-system environment with shared disks |
| US5974508A (en) * | 1992-07-31 | 1999-10-26 | Fujitsu Limited | Cache memory system and method for automatically locking cache entries to prevent selected memory items from being replaced |
| US5715424A (en) * | 1992-12-10 | 1998-02-03 | International Business Machines Corporation | Apparatus and method for writing data onto rewritable optical media |
| JP2784440B2 (ja) * | 1993-04-14 | 1998-08-06 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ・ページの転送制御方法 |
| US5519846A (en) * | 1993-12-23 | 1996-05-21 | Unisys Corporation | Multiprocessor system with scheme for managing allocation and reservation of cache segments in a cache system employing round-robin replacement and exclusive access |
| TW243509B (en) * | 1994-01-31 | 1995-03-21 | Ibm | Data processor with memory cache and method of operation |
| US5574902A (en) * | 1994-05-02 | 1996-11-12 | International Business Machines Corporation | Efficient destaging of updated local cache pages for a transaction in a multisystem and multiprocess database management system with a high-speed shared electronic store |
| US5546579A (en) * | 1994-05-02 | 1996-08-13 | International Business Machines Corporation | Page refreshing procedure using two locking granularities to ensure cache coherency in a multisystem database processing environment having a high-speed shared electronic store |
| US5577226A (en) * | 1994-05-06 | 1996-11-19 | Eec Systems, Inc. | Method and system for coherently caching I/O devices across a network |
| US5893147A (en) * | 1994-12-22 | 1999-04-06 | Intel Corporation | Method and apparatus for distinguishing system memory data from alternative memory data in a shared cache memory |
| US5671390A (en) * | 1995-05-23 | 1997-09-23 | International Business Machines Corporation | Log structured array storage subsystem using LSA directory and LSA sub-directory stored in different storage media |
| US5692182A (en) * | 1995-10-05 | 1997-11-25 | International Business Machines Corporation | Bufferpool coherency for identifying and retrieving versions of workfile data using a producing DBMS and a consuming DBMS |
| US5727220A (en) * | 1995-11-29 | 1998-03-10 | International Business Machines Corporation | Method and system for caching and referencing cached document pages utilizing a presentation data stream |
| US6012085A (en) * | 1995-11-30 | 2000-01-04 | Stampede Technolgies, Inc. | Apparatus and method for increased data access in a network file object oriented caching system |
| US5835943A (en) * | 1995-11-30 | 1998-11-10 | Stampede Technologies, Inc. | Apparatus and method for increased data access in a network file oriented caching system |
| US5682514A (en) * | 1995-11-30 | 1997-10-28 | Stampede Technologies, Inc. | Apparatus and method for increased data access in a network file oriented caching system |
| US6122637A (en) * | 1995-11-30 | 2000-09-19 | Yohe; Thomas Patrick | Apparatus and method for increased data access in an object oriented caching system |
| US6065100A (en) * | 1996-11-12 | 2000-05-16 | Micro-Design International | Caching apparatus and method for enhancing retrieval of data from an optical storage device |
| US6240414B1 (en) | 1997-09-28 | 2001-05-29 | Eisolutions, Inc. | Method of resolving data conflicts in a shared data environment |
| US7447712B2 (en) | 1997-09-28 | 2008-11-04 | Global 360, Inc. | Structured workfolder |
| US6353836B1 (en) * | 1998-02-13 | 2002-03-05 | Oracle Corporation | Method and apparatus for transferring data from the cache of one node to the cache of another node |
| US7930278B2 (en) * | 1998-02-13 | 2011-04-19 | Oracle International Corporation | Methods to perform disk writes in a distributed shared disk system needing consistency across failures |
| US7200623B2 (en) * | 1998-11-24 | 2007-04-03 | Oracle International Corp. | Methods to perform disk writes in a distributed shared disk system needing consistency across failures |
| US7065540B2 (en) * | 1998-11-24 | 2006-06-20 | Oracle International Corporation | Managing checkpoint queues in a multiple node system |
| US6553391B1 (en) * | 2000-06-08 | 2003-04-22 | International Business Machines Corporation | System and method for replicating external files and database metadata pertaining thereto |
| US6618793B2 (en) * | 2000-12-18 | 2003-09-09 | Redback Networks, Inc. | Free memory manager scheme and cache |
| US6850938B1 (en) * | 2001-02-08 | 2005-02-01 | Cisco Technology, Inc. | Method and apparatus providing optimistic locking of shared computer resources |
| US7895173B1 (en) | 2001-06-27 | 2011-02-22 | Microsoft Corporation | System and method facilitating unified framework for structured/unstructured data |
| US7120746B2 (en) * | 2002-09-09 | 2006-10-10 | International Business Machines Corporation | Technique for data transfer |
| US7020746B2 (en) * | 2003-01-28 | 2006-03-28 | Microsoft Corporation | Method and system for an atomically updated, central cache memory |
| US20040199727A1 (en) * | 2003-04-02 | 2004-10-07 | Narad Charles E. | Cache allocation |
| US7047379B2 (en) * | 2003-07-11 | 2006-05-16 | International Business Machines Corporation | Autonomic link optimization through elimination of unnecessary transfers |
| US7222117B1 (en) | 2003-11-14 | 2007-05-22 | Advent Software, Inc. | Segmented global area database |
| EP1622009A1 (en) * | 2004-07-27 | 2006-02-01 | Texas Instruments Incorporated | JSM architecture and systems |
| US20060143256A1 (en) * | 2004-12-28 | 2006-06-29 | Galin Galchev | Cache region concept |
| US20060143389A1 (en) * | 2004-12-28 | 2006-06-29 | Frank Kilian | Main concept for common cache management |
| US7539821B2 (en) * | 2004-12-28 | 2009-05-26 | Sap Ag | First in first out eviction implementation |
| US8176022B1 (en) | 2006-08-26 | 2012-05-08 | Radames Garcia | Locking protocol using dynamic locks and dynamic shared memory |
| US8499120B2 (en) * | 2008-10-17 | 2013-07-30 | Seagate Technology Llc | User selectable caching management |
| US8458217B1 (en) | 2009-08-24 | 2013-06-04 | Advent Software, Inc. | Instantly built information space (IBIS) |
| US8510334B2 (en) * | 2009-11-05 | 2013-08-13 | Oracle International Corporation | Lock manager on disk |
| US8769350B1 (en) | 2011-09-20 | 2014-07-01 | Advent Software, Inc. | Multi-writer in-memory non-copying database (MIND) system and method |
| US8332349B1 (en) | 2012-01-06 | 2012-12-11 | Advent Software, Inc. | Asynchronous acid event-driven data processing using audit trail tools for transaction systems |
| CN103309754B (zh) * | 2012-03-15 | 2017-02-15 | 宇龙计算机通信科技(深圳)有限公司 | 终端和数据分区管理方法 |
| US9223780B2 (en) | 2012-12-19 | 2015-12-29 | Microsoft Technology Licensing, Llc | Non-blocking caching technique |
| US9286002B1 (en) | 2012-12-28 | 2016-03-15 | Virident Systems Inc. | Dynamic restriping in nonvolatile memory systems |
| US9842660B1 (en) | 2012-12-28 | 2017-12-12 | Virident Systems, Llc | System and method to improve enterprise reliability through tracking I/O performance metrics in non-volatile random access memory |
| US9135164B2 (en) | 2013-03-15 | 2015-09-15 | Virident Systems Inc. | Synchronous mirroring in non-volatile memory systems |
| US8996796B1 (en) | 2013-03-15 | 2015-03-31 | Virident Systems Inc. | Small block write operations in non-volatile memory systems |
| US10073626B2 (en) | 2013-03-15 | 2018-09-11 | Virident Systems, Llc | Managing the write performance of an asymmetric memory system |
| US9122588B1 (en) | 2013-03-15 | 2015-09-01 | Virident Systems Inc. | Managing asymmetric memory system as a cache device |
| US8886671B1 (en) | 2013-08-14 | 2014-11-11 | Advent Software, Inc. | Multi-tenant in-memory database (MUTED) system and method |
| US10802973B1 (en) | 2019-07-01 | 2020-10-13 | Bank Of America Corporation | Data access tool |
| EP3673376B1 (en) | 2019-09-12 | 2022-11-30 | Advanced New Technologies Co., Ltd. | Log-structured storage systems |
| SG11202002614XA (en) | 2019-09-12 | 2020-04-29 | Alibaba Group Holding Ltd | Log-structured storage systems |
| WO2019228569A2 (en) | 2019-09-12 | 2019-12-05 | Alibaba Group Holding Limited | Log-structured storage systems |
| CN111183450B (zh) | 2019-09-12 | 2024-04-19 | 创新先进技术有限公司 | 日志结构存储系统 |
| WO2019228572A2 (en) | 2019-09-12 | 2019-12-05 | Alibaba Group Holding Limited | Log-structured storage systems |
| US10942852B1 (en) | 2019-09-12 | 2021-03-09 | Advanced New Technologies Co., Ltd. | Log-structured storage systems |
| CN119271644A (zh) | 2019-09-12 | 2025-01-07 | 蚂蚁链技术有限公司 | 日志结构存储系统 |
| EP3669263B1 (en) * | 2019-09-12 | 2022-03-02 | Advanced New Technologies Co., Ltd. | Log-structured storage systems |
| WO2019228574A2 (en) | 2019-09-12 | 2019-12-05 | Alibaba Group Holding Limited | Log-structured storage systems |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4080651A (en) * | 1977-02-17 | 1978-03-21 | Xerox Corporation | Memory control processor |
| US4126894A (en) * | 1977-02-17 | 1978-11-21 | Xerox Corporation | Memory overlay linking system |
| US4399504A (en) * | 1980-10-06 | 1983-08-16 | International Business Machines Corporation | Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment |
| US4410944A (en) * | 1981-03-24 | 1983-10-18 | Burroughs Corporation | Apparatus and method for maintaining cache memory integrity in a shared memory environment |
| US4445174A (en) * | 1981-03-31 | 1984-04-24 | International Business Machines Corporation | Multiprocessing system including a shared cache |
| US4551799A (en) * | 1983-02-28 | 1985-11-05 | Honeywell Information Systems Inc. | Verification of real page numbers of stack stored prefetched instructions from instruction cache |
| US4891749A (en) * | 1983-03-28 | 1990-01-02 | International Business Machines Corporation | Multiprocessor storage serialization apparatus |
| JPS6079460A (ja) * | 1983-10-07 | 1985-05-07 | Nec Corp | 密結合多重演算装置における制御方式 |
| US4561051A (en) * | 1984-02-10 | 1985-12-24 | Prime Computer, Inc. | Memory access method and apparatus in multiple processor systems |
| US4768148A (en) * | 1986-06-27 | 1988-08-30 | Honeywell Bull Inc. | Read in process memory apparatus |
| US4920485A (en) * | 1986-09-02 | 1990-04-24 | Amdahl Corporation | Method and apparatus for arbitration and serialization in a multiprocessor system |
| US4809168A (en) * | 1986-10-17 | 1989-02-28 | International Business Machines Corporation | Passive serialization in a multitasking environment |
| US4843542A (en) * | 1986-11-12 | 1989-06-27 | Xerox Corporation | Virtual memory cache for use in multi-processing systems |
| JPS63267670A (ja) * | 1987-04-23 | 1988-11-04 | Murata Mach Ltd | 自動ワインダ− |
| JPS63277943A (ja) * | 1987-05-09 | 1988-11-15 | Citizen Watch Co Ltd | 電子体温計 |
| JPS6478361A (en) * | 1987-06-22 | 1989-03-23 | Hitachi Ltd | Data processing system |
| US4888681A (en) * | 1987-10-19 | 1989-12-19 | International Business Machines Corporation | Space management system for data files having shared access |
| US5023776A (en) * | 1988-02-22 | 1991-06-11 | International Business Machines Corp. | Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage |
| JPH01303527A (ja) * | 1988-05-31 | 1989-12-07 | Hitachi Ltd | 共有資源の管理方法 |
| US4928225A (en) * | 1988-08-25 | 1990-05-22 | Edgcore Technology, Inc. | Coherent cache structures and methods |
| JP2685530B2 (ja) * | 1988-09-14 | 1997-12-03 | 株式会社日立製作所 | 共用データの管理方法 |
| US5119485A (en) * | 1989-05-15 | 1992-06-02 | Motorola, Inc. | Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation |
| US5130922A (en) * | 1989-05-17 | 1992-07-14 | International Business Machines Corporation | Multiprocessor cache memory system using temporary access states and method for operating such a memory |
| US5075846A (en) * | 1989-09-29 | 1991-12-24 | Motorola, Inc. | Memory access serialization as an MMU page attribute |
-
1990
- 1990-12-14 US US07/628,211 patent/US5276835A/en not_active Expired - Fee Related
-
1991
- 1991-11-11 JP JP3294645A patent/JPH0799509B2/ja not_active Expired - Lifetime
- 1991-11-27 EP EP19910310939 patent/EP0490526A3/en not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| US5276835A (en) | 1994-01-04 |
| EP0490526A3 (en) | 1993-11-10 |
| EP0490526A2 (en) | 1992-06-17 |
| JPH04268649A (ja) | 1992-09-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0799509B2 (ja) | メモリへのデータブロックのエントリを制御する方法 | |
| JP2505939B2 (ja) | デ―タのキャストアウトを制御する方法 | |
| JP2559959B2 (ja) | 複数の非同期的プロセスによりレコードを更新する方法 | |
| US5537574A (en) | Sysplex shared data coherency method | |
| US5544345A (en) | Coherence controls for store-multiple shared data coordinated by cache directory entries in a shared electronic storage | |
| US6625698B2 (en) | Method and apparatus for controlling memory storage locks based on cache line ownership | |
| US5546579A (en) | Page refreshing procedure using two locking granularities to ensure cache coherency in a multisystem database processing environment having a high-speed shared electronic store | |
| JP2603369B2 (ja) | ローカルキャッシュに共通のページ間の一貫性を確保する方法 | |
| US5574902A (en) | Efficient destaging of updated local cache pages for a transaction in a multisystem and multiprocess database management system with a high-speed shared electronic store | |
| US5237694A (en) | Processing system and method including lock buffer for controlling exclusive critical problem accesses by each processor | |
| US7120746B2 (en) | Technique for data transfer | |
| US5408653A (en) | Efficient data base access using a shared electronic store in a multi-system environment with shared disks | |
| US5455942A (en) | Partial page write detection for a shared cache using a bit pattern written at the beginning and end of each page | |
| US5715447A (en) | Method of and an apparatus for shortening a lock period of a shared buffer | |
| JPH0679285B2 (ja) | トランザクション処理方法およびシステム | |
| KR20080086875A (ko) | 데이터베이스를 관리하기 위한 컴퓨터 구현 방법, 및데이터베이스에 지향되는 트랜잭션들을 관리하기 위한컴퓨터 구현 방법 | |
| CN113220490A (zh) | 异步写回持久化内存的事务持久化方法及系统 | |
| US7024520B2 (en) | System and method enabling efficient cache line reuse in a computer system | |
| JPH05216757A (ja) | プロセツサシステム及びそのデータ転送方法 | |
| CN101339527B (zh) | 影子内存的备份方法及装置 | |
| US7222222B1 (en) | System and method for handling memory requests in a multiprocessor shared memory system | |
| JP3107094B2 (ja) | 共用バッファのロック期間短縮処理方法及び装置 | |
| JP3093609B2 (ja) | キャッシュメモリの記憶一致制御装置及び方法 | |
| JPWO1993003436A1 (ja) | 共用バッファのロック期間短縮処理方法及び装置 | |
| JP2765672B2 (ja) | データ転送及びデータ除去のための制御方法並びにコンピュータ・システム |