JPH0820986B2 - 書き込みエラー検出用チェック・ビットの処理方法 - Google Patents

書き込みエラー検出用チェック・ビットの処理方法

Info

Publication number
JPH0820986B2
JPH0820986B2 JP5221664A JP22166493A JPH0820986B2 JP H0820986 B2 JPH0820986 B2 JP H0820986B2 JP 5221664 A JP5221664 A JP 5221664A JP 22166493 A JP22166493 A JP 22166493A JP H0820986 B2 JPH0820986 B2 JP H0820986B2
Authority
JP
Japan
Prior art keywords
page
check bit
secondary storage
store
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP5221664A
Other languages
English (en)
Other versions
JPH06202922A (ja
Inventor
チャンドラセカラン・モハン
インターパル・エス・ナラン
ジェームズ・スーチャ・テン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06202922A publication Critical patent/JPH06202922A/ja
Publication of JPH0820986B2 publication Critical patent/JPH0820986B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は多重システムのデータ共
有複合体に係り、さらに詳細に説明すれば共有キャッシ
ュ・システム中の二次記憶装置へデータが書き込まれる
ときに生ずるエラーを検出する能力を維持することに係
る。
【0002】
【従来の技術】IBM TDB,April,198
3,pp.5589に記述されているような従来の技術
では、ページの如きデータベースの論理単位を書き込む
ときに生ずるエラーを検出するために、1論理単位の開
始端および終了端でチェック・ビットが利用されてい
る。例えば図1では、データの論理ページ10は第1バ
イト12および最終バイト14をそれぞれ含んでいる。
第1バイト12の第1ビット13および最終バイト14
の最初の2ビット15、16は「チェック・ビット」と
呼ばれ、このページが二次記憶装置へ書き込まれるとき
に生ずるエラーを検出するために利用される。このビッ
ト13は特定の値へ初期設定され、ビット15、16は
これに対応する1つの値へ初期設定される。ビット13
は2つの値へ設定することが可能であるから、ビット1
5、16はビット13の2つの可能な値ゼロおよび1に
対応する2つの異なる値へ設定される。
【0003】例えば、ビット13がゼロへ設定される場
合はビット15、16は10へ設定され、ビット13が
1へ設定される場合はビット15、16は11へ設定さ
れる。またデータベース管理システム(DBMS)がペ
ージ10を二次記憶装置へ最初に書き込んだとき、ビッ
ト13を特定の値へ設定するとともに、ビット15、1
6をビット13の値に対応するパターンへ設定するもの
と仮定する。次に、ページ10は二次記憶装置から読み
取られ、例えばデータベース管理プロセッサのバッファ
へ記入される。もし、ページ10が当該プロセッサによ
って変更(更新)されたという理由で、これを二次記憶
装置へ書き戻す必要があれば、ビット13、15および
16は「フリップ(反転)」されることになる。すなわ
ち、ビット13はその補数値へ設定され、ビット15、
16はこの値に関連するパターンへ設定されるのであ
る。これらのチェック・ビットは書き込みの前にフリッ
プされ、次いでページ10の各バイトが第1バイトから
最終バイトの順に二次記憶装置へ書き込まれる。
【0004】その後、ページ10が二次記憶装置から読
み取られる場合、読み取りシステムは、例えばチェック
回路18で、ページ10の第1バイトと最終バイトとの
間の関係をテストする。もし、この関係が前述のように
予測されたものであれば、ページ10はこのテストに合
格し、かくて二次記憶装置への書き込みはエラー・フリ
ーであったとみなされる。さもなければ、読み取りシス
テムは二次記憶装置へのページ10の最後の書き込みが
部分的なものであり、したがってデータ損失があったも
のと推定する。このような状況では、読み取りシステム
は、バックアップ・コピーおよびログ情報を使用してペ
ージ10を回復する。
【0005】前述のような書き込みエラー検出手順の実
施は、要求に応じて二次記憶装置からバッファへ各ペー
ジを読み取る如き、単一のデータベース管理システム
(DBMS)に制限されている。しかし、トランザクシ
ョンがこのバッファ中のページを更新し、そしてDBM
Sが後でこのページを二次記憶装置へ書き戻すことが生
ずる。この環境では、最初の更新時のページの状態は、
二次記憶装置に関して「クリーン」から「ダーテイ」に
移行する。このようにページ状態がクリーンからダーテ
イに移行する場合、そのチェック・ビットはフリップさ
れ、このページが二次記憶装置へ書き戻される間はこの
ページの更新は許可されないが、二次記憶装置への書き
込み終了後は、このページはクリーンとマークされるの
で、後の更新時にそのチェック・ビットを変更すること
ができるようになる。
【0006】本明細書で援用する特願平3−29464
5号および同3−299273号明細書に記述されてい
るような、多重システムのデータ共有環境において、以
下で「ストア」と称する共有電子ストアは、複数のDB
MS間でデータの一貫性を維持するための高速のハード
ウエア・アシストである。このストアは「ストア−イ
ン」キャッシュであるから、更新されたページはまずこ
のストアに書き込まれ、二次記憶装置にはすぐに書き戻
されない。任意のDBMSはこのストアへ更新されたペ
ージを速やかに書き込むことができ、かくて他のDBM
Sはこのストアでこのページを速やかにリフレッシュす
ることができる。
【0007】
【発明が解決しようとする課題】多重DBMSアーキテ
クチャは、従来技術で実施されたような書き込みエラー
検出技法を持っていない。二次記憶装置ではなくこのス
トアから任意のページを読み取るDBMSは、このペー
ジが他のシステムによって更新されたという理由で、二
次記憶装置に関しダーテイなページを取得することがあ
る。チェック・ビットの正しい値を維持するために、更
新中のシステムは、二次記憶装置に関するこのページの
状態がクリーンからダーテイに変わる場合にのみ、これ
らのチェック・ビットを変更しなければならない。さも
ないと、異なるシステムによってこのページに対し偶数
回の更新が行われた場合には、これらのチェック・ビッ
トは正しくない値へ設定されることになろう。
【0008】さらに、多重DBMSアーキテクチャで
は、当該ページを二次記憶装置へ戻すシステムが、この
ページをダーテイ状態にしたシステムとは異なることが
ある。従来技術の書き込みエラー検出技法は、更新中の
システムがこのページを二次記憶装置へ戻すシステムで
あるという仮定に基礎をおいている。もし、この規則が
多重DBMSアーキテクチャでそのまま利用されたなら
ば、容認できないオーバーヘッドが生ずることになろ
う。すなわち、当該ページを二次記憶装置へ戻すシステ
ムはこのページについてグローバル・ロックを獲得しな
ければならず、またキャッシュされたページを有する他
のシステムに対し、二次記憶装置に関するこのページの
状態がダーテイからクリーンへ変わったことを通知しな
ければならないからである。しかしながら、前掲の特願
平3−299273号明細書に開示されているような、
多重DBMSアーキテクチャにおいて二次記憶装置へペ
ージを戻す場合には、ストアからページを取り除くため
に非ブロッキング逐次化(non−blocking
serialization)が予定されている。
【0009】したがって、共有式のストア−イン・キャ
ッシュから二次記憶装置へページが戻されるような任意
の多重DBMSアーキテクチャでは、任意のページを更
新したシステムとは異なるシステムによってこのページ
が二次記憶装置へ戻されるような場合に、そのチェック
・ビットを正しく処理する必要がある。
【0010】本発明は、二次記憶装置へ戻されるときに
各ページがグローバル・ロックされないような多重DB
MSアーキテクチャにおけるチェック・ビット処理の問
題を解決するため、ストア内のページに対応するデイレ
クトリ・エントリ内にチェック・ビット情報を維持する
とともに、このページを二次記憶装置へ戻すDBMSに
よるチェック・ビット処理を同期させるためにこのチェ
ック・ビット情報を使用せんとするものである。
【0011】したがって、本発明の目的は、多重DBM
Sアーキテクチャにおけるチェック・ビット処理によっ
て二次記憶装置に対する書き込みエラーの検出を確実に
行えるようにすることにある。
【0012】
【課題を解決するための手段】前記目的を達成するため
に、本発明の書き込みエラー検出用チェック・ビットの
処理方法では、複数のデータ単位を記憶する二次記憶装
置と、二次記憶装置へ接続された複数のデータベース管
理プロセッサと、各データベース管理プロセッサへ接続
され、複数のデータ単位を記憶するようにストア−イン
・キャッシュの形式へ編成された共有ストアとを備え、
各データ単位がその開始端および終了端にそれぞれチェ
ック・ビットを含み、各データ単位が二次記憶装置へ書
き込まれる度にそのチェック・ビットを反転するように
したシステムを前提として、二次記憶装置から第1のデ
ータベース管理プロセッサへチェック・ビットを含む一
のデータ単位を読み取るステップ(a)と、第1のデー
タベース管理プロセッサにおいて一のデータ単位を変更
することにより更新されたデータ単位を生成するステッ
プ(b)と、更新されたデータ単位をそのチェック・ビ
ットを変更することなく共有ストアへ書き込むステップ
(c)と、更新されたデータ単位を二次記憶装置へ書き
込むべく、共有ストアから第2のデータベース管理プロ
セッサへ更新されたデータ単位を読み取るステップ
(d)と、第2のデータベース管理プロセッサにおいて
更新されたデータ単位内のチェック・ビットを反転する
ステップ(e)と、第2のデータベース管理プロセッサ
から二次記憶装置へ更新されたデータ単位を書き込むス
テップ(f)と、を含むようにされている。
【0013】
【実施例】本明細書の説明において、「二次記憶装置」
という用語は、階層記憶システムにおける特定レベルの
記憶装置を意味する。他のレベルには、1以上のデータ
ベース管理プロセッサの作業メモリがあり、またデータ
の高速アクセスのためにすべてのプロセッサが接続され
る高速の、ストア−イン・キャッシュ(ストア)があ
る。すべてのプロセッサが接続される二次記憶装置は、
例えばデイスク、直接アクセス記憶装置(DASD)、
光学式記憶装置等からなる。説明の便宜上、「ページ」
という用語は、二次記憶装置とプロセッサの作業メモリ
との間で1単位として転送される固定長のデータ・ブロ
ックを意味するが、これに限定されるものではない。最
後に、任意のページを二次記憶装置へ書き込むことは、
二次記憶装置に置かれている同じページの以前のバージ
ョンに上書きすることを暗示し、これを以下で「キャス
ト・アウト」と称する。
【0014】図2は、本発明が実施されるアーキテクチ
ャを示す。本発明にしたがって、高速の、共有された電
子式ストア20が複数のデータベース管理プロセッサ2
2および24へ接続される。プロセッサ22および24
の各々は汎用型のプロセッサであって、そのソフトウエ
アはデータベース管理システム(DBMS)を含む。プ
ロセッサ22および24の各々は作業メモリを含み、そ
の予約されたアドレス可能な領域はローカルで実行中の
DBMSによって使用されるバッファを構成する。プロ
セッサ22および24の各々は、通常の機能的物理手段
によって、1以上の記憶装置を含みうる二次記憶装置2
6へ結合される。
【0015】ストア20は、管理ロジック30および共
有式ストア−イン・キャッシュとして動作する大容量の
高速データ記憶部32を含む、プロセッサ制御式の高速
記憶エンテイテイから構成することができる。プロセッ
サ22および24の各々は、(IBM DB2およびI
MSシステムの如きデータベース管理ソフトウエアを実
行する)適当なオペレーテイング・システムを搭載した
IBM 3090型のプロセッサで構成することができ
る。二次記憶装置26は、IBM 3390型のDAS
Dとすることができる。
【0016】デイレクトリ34は、共有キャッシュ32
の内容を管理するため、管理ロジック30によって維持
される。デイレクトリ34は複数フィールド・エントリ
を有するテーブルであり、その各エントリはそれぞれ1
つのページに対応する。図2に示すシステムの動作にお
いて、任意のDBMSがデータを必要とする場合、これ
はまずストア20からデータを読み取るように試みる。
もし、ストア20になければ、このDBMSは二次記憶
装置26からこのデータを獲得する。DBMSがストア
20からデータを読み取ろうと試みる度に、管理ロジッ
ク30はデイレクトリ34を照会して、要求されたペー
ジに対応するデイレクトリ・エントリがあるか否かを調
べる。もし、デイレクトリ34中にこのページに対応す
るエントリがなければ、管理ロジック30は、このペー
ジが共有キャッシュ32へ記入されることを予測して、
1つのエントリを作成する。DBMSが二次記憶装置2
6からこのページを獲得する場合、このDBMSは、こ
のページを必要に応じて処理するとともに、共有キャッ
シュ32に常駐させるためおよび一貫性を維持するため
に、このページを変更されたページとしてストア20へ
パスさせる。
【0017】ストア20の制御機構は、キャストアウト
・プロセスを通して、変更されたページを二次記憶装置
26へ戻すように動作する。この場合、データベース管
理プロセッサ22または24は、このページをストア2
0からその作業メモリへ読み取り、次いでこれを作業メ
モリから二次記憶装置26へ書き込む。
【0018】デイレクトリ・エントリの各々は、複数フ
ィールドのデータ構造を有する。参照番号35の個所に
は、「A」という識別子を有するページの代表的なエン
トリが示されている。このエントリは、デイレクトリ3
4内の他のすべてのエントリについて代表的なものであ
る。
【0019】エントリ35は複数のフィールドを含み、
そのうちの幾つかが図2に示されている。エントリ35
は、ページを指定する識別子フィールド36および共有
キャッシュ32内の当該ページの位置を指定するアドレ
ス(ADDR)フィールド37を含む。
【0020】フィールド38には、変更ビット(CB)
が含まれる。もし、これに対応するキャッシュされたペ
ージが二次記憶装置26中に保持されているページのバ
ージョンに関して変更されたならば、変更ビットの値は
1となる。このようなページは、二次記憶装置26へ書
き込まれるまで、ストア20からステイールすることは
できない。変更ビットは、ゼロの値をも有することがで
きる。もし、変更ビットがゼロの値を有し、そして以下
で説明するキャスト・アウト・ロック識別(COL−i
d)フィールド40もゼロであれば、共有キャッシュ3
2内の当該ページのバージョンは二次記憶装置26に記
憶されているものと同じである。このようなページは、
二次記憶装置26へ書き込むことなく、ステイールする
ことができる。
【0021】1群のビット39は、システムの有効ビッ
ト・ベクトルを構成する。このベクトルは、ストア20
へ接続されたDBMS毎に1ビットを有する。もし、こ
のビットが1へ設定されたならば、対応するDBMSの
作業メモリ内にあるキャッッシュされたページは有効で
ある。もし、ゼロであれば、このDBMSの作業メモリ
内にあるキャッシュされたページは有効ではない。この
ビット・アレイのサイズは、特定の実現形態に依存す
る。
【0022】キャスト・アウト・ロック識別(COL−
id)フィールド40がゼロの値へ設定されるのは、指
定されたページについてキャスト・アウトが行われてい
ない場合である。さもなければ、すなわちキャスト・ア
ウトがDBMS sによって行われている場合は、この
フィールドは値sへ設定される。
【0023】最後のチェック・ビット(C bit)フ
ィールド41は、二次記憶装置26に置かれている該当
ページのバージョンのチェック・ビットを保持する。こ
のフィールドのサイズおよび値の範囲は、特定の実現形
態に依存する。以下の説明では、各ページのチェック・
ビットは、図1を参照してすでに説明した通りのもので
あると仮定する。実施例では、チェック・ビット・フィ
ールド41は該当するページの最後のバイトの最初の2
ビット、すなわち図1の例では、バイト14のビット1
5および16を保持する。このページの第1バイトの第
1ビットの値は、これらのビットの値から得ることがで
きる。実施例では、チェック・ビット・フィールド41
は2ビット幅であり、値00、10および11(値01
は保留)を取ることができる。値00は、「NULL
(空)」値と呼ばれ、該当するページのチェック・ビッ
トの値が未知であることを暗示する。フィールド41の
値10は、該当するページの第1バイトの第1ビットが
値ゼロを有することを暗示する。同様に、値11は、第
1バイトの第1ビットが値1を有することを暗示する。
ストア20内で任意のデイレクトリ・エントリ35が割
りふられる場合、チェック・ビット・フィールド41は
NULL値へ初期設定される。以下、このフィールド4
1のビットを「Cビット」と称し、対応するページ内の
チェック・ビットと区別することにする。
【0024】説明の便宜上、図2の多重DBMSアーキ
テクチャは、以下の表Iに掲げた少なくとも5つのコマ
ンドをサポートするものと仮定する。ただし、DBMS
の管理および動作に固有的に必要な他のコマンドも、同
様にサポートされていることはもちろんである。これら
のうち、「READ」および「WRITE」コマンド
は、二次記憶装置26へ向けられる。任意のDBMSに
おける二次記憶装置26からの「READ」コマンド処
理は、図1に示したチェック・ビット手順を含むものと
仮定する。すなわち、もしチェック・ビットが該当する
ページ内のエラーを指示するパターンを有するなら、こ
のページは不合格となり、かくてDBMSはこのページ
を再構成するための手順を開始することになろう。さも
なければ、すなわちチェック・ビット手順がこのページ
の合格を指示する場合は、このページは以下の記述にし
たがって処理されることになろう。
【0025】<表 I> READ PAGE(ページ識別、バッファアドレス) WRITE PAGE(ページ識別、バッファアドレ
ス、Cビット) READ−FOR−CASTOUT(ページ識別、バッ
ファアドレス、システム識別) RESET−CASTOUT−LOCK(ページ識別)
【0026】「READ PAGE」コマンドは、任意
のDBMSからストア20へ発行され、指定されたペー
ジ(例えばページA)がこのDBMSの指定されたバッ
ファ・アドレスへ戻されることを要求する。もし、ペー
ジAがストア20内に存在すれば、ストア20はページ
Aを当該DBMSの作業メモリ内のバッファ・アドレス
へ戻す。さもなければ、ストア20は非ゼロの戻りコー
ドを与える。すなわち、もしページAがストア20内に
なければ、キャッシュ・ミスが生じてこれが戻りコード
で指示されるので、ストア20の管理ロジック30はペ
ージAのためのデイレクトリ・エントリを作成するので
ある。一方、もしページAのためのデイレクトリ・エン
トリ35があれば、キャッシュ・ヒットが生じ、かくて
ページAは共有キャッシュ32中に存在することにな
る。キャッシュ・ヒットが生ずる場合、管理ロジック3
0は、ページAが変更されたか否かという指示を与える
とともに、ページAが変更されていない場合にはCビッ
ト・フィールド41の値をも与える。
【0027】「WRITE PAGE」コマンドは任意
のDBMSからストア20へ発行され、このDBMS内
にある指定されたバッファ・アドレスからストア20へ
指定されたページを書き込む。このコマンドは、変更さ
れたページをストア20へ書き込む場合はCB=1を設
定し、変更されていないページをストア20へ書き込む
場合はCB=ゼロを設定する。またこのDBMSは、
「WRITE PAGE」コマンド中のCビット値をパ
スさせる。このコマンドに応答して、ストア20の管理
ロジック30は、デイレクトリ・エントリ35中のCB
フィールド38をコマンド・パラメータ・リストで与え
られたCB値と等しく設定するとともに、Cビットを処
理する。Cビットを処理する際、もしこのデイレクトリ
・エントリ35中のCビット・フィールド41の値がN
ULLであり、そして対応するページが二次記憶装置2
6中のそのバージョンに関し変更されていなければ、ス
トア20はこのコマンドによって与えられる非NULL
値のCビットを受け入れる。後者の点に関し、もしCB
フィールド38およびキャスト・アウト・ロック識別
(COL−id)フィールド40が両者ともにゼロであ
れば、該当するページは変更されていないことになる。
【0028】「READ−FOR−CASTOUT」コ
マンドは、前掲の特願平3−299273号明細書で詳
述されている。変更されたページをキャスト・アウトす
るために、任意のDBMSはこのコマンドを発行して、
該当するページを指定するとともに、ストア20によっ
て書き込まれるべきバッファ・アドレスおよびそれ自体
(DBMS)を指定する。例えば、ページAをキャスト
・アウトする場合、DBMS sは、ストア20からそ
のプロセッサの作業メモリへページAを読み取る。その
後、DBMS sはページAを二次記憶装置26へ書き
込む。二次記憶装置26の入出力が完了した後、DBM
S sは、「UNLOCK−CASTOUT−LOC
K」コマンドを発行する。
【0029】ここで注意すべきは、この「READ−F
OR−CASTOUT」コマンドに応答するストア20
によってDBMS sに戻されるページAのバージョン
が、二次記憶装置26へ書き込まれる(キャスト・アウ
トされる)筈のものであるということである。これは非
ブロッキング・コマンドであるから、このコマンドが実
行されている間にページAに対し更新を行うことができ
る。このコマンドが完了した後にページAに対し行われ
るすべての更新は、ストア20によって受け入れられ
る。こうするため、ストア20は、ページAに対応する
デイレクトリ・エントリ35中でCB=1を設定すると
ともに、キャスト・アウト・ロック識別(COL−i
d)フィールド40を無変更のままに維持する。これ
は、援用された特願平3−299273号明細書で記述
されているように、書き込みとキャスト・アウトとの間
の非ブロッキング逐次化をサポートするものである。も
し、ページAのデイレクトリ・エントリ35中にあるC
OL−idフィールド40がゼロでなければ、「REA
D−FOR−CASTOUT」コマンドは拒否される。
こうすることにより、2つの異なるシステムが同じペー
ジをキャスト・アウトするように試みることを防止する
ことができる。というのは、このようなキャスト・アウ
トを許すと、このページの最新のバージョンが二次記憶
装置26内でオーバーレイされることがあるからであ
る。このコマンドに応答して、ストア20は、CBフィ
ールド38をゼロに設定し、COL−idフィールド4
0をsに設定し、ページAをバッファ・アドレスに戻す
とともに、Cビット・フィールド41の値を発行中のD
BMSへ戻す。
【0030】「UNLOCK−CASTOUT−LOC
K」コマンドは、ストア20に対し、指定されたページ
がDBMS sによって成功裡にキャスト・アウトされ
たことを通知する。このコマンドの処理中、ストア20
は、指定されたページに対応するデイレクトリ・エント
リ35中のCBフィールド38を無変更のまま残す。し
たがって、もしこのページが「READ−FOR−CA
STOUT」コマンドの発行時点と「UNLOCK−C
ASTOUT−LOCK」コマンドの発行時点との間に
変更されたならば、このページの一層最近のバージョン
がストア20内に存在し、そして一層古いバージョンが
二次記憶装置26へキャスト・アウトされることになろ
う。この場合、CBフィールド38は、「READ−F
OR−CASTOUT」コマンドに続く「WRITE」
コマンドによってデイレクトリ・エントリ35中で値1
へ設定することができる。このキャスト・アウトが行わ
れている間に当該ページが更新されなければ、二次記憶
装置26中のバージョンはストア20中のそれと同じに
なり、このページはストア20における置換の候補とな
るであろう。「UNLOCK−CASTOUT−LOC
K」コマンドに応答して、ストア20はこのページのデ
イレクトリ・エントリ35内のCビット・フィールド4
1を与えられたCビットで更新するとともに、COL−
idフィールド40をゼロに設定する。このコマンドで
与えられるシステム識別パラメータは、「READ−F
OR−CASTOUT」コマンドを発行したシステム
が、「UNLOCK−CASTOUT−LOCK」コマ
ンドの発行を許可されていることを確認するためのもの
であるに過ぎない。
【0031】「RESET−CASTOUT−LOC
K」コマンドは、キャスト・アウトが行われている間に
ソフトウエアまたはプロセッサの障害が生じた場合、
COL−idフィールド40に非ゼロ値を有するような
デイレクトリ・エントリ35についてソフトウエア回復
プロセスによって発行されることが多い。このコマンド
に応答して、ストア20は、識別されたページのデイレ
クトリ・エントリ35内のCBフィールド38を1に設
定し、COL−idフィールド40をゼロに設定すると
ともに、Cビット・フィールド41にNULL値を置
く。このコマンドを誘発した障害が発生する前には、二
次記憶装置26への書き込みは行われていないであろう
から、CBフィールド38を1へ設定するのが常套的で
ある。
【0032】<本発明の動作>本発明を実施するため、
二次記憶装置26内にある特定のページのバージョンに
関するチェック・ビット・パターンが、このページに対
応するデイレクトリ・エントリ35内に記憶される。任
意のページが二次記憶装置26から読み取られ、更新さ
れ、二次記憶装置26へ書き込まれる場合、このページ
自体のチェック・ビットは変更されない。このページが
ストア20から二次記憶装置26へキャスト・アウトさ
れるとき、このページ自体のチェック・ビットは必要に
応じてフリップされる。キャスト・アウト・ロックが
「UNLOCK−CASTOUT−LOCK」コマンド
によってアンロックされる場合、フリップされたチェッ
ク・ビット・パターンはストア20へ戻され、このペー
ジが当該期間中に変更されたか否かにかかわりなく、こ
のページに対応するデイレクトリ・エントリ35中に記
入される。したがって、二次記憶装置26に置かれたこ
のページのバージョンに関するチェック・ビットは、常
に、ストア20に置かれた当該ページに対応するデイレ
クトリ・エントリ35中のCビット・フィールド41の
非NULL値によって表される。Cビット・フィールド
41のNULL値は、二次記憶装置26に置かれている
このページのチェック・ビットの値が未知であることを
暗示する。本発明によれば、二次記憶装置26への書き
込みが生ずる度にチェック・ビットがフリップされ、か
くてこのページが次に二次記憶装置26から読み取られ
るとき、(図1を参照してすでに説明した)チェックビ
ット・テストの有効性を保証することができる。
【0033】ここで、本発明の動作を例示する図3およ
び図4を参照する。これらの図面の3つの欄には、それ
ぞれ「S1」、「ストア」および「S2」というヘッデ
イングが付されている。S1欄は第1のDBMS(S
1)によって取られるアクションを示し、ストア欄はス
トア20によるアクションを示し、S2欄は第2のDB
MS(S2)によって取られるアクションを示す。ペー
ジAは矩形52によって例示され、ページAに対応する
デイレクトリ・エントリ35は矩形50によって例示さ
れる。これらの図面におけるデイレクトリ・エントリ3
5は、ページ識別子(A)、変更ビット(CB)、CO
L−id(CO)およびCビット・フィールドだけを示
しているが、このエントリには必要に応じて他のフィー
ルドをも含めることができる。さらに、二次記憶装置2
6は1台のデイスクから構成されるものとし、これを図
面では単に「デイスク」として表している。
【0034】図3および図4を参照するに、ページAは
最初に共有ストア20には存在せず、そしてどのシステ
ムもこのストアに対する「「READ」コマンドを発行
していないものと仮定する。この状況でシステムS1
は、ステップ1において、ページAのための「READ
PAGE」コマンドを共有ストア20に対し発行す
る。これに応答して、共有ストア20はそのデイレクト
リ34を調べて、指定されたページAのエントリを探索
する。このエントリはないから、共有ストア20は矩形
50で示すようなエントリを作成し、CBフィールド3
8およびCOフィールド40をゼロに初期設定するとと
もに、Cビット・フィールド41にNULL値を置く。
次いで共有ストア20は、キャッシュ・ミス指示をシス
テムS1に戻し、システムS2に対しステップ2で二次
記憶装置(デイスク)26からページAを読み取るよう
に促す。この段階のページAの状態を表す矩形52は、
Cビットの状態が11であることを示している。
【0035】ステップ3において、システムS1は、ペ
ージAを更新するためにページAに関するグローバル・
ロックを獲得する。この実施例に即して説明すれば、任
意のページに関する更新ロックの要求に応答して、ロッ
キング機構(これは共有ストア20と同じ位置に置か
れ、かつこれと協働するグローバルな機構でもよい)は
このページの有効性に関する指示を戻す。かかるページ
の有効性は、任意のシステムによる更新活動を記録する
デイレクトリ・エントリ35内の、システム有効ビット
・ベクトル39から得られるものである。これらのビッ
トの処理は、前掲の特願平3−294645号明細書に
詳述されている。もし、このロック要求に応答してペー
ジAが有効でないという指示が戻されるならば、ページ
Aは共有ストア20からシステムS1によって読み取ら
れる。いずれの場合においても、このロックは許可さ
れ、かくてシステムS1はステップ4へ進む。
【0036】ステップ4において、ページAは実行中シ
ステムS1の作業メモリにキャッシュされ、そこでペー
ジAがロックされ、更新される。次いでステップ5にお
いて、「WRITE PAGE」コマンドが共有ストア
20に発行される。このコマンドはページAを指定する
とともに、CB値=1、Cビット値=11、およびこの
変更されたページAが位置する作業メモリ内のバッファ
・アドレスを戻す。システムS1内のDBMSは、この
コマンドに関し、Cビットとして非NULL値を与え
る。というのは、このコマンドの前にはキャッシュ・ミ
スがあったのであり、しかもどのシステムも読み取りミ
スとロック許可との間にページAを更新しなかったとい
う理由で、ページAは有効であったからである。共有ス
トア20は、「WRITE PAGE」コマンドを処理
する際、デイレクトリ・エントリ35中のCビット・フ
ィールド41をこのコマンドとともに与えられる値へ設
定する。なぜなら、このフィールド41の以前の内容は
NULL値であり、しかもCBフィールド38およびC
Oフィールド40はともにゼロであるからである。この
点に関連して、もしCビット・フィールド41の内容が
非NULL値であったならば、ステップ5で与えられる
Cビットはデイレクトリ・エントリ35には記入されな
いであろう。このコマンドの後の、ページAに関するデ
イレクトリ・エントリ35の状態を、矩形55で示す。
今や、ページ56は、共有ストア20内の共有キャッシ
ュ32に記憶されており、そこで他のすべてのシステム
に対し利用可能となる。
【0037】ここで、システムS1がページAをアンロ
ックするのと殆ど同時に、システムS2が、ステップ6
において、ページAのために「READ−FOR−CA
STOUT」コマンドを発行するものと仮定する。この
コマンドに応答して、共有ストア20は、デイレクトリ
・エントリ35のCBフィールド38をリセットし、シ
ステムS2の識別子をCOフィールド40へ記入する
が、Cビット・フィールド41については何もしない。
このことは、矩形57で示されている。「READ−F
OR−CASTOUT」コマンドに対する戻り応答にお
いて、共有ストア20は、Cビット値(この例では1
1)を戻す。ステップ6を完了するため、共有ストア2
0は、システムS2の作業メモリ内にある指定されたバ
ッファ・アドレスへページAを書き込む。システムS2
のバッファ内にあるページAの状態は、矩形58で示さ
れている。
【0038】ステップ7において、システムS2のDB
MSは、その作業メモリ内にあるページAのバージョン
のチェク・ビットをフリップさせる。その作業メモリ内
にあるページAの結果的な状態は、矩形59で示されて
いる。ステップ8において、システムS2はページAを
二次記憶装置(デイスク)26へ書き込む。
【0039】この二次記憶装置26への書き込みの後の
ステップ9(図4)において、システムS2は、共有ス
トア20に対し「UNLOCK−CASTOUT−LO
CK」コマンドを与えて、このコマンドとともにページ
識別子、システム識別子およびフリップされたCビット
値を戻す。これに応答して、共有ストア20は、COフ
ィールド40をクリアするとともに、与えられたCビッ
ト値をページAのデイレクトリ・エントリ35内にある
Cビット・フィールド41へ記入する(矩形60)。こ
こで注意すべきは、ページAの更新されたバージョン
(矩形62)が依然として共有ストア20内にある、と
いうことである。共有ストア20内のページAのチェッ
ク・ビットは、正しい状態を反映していない古いもので
ある。なぜなら、二次記憶装置26中にあるページAの
チェック・ビットは、共有ストア20内にあるページA
のチェック・ビットとは異なるからである。二次記憶装
置26に置かれているページAのバージョンのチェック
・ビットを実際に表すものは、デイレクトリ・エントリ
35(矩形60)に置かれているCビットの非NULL
値である。
【0040】ステップ10において、システムS1は、
ページAを更新するためのロックを要求する。ここで
も、このロック要求に対する戻りは、ページAが依然と
して有効であるか否かを指示する。この点に関連して注
意すべきは、「READ−FOR−CASTOUT」お
よび「UNLOCK−CASTOUT−LOCK」のシ
ーケンスが、ページAに対応するデイレクトリ・エント
リ35内のCBフィールド38の値に影響する、という
ことである。キャストアウト・プロセスは非ブロッキン
グであるから、このプロセスが実行されている間に、他
のシステムがページAを更新するということは十分にあ
りうる。この場合、すべてのシステムのための有効ビッ
ト・ベクトル39は更新中のシステムを保存し、これら
のシステムが有しているページAのバージョンが無効で
あることを指示する値へ設定されることになろう。もし
無効であれば、ページAは、共有ストア20から再び得
られる筈である。説明中の例については、このようなこ
とが起こらず、ロックが許可され、そしてシステムS1
が矩形64で示されるような形式へページAを更新する
ものと仮定する。
【0041】ページAが二次記憶装置26へキャスト・
アウトされた後に、システムS1によりページAの2回
目の更新が行われた場合、ステップ11において、シス
テムS1は「WRITE PAGE」コマンドにより、
ページAのその更新されたバージョンを共有ストア20
へ書き込む。システムS1はページAの状態が(二次記
憶装置26に関し)変わったことをステップ4において
知っている筈であるから、この段階で、「WRITE
PAGE」パラメータ・リストはCビットについて非N
ULL値を戻す。もし、他のシステム(例えばS3)
が、ページAが変更されたという指示とともにページA
を読み取っていて、これを更新していたならば、システ
ムS3はその「WRITE PAGE」パラメータ・リ
ストにおいてCビット値=NULLを与えるであろう。
システムS1の「WRITE PAGE」コマンドに応
答して、共有ストア20は、デイレクトリ。エントリ3
5を矩形66で示すように変更するとともに、矩形67
で示すページAの当該バージョンを共有キャッシュ32
へ記入する。
【0042】ステップ12において、システムS2はキ
ャスト・アウトのためにページAを読み取り、これに応
じてページAに対応するデイレクトリ・エントリ35内
のCBフィールド38およびCOフィールド40は矩形
69で示すように変更される。「READ−FOR−C
ASTOUT」コマンドに対する戻りは、Cビット値=
10および矩形71で示すページ・バージョンを与え
る。
【0043】ステップ13において、システムS2は、
ページAを二次記憶装置26へ書き込む準備のために、
作業メモリ内にあるページAのチェック・ビットを処理
する。このページAのチェック・ビットの値は、当該コ
マンドについて戻されるCビット値とは異なる。フリッ
プされたCビット値はデイスクに書き込むべきページA
の所望のチェック・ビットと同じであるから、システム
S2はページ・バージョン71のチェック・ビットをフ
リップしない。その代わり、ページAは、矩形73で示
すように、ステップ14においてそのまま二次記憶装置
26へ書き込まれ、ステップ15においてCビット値=
11を含むパラメータ・リストとともに「UNLOCK
−CASTOUT−LOCK」コマンドが発行され、そ
して共有ストア20は矩形75で示すようにCビット・
フィールド41をゼロにし、かつ戻されたCビット値を
Cビット・フィールド41へ記入することにより該当す
るデイレクトリ・エントリ35を変更する。
【0044】前述の例について注意すべきは、任意のペ
ージの二次記憶装置(デイスク)バージョンのチェック
・ビットが、共有ストア20内にある当該ページのデイ
レクトリ・エントリ35中のCビットによって表され
る、ということである。任意のプロセッサの作業メモリ
または共有ストア20にキャッシュされているページ内
のチェック・ビットは、常に信用できるとは限らない。
これは、更新とキャスト・アウトとの間の非ブロッキン
グ逐次化に起因する。キャスト・アウト中のシステム
は、二次記憶装置26への書き込みを行う前に、共有ス
トア20から戻されたCビットの非NULL値に基づい
てチェック・ビットを推定する。前述の例には示されて
いないが、共有ストア20によって戻されるCビットの
値がNULLである場合、キャスト・アウト中のシステ
ムは、二次記憶装置26から当該ページを実際に読み取
ることによりそのチェック・ビットを決定する。
【0045】任意のページの状態がクリーンからダーテ
イに移行する場合、そのページのCビットは「WRIT
E PAGE」コマンドにより共有ストア20へパスさ
れる。ここで、各ページについては更新のためのグロー
バル・ロックがあるという理由で、1つのシステムだけ
が状態の変更を生ぜしめる、という点に注意することが
重要である。これにより生ずる条件の下では、作業メモ
リまたは共有ストア20にキャッシュはされたページの
チェック・ビットからCビットを推定し、これを共有ス
トア20にパスさせることができる。
【0046】代表的な例の場合、「READ PAG
E」コマンドは、常に、ダーテイなページを共有ストア
20に書き込むような「WRITE PAGE」コマン
ドに先行する。このような「WRITE PAGE」コ
マンドは、CB=1で発行される。この書き込みの時点
で、該当するDBMSは、「WRITE PAGE」コ
マンドのパラメータ・リストに与えられるべきCビット
がNULL値であるかまたは非NULL値であるかを決
定する。もし、先行する「READ PAGE」コマン
ドがキャッシュ・ミスを誘発するか、または当該ページ
が変更されていないことをその戻りが指示するならば、
このDBMSは、その作業メモリ内にある該当ページの
Cビットの非NULL値を計算するか、あるいはキャッ
シュ・ヒットを生ぜしめた「READ PAGE」コマ
ンドによって戻されたCビットをパス・バックさせる。
グローバル・ロックの下では、「READ PAGE」
コマンドを実行できないかもしれないが、読み取り中の
DBMSは、更新のためにグローバル・ロックを獲得
し、このグローバル・ロックの下で、キャッシュされた
ページが以前として有効であるか否かをチェックする。
もし有効でなければ、このページは「READ PAG
E」コマンドを介して再び読み取られ、かくて「WRI
TE PAGE」コマンド中にある非NULL値のCビ
ットの引き渡しを再評価する。もし、このページが共有
ストア20からの介在する読み取りなしに複数回にわた
ってローカルに更新されたならば、このDBMSは、最
初の「WRITE PAGE」コマンドについてのみ非
NULL値をパスさせ、その後のすべての「WRITE
PAGE」コマンドについてはNULL値をパスさせ
る。
【0047】「READ−FOR−CASTOUT」コ
マンドは、Cビットとキャスト・アウトすべきページと
を、共有ストア20から得る。キャスト・アウト中のシ
ステムは、このCビットに基づいて当該ページのチェッ
ク・ビットを計算し、このチェック・ビットで以てこの
ページを更新する。ここで、当該ページにおけるチェッ
ク・ビットの一貫性は異なるシステム間では維持されて
いないから、キャスト・アウト中のシステムはこのペー
ジ内の値に基づいてチェック・ビットを計算しない、と
いうことに注意すべきである。
【0048】「RESET−CASTOUT−LOC
K」コマンドの利用法 共有ストア20は、「RESET−CASTOUT−L
OCK」コマンドが発行される場合、CビットをNUL
L値へ設定する。このコマンドが発行されるのは、「R
EAD−FOR−CASTOUT」コマンドの後で、し
かも後続する「UNLOCK−CASTOUT−LOC
K」コマンドの前に、障害が生ずるような場合である。
これらの2つのコマンドの間では、二次記憶装置(デイ
スク)26への書き込みが生じたか否かは確かではな
い。したがって、「RESET−CASTOUT−LO
CK」コマンドはCビットをNULL値へ設定して、当
該ページの二次記憶装置(デイスク)バージョンのチェ
ック・ビットが「未知」であることを暗示する。後続の
「READ−FOR−CASTOUT」コマンドに遭遇
するとき、共有ストア20は、CビットのためにNUL
L値を戻す。この場合、キャスト・アウト中のシステム
は、二次記憶装置26から当該ページを読み取ってこの
ページの二次記憶装置(デイスク)バージョンから真の
チェック・ビット値を決定し、このページのチェック・
ビットをフリップされた値へ設定するとともに、これを
「UNLOCK−CASTOUT−LOCK」コマンド
を介して戻す。
【0049】キャスト・アウト中のシステムは、最後に
成功した二次記憶装置26への書き込みの後に当該ペー
ジが変更されたか否かに依存して、二次記憶装置26へ
の書き込みを行ったり行わなかったりする。因に、二次
記憶装置26への最後の書き込みの後に当該ページが変
更されたか否かを決定するには、例えば、二次記憶装置
26に置かれたページ・バージョン内の更新通番を、
「READ−FOR−CASTOUT」コマンドに応答
する共有ストア20によって戻されるバージョン中のそ
れと比較すればよい。このコマンドは、高々数ページに
ついてまれにしか発行されないものと予測される。
【0050】
【発明の効果】以上のように、本発明によれば、各ペー
ジのチェック・ビットが適正に処理されるので、多重D
BMSアーキテクチャにおける二次記憶装置に対する書
き込みエラーを確実に検出することができる。
【図面の簡単な説明】
【図1】従来の技術にしたがった書き込みエラーの検出
におけるチェック・ビットの役割を示すブロック図であ
る。
【図2】本発明を実施する多重DBMSアーキテクチャ
を示すブロック図である。
【図3】本発明にしたがったチェック・ビットの処理を
示すプロセス流れ図である。
【図4】本発明にしたがったチェック・ビットの処理を
示すプロセス流れ図である。
【符号の説明】
20・・・・・・共有ストア 22、24・・・データベース管理プロセッサ 26・・・・・・二次記憶装置 30・・・・・・管理ロジック 32・・・・・・共有ストア−イン・キャッシュ 34・・・・・・デイレクトリ 35・・・・・・デイレクトリ・エントリ 36・・・・・・ページ識別子フィールド 37・・・・・・アドレス・フィールド 38・・・・・・変更ビット(CB)フィールド 39・・・・・・システムの有効ビット・ベクトル 40・・・・・・キャスト・アウト・ロック識別子(C
OL−id)フィールド 41・・・・・・チェック・ビット(C bit)フィ
ールド
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェームズ・スーチャ・テン アメリカ合衆国カリフォルニア州サンノ ゼ、マッカル・ドライブ6964 (56)参考文献 特開 平6−28250(JP,A) 特開 平4−268649(JP,A) 特開 平4−310148(JP,A)

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】複数のデータ単位を記憶するように1以上
    の記憶装置から構成された二次記憶装置と、各々が前記
    二次記憶装置へそれぞれ接続された複数のデータベース
    管理プロセッサと、前記データベース管理プロセッサの
    各々へ接続され、複数のデータ単位を記憶するようにス
    トア−イン・キャッシュの形式へ編成された共有ストア
    とを備え、各データ単位がその開始端および終了端にそ
    れぞれチェック・ビットを含み、当該データ単位が前記
    二次記憶装置へ書き込まれる度に該チェック・ビットを
    反転するようにしたシステムにおいて、 前記二次記憶装置から第1のデータベース管理プロセッ
    サへチェック・ビットを含む一のデータ単位を読み取る
    ステップ(a)と、 前記第1のデータベース管理プロセッサにおいて前記一
    のデータ単位を変更することにより更新されたデータ単
    位を生成するステップ(b)と、 前記更新されたデータ単位をそのチェック・ビットを変
    更することなく前記共有ストアへ書き込むステップ
    (c)と、 前記更新されたデータ単位を前記二次記憶装置へ書き込
    むべく、前記共有ストアから第2のデータベース管理プ
    ロセッサへ前記更新されたデータ単位を読み取るステッ
    プ(d)と、 前記第2のデータベース管理プロセッサにおいて前記更
    新されたデータ単位内のチェック・ビットを反転するス
    テップ(e)と、 前記第2のデータベース管理プロセッサから前記二次記
    憶装置へ前記更新されたデータ単位を書き込むステップ
    (f)とを含む、書き込みエラー検出用チェック・ビッ
    トの処理方法。
  2. 【請求項2】前記データ単位のコピーが前記二次記憶装
    置に保持されており、前記ステップ(f)が前記更新さ
    れたデータ単位を前記二次記憶装置に保持されている当
    該データ単位のコピーに上書きするようなものであっ
    て、さらに前記データ単位のコピーのチェック・ビット
    のコピーを前記共有ストアに保持させるステップ(g)
    と、 前記チェック・ビットのコピーを前記更新されたデータ
    単位とともに前記第2のデータベース管理プロセッサに
    与えるステップ(h)とを含み、 前記ステップ(e)が前記更新されたデータ単位内のチ
    ェック・ビットを前記チェック・ビットのコピーに関し
    反転された指定値へ設定することを特徴とする、請求項
    1に記載の書き込みエラー検出用チェック・ビットの処
    理方法。
  3. 【請求項3】前記ステップ(f)の後に、前記共有スト
    アにおいて前記チェック・ビットのコピーを前記反転さ
    れた指定値へ変更するステップ(i)を含むことを特徴
    とする、請求項2に記載の書き込みエラー検出用チェッ
    ク・ビットの処理方法。
  4. 【請求項4】前記システムが前記共有ストアに関連する
    デイレクトリを含んでいて、該デイレクトリの各エント
    リが前記共有ストアから要求されたデータ単位または前
    記共有ストアへ書き込まれたデータ単位にそれぞれ対応
    しており、さらに各デイレクトリ・エントリ毎に前記チ
    ェック・ビットを記憶すべきCビット・フィールドを生
    成するステップ(j)と、 前記Cビット・フィールドをNULL値へ初期設定する
    ステップ(k)と、を含むことを特徴とする、請求項1
    に記載の書き込みエラー検出用チェック・ビットの処理
    方法。
  5. 【請求項5】前記ステップ(f)が、 前記更新されたデータ単位を前記共有ストアへ書き込む
    ために、該共有ストアに対し「WRITE」コマンドを
    発行するステップ(f1)と、 前記「WRITE」コマンドとともに前記チェック・ビ
    ットを前記共有ストアに与えるステップ(f2)と、 前記更新されたデータ単位に対応するデイレクトリ・エ
    ントリのCビット・フィールドへ、前記「WRITE」
    コマンドとともに与えられる前記チェック・ビットの値
    を記入するステップ(f3)と、 を含むことを特徴とする、請求項4に記載の書き込みエ
    ラー検出用チェック・ビットの処理方法。
  6. 【請求項6】さらに前記二次記憶装置内に前記データ単
    位のコピーを保持させるステップ(l)を含み、また前
    記ステップ(d)が、前記第2のデータベース管理プロ
    セッサから前記共有ストアへ「READ−FOR−CA
    STOUT」コマンドを発行するステップ(d1)と、 前記「READ−FOR−CASTOUT」コマンドに
    応答して、前記更新されたデータ単位に対応する前記デ
    イレクトリ・エントリのCビット・フィールドへ或る値
    を与えるとともに、前記更新されたデータ単位を前記共
    有ストアから前記第2のデータベース管理プロセッサへ
    与えるステップ(d2)と、 前記第2のデータベース管理プロセッサへ与えられたC
    ビット・フィールドの値がNULLである場合には、前
    記二次記憶装置に保持されている前記データ単位のコピ
    ーからチェック・ビットを獲得するとともに、当該チェ
    ック・ビットを前記ステップ(e)で反転してこの反転
    されたチェック・ビットを前記第2のデータベース管理
    プロセッサにおける前記更新されたデータ単位中に置く
    ステップ(d3)と、 さもなければ、前記更新されたデータ単位内にある前記
    チェック・ビットを使用して前記ステップ(e)を実行
    するステップ(d4)と、を含むことを特徴とする、請
    求項5に記載の書き込みエラー検出用チェック・ビット
    の処理方法。
  7. 【請求項7】さらに前記ステップ(d)、(e)および
    (f)の少なくとも1つのステップにおける障害を検出
    するステップ(m)と、 前記更新されたデータ単位に対応する前記デイレクトリ
    ・エントリ内のCビット・フィールドの値をNULLへ
    設定するステップ(n)と、を含むことを特徴とする、
    請求項5に記載の書き込みエラー検出用チェック・ビッ
    トの処理方法。
  8. 【請求項8】複数のページを記憶するように1以上の記
    憶装置から構成された二次記憶装置と、各々が前記二次
    記憶装置へそれぞれ接続された複数のデータベース管理
    プロセッサと、前記データベース管理プロセッサの各々
    へ接続され、複数のページを記憶するようにストア−イ
    ン・キャッシュの形式へ編成された共有ストアとを備
    え、各ページがその開始端および終了端にそれぞれチェ
    ック・ビットを含み、各ページが前記二次記憶装置へ書
    き込まれる度に該チェック・ビットを反転するようにし
    たシステムにおいて:各ページの開始端および終了端に
    それぞれチェック・ビット用の値を記憶するため、当該
    ページの開始端にあるチェック・ビット・パターンと当
    該ページの終了端にあるチェック・ビット・パターンと
    が特定の対応関係を有するようにするステップ(a)
    と、 前記共有ストアに記憶されている各ページ(以下「キャ
    ッシュされたページ」と称す)のためのチェック・ビッ
    ト用の値を、前記二次記憶装置に記憶されている各ペー
    ジのチェック・ビットの値に対応するように、前記共有
    ストアのデイレクトリへ記憶するステップ(b)と、 前記共有ストアに対し、キャッシュされたページが前記
    二次記憶装置へ書き込まれることを通知するステップ
    (c)と、 前記キャッシュされたページのための前記デイレクトリ
    内のチェック・ビットとは異なるように、前記ページの
    チェック・ビットを設定するステップ(d)と、 前記キャッシュされたページを、前記二次記憶装置内の
    対応するページに上書きすることにより、前記二次記憶
    装置へ書き込むステップ(e)と、 前記デイレクトリ内のチェック・ビットを、前記ステッ
    プ(d)で得られたチェック・ビット用の値へ変更する
    ステップ(f)と、を含むことを特徴とする、書き込み
    エラー検出用チェック・ビットの処理方法。
  9. 【請求項9】前記ステップ(c)の後で、かつ前記ステ
    ップ(d)の前に、前記キャッシュされたページを前記
    二次記憶装置へ書き込むために前記共有ストアから読み
    取るステップ(g)を含むことを特徴とする、請求項9
    に記載の書き込みエラー検出用チェック・ビットの処理
    方法。
JP5221664A 1992-10-01 1993-09-07 書き込みエラー検出用チェック・ビットの処理方法 Expired - Lifetime JPH0820986B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/955,076 US5455942A (en) 1992-10-01 1992-10-01 Partial page write detection for a shared cache using a bit pattern written at the beginning and end of each page
US955076 1992-10-01

Publications (2)

Publication Number Publication Date
JPH06202922A JPH06202922A (ja) 1994-07-22
JPH0820986B2 true JPH0820986B2 (ja) 1996-03-04

Family

ID=25496346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5221664A Expired - Lifetime JPH0820986B2 (ja) 1992-10-01 1993-09-07 書き込みエラー検出用チェック・ビットの処理方法

Country Status (2)

Country Link
US (1) US5455942A (ja)
JP (1) JPH0820986B2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5504883A (en) * 1993-02-01 1996-04-02 Lsc, Inc. Method and apparatus for insuring recovery of file control information for secondary storage systems
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
US5768582A (en) * 1995-06-07 1998-06-16 International Business Machines Corporation Computer program product for domained incremental changes storage and retrieval
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
US6754656B1 (en) * 1996-10-22 2004-06-22 International Business Machines Corporation System and method for selective partition locking
US7480653B2 (en) * 1996-10-22 2009-01-20 International Business Machines Corporation System and method for selective partition locking
US5887191A (en) * 1996-11-26 1999-03-23 International Business Machines Corporation System and method for bounding response time jitter for high priority commands in a multimedia datastreaming system
US5860141A (en) * 1996-12-11 1999-01-12 Ncr Corporation Method and apparatus for enabling physical memory larger than corresponding virtual memory
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US6539495B1 (en) 1999-02-22 2003-03-25 International Business Machines Corporation Method, system and program products for providing user-managed duplexing of coupling facility cache structures
US6438654B1 (en) 1999-02-22 2002-08-20 International Business Machines Corporation Castout processing for duplexed cache structures
US6542970B1 (en) 1999-08-23 2003-04-01 International Business Machines Corporation Method, system and program products for copying coupling facility list structures
US6609214B1 (en) 1999-08-23 2003-08-19 International Business Machines Corporation Method, system and program products for copying coupling facility structures
US6594667B2 (en) 1999-08-23 2003-07-15 International Business Machines Corporation Method, system and program products for modifying coupling facility structures
US6546466B1 (en) 1999-08-23 2003-04-08 International Business Machines Corporation Method, system and program products for copying coupling facility cache structures
US6546414B1 (en) 1999-08-23 2003-04-08 International Business Machines Corporation Method, system and program products for copying coupling facility lock structures
US6317744B1 (en) 1999-08-23 2001-11-13 International Business Machines Corporation Method, system and program products for browsing fully-associative collections of items
US6584554B1 (en) 1999-08-23 2003-06-24 International Business Machines Corporation Directed allocation of coupling facility structures
US6266783B1 (en) 1999-08-23 2001-07-24 International Business Machines Corporation System-managed rebuild of coupling facility structures
US20020073110A1 (en) * 2000-12-12 2002-06-13 Edouard Duvillier Version collection technique implemented on an intrinsic versioning information storage and retrieval system
US7380198B2 (en) * 2003-06-11 2008-05-27 International Business Machines Corporation System and method for detecting write errors in a storage device
US6885930B2 (en) * 2003-07-31 2005-04-26 Siemens Energy & Automation, Inc. System and method for slip slide control
US7222117B1 (en) 2003-11-14 2007-05-22 Advent Software, Inc. Segmented global area database
JP2006072435A (ja) * 2004-08-31 2006-03-16 Hitachi Ltd ストレージシステムおよびデータ記録方法
US7693883B2 (en) * 2006-01-30 2010-04-06 Sap Ag Online data volume deletion
JP5130732B2 (ja) * 2006-07-27 2013-01-30 富士通株式会社 振り返りデータ処理方法、振り返りデータ評価方法及び装置
US20080027927A1 (en) * 2006-07-27 2008-01-31 Fujitsu Limited Retracement data processing method and apparatus
US8458217B1 (en) 2009-08-24 2013-06-04 Advent Software, Inc. Instantly built information space (IBIS)
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
US8838888B2 (en) 2012-03-19 2014-09-16 International Business Machines Corporation Conditional write processing for a cache structure of a coupling facility
US8886671B1 (en) 2013-08-14 2014-11-11 Advent Software, Inc. Multi-tenant in-memory database (MUTED) system and method
CN106155839B (zh) * 2015-04-28 2019-07-30 阿里巴巴集团控股有限公司 一种用于备份数据的方法与设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4005405A (en) * 1975-05-07 1977-01-25 Data General Corporation Error detection and correction in data processing systems
US4271521A (en) * 1979-07-09 1981-06-02 The Anaconda Company Address parity check system
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
CA1187198A (en) * 1981-06-15 1985-05-14 Takashi Chiba System for controlling access to channel buffers
US4483003A (en) * 1982-07-21 1984-11-13 At&T Bell Laboratories Fast parity checking in cache tag memory
US4847754A (en) * 1985-10-15 1989-07-11 International Business Machines Corporation Extended atomic operations
JPS62206658A (ja) * 1986-03-07 1987-09-11 Hitachi Ltd 記憶管理装置
US4882642A (en) * 1987-07-02 1989-11-21 International Business Machines Corporation Sequentially processing data in a cached data storage system
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
US4920536A (en) * 1988-10-14 1990-04-24 Amdahl Corporation Error recovery scheme for destaging cache data in a multi-memory system
US5048024A (en) * 1989-09-06 1991-09-10 Unisys Corporation Partitioned parity check and regeneration circuit
US5043943A (en) * 1990-06-18 1991-08-27 Motorola, Inc. Cache memory with a parity write control circuit
US5287473A (en) * 1990-12-14 1994-02-15 International Business Machines Corporation Non-blocking serialization for removing data from a shared cache
US5265232A (en) * 1991-04-03 1993-11-23 International Business Machines Corporation Coherence control by data invalidation in selected processor caches without broadcasting to processor caches not having the data

Also Published As

Publication number Publication date
US5455942A (en) 1995-10-03
JPH06202922A (ja) 1994-07-22

Similar Documents

Publication Publication Date Title
JPH0820986B2 (ja) 書き込みエラー検出用チェック・ビットの処理方法
US5276835A (en) Non-blocking serialization for caching data in a shared cache
US5287473A (en) Non-blocking serialization for removing data from a shared cache
JP2837785B2 (ja) データ・コヒーレンス制御方法
KR101470713B1 (ko) 버퍼링된 저장을 이용하여 트랜잭션들을 가속화하기 위한 메커니즘들
US6502108B1 (en) Cache-failure-tolerant data storage system storing data objects with version code equipped metadata tokens
US6438659B1 (en) Directory based cache coherency system supporting multiple instruction processor and input/output caches
US6119209A (en) Backup directory for a write cache
US20030200394A1 (en) Cache memory arrangement and methods for use in a cache memory system
JP2830218B2 (ja) キャッシュ付ディスク制御装置の障害処理方法
US20110082992A1 (en) Communication-link-attached persistent memory system
US20040049636A1 (en) Technique for data transfer
JP2810593B2 (ja) 記憶装置
US7353342B1 (en) Shared lease instruction support for transient blocking synchronization
EP0533427B1 (en) Computer memory control system
JP2540008B2 (ja) デ―タ処理システム及びメモリ手段内のデ―タ・レコ―ド・イメ―ジを有効化する方法
CN101295274B (zh) 用于降低共享存储器的数据讹误的方法和设备
JPH06149485A (ja) データ完結性保証処理方法
US6192460B1 (en) Method and apparatus for accessing data in a shadow set after a failed data operation
JP3335919B2 (ja) ディスクキャッシュ制御装置
KR950011056B1 (ko) 트랜잭션 처리시스템의 로그/회복관리방법
JPH07295883A (ja) 情報処理装置
JP3555847B2 (ja) キャッシュメモリの障害処理装置、キャッシュメモリの障害処理方法、マルチプロセッサシステム
JPH071490B2 (ja) デ−タ書戻し方式
JP3074897B2 (ja) メモリ回路