JPH05307530A - マルチプロセッサデータベース環境においてロック競合を減少させたレコードレベル共有方法 - Google Patents

マルチプロセッサデータベース環境においてロック競合を減少させたレコードレベル共有方法

Info

Publication number
JPH05307530A
JPH05307530A JP4301066A JP30106692A JPH05307530A JP H05307530 A JPH05307530 A JP H05307530A JP 4301066 A JP4301066 A JP 4301066A JP 30106692 A JP30106692 A JP 30106692A JP H05307530 A JPH05307530 A JP H05307530A
Authority
JP
Japan
Prior art keywords
record
copy
data
ses
slc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP4301066A
Other languages
English (en)
Other versions
JP2559959B2 (ja
Inventor
Jimmy P Strickland
ジミー・ポール・ストリックランド
Kenneth M Kapulka
ケネス・マイケル・カプルカ
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 JPH05307530A publication Critical patent/JPH05307530A/ja
Application granted granted Critical
Publication of JP2559959B2 publication Critical patent/JP2559959B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 マルチプロセッサシステムにおいて、データ
制御インターバル(CI)を生ずることなく、レコード
レベルで共有するデータの保全性を維持するための、仮
想記憶アクセス管理(VSAM)技術を提供する。 【構成】 システム1、2がCI1のコピーを共有外部
記憶部(SES)から共有ローカルキャッシュ(SL
C)に読み込み、例えばレコード3、14を更新する
(A)。この時点でシステム1の要求により書き込みが
実行されると、CI1の他の全てのSLCコピーが無効
化されて、SESにCI1コピーが書き込まれる
(B)。システム2のSLCコピーが無効化されたの
で、SESへの書き込み要求をしても実行されず、シス
テム2はSESの読み取り要求を発して有効なCI1の
コピーを得、SLCに2つのCIコピーを得る(C)。
VSAM部は次にレコード14に対して再更新を行い、
システム2の要求により書き込み要求が実行されて、レ
コード3、14が変更されたSLC及びCI1のSES
コピーが形成される(D)。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、多数同時トランザクシ
ョン処理システム用の、データベース保全(integ
rity)管理手順に関するものであり、特に、単一の
データ制御インターバル即ちブロック内において、ブロ
ックレベルでのロック競合を生ずることなく、同時にレ
コードを更新する方法に関するものである。
【0002】
【従来技術】マルチプロセッシング環境における、オペ
レーティングシステムのロック管理部分は、プロセスに
代って、記憶リソース上のロックの指定及び再指定を行
なうものである。このロック動作は、適当なトランザク
ションのシリアル化及びデータベースの保全性を保証す
るが、プロセスの同時性を劣化させる要因ともなり得
る。同一資源(リソース)を用いて処理する多くの同時
プロセスから生じる高い同時性要求を有する資源を、ロ
ック管理部が頻繁にロックすると、データ処理のスルー
プットが低下することになり得る。このロック競合状況
においては、このような資源を同時プロセス間で割り当
てる必要がある。更に、ロック競合を並び変えるために
強いられる待ち状態によって、プロセスの多くの処理速
度が落ちることになる。また、ロック管理部もロック、
ロック解除、並びに待ち状態の解決及び状態の再開に処
理時間を消費しなくてはならない。
【0003】リレーショナルデータベース管理システム
においては、マルチプロセッサデータベース環境におい
て、同時プロセスを用いて動作するので、ロック管理部
のような機能を用いることになる。当該技術の現状は、
シー.ジェイ.デイト(C.J.Date)の「DB2
への案内」(Addison−Wesley Publ
ishing Co.,pp191−195、1984
年)、及びシー.ジェイ.デイト(C.J.Date)
の「データベースシステムの紹介」(Addison−
Wesley Publishing Co.,pp4
22−427、1986年)を参照することによって、
認めることができよう。また、エッチ.エフ.コースら
(H.F.Korth et al)の「データベース
システムの概念」McGraw Hill,Inc,p
p356−402,1986年)も、データベースシス
テムの同時性制御の一般論について開示している。
【0004】一般的にマルチプロセッサシステムでは、
そしてデータベース管理システムでは特に、一人のユー
ザが編集または更新の目的のためにファイルをアクセス
すると、アクセス中の更新が完了または保証されるま
で、他の全てのユーザは締め出されてしまう。ファイル
共有環境において同時性を改善するためには、多数のユ
ーザに、更新されているファイルを同時に読むことを、
許すようにしなくてはならない。また、あるユーザが異
なるレコードを更新している同じファイルにおいて、別
のユーザにレコードの更新を許すようにしなくてはなら
ない。当該技術分野において、データベースシステムに
おける同時性を改善する多くの方法が提案されている。
リチャード A.クルスら(Rechard A.Cr
us et al)の米国特許第4716528号は、
ロック処理にかかるオーバヘッドと同時性との間のトレ
ードオフを管理することができる可変細分性を用いて、
階層的ロッキング及びロック促進技術を代表する方法を
開示するものである。クルスらは、一対の調和(coo
rdinated)されたロッキング制限を用いること
を教示しており、第1の制限を、資源毎に「小さな細分
性」ロックの数に割り当て、第2の制限を、各プロセス
に指定可能なロックの全数に配置してある。「小さな」
ロック制限を越えると、これらの方法は全ての小さなロ
ックを引っ込め、資源全体に単一の全体的ロックを付与
し(ロックの段階的拡大)、それにより、ロックの総数
を減少させるようにしている。プロセスが、全ロック数
の制限に対して、更にロックを付け加えることを要求し
た時、そのロックを拒否する。しかしながら、クルスら
は、同時ブロックアクセスの際にブロックレベルでのロ
ック競合を回避するための一定の細分性(したがって、
低いオーバヘッド)の技術を提供していない。
【0005】米国特許第5043876号において、チ
ャールズ アール.テリイ(Charles R.Te
rry)は、ファイル共有環境で用いるための、N−レ
ベルファイルシャドウ技術を開示している。テリイは、
各共有ファイルのN−レベルのシャドウコピーを保持
し、他のユーザが同時に同じファイルを更新していて
も、そのファイルの一貫したコピーを、多数のユーザが
読むことを可能にしたものである。この共有ファイルを
オープンにした各ユーザは、ファイルの最新の保証され
たコピーを見ることができるが、そのファイルをオープ
ンにした後に生じる更新トランザクションには気づくこ
とはない。しかしながら、テリイの技術は一度に1つの
更新トランザクションしか許しておらず、ファイルまた
はブロックレベルでの更新のロック競合のために、他の
複数の同時更新プロセスが待機しなければならない。
【0006】
【発明が解決しようとする課題】ロッキング競合と同時
性との問題は、当該技術分野では重大であると考えられ
るが、レコードレベルでのロッキングのみにより、共有
メモリ内に多数のレコードを含んでいる共通データブロ
ックの同時アクセス動作を管理するための教示または示
唆は記載されていない。即ち、同一ブロックまたはデー
タ制御インターバル(CI)への2つ以上の同時更新ト
ランザクションは、通常、テリイ及びその他が教示して
いるように、データCIレベルでのロックを必要とす
る。レコードレベルのロッキングのみによるシリアル化
を用いた2つ以上の更新プロセスにより、単一のブロッ
クに同時アクセスを可能とする方法に対して、当該技術
分野では強い要求がある。関連した未解決の問題及び欠
陥を解決することは、当該技術分野では重大なことであ
り、したがって本発明の目的は、これら従来技術の問題
点を解決してレコードレベルでのロッキングのみによっ
て、更新プロセスのシリアル化を保存することである。
【0007】
【課題を解決するための手段】本発明の方法は、仮想記
憶アクセス方法(VSAM)に、ブロックまたはデータ
制御インターバル(CI)レベルのロッキングのオーバ
ヘッドなしに、分散型マルチプロセッサ環境において、
レコードレベルの共有データの保全性を維持させるもの
である。レコードレベルのロックのみを用いて、2つ以
上のプロセスを同時に更新することができる。本発明
は、多数のプライベートバッファ(PB)データのCI
コピー、共有ローカルキャッシュ(SLC)無効化プロ
トコル及び条件付書き込み機能のための方法を備えたも
のである。動作において、本発明のVSAMレコードレ
ベル共有(RLS)方法は、第1のプロセスまたはワー
ク単位(UOW)が、共有する構造型外部記憶装置(S
ES)から、対象となるレコードを含むデータCIのプ
ライベートバッファ(PB)コピーを、共有するローカ
ルキャッシュ(SLC)内のPBに、取り込むことを許
可する。この取り込みの後、第1のUOWは、全ての更
新を対象レコードに記録(log)し、変更されたデー
タCIをSESに戻して条件付きで書き込む。このSE
Sへの書き込みは、第2のUOWによって同一データC
Iへの暫定的な書き込みがなかったことを条件としてい
る。第2のUOWが実際に合間に同一データCIを書き
込んだならば、第1のUOWは、そのデータCIの最新
のコピーについてSESを参照し、それを第1のUOW
からの記録された更新と組み合わせ、再び更新されたデ
ータCIをSESに戻して条件付きで書き込むことによ
って、再度実行する。
【0008】したがって、本発明のRLS方法は、共有
データ集合(セット)の変更のシリアル化のためにも、
SLCの一貫性のためにも、共有ローカルキャッシュ
(SLC)バッファもデータCIレベルのロッキングを
必要としない。代りに、キャッシュ入力の有効性を試験
し、条件付でキャッシュに書き込むための本発明の新規
なプロトコルを用いて、データCIレベルの競合を検出
する。本発明の目的は、上記し多様に、レコードレベル
でのロッキングによって、更新プロセスのシリアル化を
保存することであるが、この目的は、本発明のプライベ
ートバッファ(PB)コピー、SLCバッファの無効
化、及び条件付SES書き込み方法によって、達成させ
る。これらの方法の利点は、データCIをロッキング及
びロッキングの解除を行なう際、マルチシステムデータ
共有環境において、かなりのオーバヘッドコストとなる
オーバヘッドを回避することができることである。本発
明の別の利点は、新規なプロトコルが、同一データCI
内の異なるレコードをアクセスする、多数の更新トラン
ザクションのためのデータ共有ロック競合を低減させる
ことができることである。
【0009】本発明の更に別の利点は、更新トランザク
ションの確認(commit)を待つことなく、トラン
ザクションを更新することによって同時にアクセスされ
るレコードを含むデータCIからの無変更レコードを読
み出すことができることである。即ち、レコードレベル
での読み出し/書き込み動作は、データCI(即ちブロ
ック)レベルで競合するものではない。本発明の方法
は、ロッキング及び改造(versioning)の混
合技術として考えられる。共有ローカルキャッシュ内の
各プライベートバッファのコピーは、そのために作成さ
れたワーク単位によってのみアクセス可能な、一貫性が
あるが恐らく古いデータCIの改造版を表す。また、レ
コードレベルのロッキングが用いられる。CIレベルの
ロッキングがないので、データCIコピーは、1つ以上
の共有ローカルメモリ内に同時に存在することができ
る。これらのSLCコピーの各々を、同時に更新するこ
ともでき、各SLCコピーの「有効性」をSESレベル
で監視するようにする。レコードレベルのロッキングを
行なうので、同一データCI内のいかなる同時更新も、
異なるレコードに対して実行されるべきである。同一デ
ータCIの異なるコピーに対して複数の同時更新を行な
う場合、本発明のレコードマージ再実行(RMR)法に
したがって、多数のSLCコピーをマージし、いくつか
の同時トランザクションからの全ての更新されたレコー
ドを含んでいるSES内に新しいデータCIを形成す
る。
【0010】ワーク単位(UOW)は、本発明の新パラ
メータであり、VSAM要求パラメータリスト(RP
L)上で指定しなくてはならない。VSAMは、単一の
UOWに代って全ての動作(activity)を追跡
するための内部構造を有する。UOW構造に含まれるの
は、データCIに関連するPBコピーを含むSLC内の
プライベートバッファへのポインタと、UOWに対して
関連するデータCIの変更ログを表にしたUOWログブ
ロックとである。1つのPBのみを、データセット毎の
UOW毎に保持するようにする。UOWが第2のデータ
CIにアクセスする時、無変更の場合は無条件開放、ま
たは本発明の条件付書き込み方法のいずれかによって、
第1のデータCIが開放される。条件付書き込み要求に
より、試験、無効化、マージ及び条件付書き込みの再試
行のサイクルを、新しい(更新及びマージを行なった)
データCIがSESに書き込まれるまで、繰り返すこと
になる。特殊なデータCIレベルロッキング方法を用い
て、データ制御インターバルまたは制御領域内に存在す
るスペース(空間)に時折起こる枯渇に応答して生じ
る、VSAMデータ制御インターバル及びデータ制御領
域の分割(CI/CA分割)によって起こされる問題を
克服する。これらの分割手順は、VSAM管理ガイドま
たは先に引用したボールの参考文献に開示されている。
【0011】実施例の説明において、以下にあげる略語
を、以下に定義したように用いるが、これらは、明細書
に記載した参考文献、及び、例えば、「MVS/ESA
VSAM 管理ガイド」(SC26−4518,In
ternational Business Mach
ines,Inc,Armonk,NY)、及びマリリ
ン ボール(Marilyn Bohl)の「IBM直
接アクセス記憶装置の紹介」(Science Res
earch Associated,Inc., Pa
lo Alto, CA,1981年)のような、適当
なIBMシステムマニュアルを参照することによって、
明瞭になるであろう。 API Application Programming Interface BMF Buffer Management Facility CA Control Area CI Control Interval CI/CA Conrl Interval/Control Area CIDF CI Definition Field KSDS Key−Sequenced Data Set PB Private Buffer RLS Record Level Sharing RMR Record Merge Redo RPL Request Parameter List SDSH Shared Data Storage Hierarchy SES Structured External Storage SLC Shared Local Cache TLCE Test Local Cache Entry UOW Unit of Work
【0012】仮想記憶アクセス方法(VSAM):本発
明の方法を、IBM社が用いているVSAMプロトコル
に関して説明する。VSAMは、当該技術分野では公知
の方法で、階層的記憶機能内の空間を管理する機構であ
り、ここでは、本発明方法の動作を例示するために用い
ている。先に引用した参考文献には、本発明のVSAM
アプリケーションを実行するのに必要な全てのVSAM
の詳細を、開示している。本発明はVSAMアプリケー
ションに限定されるものではなく、当該技術の熟練者に
は明白であるように、いかなる同様な分散型同時トラン
ザクション処理システムにも適用できるものである。図
1(A)は、一例としてあげたマルチプロセッサ記憶階
層の一部を示すものである。構造型外部記憶(SES)
機能10を、SLC12で代表される複数の共有ローカ
ルキャッシュ(SLC)に結合して示している。SES
10に記憶されているデータは、図ではCI14で代表
される、レコードのデータ制御インターバル(CI)に
おいて、組織化される。各データCIは、ある特定のデ
ータ型のレコードを含む、補助的記憶装置の固定長領域
である。このようなレコードの例は、記憶装置内のキー
シーケンスで順序付けされた、キーシーケンス型データ
セット(KSDS)のレコードを含んでいる。複数のデ
ータCIは、データ制御領域(CA)(図示せず)と呼
ばれる補助的な記憶装置の複数の固定長領域に、組織さ
れている。
【0013】1つのデータCIは、VSAMがデータレ
コードやそれらを記述した制御情報を記憶するために用
いられる、補助的な記憶装置の1つの連続領域である。
これは、記憶階層において、1つの記憶レベルと別のレ
ベルとの間のデータ転送の典型的なユニットである。そ
のサイズは、データセットによって変化するが、各デー
タCIのサイズは、1つのデータセット内では固定であ
り、VSAMが受け入れ可能な限度内で、VSAMまた
はユーザのいずれかによって固定される。VSAMは、
使用中の補助的記憶装置のハードウエアタイプ、ユーザ
データレコードのサイズ、及びユーザアプリケーション
プログラムがI/Oバッファを使用可能にする仮想記憶
空間の最少量に基づいて、サイズを選択する。このよう
に、データCIは、デバイスとは独立したデータ転送ユ
ニットであり、一般的に、トラック、ブロックまたはレ
コードのような他のデータ記憶手段を補うか、それらに
よって補われるようにすることができる。ある場合で
は、1つのレコードを挿入あるいは延長することは、対
応するデータCI内で使用可能な自由空間以上のものを
必要とすることがあり、その場合は、「制御インターバ
ル分割」処理に進み、VSAMがデータCI内に記憶さ
れたレコードを同一CA(データ制御領域)」内の未使
用データCIに移動させる。これによって、いくらかの
空間を解放し、新しい即ち更新されたレコードを保持す
るようにする。
【0014】CA内に自由データCIがない場合、自由
データCIを要求する挿入から、「制御領域分割」に進
み、既に割り当てられた空間を用いることにより、また
は最初に割り当てた空間が満杯でデータ集合定義におい
て拡張が得られるのであればデータ集合を拡張すること
によって、VSAMは新しい制御領域を構成(esta
blish)する。そして、VSAMは満杯のCA内の
データCIのほぼ半分の内容を、新しいCA内の自由デ
ータCIに移動させる。次に、新しいレコードを、レコ
ードキーによって指示された2つのCAの一方に挿入す
ることによって、きっかけとなった挿入処理を完了す
る。これらのCAの各々においてデータCIの約半分が
自由となったので、後続の挿入は、これ以上CAの分割
を必要としない。CI/CA分割は、フリースペース
(自由空間)を十分に分配されたデータ集合には通常発
生しないものであり、VSAM制御の下で自動的に発生
する。
【0015】VSAMレコードレベル共有(RLS)に
関する発明:本発明のレコードレベル共有(RLS)方
法は、VSAMアプリケーションプログラムインターフ
ェース(API)に、アプリケーションの作業単位(U
OW)のための支援を含ませるように、拡張したもので
ある。UOWは、VSAM要求パラメータリスト(RP
L)によって指定された、新しいパラメータである。V
SAMは、その動作をUOWの代りに追跡するための内
部構造を保持している。図1(B)を参照すると、UO
Wブロック構造は、VSAMバッファ管理機能(BM
F)から得られたプライベートバッファ(PB)内のデ
ータCIのコピーへのポインタ16と、UOWをそれら
のRPL内で指定するPUT/ERASE要求によって
プライベートバッファ(PB)のコピー20になされた
レコード修正に関する情報を含んでいるUOWログへの
ポインタ18とを含んでいる。VSAMは、データ集合
毎のUOW毎に1つ以下のBMFバッファに関する情報
を保持している。一般的に、VSAMは、UOWがデー
タ集合内の異なるデータCIへの参照を要求するまで、
UOWに対するプライベートバッファを保持するように
している。VSAMは、次にRELEASE NOWR
ITE要求をBMFに発して修正していないバッファを
解放し、かつREASE WRITE要求を発行して修
正したバッファを書き込み、解放する。
【0016】図2は、UOWプライベートバッファと、
図1(A)のSLC12によって代表されるSLCとの
間の関係を図示したものである。BMFはすべてのバッ
ファを管理する。SLCは、図1(A)に示した共有デ
ータ記憶階層(SDSH)における1つの記憶レベルで
ある。図2のSLC内において、データCI22によっ
て例示されている多数のデータCIコピーを、図1のS
ESから書き込み、記憶している。SESは、他のコピ
ーを他のSLCに書き込むこともできるが、このような
ローカルCIコピー全ての「有効性」を監視しなくてな
ならない。UOWプライベートバッファをSLCに含ま
せることもでき、該バッファは図1(A)に示したよう
に、単一のUOWによってなされたレコードの更新を保
持するのに用いられる。図2は、データCI22のロー
カルコピーを同時にアクセスするUOWの数に応じて、
必要な回数だけ、UOWプライベートバッファにデータ
CI22のローカルコピーを書き込むことができること
を、示している。UOWプライベートバッファは、図2
においてPB24で例示されている。図2のPB26
は、UOWjに対するデータCI22の第2のコピーと
することもでき、この場合、PB24はUOWiの第1
のコピーとなる。
【0017】図2において、UOWiが第2のデータC
I28へのアクセスを要求した後、VSAMは、PB2
4に対する2つの使用可能なRELEASE(解放)命
令の1つを発行する。RELEASE NOWRITE
は、無修正PBの無条件解放である。RELEASE
WRITE(以下に論ずる)は、条件付書き込み要求で
あり、局部的にまたは別のSLCにおいて、他の共有U
OWの代りに、同一データCIの別のコピーに対して発
せられたRELEASE WRITEによって、PB2
4またはデータCI22が無効化された時は、この要求
は行なわれない。これは、2つ以上のUOWが同一デー
タCIのコピーを(LOCATE UPDATEコマン
ドによって)得て、バッファを修正し、そして修正され
たプライベートバッファに書き込もうとする(RELE
ASE WRITEコマンドによって)時に、起こるも
のである。最初のRELEASE WRITEは実行さ
れるが、その他のものは実行されない。書き込みが実行
されないと、VSAMに、以下に述べるレコードマージ
再実行(RMR)処理を行なわせることになる。
【0018】レコードレベル共有機能(RLS) VSAMは、次にあげる新しい機能を用いて、レコード
レベルで共有するVSAMデータ集合のデータCIへ
の、キャッシュアクセスを得る。 (a)LOCATE READ機能。この機能は、図2
においてデータCI22で例示されている、SLC内の
共有バッファへのUOWアクセスを開放する。要求され
たデータCIがローカルSLC内には得られない場合、
VSAMは、図1(A)のSES10からローカルコピ
ーを書き込ませる。多数のローカルUOWが共有バッフ
ァ22を共有する(読み取る)ことができる。 (b)LOCATE UPDATE機能。この機能は、
図3のPB24のようなデータCIのプライベート(共
有されていない)バッファコピーへのアクセスを開放す
る。この機能は、また、一貫性(consistenc
y)または「変更バージョン」のトークンを作成し、そ
れをPBに書き込む。データCIのPBコピーは、更新
するUOWによるアクセス要求に応答して作成され、そ
のUOWによる別のデータCIへのアクセス要求に応答
して除去(解放)される。
【0019】(c)RELEASE NOWRITE機
能。この機能は、データCIのコピーへの呼び出し元U
OWのアクセスを除去する。この機能は、更新または変
更されたいかなるPBコピーに対しても、無効である。
対象となるPBコピーは除去即ち解放される。 (d)RELEASE WRITE機能。これは、PB
の内容をデータCIのSLCバッファ及び中央SESキ
ャッシュに書き込む、条件付書き込み機能である。最初
のステップは、PB一貫性トークンの有効性をチェック
し、当該トークンが無効の場合条件付書き込み未遂行メ
ッセージを返送する。当該トークンが有効な場合、次の
ステップは、PBの内容をSLCバッファ(例えば図3
のバッファ22)に書き込み、そしてPBの内容をSE
Sに書き込むために、SESキャッシュからの許可を要
求する。SESがこのデータCIのSLCバッファコピ
ーを(以前のRELEASE WRITE処理のSES
CROSS−INVALIDATサブ機能によって)
無効化してあった場合、次のステップにおいて条件付書
き込み未遂行メッセージを返送する。SESキャッシュ
がPBの内容を受け入れるなら、この機能は、最初に新
しい一貫性トークンを発生してPBに書き込み、PBは
全ての以前の一貫性トークンを無効化し、そして新しい
一貫性トークンをSLC共有バッファに書き込む。最後
に、更新されたSLCバッファの内容をSESに書き込
み、SESは、SES CROSS−INVALIDA
TEサブ機能を用いて、データCIの他のSLCコピー
全てを無効化する。PBの内容をSES及びSLCの双
方に首尾よく転送すると、このPBへのUOWのアクセ
スを排除してPBを廃止する。
【0020】(e)TEST BUFFER VALI
DITY機能。この機能は、SLCバッファ内のローカ
ル一貫性トークンを、チェックし、MVSテストローカ
ルキャッシュエントリ(TLCE)有効コマンドを発
し、SESをチェックしてSES CROSS−INV
ALIDATE処理がまだ生じていないことを確認す
る。 (f)SES CROSS−INVALIDITY機
能。これは、RELEASE WRITE機能のSES
キャッシュに関するサブ機能であり、マルチシステム環
境におけるSLC一貫性の基本である。SESは、図1
に示すような1組の接続されたSLCの内容を登録し、
監視する。SLCエントリをSESに書き込んだ時、S
ESは他のSLC内の名称付データの既存の全てのコピ
ーを無効化し、無効化されたSLCエントリのSESへ
のいかなる条件付書き込みも、実行させないようにす
る。SESキャッシュのこの条件付書き込み能力は、V
SAMデータCI上のSLCの境界を横切る書き込み競
合を決定するための手段である。この条件付書き込みが
行なわれないと、VSAM RMR過程が開始される。
【0021】(g)テストローカルキャッシュエントリ
(TLCE)有効機能。これは、DFP BMF及びS
ESキャッシュによって設けられる標準機能の1つであ
る。本発明のVSAM RLS方法は、ロッキングの前
にVSAMレコードを最初に配置しなければならないよ
うな場合に、BMF TLCE機能を用いる。このよう
な場合は、アプリケーションの要求によりレコード識別
子の全てが特定されないような場合を含む。その例は、
GET連続、「以上」のGETキー、及びGET全体的
キー検索である。このような要求に対して、VSAMは
BMFを用いて、データCIを含むSLCバッファへの
アクセスを得る。CIを検索して要求されたレコードを
配置する。レコードを配置した後、VSAMはレコード
識別子全体を知ることができる(KSDSに対するキー
またはキーなしタイプ(key−less type)
に対するRIN)。次に、レコード識別子をロック名称
として用いて、レコードロックが許可される。ロックさ
れたレコードをアプリケーションに戻す前に、VSAM
は、そのレコードのSLCコピーが、SESキャッシュ
内の中央データによって判定されたレコードの最新版で
あることを保証しなければならない。VSAMは、BM
F TLCE 有効機能を用いて、アクセスされたデー
タCIが、あるSLC内のどれか別のUOWによって変
更されていないことを確認する。SLCのバッファの有
効性と、排他的レコードロックとに対する2つの要求を
組み合わせにより、レコードの最新版がアプリケーショ
ンに戻されることを保証する。SLCのバッファコピー
が有効でない場合、またはレコードが局部的に発見され
ない場合、VSAMはBMFを呼び出し、データCIの
SES版のSLC内に新しいバッファコピーを得る。ま
た、KSDSレコードに対して、CI/CA分割処理
は、所望のレコードを新しいデータCIに移しておくこ
ともできる。このような場合、VSAMはKSDSイン
デクスを検索し、実際に必要な新しいデータCIを配置
する。
【0022】(h)Record−Level Loc
king機能。本発明のVSAMRLS方法は、SLC
バッファエントリ(データCI)レベルのロッキングを
使用しない。その代りに、TLCE 有効及びRELE
ASE WRITE機能を用いて、SLCバッファエン
トリレベルの競合を検出する。この方法は、SLCバッ
ファのロッキングによるオーバヘッドを回避することが
でき、分散型データ共有システムに大幅な節約が得られ
る。この方法は、また、多数のトランザクションが互い
に待たずに、同一データCI内の異なるレコードを更新
することができるので、ロック競合を減少させることも
できる。また、承認(commit)を待たずに、他の
UOWによって修正されたレコードを含むデータCIの
コピーから、無修正レコードを読み出すこともできる。
したがって、記憶処理は、SLCレベルの競合に遭遇す
ることはない。データCIレベルのロッキングがないた
め、データCIの複数のコピーが同時に1つ以上のSL
C内に常駐する、上述の状況が生じることになるこれら
のSLCコピーの各々は、同時に更新できる。。レコー
ドのロッキングは、いかなる同時更新でもデータCI内
の異なるレコードに対していつでも行なえるように、実
行される。このような同時更新は、RMR機能を要求す
ることになる。
【0023】(i)レコードマージ再実行(RMR)機
能。この機能は、種々のSLCからの多数のデータCI
コピー内に変更されたレコードをマージして、その変更
されたレコードの全てを含む単一のデータCIコピーを
形成するものである。これは、以下の例から最良に認め
られよう。図3には、SLC1内のデータCIのコピー
を、変化後のレコード3を有するものとして示し、SL
C2内のデータCIの別のコピーを変化後のレコード1
4として示している。LOCAL UPDATE機能
は、単一のSLCの環境において、同一データCIのこ
のような多数のPBコピーを発生することができるもの
である。したがって、データCI1のこのようなPBコ
ピーが2つ同一SLC或は異なるSLCに存在すれば、
この機能は、これら2つのPBコピーをマージして、図
3の下方に示すようなCI1の単一のレコードマージコ
ピーを形成することができる。
【0024】図4は、RMR処理中の、データCIのS
LC及びSESコピーを示すものである。この例では、
図4(A)に示すように、システム1及びシステム2
は、両方とも同一データCI内でレコードを更新する。
各システムは、まず、CI1のコピーをそのSLCに読
み込み、CI1のSLCコピー内の1つのレコードを更
新する。システム1は次に、そのCI1のコピーに対し
て、RELEASE WRITE(条件付書き込み)コ
マンドを発する。RELEASE WRITEが実行さ
れ、システム2のSLCエントリを含むCI1の他のS
LCコピーの全てを無効化する。この処理結果を図4
(B)に示す。システム2がそのCI1のコピーにRE
LEASE WRITEコマンドを発すると、システム
2のSLCエントリがシステム1のコピーの既に実行さ
れたRELEASE WRITEによって無効化されて
いるので、条件付書き込みは実行されない。そのREL
EASE WRITEコマンドの未遂行が通知される
と、システム2は次にSES読み取りコマンドを発し
て、CI1の有効コピーを得る。この有効コピーを受け
取った後、システム2は、図4(C)に示すように、C
I1の2つの異なるコピーを有することになる。VSA
Mは次に、システム1のUOWによって強制されたレコ
ードに対して、SESから得られたCI1の有効コピー
へ、変更を再び行なう。システム2はCI1の新たに更
新された有効コピーに対して、RELEASE WRI
TEを再発生し、それによりこの書き込みは実行され
る。RMR処理はこれで完了し、その結果は図4(C)
に示ようになる。最後にシステム2によって実行された
SESの書き込みのため、図4(B)に示すシステム1
内のCI1のSLCコピーは、無効化される。
【0025】CI/CA分割問題 上述のいくつかのRLS機能は、VSAM CI/CA
分割機能が起こす問題に適合させるために、少々修正し
なくてはならない。本発明の方法は、グローバルデータ
集合レベルの排他的ロックを用いて、CI/CA分割と
データ集合に対して関連するインデックスの更新とをシ
リアル化する。CI/CA分割によってなされたインデ
クス及びデータの変更は、直ちにSLC及びSESのキ
ャッシュに書き込まれる。この変更はUOWのプライベ
ートバッファにはバッファ記憶されない。CI/CA分
割は、1つのデータ集合に関してシリアル化されるが、
CI/CA分割の原因とならないGET/PUT/ER
ASE要求に関してはシリアル化されない。本発明のレ
コードレベルでのロックは、ロックされたレコードを含
んでいるCI/CAのCI/CA分割を妨げるものでは
ない。また、変更されたCIのPBコピーの存在も、別
のUOWが同一データCIの分割または同一データCI
を含むCAを分割することを妨げることはない。CI/
CA分割及び同時アクセスを横切るある均整化及びシリ
アル化、並びに分割内に含まれたCIの書き込みの延期
を必要とする。
【0026】VSAM CI/CA分割中の1つのCI
から他のCIへの既存レコードの移動には、本発明のV
SAM RLSシリアル化方法への拡張が要求される。
RLSレコードロックの名称は、レコードキーを基にし
ているので、1つのCIから別のCIへのレコードの移
動は、レコードのロックに影響を与えるものではなく、
CI/CA分割前、最中及び後のレコードへのアクセス
を適切にシリアル化する。しかしながら、本発明のSE
S CROSS−INVALIDATE機能は、CI/
CA分割処理がレコードを新しいCIに移動させる時
に、データCIの保全性を保持するのにそれ自体では十
分ではない。以下の例は、CI/CA分割中のシリアル
化に関連する典型的な問題を示したものである。図4
(A)は、UOW1のPB内のデータCI1を示したも
のである。UOW1は、そのデータCI1のコピー内の
レコード2を変更している。そのCI1のコピーをSL
CにもSESにも書き込んでいない。次にUOW2が、
使用可能なCI1の空間を越えるある処理によって、C
I1への分割を起こさせる。CI分割は、2つのSLC
バッファを用い、図5(A)に示すようなCI1とCI
8とを形成する。CI1のUOW2コピーは、UOW1
におけるレコード2に対する変更を含んでいない。
【0027】UOW2に対するCI分割データ移動及び
インデクス更新ステップは、次の通りである。(a)C
I8を作成し書き込む。(b)インデクスを更新し、C
I1に対するキーを変更し、CI8に対するエントリを
追加する。(c)CI8に移動されたレコードを除去し
て、新しいCI1を書き込む。ここで、UOW2のCI
分割のインデクス更新と新しいCI1の書き込みステッ
プとの間で、第3のUOW(UOW3)がインデクスを
検索し、CI8を配置し、レコード15を修正し、そし
て更新したCI8を書き込むと仮定する。3つのUOW
全てのバッファの結果的に得られた状況がを図5(A)
に示されている。次に、UOW1は、そのCI1のPB
コピーを書き込む。UOW2はまだそのCI1のPBコ
ピーを書き込んでいない。したがって、UOW1のPB
コピーはまだ有効であり、UOW1はRELEASE
WRITEをSLCに発行し、SES(図示せず)は実
行される。この書き込みはCI1のUOW2PBコピー
を無効化することになる(SES CROSS−INV
ALIDATEによって)。そしてUOW2がCI1を
書き込もうとしても、この条件付書き込みは実行されな
い。
【0028】本例で生じた図5(A)に示す状況は、先
に図4について論じたRMRの例より、はるかに複雑で
ある。元々UOW1に連係されているログが、UOW1
のRELEASE WRITEが実行された時に削除さ
れているので、UOW2はUOW1によってCI1に行
なわれたレコード変更のログにアクセスすることができ
ない。また、UOW3によるロッギングされたレコード
の変更は、いずれかの方法でセーブしなくてはならな
い。図5(B)は、本発明の方法が対処しなくてはなら
ない別の問題を示すものである。これは、先に図5
(A)について論じた例の変更例である。UOW1は、
CI1のPBコピーを保持し、該コピーは、変更された
レコード10を含んでいる。UOW1のPBコピーは、
SLCにもSESにも書き込まれていない。UOW2
は、次にCI1の分割を生じさせる。この分割の間に、
UOW1はそのCI1のPBコピーのRELEASE
WRITEを首尾よく行ない、レコード10に対するロ
ックを解除する。分割により既に、レコード10の旧版
を新しいCI8に移動させ、新しいキー位置を示すKS
DSインデックスを更新している。UOW3は、次にレ
コード10に対するロックを得て、新しいCI8に保持
されているレコード10の旧版を(新しいKSDSイン
デクスによって)配置する。この動作は、本発明のレコ
ードレベル共有方法の基本的レコードアクセス法の保全
性を破るものであり、防止しなくてはならない。本発明
は、起こり得る種々の状況の全てを処理するために複雑
な代替RMR手順を組み込むより、むしろ、好適なシリ
アル化技術を用いて、レコード/CIアクセス法をCI
/CA分割処理と調和させることにした。これらの好適
なCI/CA分割のシリアル化技術を以下に述べる。
【0029】レコード/CIアクセスとCI分割との間
のシリアル化 CI分割プロセスは、制御インターバル定義フィールド
(CIDF)内のあるビット(CIDFBUSY)をセ
ットし次にCIを書き込むことによって、開始する。こ
れは、全てのアクセスプロセスに、CI分割が進行中で
あることを知らせるものである。CI分割が完了する前
にシステムに障害が生じた場合、CIへの以後の全ての
アクセスは、このセットされたCIDFBUSYビット
に注目し、必要な回復処理を呼び出し、その分割を一掃
するか或は完了させる。CI分割における最後のステッ
プは、移動され、かつCIDFBUSYビットが不能化
されたレコードがなく、分割されたCIを書き換えるこ
とである。本発明のRLS方法に対して、CIDFBU
SYビットをセットするのに通常用いられるRELES
E WRITE機能は、SLCの無効化のために、実行
されないことがある。したがって、CI分割プロセス
は、BMFにCIの有効なコピーを要求し、CIDFB
USYビットがセット状態を維持するようになるまで、
繰り返しこのビットをセットするように試みなくてはな
らない。
【0030】本発明のRLS方法は、CIをSLCまた
はSESに書き込もうとしている他のUOWからの干渉
がない状態で、一旦CI分割がCIDBUSYビットを
セットしたなら、CI分割を終了させる。書き込みが実
行され分割しているCI内のCIDFBUSYをセット
すると、SES CROSS−INVALIDATE処
理が開始され、そのCIに関するUOWのPBコピーを
(CIのUOW PBコピー)の外に存在するものの全
て無効化する。UOWがそのデータCIのPBコピーを
変更し(或は既に変更してあり)、その無効化したPB
を書き込もうとしても、この条件付書き込みは実行され
ない。すると、UOWはBMFからCIの有効なコピー
を得て、そのCIDFBUSYビットがセットされてい
ることを発見する。このようにセットされたビットを発
見すると、UOWは、「CI分割ロック」を要求せざる
を得なくなる。この分割ロックの処理はUOWをCI分
割プロセスとシリアル化するもので、それを行なう好適
な方法である。このように、UOWがCIを読み取り、
セットされたCIDFBUSYビットを見ると、直ちに
CI分割ロックを要求する。そしてそのUOWはCI分
割プロセスの完了とCI分割ロックの解放とを待つこと
になる。
【0031】UOWがあるデータCIのPBコピーを有
し、他のUOWによる動作によってそのデータCIを分
割するような状況は、以下のように要約することができ
る。 (a)CIの分割の最中にCIのUOW PBコピーが
得られた場合、それはセットされたCIDFBUSYビ
ットを含んでいる。このセットされたビットが含まれて
いると、UOW処理によりPBを解放させ、CI分割ロ
ックを要求させる。 (b)CI分割の前にUOW PBコピーが得られた場
合、CIDFBUSYビットをセットするCI分割ステ
ップは既に(SES CROSS−INVALIDAT
Eによって)処理されており、そのUOW PBコピー
を無効化する。そのUOWに対する要求の後続処理にお
いて、以下のようにして無効なPBコピーを検出する。 (1)連続処理:レコードに対してロックを得た後であ
ってレコードをアプリケーションに返送する前に、VS
AMはTEST BUFFER VALIDITY要求
をBMFに発した場合は、この要求は実行されない。 (2)PUT−for−UpdateまたはERASE
機能:対象レコードを、以前のPUT−for−Upd
ate要求によって、配置しロックした場合は、したが
って、無効なデータPBを保持しているPBにおいてレ
コードを変更することができる。その後、VSAMが無
効なPBコピーを書き込もうとする時、BMF REL
EASE WRITE機能は、PBコピーの無効のた
め、実行されない。 (3)直接またはスキップ連続要求:要求されたレコー
ドを配置しようとする前に、VSAMは、UOW PB
を解放する。PBが変更されていた場合、BMF RE
LEASE WRITEが発せられる。SESが無効化
されているため、この要求は実行されない。
【0032】TEST BUFFER VALIDIT
Y機能が実行されずPBを変更した時、及びRELEA
SE WRITE機能が実行されない時はいつでも、V
SAMはRMR機能を実行して、レコードの変更をデー
タ集合に再度適用する。このように、PBの無効化、C
IDFBUSYビットがセットされる時にとられる動
作、及びCI分割のロックの組み合わせによって、CI
分割処理及び同一のデータCIへの同時記憶更新をシリ
アル化することができる。この好適な方法は、図5に関
して上述した2つの問題を以下のようにして回避するこ
とができる。図5(A)に示した例では、UOW2がC
I1を分割した後にUOW1がCI1を書き込んでいる
が、その間にUOW3が、この分割によって作成された
新しいCI8を変更し、書き込んでいる。UOW2が書
き込もうとした時、UOW1の書き込みによりUOW2
のPBコピーを無効化しているので、この書き込みは実
行されない。UOW2は、UOW1、3によってどのレ
コードが変更されたかを判断できないので、この状況か
ら回復する事ができなかった。更に、レコードロックが
UOW1及び2の一方又は双方によって既に解放されて
いる場合も考えられる。
【0033】この問題を上記したCIDFBUSYを基
にしたシリアル化手順によって解決する。UOW2に対
するCI分割プロセスでは、データ移動ステップを行う
前にCIDFBUSYビットをセットし、CI1を書き
込み、それによりUOW1のコピーを無効化する。CI
分割が完了する前にUOW1が書き込もうとすると、U
OW1のPBの無効のためこの書き込みは実行されない
ので、これにより、CI分割が完了するまでUOW1に
よるCI1のコピーの書き込みを禁止する。そして、U
OW1はRMR手順を開始してそのPBコピーを再度有
効化し、CI分割が完了する前にUOW1がCI1を再
度読み出した場合は、CIDFBUSYビットがセット
状態にあることが発見され、UOW1は要求を出し、上
記したようにCI分割ロックが解除されるまで待機す
る。図5(B)に示した例では、CIDFBUSYを基
にしたシリアル化手順は、UOW1がレコード10の更
新版を書き込むことを禁止し、UOW1はCI分割が完
了するまでレコード10のレコドレベルでのロックを保
持する。UOW3は、UOW1が更新を完了するまでレ
コードロックを待ち続け、一方、UOW1はCI分割が
完了するのを待っている。これによって、レコードアク
セスの保全性を維持することができる。
【0034】レコードアクセス/CIアクセス及びCA
分割の間のシリアル化:図6(A)及び(B)は、CA
分割処理によって行なわれるCIデータの移動とインデ
クスの更新とを示したものである。図6(A)は、CA
分割処理の前のCAの様子を示している。CAは4つの
CIを含んでいる。図6(B)で、CA分割処理によ
り、CI3の内容をCI5に移動し、CI4の内容をC
I6に移動した状態を示している。この分割処理は、K
SDSインデクス30を更新して、新しいCA及びデー
タ移動を反映するようにしている。CI3及びCI4は
フリースペース(空)のCIとして、書き直される。C
A分割処理の結果得ら得る2つのCAが図6(B)に示
されている。CA内のCIに対する他のUOWによるレ
コードの更新と同時に行なわれたCA分割によるデータ
移動は、CI分割の例で示したのと同様な複雑なRMR
要求を生ずる可能性がある。したがって、本発明は、変
更されたCIの書き込みをこれらCIのCA移動とシリ
アル化することを選択し、以下のシリアル化方法を考慮
した。
【0035】(1)バッファ無効化:このアプローチ
は、CA分割処理によって新しいCAに移動された各C
Iに対するバッファを保持するものである。これによっ
て、CA分割は、移動されたCIに対する更新を検出で
きるようになる。このCA分割による、フリースペース
のCIで移動されたCIを書き直す試みは、PBコピー
の無効化のため、実行されない。したがって、CA分割
処理は、CIを再度読み取り、そしてそれを新しいCA
内の新しい位置に再び書き込まなくてはならない。不幸
にして、CIを新しいCAに移動する時、他のUOWが
その間にCIを修正し書き直す場合がある。これは図5
(A)に関して既に述べた状況と類似したものである。
CA分割処理は、他の2つのUOWによってなされた変
更をマージしなくてはならないが、これらの変更の記録
(log)は得ることができない。このアプローチに関
する別の問題は、CA分割を行なっているシステムが、
分割処理の間に、誤動作する可能性があることである。
このような誤動作が起こると、CA分割バッファからの
全ての無効化指示を除去してしまう。このような状況か
らどのように回復することができるかは、明白ではな
い。
【0036】(2)CA分割処理中のCIレベルロッキ
ング:このアプローチは、CA分割処理中に移動するC
Iの集合(CIセット)をBMFに教えるように、VS
AMに要求する。BMFは、直接クロスシステム信号伝
達を用いるか、或はある新しいDFPロック管理機能
(現状では1つの要求として識別しないので、したがっ
て定義しない)を用いるかのいずれかによって、CA分
割処理によって移動させられるCIを含む全てのバッフ
ァへのアクセスを禁止する。VSAMがこれらCIの1
つへのアクセスを要求し、このような「アクセス禁止応
答」を受けると、CI分割ロックに対する要求が発せら
れて、全ての処理がCA分割処理の完了を待たなければ
ならないようにする。この技術は動作するように見える
が、CIレベルのシリアル化を開始及び中止するのに、
クロスシステムの信号伝達を必要とし、そのために必要
な論理手段は過度に複雑となる。 (3)移動される全てのCIのCIDFBUSYビット
のセット:いかなるCIの移動またはインデクスの更新
に先だって、CA分割処理は、移動させることになって
いる各CI内のCIDFBUSYをセットする。このア
プローチは、図5に関して既に論じたCI分割状況のた
めに用いられるのと同一のシリアル化技術であるという
利点がある。したがって、これはCI分割及びCA分割
シリアル化の双方に対して、好適な方法である。
【0037】RMR/CI分割の例:図7は、CI分割
処理中のRMR処理を示したものである。この図に示し
た例では、UOW1は、データCI1のPBコピー内の
2つのレコードを変更している。UOW1がその修正さ
れたPBコピーを書き込む前に、UOW2がこのCIを
分割する。CI分割により、元のCI1内でUOW1が
修正したレコード(古いコピー)の1つを残しておき、
別の1つを新しいCI8に移動させる。UOW1のRM
R処理は、CI1とCI8の双方にアクセスし、変更を
加える。図7(A)の例では、UOW1はCI1内のレ
コード3とレコード15とを変更したが、UOW1は、
CI1の修正されたPBコピーをまだ書き込んでいな
い。図7(B)では、UOW2は次のようにしてCI1
を分割する。UOW1は、CI1の修正されたPBコピ
ーをまだ書き込んでいないので、UOW1によって書き
込まれたCIは、レコード3及びレコード15のUOW
1が修正する前の状態のコピーを含んでいる。CI分割
処理により首尾よくCI1及びCI8を書き込み、次に
KSDSインデクスを更新する。
【0038】CI分割の完了に続いて、UOW1はCI
1を書き込もうとする。UOW1によるCI1のPBコ
ピーは、CI分割によってなされたCI1の書き込みに
よって無効化されたので、UOW1はRMR処理を開始
する。RMR処理により、CI1の有効なコピーを得
て、図7(C)に示すように、UOW1は、レコード3
に対して更新を再度適用する。RMR処理は、CI1の
キー範囲における変化を検出し、このキー範囲がもはや
レコード15を含んでいないことを発見するる。次に、
CI1の有効なPBコピーが書き込まれ、RELEAS
E WRITE機能によって解放される。KSDSイン
デクスが次に検索され、レコード15をCI8に配置
し、レコード15に記録されたUOW1による変更を、
図7(D)に示すように、CI8に適用する。図7
(D)に示すCI8のPBコピーが次に書き込まれ、R
ELEASE WRITE機能によって該コピーは解放
される。CI1の旧版のPBコピーはRELEASE
NOWRITE機能によって解放される。RMRは、図
7(D)に示すような結果をもって完了する。
【0039】
【発明の効果】本発明は以上のように構成されているの
で、マルチプロセッサデータベース環境、即ち複数のプ
ロセッサがデータを共有する環境において、オーバーヘ
ッドを回避することができ、また多数の更新トランザク
ションのためのデータ共有ロック競合を低減させること
ができる。
【図面の簡単な説明】
【図1】データIC及びVSAM UOW情報の、共有
ローカルキャッシュ(SLV)及び構造型外部記憶装置
(SES)を示すブロック図。
【図2】本発明のVSAM レコードレベル共有(RL
S)に必要なSLCバッファ構成を示すブロック図。
【図3】データ制御インターバル(CI)の2つのSL
Cプライベートバッファ(PB)に適用した、本発明の
レコードマージ再実行(RMR)方法を説明するための
説明図。
【図4】RMR例の間でのSLC内容の展開を示す説明
図。
【図5】KSDS CI/CA分割及びインデクス更新
の例に対する、SLCの内容の展開を示す説明図。
【図6】制御領域(CA)分割処理の期間間に行なわれ
るデータCIの移動及びインデクスの更新の効果を示す
説明図。
【図7】CI分割処理中に実行する、例示的なRMRの
実行の間のSLCの展開を示す説明図。
【符号の説明】
10 構造型外部記憶(SES)機能 12 共有ローカルキャッシュ(SLC) 14、22 データ制御間隔(CI)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ケネス・マイケル・カプルカ アメリカ合衆国95123、カリフォルニア州 サン・ノゼ、フェルダー・ドライブ 6378番地

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 複数の非同期プロセスが複数のデータ制
    御インターバル(CI)として組織されたデータ集合内
    のレコードを、前記データ集合を記憶するための共有構
    造型外部記憶(SES)手段を介してアクセスする、同
    時トランザクション処理システムにおいて実行される、
    第1のレコードを更新する方法において、 (1)要求プロセスによる更新アクセスに応答して、前
    記第1のレコードを含むSESデータCIを識別するス
    テップと、 (2)前記要求プロセスによってのみアクセス可能な前
    記SESデータCIの最新版のプライベートバッファ
    (PB)のCIコピーを作成するステップと、 (3)前記要求プロセスに応じて、前記PB CIコピ
    ー内の前記第1のレコードを更新して、更新PB CI
    コピーを形成するステップと、 (4)前記SESデータCIの前記最新版がまだ他のプ
    ロセスによって更新されていない場合は、前記更新PB
    CIコピーを前記SESデータCIに書き込み、そう
    でない場合は、ステップ(2)−(4)を繰り返すステ
    ップと、 (5)前記要求プロセスによる前記PB CIコピーへ
    のアクセスを終了するステップとからなることを特徴と
    する方法。
  2. 【請求項2】 請求項1記載の方法において、ステップ
    2は、 (2.1)前記要求プロセスに対して、前記第1のレコ
    ードへの排他的なレコードレベルのロックを許可するス
    テップと、 (2.2)前記PB CIコピーに対するデータの有効
    性を判定するための、一貫性トークン手段を追加するス
    テップとを含むことを特徴とする方法。
  3. 【請求項3】 請求項1記載の方法において、該方法は
    更に、前記更新PBCIコピーを共有ローカルキャッシ
    ュ(SLC)に書き込むステップを含むことを特徴とす
    る方法。
  4. 【請求項4】 各々少なくとも2つのレコードを含む複
    数の記憶ブロッキングインターバルまたはそれらを詰め
    込んだ同等物を有するデータベースシステムにおいて、
    レコードレベルのロッキングのみを用いてレコードを更
    新する方法であって、前記ブロッキングインターバル
    を、共有外部記憶(SES)部を介して複数の同時非同
    期プロセスによってアクセスするようにした方法におい
    て、 (a)第1のプロセスによって要求された所定のブロッ
    キングインターバル内の第1のレコードが、前記SES
    内に存在しているかを判定するステップと、 (b)前記第1のプロセスによる排他的アクセスのため
    に、SESから前記第1のレコードを含む記憶ブロッキ
    ングインターバルの最新コピーを取り込むステップと、 (c)前記第1のプロセスによって前記排他的記憶ブロ
    ッキングインターバルを変更し、前記変更を記録するス
    テップと、 (d)前記変更された排他的記憶ブロッキングインター
    バルのコピーを、条件付でSESに書き込むステップで
    あって、前記第1のプロセスによって取り込まれてから
    の時間の間に、他のプロセスが前記記憶ブロッキングイ
    ンターバルをSES内で変更しなかった場合、前記プラ
    イベートコピーを受け入れるようにしたステップと、 (e)前記変更された排他的記憶ブロッキングインター
    バルのコピーがSESによって受け入れられない場合、
    前記第1のレコードを含む最も新しい前記記憶ブロッキ
    ングインターバルのコピーをSESから取り込み、前記
    ステップ(c)−(d)を繰り返すステップとから成る
    ことを特徴とする方法。
  5. 【請求項5】 請求項4記載の方法において、該方法は
    更に、前記第1のプロセスに対して、前記第1のレコー
    ドに排他的レコードレベルのロックを許可するステップ
    を含むことを特徴とする方法。
JP4301066A 1991-12-23 1992-11-11 複数の非同期的プロセスによりレコードを更新する方法 Expired - Lifetime JP2559959B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US812677 1991-12-23
US07/812,677 US5355477A (en) 1991-12-23 1991-12-23 Method for updating a block using record-level locks by committing the update if the block has not been updated by another process otherwise spinning

Publications (2)

Publication Number Publication Date
JPH05307530A true JPH05307530A (ja) 1993-11-19
JP2559959B2 JP2559959B2 (ja) 1996-12-04

Family

ID=25210314

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4301066A Expired - Lifetime JP2559959B2 (ja) 1991-12-23 1992-11-11 複数の非同期的プロセスによりレコードを更新する方法

Country Status (3)

Country Link
US (1) US5355477A (ja)
EP (1) EP0549140A3 (ja)
JP (1) JP2559959B2 (ja)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414839A (en) * 1992-06-19 1995-05-09 Digital Equipment Corporation Hybrid lock escalation and de-escalation protocols
JP2711216B2 (ja) * 1993-01-26 1998-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション オブジェクトを管理するためのシステム及び方法
US5485607A (en) * 1993-02-05 1996-01-16 Digital Equipment Corporation Concurrency-control method and apparatus in a database management system utilizing key-valued locking
US5678040A (en) * 1993-10-29 1997-10-14 Motorola, Inc. Method for managing a hierarchical design transaction
JP2708386B2 (ja) * 1994-03-18 1998-02-04 インターナショナル・ビジネス・マシーンズ・コーポレイション 同時更新及び複写手順を通して重複データベースを回復させる方法及び装置
US5752250A (en) * 1994-12-02 1998-05-12 Fujitsu Limited Instance updating method and apparatus therefor
US5557793A (en) * 1995-01-31 1996-09-17 Unisys Corporation In an object oriented repository, a method for treating a group of objects as a single object during execution of an operation
US5745747A (en) * 1995-02-06 1998-04-28 International Business Machines Corporation Method and system of lock request management in a data processing system having multiple processes per transaction
US5706509A (en) * 1995-04-28 1998-01-06 Intel Corporation Application independent record level synchronization
US5687366A (en) * 1995-05-05 1997-11-11 Apple Computer, Inc. Crossing locale boundaries to provide services
US6029160A (en) * 1995-05-24 2000-02-22 International Business Machines Corporation Method and means for linking a database system with a system for filing data
US6453325B1 (en) 1995-05-24 2002-09-17 International Business Machines Corporation Method and means for backup and restoration of a database system linked to a system for filing data
US5860137A (en) * 1995-07-21 1999-01-12 Emc Corporation Dynamic load balancing
US6173306B1 (en) 1995-07-21 2001-01-09 Emc Corporation Dynamic load balancing
US5870758A (en) * 1996-03-11 1999-02-09 Oracle Corporation Method and apparatus for providing isolation levels in a database system
US5864544A (en) * 1996-05-20 1999-01-26 Her Majesty The Queen In Right Of Canada As Represented By The Minister Of Communications TDD communication system which receives timing signals from a satellite and automatically, successively, repetitively, and alternatingly transmits and receives compressed signals in a single channel
US5870743A (en) * 1996-06-24 1999-02-09 Oracle Corporation Method and apparatus for parallelizing operations that create a table
US6026413A (en) * 1997-08-01 2000-02-15 International Business Machines Corporation Determining how changes to underlying data affect cached objects
US6256712B1 (en) 1997-08-01 2001-07-03 International Business Machines Corporation Scaleable method for maintaining and making consistent updates to caches
GB2330220B (en) * 1997-10-07 2002-04-10 Ibm Access control for groups of related data items
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
US6430562B1 (en) * 1999-03-01 2002-08-06 Electronic Data Systems Corporation Integrated resource management system and method
US6449614B1 (en) 1999-03-25 2002-09-10 International Business Machines Corporation Interface system and method for asynchronously updating a share resource with locking facility
US6449697B1 (en) 1999-04-23 2002-09-10 International Business Machines Corporation Prestaging data into cache in preparation for data transfer operations
US7596563B1 (en) * 1999-10-28 2009-09-29 Hewlett-Packard Development Company, L.P. Computerized file system and method
US6757893B1 (en) * 1999-12-17 2004-06-29 Canon Kabushiki Kaisha Version control system for software code
US6681225B1 (en) 2000-05-31 2004-01-20 International Business Machines Corporation Method, system and program products for concurrent write access to a global data repository
US7487152B1 (en) 2000-05-31 2009-02-03 International Business Machines Corporation Method for efficiently locking resources of a global data repository
JP3796397B2 (ja) 2000-06-15 2006-07-12 アイ・ティー・エックス翼ネット株式会社 車両取引システム及び車両取引方法
CZ299529B6 (cs) * 2000-12-21 2008-08-27 Heaven Industries, S.R.O. Zpusob udržování logické integrity mezi objekty vinteraktivních aplikacích pocítacu, jeho použití pro systém sdílení dat v sítích, systém pro sdílení dat v sítích, zpusob sdílení dat v sítích a použití tohoto zpusobu
US7328263B1 (en) * 2001-01-30 2008-02-05 Cisco Technology, Inc. Controlling access of concurrent users of computer resources in a distributed system using an improved semaphore counting approach
US6807541B2 (en) * 2002-02-28 2004-10-19 International Business Machines Corporation Weak record locks in database query read processing
GB2386706A (en) * 2002-03-14 2003-09-24 New Mind Technology Ltd Integrated office management
CA2422161C (en) * 2003-03-14 2009-10-06 Ibm Canada Limited - Ibm Canada Limitee Decoupled object identification for object switching in database systems
US7747660B1 (en) * 2003-03-24 2010-06-29 Symantec Operating Corporation Method and system of providing access to a virtual storage device
CA2425033A1 (en) * 2003-04-08 2004-10-08 Ibm Canada Limited - Ibm Canada Limitee Multi-level locking hierarchy in a database with multi-dimensional clustering
US7158999B2 (en) * 2004-02-20 2007-01-02 Mainstar Software Corporation Reorganization and repair of an ICF catalog while open and in-use in a digital data storage system
US20050192962A1 (en) * 2004-02-26 2005-09-01 Patricia Furrer Apparatus, system, method for enabling web-applications to access enterprise managed data
US8762331B2 (en) * 2004-06-29 2014-06-24 Microsoft Corporation Concurrent transactions and page synchronization
EP1736872A3 (en) 2005-06-20 2008-04-16 International Business Machines Corporation Method, system and computer program for concurrent file update
US7668810B2 (en) * 2006-01-27 2010-02-23 International Business Machines Corporation Controlling consistency of data storage copies
US7461065B2 (en) * 2006-01-31 2008-12-02 International Business Machines Corporation Method and system for utilizing shared numeric locks
US20080222111A1 (en) * 2007-03-07 2008-09-11 Oracle International Corporation Database system with dynamic database caching
US7895474B2 (en) * 2007-05-03 2011-02-22 International Business Machines Corporation Recovery and restart of a batch application
US7895172B2 (en) * 2008-02-19 2011-02-22 Yahoo! Inc. System and method for writing data dependent upon multiple reads in a distributed database
US20100023560A1 (en) * 2008-07-25 2010-01-28 Mitel Networks Corporation Method and apparatus for concurrently updating a database
US8103714B2 (en) * 2008-08-15 2012-01-24 International Business Machines Corporation Transactional quality of service in event stream processing middleware
WO2010089222A1 (en) * 2009-02-06 2010-08-12 International Business Machines Corporation An apparatus for maintaining data integrity
US8423505B2 (en) * 2010-01-09 2013-04-16 International Business Machines Corporation Catalog reorganization apparatus and method
US9171044B2 (en) * 2010-02-16 2015-10-27 Oracle International Corporation Method and system for parallelizing database requests
US8290987B2 (en) 2010-07-12 2012-10-16 International Business Machines Corporation Processing of splits of control areas and control intervals
US8589361B2 (en) 2010-08-30 2013-11-19 Oracle International Corporation Reduced disk space standby
US9092149B2 (en) * 2010-11-03 2015-07-28 Microsoft Technology Licensing, Llc Virtualization and offload reads and writes
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US8868492B2 (en) 2011-06-15 2014-10-21 Oracle International Corporation Method for maximizing throughput and minimizing transactions response times on the primary system in the presence of a zero data loss standby replica
US9817582B2 (en) 2012-01-09 2017-11-14 Microsoft Technology Licensing, Llc Offload read and write offload provider
US9251201B2 (en) 2012-12-14 2016-02-02 Microsoft Technology Licensing, Llc Compatibly extending offload token size
US10152500B2 (en) 2013-03-14 2018-12-11 Oracle International Corporation Read mostly instances
US9348859B2 (en) 2013-03-25 2016-05-24 International Business Machines Corporation Providing record-level sharing (RLS) to local data sets
US10311154B2 (en) 2013-09-21 2019-06-04 Oracle International Corporation Combined row and columnar storage for in-memory databases for OLTP and analytics workloads
US9767178B2 (en) 2013-10-30 2017-09-19 Oracle International Corporation Multi-instance redo apply
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
US10747752B2 (en) 2015-10-23 2020-08-18 Oracle International Corporation Space management for transactional consistency of in-memory objects on a standby database
US9864705B2 (en) 2015-11-01 2018-01-09 International Business Machines Corporation Dynamic access method switching for open data sets
US10698771B2 (en) 2016-09-15 2020-06-30 Oracle International Corporation Zero-data-loss with asynchronous redo shipping to a standby database
US10891291B2 (en) 2016-10-31 2021-01-12 Oracle International Corporation Facilitating operations on pluggable databases using separate logical timestamp services
US11475006B2 (en) 2016-12-02 2022-10-18 Oracle International Corporation Query and change propagation scheduling for heterogeneous database systems
US10803039B2 (en) 2017-05-26 2020-10-13 Oracle International Corporation Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index
US10691722B2 (en) 2017-05-31 2020-06-23 Oracle International Corporation Consistent query execution for big data analytics in a hybrid database
US10719446B2 (en) 2017-08-31 2020-07-21 Oracle International Corporation Directly mapped buffer cache on non-volatile memory
US11086876B2 (en) 2017-09-29 2021-08-10 Oracle International Corporation Storing derived summaries on persistent memory of a storage device
US10956335B2 (en) 2017-09-29 2021-03-23 Oracle International Corporation Non-volatile cache access using RDMA
US10802766B2 (en) 2017-09-29 2020-10-13 Oracle International Corporation Database with NVDIMM as persistent storage
US10732836B2 (en) 2017-09-29 2020-08-04 Oracle International Corporation Remote one-sided persistent writes
US11675761B2 (en) 2017-09-30 2023-06-13 Oracle International Corporation Performing in-memory columnar analytic queries on externally resident data
US11170002B2 (en) 2018-10-19 2021-11-09 Oracle International Corporation Integrating Kafka data-in-motion with data-at-rest tables
US11204940B2 (en) 2018-11-16 2021-12-21 International Business Machines Corporation Data replication conflict processing after structural changes to a database

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0454610A2 (en) * 1990-04-27 1991-10-30 International Business Machines Corporation Method and device for concurrency control of shared data updates and queries

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
US4775955A (en) * 1985-10-30 1988-10-04 International Business Machines Corporation Cache coherence mechanism based on locking
US4716528A (en) * 1986-02-03 1987-12-29 International Business Machines Corporation Method for managing lock escalation in a multiprocessing, multiprogramming environment
JPH0833857B2 (ja) * 1987-02-18 1996-03-29 株式会社日立製作所 システム間デ−タベ−ス共用システムジヤ−ナルマ−ジ方式
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US5043876A (en) * 1988-05-27 1991-08-27 International Business Machines Corporation N-level file shadowing and recovery in a shared file system
US4961134A (en) * 1988-07-15 1990-10-02 International Business Machines Corporation Method for minimizing locking and reading in a segmented storage space
US5210848A (en) * 1989-02-22 1993-05-11 International Business Machines Corporation Multi-processor caches with large granularity exclusivity locking
US5060144A (en) * 1989-03-16 1991-10-22 Unisys Corporation Locking control with validity status indication for a multi-host processor system that utilizes a record lock processor and a cache memory for each host processor
US5155824A (en) * 1989-05-15 1992-10-13 Motorola, Inc. System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
US5163148A (en) * 1989-08-11 1992-11-10 Digital Equipment Corporation File backup system for producing a backup copy of a file which may be updated during backup
JP2575543B2 (ja) * 1990-04-04 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 同時アクセス管理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0454610A2 (en) * 1990-04-27 1991-10-30 International Business Machines Corporation Method and device for concurrency control of shared data updates and queries

Also Published As

Publication number Publication date
US5355477A (en) 1994-10-11
JP2559959B2 (ja) 1996-12-04
EP0549140A2 (en) 1993-06-30
EP0549140A3 (en) 1993-11-03

Similar Documents

Publication Publication Date Title
JP2559959B2 (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
US5668958A (en) Heterogeneous filing system with common API and reconciled file management rules
US5920872A (en) Resource management using resource domains
EP0442715B1 (en) Transaction processing system and method with reduced locking
US5226143A (en) Multiprocessor system includes operating system for notifying only those cache managers who are holders of shared locks on a designated page by global lock manager
US5410697A (en) Concurrency management using version identification of shared data as a supplement to use of locks
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
JP2721780B2 (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
US5537574A (en) Sysplex shared data coherency method
US4888681A (en) Space management system for data files having shared access
US5664186A (en) Computer file management and backup system
CN101807169B (zh) 事务型存储器访问的混合硬件软件实现
US20040049636A1 (en) Technique for data transfer
US5999976A (en) Parallel file system and method with byte range API locking
US7831642B1 (en) Page cache management for a shared file
US6334134B1 (en) Insert performance on a multi-system transaction environment
JP3107094B2 (ja) 共用バッファのロック期間短縮処理方法及び装置
JPWO1993003436A1 (ja) 共用バッファのロック期間短縮処理方法及び装置
JP2006351040A (ja) ノード間共用ファイル制御方法
JP4131579B2 (ja) データ管理システムおよびデータ管理方法
JP2765672B2 (ja) データ転送及びデータ除去のための制御方法並びにコンピュータ・システム
Strickland VSAM record-level data sharing