JPH04151752A - バッファ制御方法 - Google Patents

バッファ制御方法

Info

Publication number
JPH04151752A
JPH04151752A JP2276665A JP27666590A JPH04151752A JP H04151752 A JPH04151752 A JP H04151752A JP 2276665 A JP2276665 A JP 2276665A JP 27666590 A JP27666590 A JP 27666590A JP H04151752 A JPH04151752 A JP H04151752A
Authority
JP
Japan
Prior art keywords
page
buffer
frame
lock
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2276665A
Other languages
English (en)
Inventor
Ushio Inoue
潮 井上
Takashi Hozai
芳西 崇
Ryoji Kataoka
良治 片岡
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2276665A priority Critical patent/JPH04151752A/ja
Publication of JPH04151752A publication Critical patent/JPH04151752A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、オンライントランザクション処理システムな
どの計算機システムにおいて、ファイルに対するアクセ
ス要求を高速に処理するために用いられるバッファの制
御方法に関する。
〔従来の技術〕
従来から高速化が要求される計算機システムにおいては
、第4図に示すように、磁気ディスク装置等の2次記憶
装置2o中に格納されたファイル110に対するアクセ
スを高速化するための手段として、計算機10の主記憶
装置中に入出力用のバッファ102を用意する方法が用
いられている。
通常、ファイル110はページと呼ばれる一定の大きさ
の領域に区分されており、1つのページ中には情報の管
理単位であるレコードが複数個収容されている。一方、
バッファ102もフレームと呼ばれる一定の大きさの領
域に区分されており、フレームとページの大きさは同一
である。一般に、バッファを用いたファイルへのアクセ
スは以下のように行われる。まず、端末30からの指示
に基づき、利用者プログラム101からファイルllO
中のルコードを参照したいという要求があると、バッフ
ァ制御部103は要求されたレコードを含むページがバ
ッファ102中のいずれかのフレームに格納されている
かどうかを判定する。もし格納されていない場合には、
適当なフレームを選択し、ファイル110から所要のペ
ージを読み込み、そのフレームに格納する。次に、その
フレームのアドレスを利用者プログラム101に通知す
ることにより、利用者プログラム101がバッファ10
2中のレコードを参照することが可能になる。逆に既に
バッファ102中のいずれかのフレームに格納されてい
る場合には、ファイル110からの読み込みを省略し、
単にそのフレームのアドレスを利用者プログラムに通知
する。通常、ファイル110へのアクセスは1回当たり
数十ミリ秒かかり、電子計算機内部の処理とは3桁以上
の速度差があるため、ファイル110からの読み込みを
省略できる効果は大きい。
オンライン・トランザクション処理システムでは、一般
に複数の利用者プログラム101から1つのファイル1
10に対して同時にアクセス要求が出されることがある
。これらの要求が輻較した状態においてもシステムの応
答時間を良好に保つためには、バッファ制御部103は
要求を1つずつ逐次的に制御するのではなく、複数の要
求を並列に制御する必要がある。最近の計算機では、1
つのファイルを複数の磁気ディスクに分散して格納して
おき、1個の磁気ディスクにアクセスしている最中に他
の磁気ディスクに格納されている別のページを同時にア
クセスすることが可能である。
また、密結合マルチプロセッサ構成の計算機では、複数
のCPUにより複数の処理を完全に同時に実行できる。
このように計算機ハードウェア自体は複数の利用者プロ
グラムからの要求を並列に制御することか可能であるが
、正しい処理を行うためには、バッファ制御部+03で
利用者プログラム間の相互干渉が生じないように制御す
る必要がある。相互干渉の例としては、ある利用者プロ
グラムが要求したページをファイル110からバッファ
102のフレームに読み込んだために、そのフレーム中
に格納されていた別のページが追い出され、このページ
を使用していた他の利用者プログラムの処理が継続でき
なくなるといった現象である。このような利用者プログ
ラム間での相互干渉を防止するための従来技術としては
、例えば文献r Effelsberg W、 and
 Haerder T、、“P rinciples 
ofDatabase  Buffer  Manag
ment、” ACM  Trans。
on Database 5yst、 Vol、9. 
&4. 1984Jに記載されているように、利用者プ
ログラム対応にバッファを分割する方法と、ファイルの
ページ群対応にバッファを分割してこの単位で利用者プ
ログラムを排他制御する方法があった。
[発明が解決しようとする課題] 上記従来技術において、利用者プログラム対応にバッフ
ァを分割する方法では、同一のフレームを複数の利用者
プログラム間で共用することがないため、利用者プログ
ラム間での相互干渉の問題は生じない。しかし、同一の
ページに対して複数の利用者プログラムがアクセス要求
を出した場合には、各利用者プログラムに対応付けられ
たフレームに同一のページが重複して格納されることに
なる。このため、ファイルへのアクセス回数が増加する
ととも、フレームの利用効率が低下する。
一方、ファイルのページ群対応にバッファを分割する方
法では、同一のページが複数のフレームに重複して格納
される問題は住じないが、ページ群間のアクセス頻度の
偏りにより、フレームの利用効率が低下する可能性が高
く、分割数をあまり大きくすることはできない。このよ
うに、バッファを利用者プログラム対応またはファイル
のページ群対応に分割する方法はいずれも、もともと多
数のフレームを有していたバッファを分割して少数のフ
レーム単位で制御を行うことになり、この分割損により
バッファ全体としての効率を低下させるという問題があ
った。
本発明の目的は、バッファ全体としての効率を低下させ
ることなく、利用者プログラム間での相互干渉の防止を
可能にすることにある。
〔課題を解決するための手段〕
上記目的を達成するために、本発明は、バッファを分割
する代わりに2種類のロックを設け、アクセス要求に応
じてこれらのロックを使って利用者プログラム間の排他
制御を行うことにより、利用者プログラム間での相互干
渉を防止し、バッファ制御部における並列処理を可能と
するものである。
[作 用] 1種類目のロックは、バッファ中のフレーム全体の情報
、例えばフレームがアクセスされた順にLRU (Le
ast Recentry Used)管理するための
情報を排他制御するためのグローバル・ロックであり、
バッファ全体としてただ1つのみ設ける。
2種類目のロックは、実際にページにアクセスする際に
ページ群単位に排他制御するためのローカル・ロックで
あり、バッファ全体としてページ群の個数と同じ数だけ
設ける。一般に、利用者プログラムからの基本的なペー
ジアクセス要求は次の3種類のいずれかに対応付けられ
る。
(I)参照要求・・・利用者プログラムから当該ページ
に対して出される最初の要求であり、バッファ制御部は
要求されたページを必要ならばファイルから読み込み、
そのページが格納されたフレームのアドレスを利用者プ
ログラムに通知する。
さらに、バッファ制御部はこのフレームに使用中表示を
行い、終了要求が行われるまでフレーム内のページが他
の利用者プログラムによって追い出されることを防止す
る。
(2)更新要求・・・利用者プログラムがフレームに格
納されたページの内容を変更するための要求であり、バ
ッファ制御部は要求されたページを即座に、または以後
の適当な時期にファイルに書き出す。
(3)終了要求・・・利用者プログラムから当該ページ
に対して出される最後の要求であり、バッファ制御部は
要求されたページが格納されたフレームの使用中表示を
取消し、フレーム内のページが他のページに置き換えら
れることを可能とする。
本発明では、上記3種類の要求は以下のように処理され
る。
参照要求の場合は、まず要求されたページが属するペー
ジ群に対応するローカル・ロックlを獲得する。次に、
要求されたページが既にいずれかのフレーム中にあるか
どうかを判定し、フレーム中にある場合は、単にそのフ
レームに使用中表示を行う。フレーム中にない場合は、
グローバル・ロックを獲得し、使用中表示がなくかつそ
こに格納されたページが属するページ群に対して他の利
用者プログラムがローカロックを獲得していないフレー
ムを選択すると同時にローカル・ロック2を獲得し、グ
ローバル・ロックを解放した後に、そのフレームに格納
されていたページを追い出してローカル・ロック2を解
放し、次にそのフレームに使用中表示を行ってファイル
から要求されたページを読み込む。最後に、ローカル・
ロック1を解放して、フレームのアドレスを参照要求を
行った利用者プログラムに通知する。更新要求の場合は
、要求されたページが含まれるページ群に対応するロー
カル・ロック1を獲得した上で必要な処理を行い、この
ローカル・ロック1を解放する。
終了要求の場合でも、要求されたページが含まれるペー
ジ群に対応するローカル・ロックlを獲得した上で、要
求されたページが格納されたフレームの使用中を取消し
、このローカル・ロック1を解放する。
ここで、3種類の要求のすべてにおいてローカル・ロッ
ク1を獲得する理由は、同一のページに対して複数の利
用者プログラムから同時に要求が出されることを防止す
るためである。また、参照要求中にグローバル・ロック
を獲得する理由は、複数の利用者プログラムが同時にペ
ージを置き換えるフレームを探索することを防止するた
めである。また、参照要求中にローカル・ロック2を獲
得する理由は、これから追い出そうとしているページに
対して、他の利用者プログラムから参照要求が出される
ことを防止するためである。
グローバル・ロックを獲得するのは参照要求たけであり
、かつ獲得している期間は、ページを置き換えるフレー
ムを選択するだけの処理であるから非常に短い。即ち、
複数の利用者プログラムからの要求がグローバル・ロッ
クで利用効率が低下することはなく、従ってローカル・
ロックを同時に走行する利用者プログラムの数よりも十
分大きい個数設けることにより、各要求がローカル・ロ
ックで競合する確率も十分小さくできる。また、ある利
用者プログラムが1つのローカル・ロックを獲得した状
態で、他の利用者プログラムが獲得している別のローカ
ル・ロックを獲得するために待つことがなく、かつグロ
ーバル・ロックを獲得した状態で他の利用者プログラム
を待つこともないため、デッドロックは生じ得ない。こ
の結果、利用者プログラム間の相互干渉を起こすことな
く、バッファ制御部における並列処理が可能になる。
[実施例] 以下、本発明の一実施例について図面により説明する。
第1図は本発明の一実施例の構成図を示したものである
。第1図において、1oはCPUや主記憶装置からなる
本体装置、20は磁気ディスク装置等の2次記憶装置、
3oは端末である。本体装置1oは、同時に走行する複
数の利用者プログラム101、バッファ102、バッフ
ァ制御部103からなり、さらに、バッファ制御部10
3は、同一プログラムのコピーであり、かつそれぞれが
並列に実行可能な複数のバッファ制御ルーチン105と
、単一のバッファ制御表105から構成されている。2
次記憶装置20にはファイル110が格納されている。
ファイル110はページと呼ばれる一定の大きさの領域
に区分されており、1つのページ中には情報の管理単位
であるレコードが複数個収容されている。一方、本体装
置10のバッファ102もフレームと呼ばれる一定の大
きさの領域に区分されており、フレームとページの大き
さは同一である。
第2図は第1図におけるバッファ+02のフレム群とバ
ッファ制御表105の内部構成を示した図であり、20
1はフレーム、202はグローバル・ロック、203は
ページ群エントリ、204はフレーム管理レコードであ
る。ページ群エントリ203は、ファイル110のペー
ジ群対応に作成されており、ローカル・ロック205と
フレーム管理レコード204へのポインタ206から構
成される。ページ群エントリ202は、例えばページ番
号のハツシュ値が等しいページ毎にページ群を構成した
場合、このハツシュ値によって直接アクセスできる。フ
レーム管理レコード204は、バッファ102のフレー
ム対応に作成されており、使用多重度カウンタ207、
ページ番号フィールド208、書出し要否フラグ209
、次フレーム管理レコードへのポインタ210.LRU
チエインのためのポインタ211、フレームへのポイン
タ212から構成される。各フレーム管理レコード20
4は、ポインタ212が指すフレーム201に格納され
たページ番号のグループ毎、例えばページ番号のハツシ
ュ等が等しいもの毎にポインタ206と210で連鎖さ
れており、かつポインタ210の連鎖とは独立に、フレ
ームがアクセスされたLRL+の順序にポインタ211
で連鎖されている。なお、使用多重度カウンタ207は
同一ページを複数の利用者プログラム101が並行して
参照できるようにするため、先に述べた使用中表示の代
わりに使用するものであり、カウンタ値が1以上の場合
には使用中、0の場合には使用されていない状態を表す
第3図は第2図に示したバッファ制御表105を用いて
バッファ制御ルーチン104がバッファ制御を行うため
の手順を示したものであり、利用者プログラム101か
らの参照、更新、終了の各要求に対するフローチャート
である。
まず、第3図(A)に基づいて参照要求の場合のバッフ
ァ制御について説明する。利用者プログラム101から
ファイル110中のページ参照要求があると、まず、要
求されたページが属するぺ−ジ群に対するローカル・ロ
ック1を獲得する(ステップ301)。このローカル・
ロック1の獲得は次の手順で行う。■要求されたページ
番号のハツシュ値を計算する。■ハツシュ値に対応する
ページ群エントリ203を見つける。■ローカルロック
205にロック情報を設定する。次に、該当ページエン
トリ203のポインタ206を使用してフレーム管理レ
コード204を探索し、さらにポインタ210を使用し
て次フレーム管理レコード204を探索しくステップ2
03)、要求されたページが既にバッファ102のいず
れかのフレームにあるかどうかを、要求ページ番号とフ
レーム管理レコード204中のページ番号フィールド2
08とを比較することで判定する(ステップ303)。
そして、既にフレーム中にある場合は、まず、グローバ
ル・ロック202を獲得して(ステップ312)、LR
Uチエインを更新しくステップ313)、即ち、フレー
ム管理レコード204中のポインタ2+1を更新し、直
ちにグローバル・ロック202を解放する(ステップ3
14)。次に、当該フレーム管理レコード204中の使
用多重度カウンタ207をインクリメントして、フレー
ムの使用中表示の代りとする(ステップ315)。最後
に、ローカル・ロックl (該当ページ群エントリ20
3のローカル・ロック205)を解放しくステップ31
6)、フレームのアドレス(フレーム管理レコード20
4のポインタ212)を参照要求を行った利用者プログ
ラム101に通知する。
一方、要求されたページがバッファ102のフレーム群
にない場合は、グローバル・ロック202を獲得しくス
テップ304)、フレーム管理レコード204中のポイ
ンタ211を使用してLRUチエインを探索しくステッ
プ305)、フレームの使用可否を判定する(ステップ
306)。フレームの使用可否は、フレーム管理レコー
ド204中の多重度カウンタ207の値が0で(使用中
表示がない)、かつ、ページ番号208(追い出される
ページ)のローカル・ロックが他の利用者プログラムに
よって獲得されていないかどうかで判定し、該条件を満
たすフレーム(追い出されるページのあるフレーム)が
ある場合、対応するページエントリ203のローカル・
ロック205にロック情報を設定してローカル・ロック
2を獲得する(ステップ307)6その後、グローバル
・ロック202を解放する(ステップ3o8)。次に、
そのフレームに格納されていたページを追い出し、対応
するクレーム管理レコード204を更新する(ステップ
309)。このフレーム管理レコードの更新は次のよう
にして行う。■追い出されるページのページ群から要求
されたページのページ群へ、フレーム管理レコードの位
置を移動する。具体的には、ポインタ206と210を
張り変える。■ページ番号フィールド208を要求され
たページ番号に書き変える。次に、ローカル・ロック2
を解放する(ステップ310)。ただし、要求されたペ
ージと属するページ群が同一の場合は、ローカル・ロッ
クを解放しない。次に、ファイル110から要求のあっ
たページをフレームに読み込む(ステップ311)。そ
の後、ステップ312〜315を実行する。
次に、第3図(B)に基づいて更新要求の場合のバッフ
ァ制御を説明する。まず、要求されたページが含まれる
ページ群に対応するローカル・ロック(ローカル・ロッ
ク205)を獲得する(ステップ321)。ローカル・
ロックの獲得手順は参照要求の場合と同様である。次に
、ポインタ206.210を使用してフレーム管理レコ
ード2o4を探索しくステップ322)、更新要求のあ
ったページ番号とフレーム管理レコード204中のペー
ジ番号フィールド208とを比較して、フレーム群に該
当ページがあるかどうか判定す・る(ステップ323)
。そして、更新要求のあったページがあれば、対応する
フレーム管理レコード204中の書出し要否フラグ20
9を要に設定しくステップ324)、そのローカル・ロ
ック1(ローカル・ロック2o5)を解放する(ステッ
プ325)。
最後に、第3図(C)に基づいて終了要求の場合のバッ
ファ制御を説明する。まず、要求されたページが含まれ
るページ群に対応するローカル・ロック1を獲得する(
ステップ331)。次に、フレーム管理レコード204
を探索しくステップ332)、終了要求のあったページ
番号とフレーム管理レコード204中のページ番号フィ
ールド208との一致を比較する(ステップ333)。
そして、一致した場合、該フレーム管理レコード204
中の書出し要否フラグ209が要に設定されているかど
うか判定しくステップ334)、要に設定されていれば
、該フレームのページをファイル110に書出す(ステ
ップ335)。次に、該フレーム管理レコード204中
の使用多重度カウンタ207をディクリメントしくステ
ップ336)、ローカル・ロック1を解放する(ステッ
プ337)。
なお、これまでの説明では、利用者プログラムからの参
照要求時に置き換えるフレームをLRUアルゴリズムで
選択していたが、FIF○等の他のアルゴリズムを使用
することも可能である。また、更新要求が行われたペー
ジの書き出しを終了要求に対する処理の中で行っている
が、更新要求に対する処理の中で行ったり、参照要求に
対する処理でフレームからページが追い出される時に行
ったりすることも可能である。
〔発明の効果〕
以上の説明から明らかなように、本発明によれば、利用
者プログラムからのページへのアクセス要求は、基本的
にはローカル・ロックによって排他制御されているため
、相互干渉を起こすことはない。ローカル・ロックの個
数は原理的にはファイルのページ数と同じ数まで増やす
ことが可能であり、同時に走行する利用者プログラムの
数よりも十分大きい数のローカル・ロックを設けておく
ことにより、ローカル・ロックを獲得するために待され
ることはほとんどなくなる。また、参照要求の場合には
、置き換えられるフレームの選択とLRUチエイン等の
更新がグローバル・ロックで排他制御されるが、両者の
処理に要する時間はファイルからページを読み込む時間
に比べて十分に短く、グローバル・ロックを獲得するた
めに待たされることもほとんどない。
以上の結果、従来のようにバッファを利用者プログラム
対応またはファイルのページ群対応に分割して利用効率
を低下させることなく、複数の利用者プログラムからの
要求をバッファ制御部が並列に制御できる。また、ロッ
クの獲得に基うデッドロックが本質的に発生しない制御
手順となっているため、デッドロック解消のための複雑
な制御機構を組み込む必要がないという効果もある。
【図面の簡単な説明】
第1図は本発明の一実施例の構成図、第2図は第1図の
バッファ・フレーム群とバッファ制御表の内部構成を示
す図、第3図は本発明によるバッファ制御の一例を示す
フローチャート、第4図はバッファ機能を有するシステ
ムの一般的構成を示す図である。 101・・・利用者プログラム、 102・・・バッファ、  103・・・バッファ制御
部、104・・・バッファ制御ルーチン、 105・・・バッファ制御表、  201・・・フレー
ム、202・・・グローバル・ロック、 203・・・ページ群エントリ、 204・・フレーム管理テーブル、 205・・・ローカル・ロック。 第2図 第3 図(A) 第3 図(c)

Claims (1)

    【特許請求の範囲】
  1. (1)同時に走行する複数のプログラムで共通にアクセ
    スされるファイルと、該ファイルの写しを保持するバッ
    ファとを備え、プログラムからファイルに対するアクセ
    ス要求があると、バッファをアクセスして所要の処理を
    高速に実行する計算機システムにおいて、 バッファ全体の排他制御を行うための単一のグローバル
    ・ロックと、ファイルのページ群単位の排他制御を行う
    ための複数のローカル・ロックを設け、プログラムから
    参照要求があった場合には、要求されたページが属する
    ページ群に対応するローカル・ロック1と、グローバル
    ・ロック、及び要求されたページによってバッファ上で
    置き換えられるページが属するページ群に対応するロー
    カル・ロック2を獲得してバッファの制御を行い、プロ
    グラムから更新要求または終了要求があった場合には、
    要求されたページが属するページ群に対応するローカル
    ・ロック1のみを獲得してバッファの制御を行うことを
    特徴とするバッファ制御方法。
JP2276665A 1990-10-16 1990-10-16 バッファ制御方法 Pending JPH04151752A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2276665A JPH04151752A (ja) 1990-10-16 1990-10-16 バッファ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2276665A JPH04151752A (ja) 1990-10-16 1990-10-16 バッファ制御方法

Publications (1)

Publication Number Publication Date
JPH04151752A true JPH04151752A (ja) 1992-05-25

Family

ID=17572613

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2276665A Pending JPH04151752A (ja) 1990-10-16 1990-10-16 バッファ制御方法

Country Status (1)

Country Link
JP (1) JPH04151752A (ja)

Similar Documents

Publication Publication Date Title
US5410697A (en) Concurrency management using version identification of shared data as a supplement to use of locks
US5414840A (en) Method and system for decreasing recovery time for failed atomic transactions by keeping copies of altered control structures in main memory
US5946711A (en) System for locking data in a shared cache
EP1040433B1 (en) A fine-grained consistency mechanism for optimistic concurrency control using lock groups
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
US5109511A (en) Shared resource managing method and system
EP0447161A2 (en) Hierarchical invalidation for distributed caches
EP0563622A2 (en) Sysplex shared data coherency method and means
US6189007B1 (en) Method and apparatus for conducting a high performance locking facility in a loosely coupled environment
JPH0296839A (ja) Tpキューレポジトリ用シングルキー式索引ファイル
JPH0776944B2 (ja) 仮想索引機構
US6230243B1 (en) Method, system and program products for managing changed data of castout classes
JP2781092B2 (ja) システム間排他制御方式
US6185650B1 (en) High performance locking facility
US6253274B1 (en) Apparatus for a high performance locking facility
US6088757A (en) Computer program means and device for conducting high performance locking facility in a loosely coupled environment
US5706511A (en) Data base system and load distribution control method
US7412465B2 (en) Method for append mode insertion of rows into tables in database management systems
JPH04151752A (ja) バッファ制御方法
JPS62287359A (ja) 疎結合マルチプロセツサシステムにおけるフアイル同時アクセス制御方式
JPH0695936A (ja) バッファ管理方法
JP2615046B2 (ja) レコード追加処理方法
JP2980610B2 (ja) トランザクション管理装置
JPH07160581A (ja) キャッシュ一致処理制御装置
JPH0474232A (ja) タスク実行方法及びキャッシュ装置の割り当て方法