JPH0373036A - バッファ管理方法 - Google Patents

バッファ管理方法

Info

Publication number
JPH0373036A
JPH0373036A JP2044046A JP4404690A JPH0373036A JP H0373036 A JPH0373036 A JP H0373036A JP 2044046 A JP2044046 A JP 2044046A JP 4404690 A JP4404690 A JP 4404690A JP H0373036 A JPH0373036 A JP H0373036A
Authority
JP
Japan
Prior art keywords
input
buffer
storage device
output
output buffer
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
JP2044046A
Other languages
English (en)
Other versions
JP3453757B2 (ja
Inventor
Nobuo Kawamura
信男 河村
Masashi Tsuchida
正士 土田
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP04404690A priority Critical patent/JP3453757B2/ja
Priority to US07/530,026 priority patent/US5237661A/en
Publication of JPH0373036A publication Critical patent/JPH0373036A/ja
Application granted granted Critical
Publication of JP3453757B2 publication Critical patent/JP3453757B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • 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/10Address translation
    • 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/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/064Linked list, i.e. structure using pointers, e.g. allowing non-contiguous address segments in one logical buffer or dynamic buffer space allocation
    • 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

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データベース問合せ要求に応じて、データベ
ース参照特性を利用するバッファ管理方法に関し、特に
仮想記憶システム上で動作する外部記憶装置からのデー
タ入出力管理機能を有するプログラムのバッファ管理方
法において、主記憶装置と拡張記憶装置とを利用してデ
ータの入出力を効率的に行うバッファ管理方法に関する
〔従来の技術〕 データベース管理システムにおいて、外部記憶装置に蓄
積されたデータベースに対するデータの入出力管理方法
としては、主記憶上にデータを確保した入出力バッファ
によるバッファ管理機能により行われるのが一般的であ
る。
従来は、この入出力バッファ管理の手法として・L R
U (Least  Recentl、y  Used
)等の方法でチェイン付けした管理を行っていた。しか
し、この方法では、新たに必要となったデータページが
入出力バッファ中に存在するか否かを判定する場合、入
出力バツファのチェイン全体をシリアルにサーチする必
要があるため、バッファのサーチに時間がかかっていた
これに関しては、例えば、特開昭57−169983号
公報に開示されているようなハツシング手法を用いて、
バッファサーチ時間を最小限に改善することができる。
また、前記データベース管理システムのうち、リレーシ
ョナルデータベース管理システムにおいては、データベ
ースはユーザから二次元の表形式で見られるリレーショ
ンから成り、かっこのリレーションは複数のタプル(レ
コード)から構成されている。上記リレーションは、デ
ータベース管理システムの入出力単位、すなわち物理的
に固定長の複数のデータページに格納されている。リレ
ーショナルデータベース管理システムにおいては、一般
に、データを外部記憶装置中で表形式にとられれないラ
ンダムな位置に格納しているため、外部記憶装置中のデ
ータを効率よく主記憶装置に転送する必要がある。また
、データベース処理においては、逐次的にアクセスする
型の処理とランダムにアクセスする型の処理とが混在す
る場合、入出力バッファの管理として、上記LRU方式
を用いたのでは入出力回数が増大してしまう。すなわち
、データを逐次的にアクセスする場合には、データベー
スからのデータ入力として一括入力(複数ページ入力)
することが−膜内である。また、リレーション中の全デ
ータに対して更新を行った場合には、−括出力(複数ペ
ージ単位出力)を行った方が、1ページ単位で入出力を
行うよりも効率的であることは、よく知られている。し
かし、従来のデータベースシステムにおいては、上述の
ようにデータベースに対するlページ単位の入出力と複
数ページ単位の入出力とを混在させて、1つの入出力バ
ツファ・プールの中で管理するという方法は、未だ実用
化されていない。
前述のリレーショナルデータベース管理システムでは、
入力された問合せを解析して内部処理手順を作成するの
で、ユーザはデータベースに対するアクセス手順を決め
る必要はなく、データベース管理システム内で、データ
ベースに対するアクセス特性を明示的に把握することが
可能である。
上述のアクセス特性を利用して入出力バッファ管理を行
う方法としては、従来より、QLSM(Query  
Locality  Set  Model)に基づく
バッファ管理方式がある。この方式は、問合せ要求毎に
共用バッファを分割し、当該問合せのアクセス要求に適
した置換アルゴリズムにより管理する管理方法である。
このQLSMに基づくバッファ管理方式では、問合せを
解析して、データベースに対するアクセス方法を決定す
る最適化処理部等により、内部処理手順が決まると共用
バッファから適切なサイズ(以下、「ローカリティセッ
トサイズ」と呼ぶ)のバッファを分割(以下、この分割
されたバッファをrローカリティセット」と呼ぶ)し、
問合せのデータベースに対するページ参照特性に適した
置換アルゴリズムにより管理するようにしている。
なお、上記QLSMに基づくバッファ管理方式に関して
は、Hong −Tai  C:hou等による第11
回VLDB国際会議資料[rAn  Evaluati
on  of’Buff’er  Managemen
t  Strategi、es  for  Re1a
tional  Database  S ystem
sjの記載が参考となる。
次に、上述のデータベース管理システムは、オペレーテ
ィングシステムの記憶管理方式である仮想記憶方式によ
る仮想空間上で動作するものである。つまり、データベ
ース管理システムの入出力バッファも、仮想記憶空間上
に確保されたものであって、常にオペレーティングシス
テムによるページングの対象となっている。従って、デ
ータベース管理システムの入出力バッファに対して、オ
ペレーティングシステムのページング管理部が、ページ
例外割込みによりページング用の外部記憶装置のファイ
ルに対して入出力処理を行うことがある。換言すると、
データベース管理システムが入出力バッファのバッファ
管理を行っている反面、オペレーティングシステムもデ
ータベース管理システムの入出力バッファに対してペー
ジング管理を行っている。つまり、二重バッファリング
が行われているのである。
データベース管理システムの入出力バッファ管理部では
、入出力バッファ上に必要なデータがあるように管理し
たとしても、他方のオペレーティングシステムのページ
ング管理部では、その入出力バッファのデータが主記憶
上からページアウトされて、外部記憶装置上のページン
グ用ファイルにあるものと管理しているかも知れない。
そのような場合、次回、その入出力バッファのデータを
参照する際には、オペレーティングシステムが主記憶を
割り当てて、外部記憶装置上のページング用ファイルか
らページアウトしたページを割り当てた主記憶上に入力
する(ページインを行う)6つまり、これだけで2回の
入出力動作が行われたことになるので、データベース管
理システムの性能に影響を及ぼすことになる。
これについては、オペレーティングシステムが仮想記憶
空間の領域を主記憶装置上に固定する機能(以下、tペ
ージ固定」と呼ぶ)を有しているので、データベース管
理システムが入出力バッファの領域に対してページ固定
を行うことにより、ページングの対象から外すことがで
きる。ただし、入出力バッファの領域の大きさが、主記
憶装置の容量を越えないことは前提となる。
また、ページングの問題を改善する方法として、拡張記
憶装置を設置する方法がある。拡張記憶は。
主記憶と直結されており、かつ主記憶と同じ半導体メモ
リ素子で構成されており、物理的に固定長のページ単位
でデータ転送を実現することにより、論理的に主記憶装
置を拡張することができ、容量不足を補っている。
〔発明が解決しようとする課題] 前述のように、(イ)従来の技術では、データベース管
理システムの入出力バッファ管理方法において、複数の
ユーザが入出力バッファに対して入出力要求を発行して
いる途中で、入出力バッファ上に空バッファが無くなっ
てしまうと、他のユザからのデータの入出力要求により
、入出力バッファ上にアクセスするページが無ければバ
ッファ不足の状態となる。その結果、その入出力要求は
待たされるか、あるいは強制的に置換アルゴリズムによ
り、残しておきたいバッファのページをページ置換の対
象としている。
また、(ロ)QLSMに基づくバッファ管理方法では、
ユーザからの問合せ実行前に、最適化処理部等によりロ
ーカリティセットのローカリティセットサイズを算出し
て、入出力バッファからローカリティセットサイズ分の
バッファを確保する。
この時に、ローカリティセットサイズ分のバッファがバ
ッファの不足により確保することができないときには、
確保できるまで待ち状態にすることによって、問合せ実
行を遅らせたり、あるいはそのローカリティセットのロ
ーカリティセットサイズを確保できるバッファサイズに
変更することにより、入出力回数を増加していた。特に
、リレーショナルデータベース管理システムでは、問合
せにおいて、ジョイン演算(2つ以上のリレーションの
結合処理)を行う場合、各リレーション毎にローカリテ
ィセットを形成するため、ローカリティセットサイズを
算出することができるが、ジョインされる側のリレーシ
ョンに対しては複数のデータページを繰り返し参照する
ことがあるため、そのサイズに適したローカリティセッ
トを確保すべきである。しかし、最適化処理部等におい
ても、正確なローカリティセットサイズを算出すること
は困難であり、また算出したローカリティセットサイズ
が大量のバッファを必要とするのでは、現実的でないた
め、十分に入出力処理を効率化することは不可能である
(ハ)一方、QLSMに基づくバッファ管理方法におい
ては、例えば、ある問合せがリレーションに対して、逐
次的にアクセスするというアクセス特性を把握すると、
ローカリティセットサイズを1とし、そのローカリティ
セットの置換アルゴリズムとしてS B (S ing
le  Buffer)方式で管理するという方策を用
いていた。これは、予め複数のバッファを用意して、用
意されたバッファ数分のページを単位として一括入力す
る。つまり、先読み処理を行う方法については、何等考
慮されていなかった。
また、(ホ)前述のように、リレーションに対して逐次
的に参照しながら一括更新を行う場合、従来では、更新
されたページは新たに要求されたページがバッファ中で
ページ不在を起こしたときに、置換アルゴリズムにより
外部記憶装置に書き出され、要求されたページが読み込
まれることがあった。この場合、新たなページを入力す
るために、本来不要となったいる入出力処理が発生する
ことがあり、それが性能劣化の原因となっていた。
さらに、(へ)データベース管理システムにおいて、外
部記憶装置から主記憶装置にデータを転送する場合、デ
ータベース演算、処理を行い、その処理結果を主記憶装
置に転送する過程を含むデータベースマシンを利用する
際には、前述の一括入力をデータマシンに行わせ、処理
結果を入出力バツファに入力する制御に関しては全く配
慮していなかった。また、データベースマシンの利用を
中止して、従来のデータベース管理システムによるデー
タの入出力方法に切換える制御についても、全く考慮さ
れていなかった。
次に、(ト)データベース管理システムでは、内部処理
としてソートマージ法による中間ファイルを作成する処
理がある。中間ファイルの作成処理は、入出力バッファ
上で行われる。先ず、外部記憶装置上のデータベースか
ら入出力バッファにデータを読み込み、そのデータを加
工した後、lベージ分のデータを入出力バッファ上のあ
るバッファに書き込み、ページ内ソートを行うという処
理を、データが読み終わるまで繰り返し行う。このよう
にして作成された中間ファイルのデータは、入出力バッ
ファの置換アルゴリズムに従って、外部記憶装置上の中
間結果格納用ファイルに出力されることがある。次に、
この中間ファイルを読み直し、ソートマージ処理が終了
するまで、入出力バッファと外部記憶装置との間で入出
力処理が多く発生する。しかし、このような中間ファイ
ルは共用されるものではないため、他のユーザからの問
合せ処理により入力されたページがページ置換アルゴリ
ズムにより掃き出され、再びページを参照したい場合に
、ページ置換の対象となったバッファを入力用バッファ
として選択すると、ページの入力前にバッファ中の中間
結果を外部記憶装置に出力してから、そのページを入力
するというように、不要な入出力処理が発生してしまう
ため、性能が低下するという問題が生じた。
さらに、(チ)データベース管理システムでは、履歴情
報の管理において、履歴情報出力用バッファに履歴情報
を出力して管理している。そして、バッファに履歴情報
が満杯になると、外部記憶装置上の履歴情報ファイルに
出力していた。ここで、データベース管理システムが動
作中に、システム障害が発生すると、ある時点まで履歴
情報を基にしてデータベースの回復処理を行う。この時
、履層情報を取得するため、外部記憶装置上の履歴情報
ファイルからの入力処理が発生して、データベースの回
復処理時間が長くなってしまうという問題があった。
(す)一方、データベース管理システムは、仮想記憶空
間上で動作するものであり、データベース管理システム
が管理する入出力バッファも仮想記憶空間上に存在する
。この仮想記憶空間と主記憶装置とのマツピングを行う
のが、オペレーティングシステムの仮想記憶管理、つま
りベージング管理である。すなわち、データベース管理
システムが入出力バッファ上のデータをアクセスしよう
としても、主記憶装置上にデータがなければ、外部記憶
装置上のベージング用ファイルに退避されたデータを主
記憶装置上に入力し、復元する必要がある。逆に、ベー
ジング管理によりその入出力バッファ上のデータを持つ
主記憶上のページがペジアウトの対象となり、外部記憶
装置上のベージング用ファイルに出力し、退避すること
も発生する。データベース管理システムは、このような
記憶階層を考慮していないため、オペレーティングシス
テムのベージング管理により不要な入出力処理が発生す
るという問題がある。それに対処する方法として、デー
タベース管理システムの入出力バッファ全体を主記憶装
置上にページ固定する方法があるが、入出力バッファが
大きいと、主記憶装置上のベージング可能領域が減少す
るため、ベージングやスワツピングが頻発して、計算機
システム全体の能力が低下するという問題がある。
本発明は、上述のような従来の課題を解決するために、
次の第1から第5までの目的を有する。
すなわち、 本発明の第1の目的は、主記憶装置と拡張記憶装置とを
備えた計算機システムにおいて、できる限り外部記憶装
置に対する入出力処理を削減して、入出力バッファを効
率よく利用できる記憶階層を考慮したバッファ管理方法
を提供することにある。
また、本発明の第2の目的は、入出力バッファ上のデー
タに対して更新が行われた場合に、外部記憶装置に対す
る出力要求の予約が行われた際、および外部記憶装置か
らの入出力バッファへの入力要求が複数ページ単位の先
読み処理要求の際に、入出力バッファを効率よく利用す
ることができるバッファ管理方法を提供することにある
また、本発明の第3の目的は、主記憶装置と論理的に主
記憶を拡張する拡張記憶装置を備えた計算機システムに
おいて、データ入力処理要求で拡張記憶装置上にデータ
が存在しない場合と、入出力バッファからのデータ出力
処理を行う場合に、入出力バッファ管理の入出力処理時
間を短縮することが可能なバッファ管理方法を提供する
ことにある。
また、本発明の第4の目的は、アクセス特性がデータベ
ースの参照あるいは更新に関係なく、逐次的アクセスを
行う場合に、入出力時間を削減し、入出力バッファを効
率よく利用することができるバッファ管理方法を提供す
ることにある。
また、本発明の第5の目的は、データベースマシンに障
害が発生した場合に、入出力バツファを効率よく利用す
ることができるバッファ管理方法を提供することにある
〔課題を解決するための手段〕
上記第1の目的を達成するため、本発明のバッファ管理
方法は、(i)主記憶装置上に確保した入出力バツファ
群と拡張記憶装置上に確保した入出力バッファ群とを設
け、主記憶装置上の入出力バッファが不足する場合には
、入出力バッファ管理プログラムモジュールにより拡張
記憶装置上の入出力バッファに主記憶装置上の入出力バ
ッファ上のデータの一部を退避し、拡張記憶装置に退避
したデータが格納されていた主記憶装置上の入出力バッ
ファを利用して、データの入出力処理を行うことに特徴
がある。また、(jJ)外部記憶装置上に蓄積されたデ
ータベースを管理するデータベース管理システムの入出
力バッファ管理プログラムモジュールにおいて、主記憶
装置上に確保した入出力バッファ群と拡張記憶装置上に
確保した入出力バッファ群とを管理するプログラムモジ
ュールを設け、主記憶装置上の入出力バッファが不足し
た場合には、入出力バッファ管理プログラムモジュ−ル
は、拡張記憶装置上に確保した入出力バッファに主記憶
装置上の入出力バッファの置換アルゴリズムによりペー
ジ置換の対象となったデータを退避し、退避したデータ
が格納されていた主記憶装置上の入出力バッファ群を使
用して、データの入出力処理を行うことにも特徴がある
。また、(m)入出力バッファ管理プログラムモジュー
ルは、アクセス対象となったデータページが拡張記憶装
置上の入出力バッファに存在する場合には、主記憶装置
上の入出力バッファの置換アルゴリズムによりページ置
換の対象となったバッファに復元して、データの入出力
処理を行うことにも特徴がある。また、(iv)入出力
バッファ管理プログラムモジュールは、ユーザからの問
合せによりソート・マージ法による中間ファイルを作成
する場合、主記憶装置上にソート・マージ処理で同時に
必要とする最小限の入出力バッファを確保し、拡張記憶
装置上に中間ファイルを格納するための第1の入出力バ
ッファ群および第2の入出力バッファ群を確保し、第1
段階では、データベースからデータを主記憶装置上の入
出力バッファ上に読込み、ソート・マージ処理を行った
結果の中間ファイルを拡張記憶装置上の第1の入出力バ
ッファ群に退避し、第2段階では、拡張記憶装置上の第
1の入出力バッファ群からデータを主記憶装置上の入出
力バッファに復元し、次にソート・マージ処理した結果
の中間ファイルを拡張記憶装置上の第2の入出力バッフ
ァ群に退避し、この動作をソート・マージ処理が終了す
るまで、拡張記憶装置上の第1および第2の入出力バッ
ファ群を交互に使用してデータの入出力処理を行うこと
にも特徴がある。
また、(V)主記憶装置上の入出力バッファがデータベ
ース管理システムの履歴情報管理用バッファである場合
、主記憶装置上に確保した入出力バツファに履歴情報が
満杯となったときには、入出力バッファの履歴情報の全
部ないし一部を拡張記憶装置上に確保した入出力バッフ
ァに退避し、システム障害時のデータベース回復処理時
に、拡張記憶装置上の入出力バッファに退避した履歴情
報を主記憶装置上の入出力バッファに復元することによ
り、履歴情報の入出力処理を行うことにも特徴がある。
また、(vi)データベース管理システムの入出力バッ
ファ管理用プログラムモジュールは、データベースに対
する問合せ毎に入出力バツファ群を分割するローカリテ
ィセット管理を行って、問合せのデータベースへのアク
セス特性に適合するローカリティセット置換アルゴリズ
ムを決定してデータの入出力処理を行い、問合せ実行時
に、入出力バッファからローカリティセットサイズ分の
バッファを確保できないときには、不足するサイズ分の
バッファを拡張記憶装置上から確保して、主記憶装置上
の入出力バッファで確保したサイズを越えるデータの入
力を行う場合、ローカリティセット置換アルゴリズムに
よりページ置換の対象となったデータページを拡張記憶
装置上の入出力バッファに退避し、ページ置換の対象と
なった主記憶装置上の入出力バッファにデータを入力す
ることにも特徴がある。また、(■)データベースは複
数のリレーションを含むリレーショナルデータベースで
あり、ユーザからの問合せでアクセスするリレーション
をローカリティセットを介してデータの授受を行い、ロ
ーカリティセットはリレーションへのアクセス特性に適
合する置換アルゴリズムにより、各リレーションのデー
タページを保持する主記憶装置上の入出力バッファ、な
いし前記拡張記憶装置上の入出力バッファを置換制御す
ることにも特徴がある。また、(幅)データベース管理
システムにより管理され、仮想記憶システムの仮想記憶
空間上に確保された主記憶装置上の入出力バッファの管
理方法において、入出力バッファは1面毎に、入出力バ
ッファの仮想記憶領域上の位置情報と、入出力バッファ
に格納されたデータベースのデータベージ情報と、デー
タページのデータに対する更新の有無を示す更新フラグ
とを記憶する管理テーブルを有し、ユーザからの問合せ
により該入出力バッファに格納されているデータページ
のデータが更新されて、データベース管理システムの入
出力バッファ管理用プログラムモジュールに対し、入出
力バッファ上に格納されているデータページに対する外
部記憶装置のデータベースへの出力要求が発生すると、
入出力バツファ管理用プログラムモジュールは管理テー
ブルの更新フラグをオンにして、仮想記憶上の入出力バ
ッファの領域を主記憶装置上に固定する処理を行うこと
にも特徴がある。また、(iX)入出力バツファ管理用
プログラムモジュールは、入出力バッファの置換アルゴ
リズムによりページ置換の対象となった入出力バッファ
の管理テーブルの更新フラグを判別し、更新フラグがオ
ンになっている時には、外部記憶装置上に蓄積されたデ
ータベースに入出力バッファのデータを出力して、主記
憶装置上に固定された仮想記憶上の上記入出力バッファ
の領域に対する固定を解除する処理を行い、更新フラグ
をオフにすることにも特徴がある。また、(X)データ
ベース管理システムにより管理され、仮想記憶システム
の仮想記憶空間上に確保された主記憶装置上の入出力バ
ッファの管理方法において、入出力バッファはI面毎に
、入出力バッファの仮想記憶領域上の位置情報と、入出
力バツファに格納されたデータベースのデータページ情
報と、入出力バツファを主記憶装置上に固定したことを
示すページ固定フラグとを記憶する管理テーブルを有し
、ユーザからの問合せによりデータベース管理システム
の入出力バッファ管理用プログラムモジュールに対し、
外部記憶装置上に蓄積されたデータベースからの複数ペ
ージ単位の入力要求が発生すると、入出力バッファ管理
用プログラムモジュールはデータページ入力用に確保し
た入出力バッファ群に対して、主記憶装置上に固定する
処理を行い、各入出力バッファの管理テーブルページ固
定フラグをオンにする処理を行うことに特徴がある。ま
た、(xl)入出力バッファ管理用プログラムモジュー
ルは、入力した複数ページのデータページについて1ペ
ージずつデータベース演算処理を行い、処理が終了する
と、データページの入出力バッファに対して主記憶装置
上の固定を解除する処理を行い、入出力バッファの管理
テーブルのページ固定フラグをオフにすることにも特徴
がある。また、(xii)外部記憶装置上のデータベー
スを拡張記憶装置上にも展開し、入出力バッファ管理用
プログラムモジュールはデータの入力処理要求に対して
、拡張記憶装置上にないデータを外部記憶装置上のデー
タベースから入力し、データを拡張記憶装置上にも退避
して、データの入出力処理を行うことにも特徴がある。
また、(xiii)入出力バッファ管理用プログラムモ
ジュールは、入出力バッファの置換アルゴリズムにより
、ページ置換の対象となった入出力バッファのデータに
対して′出力要求があったときには、外部記憶装置上の
データベースへの出力処理と拡張記憶装置上の同一デー
タを持つ入出力バッファへの更新処理を行うことにも特
徴がある。また、(xiv)入出力バッファ管理用プロ
グラムモジュールは、システム開始時に、外部記憶装置
上のデータベースのデータを拡張記憶装置上に確保した
入出力バッファに初期ロードし、初期ロードでは、外部
記憶装置からブロック単位(例えば、トラック単位)に
よる−指入力を行って、データの入出力処理を行うこと
にも特徴がある。また、(XV)データページに対する
複数のユーザからの問合せを解析して、対応する内部処
理手順を決定し、決定された手順に従って処理を実行す
るデータベース管理システムにおいて、データベース管
理システムの入出力バッファ管理用プログラムモジュー
ルは、主記憶装置上の入出力バッファ群と上記データベ
ースを格納する外部記憶装置との間で、データページを
1ページ単位で入出力するサブモジュールと、データペ
ージを複数ページ単位で入出力するサブモジュールとを
有し、データベースに対する問合せ毎に入出力バッファ
群を分割するローカリティセット管理を行い、問合せの
データベースへのアクセス特性に適合したローカリティ
セット置換アルゴリズムを決定して、データの入出力処
理を行うことにも特徴がある。(xvi)データベース
は、複数のリレーションを含むリレーショナルデータベ
ースであり、ユーザからの問合せによりアクセスするリ
レーションを、ローカリティセットを介してデータの授
受を行い、ローカリティセットはリレーションへのアク
セス特性に適合する置換アルゴリズムにより、各リレー
ションのデータページを保持するバッファを置換制御す
ることにも特徴がある。
また、(X■)入出力バツファ群は、各問合せによりア
クセスの対象となるデータページの入ったバッファ群(
ローカリティセット)を持つ第1の状態と、各ローカリ
ティセットから置換制御により各ローカリティセットサ
イズを越えるデータページを保持するバッファを外し、
置換アルゴリズムによりチェインされるバッファ群(セ
カンダリバッファ)を持つ第2の状態と、未だデータペ
ージが保持されていないバッファを置換アルゴリズムに
よりチェインされるバッファ群(フリーバッファ)を持
つ第3の状態とを含むことにも特徴がある。
また、(xvffi)入出力管理用プログラムモジュー
ルが複数ページ単位で入出力処理を行う場合、リレーシ
ョンに対して逐次的に全タプルをアクセスしながら全タ
プルの更新処理を行う際には、複数ページ単位で一括し
てデータページ群を入力した後、読込んだデータページ
群のタプルの更新処理を完了すると、次の一括入力を行
う直前に、更新したデータページ群を外部記憶装置に対
し一括して出力することにも特徴がある。また、(xi
x)主記憶装置と外部記憶装置との間で、外部記憶装置
から主記憶装置にデータ転送を行う場合、データベース
演算処理を行うデータベースマシンを利用し、データベ
ースマシンにより与えられた検索範囲内の全てのデータ
ページを出力する動作と、与えられた検索条件式を満足
するタプル(レコード)を少なくとも1つ以上含むデー
タページを出ノJする動作を行うように制御することに
も特徴がある。また、(XX)データベースマシンによ
り与えられた検索範囲内の全てのデータページを出力す
る動作においては、入出力バツファから検索範囲数分の
データページを受信するに足るバッファ群を確保し、入
出力バツファ内に与えられた検索範囲のブタベージが存
在するか否かを判定して、ページ不在となったページの
みを確保したバッファ群に読込み、使用しなかった入出
力バツファは次の入力要求に備え保持したままにするこ
とにも特徴がある。また、(xxi)データベースマシ
ンにより与えられた検索条件式を満足するタプル(レコ
ード)を少なくとも1つ以上含むデータページを出力す
る動作においては、入出力バツファから少なくとも1ペ
ージ分以上のデータページを受信するに足る入出力バツ
ファを確保し、入出力バツファ内に与えられた検索範囲
のデータページが存在するか否かを判定し、ページ不在
となったページ情報と検索条件式をデータベースマシン
に与え、検索条件式を満足するタプル(レコード)を少
なくとも1つ以上含むデータページを確保したバッファ
に受信することにも特徴がある。さらに、(XXif)
データベースマシンに障害が発生したことを検知した場
合には、該データベースマシンによる検索要求を取止め
、それ以降はデータページをlページ単位で入出力する
入出力管理用プログラムサブモジュールと、データペー
ジを複数ページ単位で入出力する入出力管理用プログラ
ムサブモジュールとを用いて、データの入出力を行うこ
とにも特徴がある。
〔イ乍  用] 本発明においては、(a)主記憶装置と論理的に主記憶
を拡張する拡張記憶装置を備えた計算機システムにおい
て、オペレーティングシステムの仮想記憶管理により管
理されている仮想記憶空間上で動作し、入出力バッファ
を用いて外部記憶装置上のデータの入出力管理を行うプ
ログラムが、拡張記憶装置上に確保した第2の入出力バ
ッファを管理する機能を有し、必要に応じて仮想空間上
の入出力バッファのデータを拡張記憶装置上の入出力バ
ッファに退避、または拡張記憶装置上の入出力バッファ
のデータを仮想空間上の入出力バッファに復元すること
により、外部記憶装置に対する入出力処理を削減して、
入出力バッファを効率よく利用している。また、(b)
入出力バッファ上のあるバッファのデータに対して更新
が行われ、外部記憶装置に対する出力要求の予約が行わ
れると、入出力バッファの置換アルゴリズムによりペー
ジ置換の対象となり、外部記憶装置への出力処理が行わ
れるまで、そのバッファを主記憶装置上にページ固定を
行うことにより、オペレーティングシステムのページン
グ管理の対象から外すこと、および外部記憶装置からの
入出力バッファへのデータの入力要求が複数ページ単位
の先読み処理要求の場合、先読み処理単位のバッファに
対して主記憶装置上にページ固定を行うことにより、先
読みしたデータの処理が終了するまで、オペレーティン
グシステムのページング管理の対象から外すことによっ
て、入出力バッファを効率よく利用している。また、(
C)主記憶装置と論理的に主記憶を拡張する拡張記憶装
置を備えた計算機システムにおいて、データベース管理
システムが管理する外部記憶装置上のデータベースを拡
張記憶装置上にも配置し、入出力バッファ管理部では、
データの入力処理要求に対して拡張記憶装置上にデータ
が存在しない場合と、入出力バッファからのデータの出
力処理を行う場合に、外部記憶装置上のデータベースに
対する入出力処理を行うことによって、外部記憶装置に
対する入出力処理を削減して、入出力バッファ管理の入
出力処理時間を短縮している。また、(d)アクセス特
性がデータベースの参照あるいは更新に関係なく逐次的
アクセスを行う場合には、入出力処理起動時にバッファ
への先読み動作、またはバッファから外部記憶装置への
まとめ書き動作を行うか否かを判定し、先読み処理単位
およびまとめ書き単位を決定することにより、入出力時
間を削減して、入出力バツファを効率よく利用している
。さらに、(e)主記憶装置と外部記憶装置との間に位
置し、外部記憶装置から主記憶装置へデータ転送を行う
際に、データベース演算処理を行い、そのデータベース
演算処理結果を主記憶装置に転送するデータベースマシ
ンを利用するシステムにおいて、そのデータベースマシ
ンに障害が発生した場合、データベースマシンへの検索
要求を取止め、以降既存のデータベース管理システムの
複数ページ入出力処理、または1ページ入出力処理によ
るデータの入出力に切換えることにより、入出力バツフ
ァを効率よく利用している。
〔実施例〕
以下、本発明の実施例を、図面により詳細に説明する。
第2図は、本発明が適用される計算機システムのハード
ウェア構成図である。
第2図において、lはデータ演算およびシステム内の各
装置を制御する中央処理装置(CPU)、2はCPUI
が実行するプログラムおよび各種データを記憶する主記
憶装置、3は論理的に主記憶装置2を拡張するため、半
導体メモリ素子で構成された拡張記憶装置、4は磁気デ
ィスク装置等を含む外部記憶装置である。
第1図は、第2図に示すハードウェア構成上で動作する
メモリ内の全体機能構成図である。
第1図において、5は仮想空間であり、データベース管
理システム50および入出力バツファ部60は、いずれ
も仮想空間5上で動作する。
第2図における外部記憶装置4には、データベース管理
システム50が管理するデータベース40が蓄積されて
いる。データベース管理システム50は、ユーザからの
データベース問合せ要求の構文解析、意味解析を行うデ
ータベース問合せ要求解析部51と、問合せの内部処理
手順を決定して、その内部処理手順に従ってデータベー
ス演算、例えばセレクション、ジョイン演算等を実行す
るデータベース演算処理部52と、データベース演算処
理部52からのデータの入出力処理要求に応じて、入出
力バッファへのデータの入出力処理を入出力バッファ部
60を介して行う入出力バッファ管理部53とを備えて
いる。
リレーショナルデータベースにおいては、データは複数
のタプルからなるリレーションと呼ばれる論理的データ
構造で構成される。リレーションは、データベース管理
システム50の入出力単位である物理的に固定長の複数
ページに分割され、外部記憶装置4のデータベース40
に格納されている。
第1図に示す入出力バッファ部60は、ユーザからのデ
ータベース問合せ要求に応じて、その問合せでアクセス
するリレーション毎にバッファを分割したローカリティ
セットを管理するローカリティセット管理テーブル61
と、データベース問合せ要求処理終了後、またはローカ
リティセットの置換アルゴリズムによりローカリティセ
ットから追い出されたページを保持し、どのローカリテ
ィセットにも属さないセカンダリバッファを管理するセ
カンダリバッファ管理テーブル62と、まだページの入
っていない仮想空間上の入出力バッファと拡張記憶装置
上の入出力バツファを管理するフリーバッファ管理テー
ブル63と、データベース演算処理部52からの入出力
要求によって、バッファサーチを行う場合にはハツシン
グによるバッファのチェインを管理するハツシュブロッ
ク管理テーブル64と、ページを格納するバッファ毎に
仮想空間上のそのバッファの位置情報、ベジ番号、状態
(どのローカリティセットに属しているか、セカンダリ
バッファに属しているか、フリーバッファに属している
か)等を保持するページ管理テーブル65と、複数のロ
ーカリティセット間でページを共有する場合に、その共
有ページを管理する共有ページ管理テーブル66と、仮
想空間上の入出力バッファを論理的に拡張するページを
格納するバッファ毎に拡張記憶装置上のそのバッファの
位置情報、ページ番号、状態等を保持する拡張ページ管
理テーブル67と、データベースのページを格納する仮
想空間上の入出力バツファ68と、拡張記憶装置3上の
拡張入出力バツファ30とから構成される。
本発明におけるバッファ管理方法では、(a)主記憶装
置2上の入出力バッファ68と拡張記憶装置3上の入出
力バッファ3oにより、データの入出力処理を行うプロ
グラムモジュールを設けて、外部記憶装置4との入出力
処理については、主記憶装置2上の入出力バッファ68
を用いて行い、主記憶装置2上の入出力バッファ68が
不足する場合には、主記憶装置2上の入出力バツファ6
8の中から置換アルゴリズムによりデータを拡張記憶装
置3上の入出力バッファ30に退避する。その結果、ペ
ージ置換の対象となったバッファのデータを再参照する
場合には、拡張記憶装置3上の入出力バッファ30にデ
ータがあるので、主記憶装置2上の入出力バッファ68
にデータを復元すればよい。従って、外部記憶装置4に
対するデータの入力処理を行う必要がないため、データ
に対するアクセス時間が短縮されるとともに、バッファ
不足による処理の遅れがない。(b)データベース管理
システム50の入出力バッファ管理部53では、主記憶
装置2上の入出力バツファ68と拡張記憶装置3上の入
出力バツファ30を管理するプログラムモジュールを設
けて、主記憶装置2上の入出力バツファ68が占有され
、バッファ不足となったデータの入力要求時には、主記
憶装置2上の入出力バツファ68の置換アルゴリズムに
より一部のバッファのデータを拡張記憶装置3」二の入
出力バッファ30に退避することによって、そのデータ
の入力をページ置換された主記憶装置2上の入出力バツ
ファ68に行う。これにより、バッファ不足によるデー
タベースの処理要求待ちとなることがない。(C)デー
タベース管理システム50の入出力バツファ管理部53
において、データベースに対する問合せ毎に、入出力バ
ツファ群を分割するローカリティセット管理を行う場合
、そのローカリティセットは、その問合せのデータベー
スへのアクセス特性に適合するバッファ数および置換ア
ルゴリズムを設定するが、そのローカリティセットのバ
ッファが入出力バッファ68の不足により確保できなけ
れば、不足するバッファを拡張記憶装置3上の入出力バ
ッファ30がら取得する。このように、ローカリティセ
ット内の主記憶装置2上の入出力バッファ68に入らな
いデータを、拡張記憶装置3上の入出力バッファ30に
退避しておけば、外部記憶装置4に対する入出力処理を
削減することができ、論理的にローカリティセットのバ
ッファ数を満たしているので、効率のよいデータの入出
力処理を行うことができる。
(d)また、データベース管理システム50において、
ユーザからの問合せによりソートマージ法による中間フ
ァイルを作成する内部処理を行う場合、主記憶装置2上
にソートマージ処理で同時に必要とする最小のバッファ
を確保し、ソートマージ処理においては、処理中に必要
なデータのみ主記憶装置2上にデータを置き、マージし
た結果は拡張記憶装置2上の第1または第2の入出力パ
ッファ30に退避しておくので、主記憶装置2上の入出
力バッファ68を最小にして、中間ファイルをソートマ
ージ処理中に外部記憶装置2に対して出力することなく
、効率のよい入出力バッファ管理を行うことができる。
(e)さらに、データベース管理システム50の履歴情
報管理において、履歴情報管理用のバッファに履歴情報
が一杯になると、拡張記憶装置3上の入出力バッファ3
0に退避しておき、システム障害発生時には、拡張記憶
装置3上の入出力バッファ30から履歴情報を復元して
、データベースの回復処理を行うことができるので、外
部記憶装置4に対する入出力処理を削減することができ
、データベースの回復処理時間も短縮できる。(f)ま
た、データベース管理システム50が扱う入出力バッフ
ァは、仮想記憶システムの仮想空間5上に確保したもの
であり、データベース演算処理により更新されたバッフ
ァおよび外部記憶装置4上のデータベース40から複数
ページ単位で先読み処理するバッファ群に対して、主記
憶装置2上にページ固定することにより、オペレーティ
ングシステムのページング管理によるページングの対象
から外れるので、不要な入出力処理が行われることがな
い。
(g)データベース管理システム50が管理する外部記
憶装置4上のデータベース40を拡張記憶装置3上に展
開するようにして、入出力バッファ管理部53における
データの入力処理は拡張記憶装置3上のデータベース4
0から入力し、拡張記憶装置3上にデータがなければ、
外部記憶装置4上のデータベース40から入力すると同
時に、拡張記憶装置3上にも退避しておく。また、入出
力バッファ管理部53の置換アルゴリズムによりページ
置換の対象となったページに対して、出力要求があれば
、外部記憶装置4上のデータベース40に対して出力処
理を行い、拡張記憶装置3上の同一データを持つバッフ
ァに対する更新処理も行う。これにより、外部記憶装置
4上のデータベース40に対する入出力処理が必要最小
限で済み、拡張記憶装置3上のデータベースに対する入
出力処理時間は、外部記憶装置4に対する入出力処理時
間のアクセス・ギャップを埋めることができる。
また、外部記憶装置4上のデータベース40は、データ
ベース管理システム50のシステム開始時に、拡張記憶
装置3上の入出力バッファ30に初期ロードしておくこ
とにより、データ入力処理は拡張記憶装置3からの入力
だけで済む。
(h)入出力バッファ68と外部記憶装置4との間で、
1ページ単位で入出力処理を行うプログラムモジュール
と、複数ページ単位で入出力処理を行うプログラムモジ
ュールとを設け、データベース管理システム50の入出
力バッファ管理部53では、データベース40に対する
問合せ毎に入出力バッファ群を分割するローカリティセ
ット管理を行い、このローカリティセットは、その問合
せのデータベース40へのアクセス特性に適合するバッ
ファ数および置換アルゴリズムを設定することにより、
効率のよいデータの入出力処理を行う。
特に、データベース40に対して逐次的にアクセスする
問合せの場合のローカリティセットは、複数ページ単位
で入力を行い、全てのページのデータベース演算処理が
終了するまで保持され、他のユーザによるデータベース
アクセス要求によってページが入出力バッファ68から
掃出しの対象となることがなく、同一のリレーションに
対するアクセス要求を行っているローカリティセット間
では、同一ページの共用を許すので、入出力バッファ6
8上のページを効率よく利用できる。
また、データベース40に対して、逐次的に更新処理を
行う問合せの場合のローカリティセットは、複数ページ
単位で出力を行い、出力後は入出力バッファ68中のど
のローカリティセットにも属さないバッファとすること
により、他のユーザによるデータベースアクセス要求に
よって、ページ不在となったページを入力するためのバ
ッファがデータベース40の更新待ちとなっているバッ
ファを選択することが少なくなるので、不要な入出力処
理が防止できる。
さらに、主記憶装置2と外部記憶装置4との間に位置し
、外部記憶装置4がも主記憶装置2へのデータ転送を行
う場合、データベース演算処理を行うデータベースマシ
ンを利用するプログラムモジュールを入出力バッファ管
理部53に設け、データベースマシンによるデータベー
ス演算処理を適用することにより、データベース管理シ
ステム50で行うデータベース演算処理の負荷を削除す
ることができる。そして、データベース管理システム5
0が有する既存の1ページ入出力および複数ページ単位
入出力を行うプログラム以外の入出カプログラムを選択
可能にしている。なお、データベースマシンに障害が発
生した場合には、データベースマシンによる検索要求を
取り止めて、それ以降は既存のデータベース管理システ
ム50が有する既存の1ページ入出力および複数ページ
単位入出力を行うプログラムに切換えることにより、デ
ータベースマシンの障害によるデータベース管理システ
ム50の機能停止を防止することができる。
第3図は、第1図における入出力バッファ部のテーブル
関連図である。
入出力バッファ部60における状態、つまりローカリテ
ィセット、セカンダリバッファ、フリーバッファの各管
理テーブルの関連を示している。
ここでは、ローカリティセットが2個存在するものとし
て、各々のローカリティセットを管理するローカリティ
セット管理テーブル61a、61bがある。ローカリテ
ィセット管理テーブル61aには、それぞれ3ページ分
のデータページが読み込まれ、ページ管理テーブル65
a、65bおよび拡張ページ管理テーブル67aを当該
ローカリティセットの置換アルゴリズムによりチエイニ
ングしており、またローカリティセット管理テーブル6
1bには、1ページのデータが読み込まれて、ページ管
理テーブル65cを当該ローカリティセットの置換アル
ゴリズムによりチエイニングしている。
セカンダリバッファとしては、セカンダリバッファ管理
テーブル62に、3ページ分のどのローカリティセット
にも属さないデータページがページ管理テーブル65d
、65e、65fとして、セカンダリバッファの置換ア
ルゴリズムPIFOによりチエイニングされている。
フリーバッファとしては、フリーバッファ管理テーブル
63に、仮想空間5上の入出力バッファが2面、拡張記
憶装置3上の拡張入出力バッファが3面あり、それらが
仮想空間S上の入出力バッファのページ管理テーブル6
5g、65hとして、および拡張記憶装置3上の拡張入
出力バッファの拡張ページ管理テーブル67 b、 6
7 c、 67 dとして、各々フリーバッファの置換
アルゴリズムFTF○によりチエイニングされている。
第4図は、第1図におけるハツシュブロック管理テーブ
ルの接続例を示す構成図である。
入出力バッファ部60のハツシュブロック管理テーブル
64と入出力バッファ68との関連を、第3図を基に説
明する。ハツシュブロック管理テーブル64は、当該入
出力バッファ数分のハツシュ値に対応するバッファのチ
ェイン情報を持っている。ハツシュブロック管理テーブ
ル64のハツシュ値1には、第3図におけるページ管理
テーブル65b、65cがチエイニングされ、またハツ
シュ値3には、ページ管理テーブル65r1ハツシユ値
5には、ページ管理テーブル65h、ハツシュ値n−1
には、ページ管理テーブル65e。
65dが、それぞれハツシュチェインのポインタにより
チエイニングされている。この時、第3図におけるロー
カリティセット管理テーブル61a。
61bの各バッファチェインは、第4図の破線で示すよ
うに、ページ管理テーブルがポインタでチエイニングさ
れている。
第5図は、第1図における入出力バッファ管理部の詳細
構成図である。
入出力バッファ管理部53は、データベース演算処理部
52からのローカリティセット確保、解放要求、データ
ページの入出力要求等を解析する入出力要求解析部53
0と、ローカリティセット確保要求時にローカリティセ
ット管理テーブルを確保して、これを初期化するローカ
リティセット確保処理部531と、ローカリティセット
解放要求時にローカリティセット中のバッファをセカン
ダリバッファにリチェインして、ローカリティセット管
理テーブル61を解放するローカリティセット解放処理
部532と、ローカリティセット内のバッファの置換制
御およびローカリティセットサイズを越えないように制
御するローカリティセット管理部533と、セカンダリ
バッファをFIF○により置換制御を行うセカンダリバ
ッファ管理部534と、前記入出力要求解析部530か
らバッファに保持したページに対するフリー要求時にフ
リーバッファへのりチェインを行う等、仮想空間上のフ
リーバッファと拡張記憶装置3上のフリーバッファを各
々FIF○により置換制御を行うフリーバッファ管理部
535と、入出力要求のあったデータページ(群)がバ
ッファ中に存在するか否かをサーチするバッファサーチ
処理部536と、前記ローカリティセット内の置換アル
ゴリズムによるバッファのりチェインおよびローカリテ
ィセットとセカンダリバッファ間のバッファの授受に伴
うバッファの切り離し、接続を行うページ置換制御部5
37と、前記バッファサーチ処理部536によりページ
不在となったページに対して1ページ入出力要求時には
、外部記憶装置4からの1ページ入出力を行う1ページ
入出力処理部538と、先読み処理またはまとめ書き処
理要求時には、−摺入出力を行う一括入出力処理部53
9とから構成されている。
第6図は、第5図における入出力要求解析部の処理フロ
ーチャートである。
前述のように、入出力要求解析部530は、データベー
ス演算処理部52から入出力バッファ管理部53に対し
て、データベース40への入出力要求を解析する役割を
果す。
先ず、データベース演算処理部52からの要求を判定し
て、問合せ処理開始時にローカリティセットを確保する
要求であれば、ローカリティセット確保処理部531に
制御を渡しくステップ5300.5301)、一方、要
求がローカリティセット解放要求であれば、ローカリテ
ィセット解放処理部532に制御を渡す(ステップ53
02゜5303)。また、要求がページ入出力処理要求
であれば、ローカリティセット管理部533に制御を渡
しくステップ5304.5305)、また、要求がバッ
ファフリー要求であれば、フリーバッファ管理部535
に制御を渡す(ステップ5306.5307)。このよ
うに、入出力バッファ管理部53に対する要求に応じて
、処理を振り分ける。
第7図は、第5図におけるローカリティセット確保処理
部の処理フローチャートである。
ローカリティセット確保処理部531は、問合せ処理開
始時にその問合せを解析して、決定したアクセス手順に
適したローカリティセットを確保し、これを初期化する
先ず、最初に、第1図に示す入出力バッファ部60のロ
ーカリティセット管理テーブル61かも、未使用状態の
ローカリティセット管理テーブル61を確保する(ステ
ップ5310)。次に、確保したローカリティセット管
理テーブル61に対してその問合せのローカリティセッ
ト情報を設定する。
次に、確保したローカリティセット管理テーブル61に
対して、問合せのローカリティセット情報を設定する。
確保したローカリティ管理テーブル61の初期化が終了
すると(ステップ5311)、当該ローカリティセット
を使用する問合せが一括入出力処理を行うか否かを判定
して(ステップ5312)、−摺入出力処理を行う場合
には、予め入出力バッファ68がらローカリティセット
分のバッファを確保する(ステップ5313)。
第8図(a)は、本発明におけるローカリティセット管
理テーブルの情報を示す図である。
ローカリティセット管理テーブル61には、問合せ処理
を識別する検索ID610、入出力バッファ管理部53
において問合せのローカリティセットを識別するローカ
リティセットID611、ローカリティセットサイズ6
12、問合せによりローカリティセット内に割り当てた
バッファ面数情報であるローカリティセット内割り当て
ページ数613、ローカリティセット内に割り当てたバ
ッファを管理するページ管理テーブル65のチェインの
先頭および末尾を位置付ける先頭バッファアドレス61
4、末尾バッファアドレス615、ローカリティセット
内に割り当てた拡張入出力バッファの拡張ページ管理テ
ーブル67の先頭アドレスである拡張入出力バツファ先
頭アドレス616、当該ローカリティセット内バッファ
の置換制御方法を指示する置換アルゴリズム617、当
該ローカリティセットを利用する問合せが入出力バッフ
ァ管理部53により先読み処理またはまとめ書き処理を
行うか否かを指定する一括入出力要求指定情報618、
当該問合せでアクセスするリレーションの情報619等
が格納される。
第8図(b)は、本発明におけるページ管理テーブルの
情報を示す図である。
ページ管理テーブル65には、前述のローカリティセッ
トに関する情報であるローカリティセットIDおよび当
該ページ管理テーブル65で管理するページの情報とし
て、リレーションを識別する情報等のバッファ属性情報
650、当該バッファを識別するバッファ番号651、
複数のページ管理テーブル65のチェイン関係を位置付
けるページ管理テーブル前方ポインタ652、ページ管
理テーブル後方ポインタ653、ページサーチを高速化
するためのハツシュ関数により決定したハツシュ値に属
するバッファのチェインを位置付けるハツシュチェイン
前方ポインタ654、ハツシュチェイン後方ポインタ6
55、当該ページ管理テーブルで管理しているページ番
号656、当該ページ管理テーブル65で管理している
ページに対して外部記憶装置4への出力要求が出ている
か否かを示す出力要求フラグ657、当該ページ管理テ
ーブル65で管理しているバッファが主記憶装置2上に
ページ固定されているか否かを示すページ固定フラグが
、それぞれ格納されている。
第8図(C)は、本発明における拡張ページ管理テーブ
ルの情報を示す図である。
拡張ページ管理テーブル67には、前述のページ管理テ
ーブル65と同等のバッファ属性情報670、当該バッ
ファを識別するバッファ番号671、複数の拡張ページ
管理テーブルのチェイン関係を位置付ける拡張ページ管
理テーブル前方ポインタ672、拡張ページ管理テーブ
ル後方ポインタ673、当該拡張ページ管理テーブル6
7で管理しているページ番号674が、それぞれ格納さ
れている。
第8図(d)は、本発明におけるフリーバッファ管理テ
ーブルの情報を示す図である。
前述のページ管理テーブル65と拡張ページ管理テーブ
ル67とは、初期時には、入出力バッファ部60のフリ
ーバッファ管理テーブル63により管理されている。こ
のフリーバッファ管理テーブル63には、入出力バッフ
ァ部64の入出力バッファ68のフリーバッファ面数で
あるフリーバッファ数630、複数のフリーバッファの
ページ管理テーブルのチェイン関係を位置付けるページ
管理テーブル前方ポインタ631、ページ管理テーブル
後方ポインタ632、拡張記憶装置3の拡張入出力バッ
ファ30のフリーバッファのバッファ面数であるフリー
拡張バッファ数633、複数のフリー拡張バッファの拡
張ページ管理テーブルのチェイン関係を位置付ける拡張
ページ管理テーブル後方ポインタ635が、それぞれ格
納されている。
第9図は、入出力バッファ管理部におけるローカリティ
セット解放処理部の処理フローチャートである。
入出力バッファ管理部53に対する要求が、ローカリテ
ィセット解放要求の場合には、ローカリティセット解放
処理部532が動作する。先ず、解放の対象となるロー
カリティセット内にバッファがチェインされているか否
かを判定しくステップ5320)、ローカリティセット
内にバッファがチェインされている場合には、当該ロー
カリティセットからチェインしているバッファを切り離
し、いずれのローカリティセットにも属さないセカンダ
リバッファチェインに接続するが、他のローカリティセ
ットから共有されている場合には、共有しているローカ
リティセットに接続する処理を行うセカンダリバッファ
管理部524に制御を渡す(ステップ5321.)。そ
して、ローカリティセット内にバッファがないか、ある
いはセカンダリバッファ管理部534によりローカリテ
ィセット内のバッファが切り離されると、当該ローカリ
ティセットのローカリティセット管理テーブル61を解
放し、未使用状態にする(ステップ5322)。
第10図(a)は、本発明におけるローカリティセット
菅埋部の処理フローチャートである。
入出力バッファ管理部53に対する要求が、ページ入出
力処理要求の場合には、ローカリティセット管理部53
3が動作する。先ず、ページ入出力処理要求が入力要求
であるか、出力要求であるかを判定しくステップ533
00)、入力要求の場合には、1ページ入力と一括入力
とを混在して処理できるように、入力要求によるページ
の検索範囲について、処理が終了したか否かを判定する
(ステップ53301)。検索範囲が終了状態であれば
、−指入力要求であったか否かを判定しくステップ53
302)、−指入力要求であれば、摺入出力処理部に制
御を渡し、一括入力を行う(ステップ53303)。ま
た、ロー力すテイヤット管理部533において、検索範
囲終了状態でない場合・入出力バツファ内に要求するペ
ージが存在するか否かをサーチするバッファサーチ処理
部536に制御を渡す(ステップ53304)。
第11図は、バッファサーチ処理部の処理フローチャー
トである。
第1011ffl(a)において、バッファサーチ処理
部536に制御が渡されると、要求したページのページ
番号によりあるハツシュ関数でハツシュ値を取得しくス
テップ5360)、取得したハツシュ値から当該ハツシ
ュ値を持つバッファのチェインからページをサーチする
(ステップ5361)。その結果、仮想空間5上の入出
力バッファにページがあるか否かを判定しくステップ5
362)、ページ不在の場合には、当該ページを要求し
たローカリティセット内に拡張入出力バッファがチェイ
ンされているか否かを判定する(ステップ5363)。
拡張入出力バッファがあれば、第8図(a)におけるロ
ーカリティセット管理テーブル61の拡張入出力バッフ
ァ先頭アドレス616から拡張ページ管理テーブル67
のチェインをサーチする(ステップ5364)。
再び、第10図(a)に戻って、バッファサーチ処理部
536のサーチの結果、ページ不在であるか否かを判定
する(ステップ53305)。ページ不在でない場合、
つまり入出力バツファ上にページが存在する場合には、
先ずバッファ上に存在したページが既に要求した問合せ
のローカリティセット内にチェインされているか否かを
判定する(ステップ53306)。要求したローカリテ
ィセット内にチェインされている場合には、ローカリテ
ィセット内のバッファのチェインを付は換えるために、
ページ置換制御部537に制御を渡す(ステップ533
07)。要求したローカリティセット内にチェインされ
ていない場合には、他のローカリティセット内にチェイ
ンされているか否かを判定しくステップ53308)、
他のローカリティセット内にチェインされている場合に
は、当該ページを要求したローカリティセットにおいて
も共有するように、要求したローカリティセットに共有
ページ管理テーブル66をチェインし、共有されたペー
ジのページ管理テーブル65に共有ページ管理テーブル
66をチェインするページ共有制御処理を行う(ステッ
プ53309)。
他のローカリティセットにチェインされていない場合、
つまりセカンダリバッファ上に存在する場合には、要求
したローカリティセット内の割り当てバッファ数がロー
カリティセットサイズと等しいか否かにより、ローカリ
ティセットサイズを越えるか否かを判定する(ステップ
53310)。
ローカリティセットを越えない場合には、ページ置換制
御部537に制御を渡し、当該ページをセカンダリバッ
ファから要求したローカリティセットに接続する(ステ
ップ53311)。その後、要求したローカリティセッ
トのローカリティセット管理テーブル61内のローカリ
ティセット内割り当てバッファ数を変更する(ステップ
53312)。
そして、セカンダリバッファ管理部534に制御を渡し
、バッファに存在したページのページ管理テーブル65
をセカンダリバッファのチェインから切り離す(ステッ
プ53313)。
次に、ステップ53305において、ページ不在か否か
の判定処理で、ページ不在となった場合について、第1
0図(b)により説明する。その場合には、当該入力要
求が1ページ入力要求であるか、−指入力要求であるか
を判定しくステップ53318)、−指入力要求の場合
には、外部記憶装置4から一括入力するページ範囲情報
を作成しくステップ53319)、検索範囲終了まで、
ページサーチを繰り返す。また、1ページ入力要求の場
合には、要求したローカリティセット内の割り当てバッ
ファ数が、ローカリティセラ]・サイズと等しいか否か
により、ローカリティセットサイズを越えるか否かを判
定する(ステップ53320)。ローカリティセットサ
イズを越える場合には、当該ローカリティセットの置換
アルゴリズムにより、1ページ分セカンダリバッファに
チェインを付は換えるため、セカンダリバッファ管理部
534に制御を渡す(ステップ53321)。その後、
あるいはローカリティセットサイズを越えない場合には
、フリーバッファが存在するか否かを判定しくステップ
53322)、フリーバッファがある場合には、フリー
バッファチェインよりバッファを1面だけ確保し、当該
要求元ローカリティセットに確保したバッファを接続す
るため、フリーバッファ管理部535に制御を渡す(ス
テップ53323)。フリーバッファが無い場合には、
セカンダリバッファが存在するが否が判定しくステップ
53324)、セカンダリバッファが存在する場合には
、セカンダリバッファの置換アルゴリズムによりバッフ
ァを1面確保し、当該要求元ローカリティセットに確保
したバッファを接続するため、セカンダリバッファ管理
部534に制御を渡す(ステップ53325)。フリー
バッファもセカンダリバッファも無い場合、つまりバッ
ファ不足の場合には、拡張入出力バッファからバッファ
を取得する。先ず、当該要求元ローカリティセットの置
換アルゴリズムにより、ローカリティセットの中からペ
ージ置換を行うバッファを選択する(ステップ5332
6)。そして、フリーバッファ管理部535に制御を渡
し、拡張入出力バッフアからバッファを1面だけ確保し
、当該要求元ローカリティセットに確保したバッファを
接続する(ステップ53327)。その後、ステップ5
3326で選択したバッファのページを、確保した拡張
入出力バッファに退避することにより〈ステップ533
28)、ページを退避したバッファを外部記憶装置4か
らのページ入力に使用する。1ページ入力要求の場合に
は、これらの処理が終了して、外部記憶装置4上のデー
タベース4oからのページ入力用バッファにページを入
力するため、1ページ入出力処理部538に制御を渡す
(ステップ53329)。
次に、第10図(a)のローカリティセット管理部53
3の処理において、ローカリティセット管理部533に
対する要求が出力要求であるか否かの判定(ステップ5
3300)で、出力要求の場合には、第10図(、b)
に示すように、さらに当該出力要求が一括出力要求であ
るか否かを判定する(ステップ5331.4)。−括出
力要求の場合には、ローカリティセット内の全ての出力
要求有りのページを、外部記憶装置4のデータベース4
0に対してまとめ書きするため、−話入出力処理部53
9に制御を渡す(ステップ53315)。また、当該出
力要求が一括出力要求でない場合、っまりlページ出力
要求の場合には、当該出力要求対象ページのページ管理
テーブル65に出力要求フラグをオンにセットし、当該
ページの入出力バッファを主記憶装置2上にページ固定
する(ステップ53316.53317)。
第12図は、本発明におけるセカンダリバッファ管理部
の処理フローチャートである。
セカンダリバッファ管理部534では、セカンダリバッ
ファチェインに対するバッファの接続要求か否かを判定
しくステップ5340)、接続要求である場合には、セ
カンダリバッファの置換アルゴリズムFIFOにより、
セカンダリバッファチェインに要求されたページ管理テ
ーブル65を接続する(ステップ5341)。接続が完
了すると、ページ管理テーブル65の属性情報(ローカ
リティセットID等)を変更する(ステップ5342)
また、セカンダリバッファチェインへのバッファの接続
要求でない場合には、セカンダリバッファチェインから
のバッファの切り離し要求か否かを判定しくステップ5
343)、バッファ切り離し要求の場合には、切り離し
の対象となったバッファのページに対して、外部記憶装
置4のデータベース40への出力要求があるか否かを判
定しくステップ5344)、出力要求有りの場合には、
外部記憶装置4のデータベース40への出力を行うため
に、1ページ入出力処理部538に制御を渡す(ステッ
プ5345)。そして、当該バッファの出力要求に対す
る処理が終了するか、または出力要求がない場合には、
セカンダリバッファチェインから当該バッファのページ
管理テーブル65を切り離す(ステップ5346)。
第13図は、本発明におけるフリーバッファ管理部の処
理フローチャートである。
フリーバッファ管理部535においては、フリーバッフ
ァチェインへのバッファの接続要求であるか否かを判定
しくステップ53500)、接続要求である場合には、
当該接続要求バッファが拡張入出力バツファであるか否
かを判定しくステップ53501)、拡張入出力バッフ
ァでない場合、つまり仮想記憶空間5上の入出力バッフ
ァの場合には、フリーバッファの置換アルゴリズムFI
F○によりフリーバッファチェインに要求されたページ
管理テーブル65を接続する(ステップ53502)、
接続することにより、当該ページ管理テーブル65の属
性情報等の情報を初期状態にする(ステップ53503
)。また、当該接続要求が拡張入出力バッファである場
合にも、ステップ53502.53503と同じように
、置換アルゴリズムFIF○により拡張フリーバッファ
チェインに要求された拡張ページ管理テーブル67を接
続して、拡張ページ管理テーブル67の属性情報等の情
報を初期状態にする(ステップ53504.53505
)。一方、フリーバッファチェインへのバッファの接続
要求でない場合には、フリーバッファチェインからのバ
ッファの切り離し要求か否かを判定しくステップ535
06)、バッツア切り離し要求である場合には、切り離
しの対象となったバッファが拡張入出力バッファである
か否かを判定しくステップ53507)、当該切り離し
要求が拡張入出力バッファ30でない場合、つまり仮想
記憶空間5上の入出力バツファ68である場合には、切
り離しの対象となったバッファのページ管理テーブル6
5をフリーバッファチェインから切り離す(ステップ5
3508)。その後、切り離したページ管理テーブル6
5に対して、要求元の情報を設定する(ステップ535
09)。また、当該切り離し要求が拡張入出力バッファ
30である場合にも、ステップ53508.53509
と同じように、切り離しの対象となった拡張ページ管理
テーブルを拡張フリーバッファチェインから切り離し、
切り離した拡張ページ管理テーブル67に対して、要求
元の情報を設定する(ステップ53510.53511
)。
第14図は、本発明におけるページ置換制御部の処理フ
ローチャートである。
ページ置換制御部537においては、先ずローカリティ
セットからのページ置換対象選択要求が否かを判定しく
ステップ53700)、要求が置換対象選択要求の場合
には、指定したローカリティセット内から当該ローカリ
ティセットの置換アルゴリズムにより置換対象となるペ
ージのページ管理テーブル65を探す(ステップ537
01)。そして、選択したページ管理テーブル65を指
定されたローカリティセットのチェインから切り離す(
ステップ53702)。また、要求が置換対象選択要求
でない場合、ローカリティセットへのページ取込み要求
か否かを判定して(ステップ53703)、ページ取込
み要求の場合には、指定されたページ管理テーブル65
の指定したローカリティセットの置換アルゴリズムに従
って接続を行う(ステップ53704)、また、要求が
ページ取込み要求でない場合には、ローカリティセット
内の指定したページに対する置換要求であるが否かを判
定しくステップ53705)、ローカリティセット内置
換要求の場合、要求されたページが拡張入出力バッファ
30であるか否かを判定する(ステツブ53706)。
拡張入出力バッファ30である場合には、指定されたロ
ーカリティセットの置換アルゴリズムにより置換対象と
なるページのページ管理テーブル65を探す(ステップ
53707)。次に、選択された置換対象となるページ
を退避するためのバッファを拡張入出力バツファ30か
ら取得するために、フリーバッファ管理部535に制御
を渡す(ステップ53708)。そして、取得した拡張
入出力バッファ30に置換対象となったページを退避し
、退避されたページのページ管理テーブル65の情報を
、退避した拡張入出力バッファ30の拡張ページ管理テ
ーブル67に移す(ステップ53709)。そして、当
該ローカリティセット内の置換要求対象の拡張入出力バ
ッファ30のページを、前記退避されたページの入出力
バッファに復元する(ステップ53710)。その後、
拡張ページバッファでないか、あるいは拡張ページバッ
ファの復元が終了したとき、当該要求で指定されたペー
ジ管理テーブル65をローカリティセットの置換アルゴ
リズムに従ってチェインを付は換える(ステップ537
11)。
第15図は、本発明における1ページ入出力処理部の処
理フローチャートである。
先ず、当該1ページ入出力処理部538への処理要求が
入力要求であるか否かを判定しくステップ5380)、
入力要求である場合には、外部記憶装置4のデータベー
ス40から指定したバッファにページを読み込む(ステ
ップ5381)。また、要求が入力要求でない場合には
、出力要求であるか否かを判定しくステップ5382)
、出力要求の場合には、先ず指定したバッファのページ
を外部記憶装置4のデータベース40に書き込み、当該
バッファの主記憶装置2上でのページ固定を解除する(
ステップ5383.5384)。
第16図は、本発明における一括入出力処理部の処理フ
ローチャー1・である。
先ず、当該−摺入出力処理部539への処理要求が、−
指入力要求であるか否かを判定しくステップ5390)
、−指入力要求の場合には、先読みするために指定され
たバッファ群を主記憶装置2上にページ固定する処理を
行い、バッファ群のページ管理テーブル65のページ固
定フラグをそれぞれオンにする(ステップ5391)。
そして、外部記憶装置4のデータベース4oから指定し
た入出力バッファ群に、第1o図の処理フローで作成し
た一括入力要求ページ範囲情報(ステップ53319参
照)内のページ群を一括して読み込む(ステップ539
2)。一方、要求が一括入力要求でない場合には、−括
出力要求であるか否かを判定しくステップ5393)、
−括出力要求の場合には、外部記憶装置4のデータベー
ス40に指定された入出力バッファ群のページを一括し
てまとめ書きして、当該バッファ群の主記憶装置2上に
対するページ固定を解除する(ステップ5394゜53
95)。
以上が、第1の実施例のバッファ管理方法の説明である
次に、本発明の第2〜第4の実施例について、述べる。
第17図は、本発明の第2の実施例を示すバッファ管理
方法の説明図である。
第2の実施例においても、計算機システムの全体構成は
第1図に示す通りであって、第1の実施例と異なるのは
その動作である。
第1図のデータベース管理システム50のデータベース
演算処理部52が、ある問合せによりソートマージ法に
よる中間ファイルを作成する場合の処理を説明する。
先ず、データベース演算処理部52が、入出力バッファ
管理部53に対して、第17図に示すように、仮想空間
5上に3ページ分のバッファ(バッファ(A)680.
バッファ(B)681 、バッファ(C)682)と、
拡張記憶装置3上に中間ファイル格納用拡張入出力バッ
ファ(A)300.拡張入出力バッファ(B)301の
確保を要求して、各々のバッファを取得する。そして、
データベース40からバッファ(A)680にページを
入力し、入力したページ内のデータを加工してバッファ
(C)682に書き込む。データベース40からバッフ
ァ(A)680にページを読み終わるまで入力を続行し
、途中バッファ(C)682が満杯になると、拡張入出
力バッファ(A)300にデータを退避する。
次に、拡張入出力バッファ(A)300に退避された中
間ファイルからバッファ(A)680.バッファ(B)
681に2ページずつ復元し、ソートマージした結果を
バッファ(C)682に書き込み、バッファ(C)68
2がソートマージの結果で満杯になると、拡張入出力バ
ッファ(B)301にバッファ(C)682の内容を退
避する。この動作を拡張入出力バッファ(A)300の
中間ファイルについて、ソートマージが終了するまで繰
り返す。このようにして、拡張入出力バッファ(A)3
00と拡張入出力バッファ(B)301とを交互に復元
用または退避用に使用して、ソートマージ処理が終了す
るまで繰り返し行う。
次に、本発明の第3の実施例のバッファ管理方法につい
て説明する。
第18図は、本発明の第3の実施例を示すブタベースの
配置と入出力バツファ部の関連図であ第3の実施例にお
いても、計算機システムの全体構成は第1図に示す通り
である。
入出力バッファ部60は、入出力バッファ68の各バッ
ファの位置情報とページ情報を持つページ管理テーブル
65と、拡張記憶装置3上に確保したデータベース格納
用拡張入出力バッファ302について、各バッファの位
置情報とページに関する情報を持つ拡張ページ管理テー
ブル67とを具備している。拡張記憶装置3上の拡張入
出力バッファ302は、データベース40を格納できる
容量を持っている。
本実施例の応用として、ユーザからの問合せによりソー
ト・マージ法による中間ファイルを作成する内部処理を
行う場合が挙げられる。この場合には、主記憶装置2上
の入出力バッファ68にソート・マージ処理で同時に必
要とする最小のバッファを確保するとともに、拡張記憶
装置3上のデータベース格納用拡張入出力バッファ30
2内に、中間ファイルを格納するための第1の入出力バ
ッファ群領域と第2のバッファ群領域とを確保する。
初期段階では、外部記憶装置4のデータベース4oから
データを入出力バッファ部60の入出力バッファ68に
読み込み、ここでソート処理を行った後、ソート処理し
た中間ファイルを拡張記憶装置3上のfilのバッファ
群に退避する。次の段階では、拡張記憶装置3上の第1
のバッファ群からデータを入出力バッファ部60の入出
力バツファ68に復元し、ここでマージ処理を行った後
、マージ処理した中間ファイルを拡張記憶装置3上の第
2のバッファ群に退避する。このような処理を繰り返し
て、マージ処理が終了するまで、拡張記憶装置3上の第
1および第2のバッファ群を交互に使い分けて、データ
の入出力処理を行う。
また、他の応用例として、データベース管理システムに
おける履歴情報管理用バッファの情報が満杯になった場
合の退避および復元処理が挙げられる。
すなわち、入出力バツファ部60の入出力バツファ68
が、データベース管理システムにおける履歴情報管理用
バッファである場合、入出力バツファ68上に確保した
バッファに履歴情報が満杯になると、この全部ないし一
部を拡張記憶装置3上のデータベース格納用拡張入出力
バッファ302に退避する。その後、システム障害時の
データベース回復処理において、拡張記憶装置3上の入
出力バツファ302に退避した履歴情報を主記憶装置2
上の入出力バッファ68に復元する。
さらに、他の応用例として、データベースに対する問合
せが多くなって、バッファ容量が不足する場合の退避お
よび復元処理が挙げられる。
すなわち、データベース管理システム50の入出力バッ
ファ管理部53は、データベースに対する問合せ毎に入
出力バッファ68を分割するローカリティセット管理を
行って、問合せのデータベースへのアクセス特性に適合
するローカリティセット置換アルゴリズムを決定するこ
とにより、データの入出力処理を行う。このような問合
せ実行時に、入出力バッファ68からローカリティセッ
トサイズ分のバッファを確保できないときには、不足す
るサイズ分のバッファを拡張記憶装置3上から確保し、
主記憶装置2の入出力バツファ68で確保したサイズを
越えるデータの入力を行う場合には、ローカリティセッ
トの置換アルゴリズムによりページ置換の対象となった
データページを拡張記憶装置3上の入出力バツファ30
2に退避して、ページ置換の対象となった主記憶装置2
」−の入出力バッファ68にデータを入力する。
第19図は、第1図における入出力バツファ管理部の処
理フローチャートである。
入出力バッファ管理部53では、先ず入力要求があった
ページについて、あるハツシュ関数を使用して、ページ
番号によりハツシュ値を取得する(ステップ540)。
求めたハツシュ値により入出力バッファ68をサーチし
、当該入力要求ページが入出力バツファ68上にあるか
否かを判定しくステップ541)、当該要求ページが入
出力バツファ68上にない場合には、空バッファがある
か否かを判定する(ステップ542)。空バッファがな
い場合には、当該入出力バツファ管理部53の置換アル
ゴリズムにより置換えるべきページを選択する(ステッ
プ543)。そして、選択されたペジに対して出力要求
があるか否かを判定しくステップ544)、出力要求が
あれば、当該ページを外部記憶装置4上のデータベース
40に出力する処理を行う(ステップ545)。そして
、当該ページを拡張記憶装置3上の拡張入出力用バッフ
ァ302上の同一データの格納場所に書き出し、更新処
理を行う(ステップ546)。このようにして、選択さ
れたページ入力用バッファに対して、当該入力要求ペー
ジの入力処理を行う。
先ず、当該入力要求ページが拡張記憶装置3上の拡張入
出力用バッファ302上に既に格納されているか否かを
判定しくステップ547)、拡張入出力バッファ302
上に当該入力要求ページがあれば、拡張入出力バッファ
302上にある当該ページをバッファに読み込む(ステ
ップ548)。しかし、拡張入出力用バッファ302上
に当該ページが未だ格納されていない場合には、外部記
憶装置4のデータベース40から当該ページを読み込む
(ステップ549)。そして、読み込んだページを拡張
記憶装置3上の拡張入出力バツファ302に退避する(
ステップ550)。
また、上述の例では、データベース処理時に、入力要求
ページが拡張入出力バツファ302に無い場合について
の処理を行っているが、データベース管理システム開始
処理時に、外部記憶装置4上のデータベース40を一括
して拡張記憶装置3上のデータベース格納用入出力バッ
ファ302に初期ロードしておけば、第19図における
入力要求ページが拡張記憶装置3上にあるか否かを判定
する処理(ステップ547)は不要となり、それに伴っ
てステップ549,550が省略できる。
以上のように、第3の実施例では、入出力バツファ管理
部53において、仮想記憶空間5上の入出力バッファ6
8と拡張記憶装置3上の拡張入出力バッファ302とを
利用したデータの入出力処理を行うことができる。また
、出力要求のあるバッファおよび先読み処理用のバッフ
ァ群を主記憶装置2に固定することにより、オペレーテ
ィングシステムの仮想記憶管理を考慮したバッファ管理
が可能となる。
次に、本発明の第4の実施例のバッファ管理方法につい
て、図面により説明する。
第21図は、本発明の第4の実施例を示す計算機システ
ムの全体構成図である。
第21図において、第1図と異なる点は、拡張記憶装置
t3および入出力バッファ部6に拡張ページ管理テーブ
ルがないことと、CPUIと外部記憶装置4の間にデー
タベースマシン7が接続されていることである。主記憶
装置2上のデータベース管理システム50には、ユーザ
からのデータベース問合せ要求の構文解析、意味解析を
行うデータベース問合せ要求解析処理部51、問合せの
内部処理手順を決定し、その内部処理手順に従って、例
えばセレクション、ジョイン等のデータベース演算を行
うデータベース演算処理部52、データベース演算処理
部52からデータの入出力要求に応じて外部記憶装置4
に格納しであるデータベース40のデータを保持する入
出力バッファ群を管理する入出力バッファ管理部53、
およびデータベース40のデータのバッファリングに必
要な入出力バッファ68と入出力バツファ68を管理す
るテーブルを有する入出力バッファ部60が設けられて
いる。すなわち、第1の実施例では、第1図に示すよう
に、データベース管理システム50と入出力バッファ部
60とが同等のレベルで設けられていたが、第4の実施
例では、入出力バッファ部60がデータベース管理シス
テム50に含まれている。
関係データベースにおいては、データは複数のタプルか
らなるリレーションと呼ばれる論理的データ構造で構成
されている。リレーションは、データベース管理システ
ムの入出力単位である物理的に固定長の複数のページに
分割され、外部記憶装置4のデータベース40に格納さ
れている。
入出力バッファ部60には、ユーザからのデータベース
問合せ要求に応じて、その問合せでアクセスするリレー
ション毎にバッファを分割したローカリティセットを管
理するローカリティセット管理テーブル61と、データ
ベース問合せ要求処理終了後またはローカリティセット
の置換アルゴリズムによりローカリティセットから追出
されたページを保持し、どのローカリティセットにも属
さないセカンダリバッファを管理するセカンダリバッフ
ァ管理テーブル62と、ページの入っていないフリーバ
ッファを管理するフリーバッファ管理テーブル63と、
データベース演算処理部52からの入出力要求によりバ
ッファサーチを行う場合に、ハツシングによるバッファ
のチェインを管理するハツシュブロック管理テーブル6
4と、ページを格納するバッファ毎に主記憶装置2上の
バッファの位置情報、ページ番号およびどのローカリテ
ィセットに属しているか、セカンダリバッファに属して
いるか、またはフリーバッファに属しているか等の状態
を保持するページ管理テーブル65と、複数のローカリ
ティセット間でページを共有する場合に、その共有ペー
ジを管理する共有ページ管理テーブル66と、データベ
ースのページを格納する入出力バッファ68とが設けら
れる。
第22図は、第21図における入出力バツファ部の入出
力バッファ状態である各管理テーブルの関連図である。
入出力バッファの状態は、ローカリティセット管理テー
ブル61と、セカンダリバッファ管理テーブル62と、
フリーバッファ管理テーブル63の関連で示される。こ
こでは、ローカリティセットが3つあるものとして、各
々のローカリティセットを管理するローカリティセット
管理テーブル245a、245b、24.5cがあり、
それぞれローカリティセット管理テーブル61aには3
ページ分のデータページが読込まれる。そして、ページ
管理テーブル245a、245b、245cを、当該ロ
ーカリティセットの置換アルゴリズムによりチエイニン
グしている。また、ローカリティセット管理テーブル6
1. bには、1ページのデータページが読込まれ、ペ
ージ管理テーブル245dを当該ローカリティセットの
置換アルゴリズムによりチエイニングしている。また、
ローカリティセット管理テーブル61cには、2ページ
分ノテータページが読込まれ、ページ管理テーブル24
5e、245fを当該ローカリティセットの置換アルゴ
リズムによりチエイニングしている。
また、セカンダリバッファとしては、セカンダリバッフ
ァ管理テーブル62に、どのローカリティセットにも属
さない3ページ分のデータページが、ページ管理テーブ
ル245g、245h、245iをセカンダリバッファ
の置換アルゴリズムFIFOによりチエイニングしてい
る。また、フリーバッファとしては、フリーバッファ管
理テーブル63に、フリーバッファが2面あり、ページ
管理テーブル245j、245kをフリーバッファ置換
アルゴリズムFIF○によりチエイニングしている。
第23図は、第21図におけるハツシュブロック管理テ
ーブルと入出力バッファとの関連を示す図である。
ハツシュブロック管理テーブル64は、当該入出力バッ
ファ数分のハツシュ値に対応するバッファのチェイン情
報を持っている。ハッシュブロッり管理テーブル64の
ハツシュ値1には、第22図に示したページ管理テーブ
ル24.5b、245Cがチエイニングされ、ハツシュ
値3には、ページ管理テーブル245f、ハツシュ値4
には、ページ管理テーブル2451、ハツシュ値5には
、ページ管理テーブル245a、245g、ハツシュ値
n−1には、ページ管理テーブル245h、ハツシュ値
nには、ページ管理テーブル245e。
245dが、それぞれハツシュチェインのポインタによ
りチエイニングされている。このとき、第22図におけ
るローカリティセット管理テーブル241a〜241c
の各バッファチェインは、第23図におけるページ管理
テーブルを図中の点線のようにポインタでチエイニング
されている。
なお、第21図における入出力バッファ管理部53の構
成は、第5図に示した第1の実施例と同一であるので、
説明を省略する。また、第5図に示す入出力要求解析部
530は、データベース演算処理部52から入出力バッ
ファ管理部53に対して渡された、データベースへの入
出力要求を解析する役割を果す。その処理フローは、第
6図に示した第1の実施例と同一であるため、説明を省
略する。また、第5図のローカリティセット確保処理部
531は、問合せ処理開始時に当該問合せを解析し、決
定したアクセス手順に適したローカリティセットを確保
し、初期化する役割を果す。
その処理フローは、第7図に示した第1の実施例と同一
であるため、説明を省略する。
第24図(a)は、本実施例におけるローカリティセッ
ト管理テーブル61の情報を示す図である。
ローカリティセット管理テーブル61には、データベー
スマシンを利用する場合に、データベースマシンが識別
する検索ID−6100,入出力バッファ管理部53に
おいて、各問合せのローカリティセットを識別するロー
カリティセットID6101、ローカリティセットサイ
ズ6102、問合せによりローカリティセット内に割り
当てたバッファ面数情報であるローカリティセット内割
り当てページ数6103、ローカリティセット内に割り
当てたバッファを管理するページ管理テーブルのチェイ
ンの先頭および末尾を位置付ける先頭バッファアドレス
6104、末尾バッファアドレス6105、当該ローカ
リティセラ1゛内バッファの置換制御方法を指示する置
換アルゴリズム6106、当該ローカリティセットを利
用する問合せが入出力バッファ管理部53により一括入
出力を行うか否かを指定する一括入出力要求指定情報6
107、当該問合せでアクセスするリレーションの情報
6108が、それぞれ格納されている。
第24図(b)は、本実施例におけるページ管理テーブ
ルの情報を示す図である。
ページ管理テーブル65には、前述のローカリティセッ
トに関する情報であるローカリティセットIDおよび当
該ページ管理テーブルで管理するページの情報としてリ
レーションを識別する情報のバッファ属性情報6500
、当該バッファを識別するバッファ番号6501.複数
のページ管理テーブルのチェイン関係を位置付けるペー
ジ管理テーブル前方ポインタ6502、ページ管理テー
ブル後方ポインタ6503、ページサーチを高速化する
ためハツシュ関数により決定したハツシュ値に属するバ
ッファのチェインを位置付けるハツシュチェイン前方ポ
インタ65o4、ハツシュチェイン後方ポインタ65o
5、当該ページ管理テブルで管理しているページ番号6
5o6、当該ページ管理テーブルで管理しているページ
に対して外部記憶装置4への出力要求が出ているが否か
を示す出力要求フラグ6507が、それぞれ格納されて
いる。
第24図(a)(b)と第1の実施例における第8図(
a)(b)とを比較すれば明らかなように、後者には、
前者の拡張入出力バッファに関する情報およびページ固
定フラグがない点で異なっている。
なお、入出力バッファ管理部53に対する要求が、ロー
カリティセット解放要求の場合のローカリティセット解
放処理部532の処理フローは、第9図に示した第1の
実施例と同一であるため、その説明を省略する。
第20図(a)(b)(c)は、本実施例のローカリテ
ィセット管理部の処理フローチャートである。
ローカリティセット管理部533は、入出力バツファ管
理部53に対する要求が、ページ入出力処理要求の場合
に動作する。先ず、ページ入出力処理要求が入力要求か
、出力要求かを判定しくステップ23300)、入力要
求の場合には、1ページ入力と一括入力とを混在して処
理できるように、入力要求によるページの検索範囲につ
いて処理が終了したか否かを判定する(ステップ233
01)。検索範囲終了状態であれば、−指入力要求であ
ったか否かを判定しくステップ23302)、−)1入
力要求であれば、−摺入出力処理部539に制御を渡し
、−指入力を行う(ステップ23303)。ロ−カリテ
ィセット管理部533において、検索範囲終了状態でな
い場合には、入出力バッファ内に要求するページが存在
するか否かをサーチするバッファサーチ処理部536に
制御を渡す(ステップ23304)。
第27図は、本実施例におけるバッファサーチ処理部の
処理フローチャートである。
バッファサーチ処理部536は、要求したページのペー
ジ番号により、あるハツシュ関数でハツシュ値を取得し
くステップ2361)、取得したハツシュ値から当該ハ
ツシュ値を持つバッファのチェーンから、ページをサー
チする(ステップ2362)。その結果、第20図(a
)に戻って、ページ不在であるか否かを判定する(ステ
ップ23305)。ページ不在でない場合、つまり入出
力バッファ68上にページが存在する場合には、バッフ
ァ上に存在したページが既に要求した問合せのローカリ
ティセット内にチェインされているか否かを判定する(
ステップ23306几要求したローカリティセット内に
チェインされている場合には、ローカリティセット内の
バッファのチェインを付は換えるために、ページ置換制
御部537に制御を渡す(ステップ2330?)。要求
したローカリティセット内にチェインされていない場合
には、他のローカリティセット内にチェインされている
か否かを判定する(ステップ23308)。他のローカ
リティセット内にチェインされている場合には、当該ペ
ージを要求したローカリティセットにおいても共有する
ように、共有ページ管理テーブル66を要求したローカ
リティセットにチェインし、共有されたページのページ
管理テーブル6Sに共有ページ管理テーブル66をチェ
インするページ共有制御処理を行う(ステップ2330
9)。
他のローカリティセットにチェインされていない場合、
つまりセカンダリバッファ上に存在する場合には、要求
したローカリティセット内の割り当てバッファ数がロー
カリティセットサイズと等しいか否かにより、ローカリ
ティセットサイズを越えるか否かを判定する(ステップ
23310)。
ローカリティセットサイズを越えない場合には、ページ
置換制御部537に制御を渡し、当該ページをセカンダ
リバッファから要求したローカリティセットに接続する
(ステップ23311)。その後、要求したローカリテ
ィセットのローカリティセット管理テーブル61内のロ
ーカリティセット内割り当てバッファ数を変更する(ス
テップ2331.2)。そして、セカンダリバッファ管
理部534に制御を渡し、バッファに存在したページの
ページ管理テーブルのセカンダリバッファチェインから
切り離す(ステップ23313)。
次に、ステップ23305に戻って、ページ不在か否か
の判定において、ページ不在となった場合には、第20
図(C)に示すように、先ず、当該入力要求が1ページ
入力要求か、−指入力要求かを判定しくステップ233
17)、−指入力要求の場合には、外部記憶装置4がら
一括入力するページ範囲情報を作成して(ステップ23
318)、検索範囲終了までページサーチを繰り返す(
ステップ23301,23304,23305)。
また、1ページ入力要求の場合には、要求したローカリ
ティセット内の割り当てバッファ数が、ローカリティセ
ットサイズと等しいが否かにより、ローカリティセット
サイズを越えるが否かを判定する(ステップ23319
)。ローカリティセットサイズを越える場合には、当該
ローカリティセットの置換アルゴリズムにより、lペー
ジ分セカンダリバッファにチェインを付は換えるために
、セカングリバッファ管理部534に制御を渡す(ステ
ップ23320)。その後、またはローカリティセット
サイズを越えない場合には、フリーバッファが存在する
か否かを判定しくステップ2332I)、フリーバッフ
ァが無い場合にはセカンダリバッファが存在するか否か
を判定する(ステップ23322)。セカンダリバッフ
ァが存在する場合には、セカンダリバッファの置換アル
ゴリズムによりバッファを1面だけ確保し、当該要求元
ローカリティセットに確保したバッファを接続するため
、セカンダリバッファ管理部534に制御を渡す(ステ
ップ23324)。また、フリーバッファがある場合に
は、フリーバッファチェインよりバッファを1面だけ確
保し、当該要求元ローカリティセットに確保したバッフ
ァを接続するため、フリーバッファ管理部535に制御
を渡す(ステップ23325)。1ページ入力要求の場
合には、これらの処理が終了して、外部記憶装置4かも
のページ入力用バッファにページを入力するため、1ペ
ージ入出力処理部538に制御を渡す(ステップ233
26)。
次に、第20図(a)のローカリティセット管理部53
3の処理において、ローカリティセット管理部533に
対する要求が出力要求か否かを判定した結果(ステップ
23300)、出力要求である場合には、第20図(b
)に示すように、当該出力要求が一括出力要求か否かを
判定する(ステップ23314)。−括出力要求でない
場合、つまり1ページ出力要求の場合には、ページ管理
テーブル65に出力要求フラグをセットする(ステップ
23315)。−括出力要求の場合には、ローカリティ
セット内の全ての出力要求有りのページを、外部記憶装
置4に対して一括出力するため、−摺入出力処理部53
9に制御を渡す(ステップ23316)。
第25図は1本実施例におけるセカンダリバッファ管理
部の処理フローチャートである。
セカンダリバッファ管理部534では、先ず、セカンダ
リバッファチェインのバッファへの接続要求か否かを判
定しくステップ2340)、接続要求である場合には、
セカンダリバッファの置換アルゴリズムI−IF○によ
り、セカンダリバッファチェインに要求されたページ管
理テーブル65を接続する(ステップ2341)。接続
が完了した場合には、当該ページ管理テーブル65の属
性情報(ローカリティセットI−D等)を変更する(ス
テップ2342)、また、セカンダリバッファチェイン
のバッファへの接続要求でない場合には、セカンダリバ
ッファチェインからのバッファの切り離し要求か否かを
判定しくステップ2343)、バッファ切り離し要求で
ある場合には、切り離しの対象となったバッファのペー
ジに対して、外部記憶装置4への出力要求があるか否か
を判定する(ステップ2344)。出力要求有りの場合
には、外部記憶装置4への出力を行うため、1ページ入
出力処理部538に制御を渡す(ステップ2345)6
そして、当該バッファの出力要求に対する処理が終了す
るか、または出力要求がない場合には、セカンダリバッ
ファチェインから当該バッファのページ管理テーブル6
5を切り離す(ステップ2346)。
第26図は、本実施例におけるフリーバッファ管理部の
処理フローチャートである。
フリーバッファ管理部535では、先ずフリーバッファ
チェインへのバッファの接続要求であるか否かを判定し
くステップ2350)、接続要求の場合には、フリーバ
ッファの置換アルゴリズムFIF○によりフリーバッフ
ァチェインに、要求されたページ管理テーブル65を接
続する(ステップ2351)。接続すると、当該ページ
管理テーブル65の属性情報等を初期状態にする(ステ
ップ2352)。また、フリーバッファチェインのバッ
ファへの接続要求でない場合には、フリーバッファチェ
インからのバッファの切り離し要求であるか否かを判定
しくステップ2353)、バッファ切り離し要求である
場合には、切り離しの対象となったバッファのページ管
理テーブル65を、フリーバッファチェインから切り離
す(ステップ2354)。その後、切り離したページ管
理テーブル65に対して、要求元の情報を設定する(ス
テップ2355)。
第28図は、本実施例におけるページ置換制御部の処理
フローチャートである。
ページ置換制御部537では、先ずローカリティセット
からのページ置換対象選択要求であるが否かを判定しく
ステップ2371)、要求が置換対象選択要求の場合に
は、指定したローカリティセット内から当該ローカリテ
ィセットの置換アルゴリズムにより、置換対象となるペ
ージのページ管理テーブル65を探す(ステップ237
2)。そして、選択したページ管理テーブル65を、指
定されたローカリティセットのチェインから切り離す(
ステップ2373)。また、置換対象選択要求でない場
合、ローカリティセットへのページ取込み要求であるか
否かを判定しくステップ2374)、ページ取込み要求
の場合には、指定されたページのページ管理テーブル6
5を指定したローカリティセットの置換アルゴリズムに
従って接続する(ステップ2375)。また、要求がペ
ージ取込み要求でない場合には、ローカリティセット内
の指定したページに対する置換要求であるが否がを判定
する(ステップ2376)。ローカリティセット内置換
要求の場合には、指定されたページのページ管理テーブ
ル65を当該ローカリティセットの置換アルゴリズムに
従ってチェインを付は換える(ステップ2377)。
第29図は、本実施例におけるlページ入出力処理部の
処理フローチャートである。
1ページ入出力処理部538では、処理要求が入力要求
であるか(ステップ2380)、出力要求であるか(ス
テップ2382)を判定p、入力要求の場合には、外部
記憶装置4から指定したバッファにページを読込み(ス
テップ2381)、出力要求の場合には、指定したバッ
ファのページを外部記憶装置4に書込む(ステップ23
83)。
第30図は、本実施例における一括入出力処理部の処理
フローチャートである。
一括入出力処理部539では、先ず処理要求が一括入力
要求であるか(ステップ2390)、または−括出力要
求であるかくステップ2394)を判定する。−指入力
要求の場合には、さらにデータベースマシンを利用する
か否かを判定しくステップ2391)、データベースマ
シンを利用しない場合には、外部記憶装置4から指定し
た入出力バッファ群に、第20図(C)に示す処理で作
成した一括入力要求ページ範囲情報(ステップ2331
8)内のページ群を一括して読込む(ステップ2392
)aまた。データベースマシンを利用してデータベース
検索を行う場合には、データベースマシンに対して検索
範囲情報、データベース演算処理要求を発行し、指定し
た入出力バッファ群にデータベース演算処理結果を受信
する〈ステップ2393)。
一方、−括出力要求の場合には、外部記憶装置4に指定
された入出力バッファ群のページを一括して書込む(ス
テップ2395)。
このような方法により、入出力バッファ管理部53にお
いて、1ページ入出力処理と一括入出力処理とを混在し
て入出力処理を行うことができる。
第31図は、第7図における一括入力要求ッファ確保の
一例を示すフローチャートであり、第32図は第5図の
入出力バツファ管理部の他の実施例を示す機能ブロック
構成図である。
第32図において、24は入出力バッファ管理部、24
1はローカリティセット管理テーブル、242はセカン
ダリバッファ管理テーブル、243はフリーバッファ管
理テーブル、244はハツシュブロック管理テーブル、
245はフリーバッファ管理テーブル、246はハツシ
ュブロック管理テーブル、248は非共用バッファ管理
テーブル、247は共用入出力バツファ、249a、b
C・・・は非共用入出力バッファである。
第31図のローカリティセット確保処理部531におい
て、−摺入出力バッファ確保処理(ステップ5313)
では、−摺入出力要求のうち、指入力要求について、デ
ータベースマシンを適用するか否かを判定する(ステッ
プ23130)。データベースマシンを適用しない場合
には、第32図に示す入出力バッファ管理部24の共用
入出力バッファ247からバッファを確保し、ローカリ
ティセット内に確保したバッファのページ管理テーブル
をチェインする(ステップ23131)。また、データ
ベースマシンを適用する場合には、データベースマシン
によりデータベース演算した結果を他ユーザが共用しな
いため、第32図に示す入出力バッファ管理部24の非
共用入出力バツフy 249 a、 、 24.9 b
 、 249 c等から未使用状態のものを確保する(
ステップ23232)aこの非共用入出力バッファ24
9a、b、cは、非共用バッファ管理テーブル248に
より管理され、仮想記憶上でローカリティセットサイズ
分の連続した領域であり、ページ単位に管理する必要が
なく、他ユーザからのバッファに対する干渉を受けない
第33図は、第30図の一括入出力処理の他の実施例を
示す処理フローチャートである。
第33図においては、第30図の一括入出力処理部53
9の処理について、−指入力要求で、かつデータベース
マシン適用有りの場合に、データベースマシンが障害に
より利用できなくなった際の処理を示している。
先ず、−摺入出力処理部539に対する処理要求が、−
指入力要求である場合(ステップ2390)、その−指
入力要求がデータベースマシンを適用するか否かを判定
しくステップ2391)、データベースマシンを適用し
ない場合には、外部記憶装置4から指定したバッファ群
にページを一括して入力する(ステップ2392)。ま
た、−指入力要求がデータベースマシンを適用する場合
には、現在データベースマシンが使用状態にあるか否か
を判定しくステップ2396)、データベースマシンが
使用可能であるときには、データベースマシンに対して
検索範囲、データベース演算処理要求を発行し、指定し
たバッファ群にデータベース演算処理結果を受信する(
ステップ2393)。その後、データベースマシンによ
る演算の結果、データベースマシンに障害が発生したか
否か、つまり正常終了したか否かを判定しくステップ2
397)、データベースマシンに障害が発生したことを
検知すると、データベースマシンを使用不可状態にする
(ステップ2398)。次に、データベースマシンが使
用可能状態か否かを判定しくステップ2396)、使用
不可状態の場合には、データベースマシンの適用を停止
し、外部記憶装置4から指定したバッファ群にページを
一括して読込む(ステップ2392)。これにより、デ
ータベースマシンが使用不可状態になっても、入力処理
を代えることにより問合せ処理を継続することが可能で
ある。
このように、本発明においては、(a)データベース問
合せにより、仮想空間上の入出力バツファが不足状態に
なっても、拡張記憶装置上の入出力バッファにデータを
一部退避することにより、退避されたデータを格納して
いた入出力バッファを使用できるので、入出力バッファ
不足による処理待ちが解消される。また、拡張記憶装置
にデータが退避されているので、拡張記憶装置上のデー
タが参照される場合には、拡張記憶装置から仮想空間上
の入出力バッファにデータを復元すればよく、従って外
部記憶装置に対する入出力処理が削減できる。また、拡
張記憶装置に対する主記憶装置上のデータの退避、復元
に要する時間は、外部記憶装置に対するアクセス時間よ
りも大幅に短かいため、データベース管理システムの性
能を向上させることができる。
(b)さらに、仮想空間上の入出力バッファについて、
あるバッファのデータが更新されると、外部記憶装置に
対する出力要求有の状態にするとともに、入出力バッフ
ァの置換アルゴリズムにより、外部記憶装置に出力され
るまでの間は、主記憶装置にページ固定されるので、オ
ペレーティングシステムのページング管理により、ペー
ジアウト、ページイン処理による入出力処理を削減する
ことが可能である。また、入出力バツファに対する複数
ページの先読みを行う場合には、予めバッファ群を主記
憶装置上にページ固定するので、全てのページについて
データベース演算処理が終了するまで、オペレーティン
グシステムのベージング管理の対象から外されるため、
余分な入出力処理が削減される。
さらに、外部記憶装置」二のデータベースから入力した
データを拡張記憶装置に退避することにより、入出力バ
ツファ管理部からのデータ入力要求に対して、外部記憶
装置からの入力処理を必要最小限にすることができ、そ
れに伴って入力処理時間も短縮される。
(C)また、データベース問合せ要求が逐次的に全件検
索を行うような場合、当該データベース参照特性に適し
た一括入力処理を行う入出力バツファ管理機能を備える
ことによ番ハ予め確保しておいたバッファは逐次上書き
して読込むので、他の問合せ要求による入出力バツファ
の利用効率に影響を及ぼすことがなく、その結果、ペー
ジ不在を減少させることができる。また、データベース
マシンが適用できる場合には、入出力バッファを共用バ
ッファと非共用バッファとに分けて、データベースマシ
ンによる演算結果を非共用バッファに受信することによ
り、共用バッファ内のページの共用度を減退させない。
(d)さらに、データベース問合せ要求が逐次的な大量
データの更新を行う場合、ローカリティセット中の出力
要求バッファ数がローカリティセットサイズと等しくな
ると、外部記憶装置に一括してまとめ書きを行ってから
セカンダリバ・ソファとするため、他の参照処理を行う
問合せがページ不在を起こした場合に、セカンダリバッ
ファ中の出力要求が出ているバッファを選択することが
少なくなり、不要な入出力処理を削減できる。
(e)また、−指入力処理において、データベースマシ
ンを適用してアクセスする場合、データベースマシンに
障害が発生したことを検知すると、データベースマシン
を使用不可状態にして、それ以降はデータベースマシン
を適用する要求をデータベースマシンに適用しない一括
入力処理に代えることにより、処理を停止せずに継続さ
せることが可能である。
〔発明の効果] 以上説明したように、本発明によれば、(イ)仮想記憶
上の入出力バツファのデータを、目的に応じて拡張記憶
装置上の入出力バツファに退避するので、外部記憶装置
に対する入出力処理を削減し、入出力バッファを効率よ
く利用することができる。
また、(ロ)外部記憶装置への出力要求の予約、あるい
は入力要求が複数ページ単位の先読み処理要求が出され
た場合、主記憶装置上にページ固定を行うことにより、
入出力バッファを効率よく利用することができる。また
、(ハ)外部記憶装置上のデータベースを拡張記憶装置
上にも配置することにより、外部記憶装置に対する入出
力処理を削減し、かつ入出力バッファ管理の入出力処理
時間を短縮することができる。また、(ニ)バッファへ
の先読み動作、または外部記憶装置へのまとめ書き動作
を行うとき、それらの動作単位を決定することにより、
入出力時間を削減し、入出力バツファを効率よく利用す
ることができる。さらに、(ホ)データベースマシンに
障害が発生した場合にも、検索要求の取止めや複数ペー
ジまたは1ページ入出力動作の入出力に切り換えること
により、入出力バッファを効率よく利用することができ
る。
【図面の簡単な説明】
第1図は本発明の第1の実施例を示すバッファ管理方法
を適用した計算機システムの全体ブロック図、第2図は
第1図における計算機システムのハードウェア構成図、
第3図は第1図における入出力バッファ部のテーブル関
連図、第4図は第1図におけるハツシュブロック管理テ
ーブルの構成例を示す図、第5図は第1図における入出
力バッファ管理部の機能ブロック図、第6図は第5図に
おける入出力要求解析部の処理フローチャート、第7図
は第5図におけるローカリティセット確保処理部の処理
フローチャート、第8図は第1図における各管理テーブ
ルに格納された情報を示す図、第9図は第5図における
ローカリティセット解放処理部の処理フローチャート、
第10図は第5図におけるローカリティセット管理部の
処理フローチャート、第11図は第5図におけるバッフ
ァサーチ処理部の処理フローチャート、第12図は第5
図におけるセカンダリバッファ管理部の処理フローチャ
ート、第13図は第5図におけるフリーバッファ管理部
の処理フローチャート、第14図は第5図におけるペー
ジ置換M御部の処理フロチャー1・、第1S図は第5図
における1ページ入出力処理部の処理フローチャート、
第16図は第5図における一括入出力処理部の処理フロ
ーチャート、第17図は本発明の第2の実施例を示す説
明図、第18図は本発明の第3の実施例に係るデータベ
ースの配置と入出力バッファ部の関連図、第19図は第
2の実施例を示す入出力バッファ管理部の処理フローチ
ャート、第20図は第2の実施例を示すローカリティセ
ット管理部の処理フロチャート、第21図は本発明の第
4の実施例を示すバッファ管理方法を適用した計算機シ
ステムの全体ブロック図、第22図は第21図における
入出力バッファ部の各管理テーブルの関連図、第23図
は第21図におけるハツシュブロック管理テーブルと入
出力バッファとの関連図、第24図は第21図における
各管理テーブルに格納される情報の図、第25図はセカ
ンダリバッファ管理部の処理フローチャート、第26図
はフリーバッファ管理部の処理フローチャート、第27
図はバッファサーチ処理部の処理フローチャート、第2
8図はページ置換制御部の処理フローチャート、第29
図は1ページ入出力処理部の処理フローチャート、第3
0図は一括入出力処理部の処理フローチャート、第31
図はローカリティセット確保処理部における一話入出力
用バツファ確保処理のフローチャート、第32図は本実
施例の変形例を示す入出力バッファ管理部の機能ブロッ
ク図、第33図はデータベースマシンの障害時の一括入
出力処理部の処理フローチャートである。 1:CPU、2:主記憶装置、3:拡張記憶装置、4.
外部記憶装置、5:仮想空間、30:拡張入出力バッフ
ァ、40:データベース、51データベース問合せ要求
解析部、52・データベース演算処理部、53・入出力
バッファ管理部、60:入出力バッファ部、61:ロー
カリティセット管理テーブル、62:セカンダリバッフ
ァ管理テーブル、63:フリーバッファ管理テーブル、
64:ハツシュブロック管理テーブル、65:ページ管
理テーブル、66:共有ページ管理テーブル、67:拡
張ページ管理テーブル、68:入出力バッファ、530
:入出力要求解析部、5310一カリテイセツト確保処
理部、532:ローカリティセット解放処理部、533
:ローカリティセット管理部、534:セカンダリバッ
ファ管理部、535・フリーバッファ管理部、535:
バッファサーチ処理部、537:ページ置換制御部、5
38・1ページ入出力処理部、539ニ一括入出力処理
部、300,301;拡張入出力バッファ、680,6
81,682:仮想空間上の1ページ分のバッファ、3
02:データベース格納用拡張入出力バッファ、24:
入出力バッファ管理部、241:ローカリティセット管
理テーブル。 242:セカンダリバッファ管理テーブル、243:フ
リーバッファ管理テーブル、244:ハツシュブロック
管理テーブル、245:フリーバッファ管理テーブル、
246:ハツシュブロック管理テーブル、248:非共
用バッファ管理テーブル、247:共用入出力バッファ
、249a、249b、249c:非共用入出力バッフ
ァ。 第 図 第 3 図 第 図 第 7 図 第 9 図 第 図(その2) (c) 第 図(その2) 第 1 図 第 図 第 1 図 (b) 第 図 拡張入出力バッフ7A 第 図(その2) 第 2 図 45J 245に 第 図(その1) (at 6エ 第 図 第 図(その2) 第 2 図 第 図 第 3 図

Claims (1)

  1. 【特許請求の範囲】 1、主記憶装置と、該主記憶装置の容量を拡張する拡張
    記憶装置と、該主記憶装置との間で入出力動作を行う外
    部記憶装置とを備えた計算機システムのバッファ管理方
    法において、上記主記憶装置上に確保した入出力バッフ
    ァ群と上記拡張記憶装置上に確保した入出力バッファ群
    とを設け、該主記憶装置上の入出力バッファが不足する
    場合には、入出力バッファ管理プログラムモジュールに
    より該拡張記憶装置上の入出力バッファに該主記憶装置
    上の入出力バッファ上のデータの一部を退避し、該拡張
    記憶装置に退避したデータが格納されていた該主記憶装
    置上の入出力バッファを利用して、データの入出力処理
    を行うことを特徴とするバッファ管理方法。 2、前記外部記憶装置上に蓄積されたデータベースを管
    理するデータベース管理システムの入出力バッファ管理
    プログラムモジュールにおいて、前記主記憶装置上に確
    保した入出力バッファ群と前記拡張記憶装置上に確保し
    た入出力バッファ群とを管理するプログラムモジュール
    を設け、該主記憶装置上の入出力バッファが不足した場
    合には、上記入出力バッファ管理プログラムモジュール
    は、上記拡張記憶装置上に確保した入出力バッファに主
    記憶装置上の入出力バッファの置換アルゴリズムにより
    ページ置換の対象となったデータを退避し、退避したデ
    ータが格納されていた該主記憶装置上の入出力バッファ
    群を使用して、データの入出力処理を行うことを特徴と
    する請求項1に記載のバッファ管理方法。 3、前記入出力バッファ管理プログラムモジュールは、
    アクセス対象となったデータページが前記拡張記憶装置
    上の入出力バッファに存在する場合には、前記主記憶装
    置上の入出力バッファの置換アルゴリズムによりページ
    置換の対象となったバッファに復元して、データの入出
    力処理を行うことを特徴とする請求項1または2に記載
    のバッファ管理方法。4、前記入出力バッファ管理プロ
    グラムモジュールは、ユーザからの問合せによりソート
    ・マージ法による中間ファイルを作成する場合、前記主
    記憶装置上にソート・マージ処理で同時に必要とする最
    小限の入出力バッファを確保し、前記拡張記憶装置上に
    中間ファイルを格納するための第1の入出力バッファ群
    および第2の入出力バッファ群を確保し、第1段階では
    、データベースからデータを該主記憶装置上の入出力バ
    ッファ上に読込み、ソート・マージ処理を行った結果の
    中間ファイルを該拡張記憶装置上の第1の入出力バッフ
    ァ群に退避し、第2段階では、該拡張記憶装置上の第1
    の入出力バッファ群からデータを該主記憶装置上の入出
    力バッファに復元し、次にソート・マージ処理した結果
    の中間ファイルを該拡張記憶装置上の第2の入出力バッ
    ファ群に退避し、この動作をソート・マージ処理が終了
    するまで、該拡張記憶装置上の第1および第2の入出力
    バッファ群を交互に使用してデータの入出力処理を行う
    ことを特徴とする請求項1〜3のいずれかに記載のバッ
    ファ管理方法。 5、前記主記憶装置上の入出力バッファが前記データベ
    ース管理システムの履歴情報管理用バッファである場合
    、該主記憶装置上に確保した入出力バッファに履歴情報
    が満杯となったときには、該入出力バッファの履歴情報
    の全部ないし一部を前記拡張記憶装置上に確保した入出
    力バッファに退避し、システム障害時のデータベース回
    復処理時に、該拡張記憶装置上の入出力バッファに退避
    した履歴情報を該主記憶装置上の入出力バッファに復元
    することにより、履歴情報の入出力処理を行うことを特
    徴とする請求項1に記載のバッファ管理方法。 6、前記データベース管理システムの入出力バッファ管
    理用プログラムモジュールは、データベースに対する問
    合せ毎に入出力バッファ群を分割するローカリティセッ
    ト管理を行って、上記問合せのデータベースへのアクセ
    ス特性に適合するローカリティセット置換アルゴリズム
    を決定してデータの入出力処理を行い、上記問合せ実行
    時に、入出力バッファからローカリティセットサイズ分
    のバッファを確保できないときには、不足するサイズ分
    のバッファを前記拡張記憶装置上から確保して、前記主
    記憶装置上の入出力バッファで確保したサイズを越える
    データの入力を行う場合、当該ローカリティセット置換
    アルゴリズムによりページ置換の対象となったデータペ
    ージを該拡張記憶装置上の入出力バッファに退避し、上
    記ページ置換の対象となった該主記憶装置上の入出力バ
    ッファにデータを入力することを特徴とする請求項1ま
    たは2に記載のバッファ管理方法。 7、前記データベースは複数のリレーションを含むリレ
    ーショナルデータベースであり、ユーザからの問合せで
    アクセスするリレーションを前記ローカリティセットを
    介してデータの授受を行い、該ローカリティセットは該
    リレーシヨンへのアクセス特性に適合する置換アルゴリ
    ズムにより、各リレーションのデータページを保持する
    前記主記憶装置上の入出力バッファ、ないし前記拡張記
    憶装置上の入出力バッファを置換制御することを特徴と
    する請求項6に記載のバッファ管理方法。 8、データベース管理システムにより管理され、仮想記
    憶システムの仮想記憶空間上に確保された主記憶装置上
    の入出力バッファの管理方法において、該入出力バッフ
    ァは1面毎に、該入出力バッファの仮想記憶領域上の位
    置情報と、該入出力バッファに格納されたデータベース
    のデータページ情報と、該データページのデータに対す
    る更新の有無を示す更新フラグとを記憶する管理テーブ
    ルを有し、ユーザからの問合せにより該入出力バッファ
    に格納されているデータページのデータが更新されて、
    上記データベース管理システムの入出力バッファ管理用
    プログラムモジュールに対し、上記入出力バッファ上に
    格納されているデータページに対する外部記憶装置のデ
    ータベースへの出力要求が発生すると、該入出力バッフ
    ァ管理用プログラムモジュールは上記管理テーブルの更
    新フラグをオンにして、仮想記憶上の該入出力バッファ
    の領域を上記主記憶装置上に固定する処理を行うことを
    特徴とするバッファ管理方法。 9、前記入出力バッファ管理用プログラムモジュールは
    、前記入出力バッファの置換アルゴリズムによりページ
    置換の対象となった入出力バッファの管理テーブルの更
    新フラグを判別し、前記更新フラグがオンになっている
    時には、外部記憶装置上に蓄積されたデータベースに上
    記入出力バッファのデータを出力して、主記憶装置上に
    固定された仮想記憶上の上記入出力バッファの領域に対
    する固定を解除する処理を行い、該更新フラグをオフに
    することを特徴とする請求項8に記載のバッファ管理方
    法。 10、データベース管理システムにより管理され、仮想
    記憶システムの仮想記憶空間上に確保された主記憶装置
    上の入出力バッファの管理方法において、該入出力バッ
    ファは1面毎に、該入出力バッファの仮想記憶領域上の
    位置情報と、該入出力バッファに格納されたデータベー
    スのデータページ情報と、該入出力バッファを上記主記
    憶装置上に固定したことを示すページ固定フラグとを記
    憶する管理テーブルを有し、ユーザからの問合せにより
    上記データベース管理システムの入出力バッファ管理用
    プログラムモジュールに対し、外部記憶装置上に蓄積さ
    れたデータベースからの複数ページ単位の入力要求が発
    生すると、上記入出力バッファ管理用プログラムモジュ
    ールはデータページ入力用に確保した入出力バッファ群
    に対して、上記主記憶装置上に固定する処理を行い、各
    入出力バッファの管理テーブルページ固定フラグをオン
    にする処理を行うことを特徴とするバッファ管理方法。 11、前記入出力バッファ管理用プログラムモジュール
    は、入力した前記複数ページのデータページについて1
    ページずつデータベース演算処理を行い、該処理が終了
    すると、該データページの入出力バッファに対して主記
    憶装置上の固定を解除する処理を行い、該入出力バッフ
    ァの管理テーブルのページ固定フラグをオフにすること
    を特徴とする請求項10に記載のバッファ管理方法。 12、主記憶装置と、該主記憶装置の容量を拡張する拡
    張記憶装置と、該主記憶装置との間で入出力動作を行う
    外部記憶装置とを備えた計算機システムのバッファ管理
    方法において、上記外部記憶装置上のデータベースを上
    記拡張記憶装置上にも展開し、入出力バッファ管理用プ
    ログラムモジュールはデータの入力処理要求に対して、
    上記拡張記憶装置上にないデータを上記外部記憶装置上
    のデータベースから入力し、該データを該拡張記憶装置
    上にも退避して、データの入出力処理を行うことを特徴
    とするバッファ管理方法。 13、前記入出力バッファ管理用プログラムモジュール
    は、入出力バッファの置換アルゴリズムにより、ページ
    置換の対象となった入出力バッファのデータに対して出
    力要求があったときには、前記外部記憶装置上のデータ
    ベースへの出力処理と前記拡張記憶装置上の同一データ
    を持つ入出力バッフアへの更新処理を行うことを特徴と
    する請求項12に記載のバッファ管理方法。 14、前記入出力バッファ管理用プログラムモジュール
    は、システム開始時に、前記外部記憶装置上のデータベ
    ースのデータを前記拡張記憶装置上に確保した入出力バ
    ッファに初期ロードし、該初期ロードでは、該外部記憶
    装置からブロック単位(例えば、トラック単位)による
    一括入力を行って、データの入出力処理を行うことを特
    徴とする請求項12または13に記載のバッファ管理方
    法。 15、データページに対する複数のユーザからの問合せ
    を解析して、対応する内部処理手順を決定し、決定され
    た手順に従って処理を実行するデータベース管理システ
    ムにおいて、該データベース管理システムの入出力バッ
    ファ管理用プログラムモジュールは、主記憶装置上の入
    出力バッファ群と上記データベースを格納する外部記憶
    装置との間で、データページを1ページ単位で入出力す
    るサブモジュールと、データページを複数ページ単位で
    入出力するサブモジュールとを有し、該データベースに
    対する問合せ毎に上記入出力バッファ群を分割するロー
    カリティセット管理を行い、上記問合せのデータベース
    へのアクセス特性に適合したローカリティセット置換ア
    ルゴリズムを決定して、データの入出力処理を行うこと
    を特徴とするバッファ管理方法。 16、前記データベースは、複数のリレーションを含む
    リレーショナルデータベースであり、ユーザからの問合
    せによりアクセスするリレーションを、前記ローカリテ
    ィセットを介してデータの授受を行い、該ローカリティ
    セットは上記リレーシヨンへのアクセス特性に適合する
    置換アルゴリズムにより、各リレーションのデータペー
    ジを保持するバッファを置換制御することを特徴とする
    請求項15に記載のバッファ管理方法。 17、前記入出力バッファ群は、各問合せによりアクセ
    スの対象となるデータページの入ったバッファ群(ロー
    カリティセット)を持つ第1の状態と、各ローカリティ
    セットから置換制御により各ローカリティセットサイズ
    を越えるデータページを保持するバッファを外し、置換
    アルゴリズムによりチェインされるバッファ群(セカン
    ダリバッフア)を持つ第2の状態と、未だデータページ
    が保持されていないバッファを置換アルゴリズムにより
    チェインされるバッファ群(フリーバッファ)を持つ第
    3の状態とを含むことを特徴とする請求項15または1
    6に記載のバッファ管理方法。 18、前記入出力管理用プログラムモジュールが複数ペ
    ージ単位で入出力処理を行う場合、リレーションに対し
    て逐次的に全タプルをアクセスしながら全タプルの更新
    処理を行う際には、複数ページ単位で一括してデータペ
    ージ群を入力した後、読込んだデータページ群のタプル
    の更新処理を完了すると、次の一括入力を行う直前に、
    上記更新したデータページ群を前記外部記憶装置に対し
    一括して出力することを特徴とする請求項15〜17の
    いずれかに記載のバッファ管理方法。 19、前記主記憶装置と外部記憶装置との間で、該外部
    記憶装置から該主記憶装置にデータ転送を行う場合、デ
    ータベース演算処理を行うデータベースマシンを利用し
    、該データベースマシンにより与えられた検索範囲内の
    全てのデータページを出力する動作と、与えられた検索
    条件式を満足するタプル(レコード)を少なくとも1つ
    以上含むデータページを出力する動作を行うように制御
    することを特徴とする請求項15〜18のいずれかに記
    載のバッファ管理方法。 20、前記データベースマシンにより与えられた検索範
    囲内の全てのデータページを出力する動作においては、
    入出力バッファから検索範囲数分のデータページを受信
    するに足るバッファ群を確保し、上記入出力バッファ内
    に与えられた検索範囲のデータページが存在するか否か
    を判定して、ページ不在となったページのみを前記確保
    したバッファ群に読込み、使用しなかった入出力バッフ
    ァは次の入力要求に備え保持したままにすることを特徴
    とする請求項19に記載のバッファ管理方法。 21、前記データベースマシンにより与えられた検索条
    件式を満足するタプル(レコード)を少なくとも1つ以
    上含むデータページを出力する動作においては、入出力
    バッファから少なくとも1ページ分以上のデータページ
    を受信するに足る入出力バッファを確保し、該入出力バ
    ッファ内に与えられた検索範囲のデータページが存在す
    るか否かを判定し、ページ不在となったページ情報と検
    索条件式をデータベースマシンに与え、該検索条件式を
    満足するタプル(レコード)を少なくとも1つ以上含む
    データページを前記確保したバッファに受信することを
    特徴とする請求項19に記載のバッファ管理方法。 22、前記データベースマシンに障害が発生したことを
    検知した場合には、該データベースマシンによる検索要
    求を取止め、それ以降は前記データページを1ページ単
    位で入出力する入出力管理用プログラムサブモジュール
    と、データページを複数ページ単位で入出力する入出力
    管理用プログラムサブモジュールとを用いて、データの
    入出力を行うことを特徴とする請求項19に記載のバッ
    ファ管理方法。
JP04404690A 1989-05-29 1990-02-23 バッファ管理方法 Expired - Fee Related JP3453757B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP04404690A JP3453757B2 (ja) 1989-05-29 1990-02-23 バッファ管理方法
US07/530,026 US5237661A (en) 1989-05-29 1990-05-29 Buffer management method and system therefor using an I/O buffer on main memory and utilizing virtual memory and page fixing

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP13488789 1989-05-29
JP1-134887 1989-05-29
JP04404690A JP3453757B2 (ja) 1989-05-29 1990-02-23 バッファ管理方法

Publications (2)

Publication Number Publication Date
JPH0373036A true JPH0373036A (ja) 1991-03-28
JP3453757B2 JP3453757B2 (ja) 2003-10-06

Family

ID=26383896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04404690A Expired - Fee Related JP3453757B2 (ja) 1989-05-29 1990-02-23 バッファ管理方法

Country Status (2)

Country Link
US (1) US5237661A (ja)
JP (1) JP3453757B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001216725A (ja) * 2000-02-01 2001-08-10 Yamaha Corp 記録再生装置
JP2006127418A (ja) * 2004-11-01 2006-05-18 Hitachi Ltd 計算機システム、計算機、データベースアクセス方法及びデータベースシステム
JP2007065978A (ja) * 2005-08-31 2007-03-15 Hitachi Ltd 計算機システム及びデータベース管理システムプログラム
JP2007299021A (ja) * 2006-04-27 2007-11-15 Hitachi Ltd インデクス更新方法及びそのシステム
JP2012014739A (ja) * 2011-10-12 2012-01-19 Hitachi Ltd 計算機システム及びデータベース管理システムプログラム

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7610452B1 (en) * 1989-10-31 2009-10-27 Canon Kabushiki Kaisha Data processing system wherein data is stored in a memory and an external storage in parallel
US5448728A (en) * 1991-08-08 1995-09-05 Sharp Kabushiki Kaisha Storage medium control system for controlling a write-once read-many storage medium
US5367637A (en) * 1992-03-26 1994-11-22 International Business Machines Corporation Self-tuning virtual storage management for dedicated real-time computer system
US5432917A (en) * 1992-04-22 1995-07-11 International Business Machines Corporation Tabulation of multi-bit vector history
US5875442A (en) * 1992-08-03 1999-02-23 International Business Machines Corporation Method and apparatus for enhancing access to a remote database employing dynamic buffer management
JP2842738B2 (ja) * 1992-08-25 1999-01-06 富士通株式会社 オンライン処理システム
JP3612339B2 (ja) * 1992-10-23 2005-01-19 株式会社日立製作所 データ処理方法および装置
US5440692A (en) * 1992-10-27 1995-08-08 Bmc Software, Inc. Method of dynamically expanding or contracting a DB2 buffer pool
US5371867A (en) * 1992-11-10 1994-12-06 International Business Machines Corporation Method of using small addresses to access any guest zone in a large memory
JPH07175698A (ja) * 1993-12-17 1995-07-14 Fujitsu Ltd ファイルシステム
US5673381A (en) * 1994-05-27 1997-09-30 Cheyenne Software International Sales Corp. System and parallel streaming and data stripping to back-up a network
JP3699733B2 (ja) * 1994-08-10 2005-09-28 株式会社日立製作所 タプル単位排他制御方式
JP3515810B2 (ja) * 1994-08-16 2004-04-05 富士通株式会社 ソート処理方法および装置
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
JP2964926B2 (ja) * 1995-08-29 1999-10-18 富士ゼロックス株式会社 データベース管理装置及び方法
US5835633A (en) * 1995-11-20 1998-11-10 International Business Machines Corporation Concurrent two-stage multi-network optical character recognition system
JP3122606B2 (ja) * 1995-12-15 2001-01-09 株式会社日立製作所 メッセージ受信制御方式
US5745904A (en) * 1996-01-12 1998-04-28 Microsoft Corporation Buffered table user index
US5907717A (en) * 1996-02-23 1999-05-25 Lsi Logic Corporation Cross-connected memory system for allocating pool buffers in each frame buffer and providing addresses thereof
US5799210A (en) * 1996-04-18 1998-08-25 Oracle Corporation Method for allocating either private or shared buffer memory for storing data from sort operations in accordance with an assigned value or threshold value
US5797016A (en) * 1996-10-29 1998-08-18 Cheyenne Software Inc. Regeneration agent for back-up software
US5963396A (en) * 1997-04-02 1999-10-05 Marburg Technology, Inc. Glide head with an outside active rail
US5958026A (en) * 1997-04-11 1999-09-28 Xilinx, Inc. Input/output buffer supporting multiple I/O standards
US6317427B1 (en) * 1997-04-24 2001-11-13 Cabletron Systems, Inc. Method and apparatus for adaptive port buffering
JP2001505752A (ja) * 1997-08-20 2001-04-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数のレベルのハウスキーピングに適合されたソフトウェアマネジメントを備える一時データストリーム処理バッファメモリ編成
US6092163A (en) 1998-12-04 2000-07-18 W. Quinn Associates, Inc. Pageable filter driver for prospective implementation of disk space quotas
US6865154B1 (en) 1998-01-12 2005-03-08 Enterasys Networks, Inc. Method and apparatus for providing bandwidth and delay guarantees in combined input-output buffered crossbar switches that implement work-conserving arbitration algorithms
US6563837B2 (en) 1998-02-10 2003-05-13 Enterasys Networks, Inc. Method and apparatus for providing work-conserving properties in a non-blocking switch with limited speedup independent of switch size
US6072772A (en) * 1998-01-12 2000-06-06 Cabletron Systems, Inc. Method for providing bandwidth and delay guarantees in a crossbar switch with speedup
US6301224B1 (en) 1998-01-13 2001-10-09 Enterasys Networks, Inc. Network switch with panic mode
US6112251A (en) 1998-01-13 2000-08-29 Cabletron Systems, Inc. Virtual local network for sending multicast transmissions to trunk stations
US6469987B1 (en) 1998-01-13 2002-10-22 Enterasys Networks, Inc. Virtual local area network with trunk stations
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US6389488B1 (en) * 1999-01-28 2002-05-14 Advanced Micro Devices, Inc. Read ahead buffer for read accesses to system memory by input/output devices with buffer valid indication
US6822966B2 (en) 1999-03-01 2004-11-23 Enterasys Networks, Inc. Allocating buffers for data transmission in a network communication device
US6105076A (en) * 1999-04-23 2000-08-15 International Business Machines Corporation Method, system, and program for performing data transfer operations on user data
US6542951B1 (en) * 1999-08-04 2003-04-01 Gateway, Inc. Information handling system having integrated internal scalable storage system
US7177856B1 (en) * 2001-10-03 2007-02-13 International Business Machines Corporation Method for correlating data from external databases
US7302503B2 (en) * 2002-04-01 2007-11-27 Broadcom Corporation Memory access engine having multi-level command structure
JP2003323390A (ja) * 2002-05-08 2003-11-14 Nec Corp 外部入出力デバイス競合管理システム及びその管理方法並びにプログラム
KR20020067028A (ko) * 2002-07-25 2002-08-21 두산티엠에스주식회사 외장형 데이터베이스 관리 장치
US7203775B2 (en) * 2003-01-07 2007-04-10 Hewlett-Packard Development Company, L.P. System and method for avoiding deadlock
US7827282B2 (en) * 2003-01-08 2010-11-02 At&T Intellectual Property I, L.P. System and method for processing hardware or service usage data
US7080060B2 (en) * 2003-01-08 2006-07-18 Sbc Properties, L.P. System and method for intelligent data caching
US7318076B2 (en) * 2003-01-22 2008-01-08 Intelitrac, Inc. Memory-resident database management system and implementation thereof
US7043623B2 (en) * 2003-01-22 2006-05-09 Intelitrac, Inc. Distributed memory computing environment and implementation thereof
CA2433254A1 (en) * 2003-06-25 2004-12-25 Ibm Canada Limited - Ibm Canada Limitee System and method for warm shutdown and restart of a buffer pool
US7222117B1 (en) 2003-11-14 2007-05-22 Advent Software, Inc. Segmented global area database
US20050187984A1 (en) * 2004-02-20 2005-08-25 Tianlong Chen Data driven database management system and method
US7689005B2 (en) * 2004-03-10 2010-03-30 Yingbin Wang Apparatus and method for biometric database management system
KR100689762B1 (ko) * 2005-01-25 2007-03-08 심상엽 데이터베이스 시스템 및 그 데이터베이스 시스템의데이터베이스 컴포넌트를 메인 메모리에 저장하는 시스템및 방법
US20080256099A1 (en) * 2005-09-20 2008-10-16 Sterna Technologies (2005) Ltd. Method and System For Managing Data and Organizational Constraints
US8046557B2 (en) 2005-12-05 2011-10-25 Intelitrac Inc. Apparatus and method for on-demand in-memory database management platform
KR20090034629A (ko) * 2007-10-04 2009-04-08 삼성전자주식회사 쓰기 버퍼를 포함하는 저장장치 및 그 제어 방법
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
US8886671B1 (en) 2013-08-14 2014-11-11 Advent Software, Inc. Multi-tenant in-memory database (MUTED) system and method
TWI566229B (zh) * 2015-06-03 2017-01-11 友達光電股份有限公司 顯示裝置之時序控制器及其操作方法
US10657274B2 (en) * 2015-06-29 2020-05-19 Samsng Electronics Co., Ltd. Semiconductor device including memory protector
US10331600B1 (en) 2016-03-31 2019-06-25 EMC IP Holding Company LLC Virtual I/O queuing
US10007443B1 (en) * 2016-03-31 2018-06-26 EMC IP Holding Company LLC Host to device I/O flow

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6035692B2 (ja) * 1981-03-31 1985-08-16 富士通株式会社 バッファ管理方式
US4569034A (en) * 1982-07-19 1986-02-04 International Business Machines Corporation Method and apparatus which allows the working storage to be reconfigured according to demands for processing data input
US5043871A (en) * 1986-03-26 1991-08-27 Hitachi, Ltd. Method and apparatus for database update/recovery

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001216725A (ja) * 2000-02-01 2001-08-10 Yamaha Corp 記録再生装置
JP2006127418A (ja) * 2004-11-01 2006-05-18 Hitachi Ltd 計算機システム、計算機、データベースアクセス方法及びデータベースシステム
US7693816B2 (en) 2004-11-01 2010-04-06 Hitachi, Ltd. Computer system, computer, data access method and database system
JP2007065978A (ja) * 2005-08-31 2007-03-15 Hitachi Ltd 計算機システム及びデータベース管理システムプログラム
JP2007299021A (ja) * 2006-04-27 2007-11-15 Hitachi Ltd インデクス更新方法及びそのシステム
JP2012014739A (ja) * 2011-10-12 2012-01-19 Hitachi Ltd 計算機システム及びデータベース管理システムプログラム

Also Published As

Publication number Publication date
JP3453757B2 (ja) 2003-10-06
US5237661A (en) 1993-08-17

Similar Documents

Publication Publication Date Title
JPH0373036A (ja) バッファ管理方法
US6792518B2 (en) Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies
US5287496A (en) Dynamic, finite versioning for concurrent transaction and query processing
US6934822B2 (en) Organization of multiple snapshot copies in a data storage system
US6957362B2 (en) Instantaneous restoration of a production copy from a snapshot copy in a data storage system
US5915129A (en) Method and system for storing uncompressed data in a memory cache that is destined for a compressed file system
Elhardt et al. A database cache for high performance and fast restart in database systems
US7266669B2 (en) File system with file management function and file management method
EP0762302B1 (en) Single transaction technique for a journaling file system of a computer operating system
US6216199B1 (en) Hardware mechanism for managing cache structures in a data storage system
US6467021B1 (en) Data storage system storing data of varying block size
US7809888B1 (en) Content-aware caching techniques
US20120271799A1 (en) Apparatus and Method for Hardware-Based File System
JPH0612386A (ja) プロセス内のスレッドを同期するための方法およびシステム
JPH04337850A (ja) データベース・トランザクション及び照会処理システム
US5504857A (en) Highly available fault tolerant relocation of storage with atomicity
JP2003337727A (ja) キャッシュ制御プログラム
JPH06139120A (ja) ファイルの更新方式
US20220129428A1 (en) Database key compression
US20230350916A1 (en) Storage system and data replication method in storage system
US20030115408A1 (en) Cache storage system and method
JP3485598B2 (ja) ファイルの配置方法、データ多重化方法及びデータ処理システム
JP3378594B2 (ja) データベース再配置を行う処理装置
US6851021B2 (en) Methods and systems for efficiently managing persistent storage
JPH04242842A (ja) データベースバッファ制御装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070725

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080725

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees