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

バッファ管理方法

Info

Publication number
JP3453757B2
JP3453757B2 JP04404690A JP4404690A JP3453757B2 JP 3453757 B2 JP3453757 B2 JP 3453757B2 JP 04404690 A JP04404690 A JP 04404690A JP 4404690 A JP4404690 A JP 4404690A JP 3453757 B2 JP3453757 B2 JP 3453757B2
Authority
JP
Japan
Prior art keywords
buffer
input
page
output
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP04404690A
Other languages
English (en)
Other versions
JPH0373036A (ja
Inventor
信男 河村
正士 土田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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

Landscapes

  • Engineering & Computer Science (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)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データベース問合せ要求に応じて、データ
ベース参照特性を利用するバッファ管理方法に関し、特
に仮想記憶システム上で動作する外部記憶装置からのデ
ータ入出力管理機能を有するプログラムのバッファ管理
方法において、主記憶装置と拡張記憶装置とを利用して
データの入出力を効率的に行うバッファ管理方法に関す
る。
〔従来の技術〕
データベース管理システムにおいて、外部記憶装置に
蓄積されたデータベースに対するデータの入出力管理方
法としては、主記憶上にデータを確保した入出力バッフ
ァによるバッファ管理機能により行われるのが一般的で
ある。
従来は、この入出力バッファ管理の手法として、LRU
(Least Recently Used)等の方法でチェイン付けし
た管理を行っていた。しかし、この方法では、新たに必
要となったデータページが入出力バッファ中に存在する
か否かを判定する場合、入出力バッファのチェイン全体
をシリアルにサーチする必要があるため、バッファのサ
ーチに時間がかかっていた。
これに関しては、例えば、特開昭57−169983号公報に
開示されているようなハッシング手法を用いて、バッフ
ァサーチ時間を最小限に改善することができる。
また、前記データベース管理システムのうち、リレー
ショナルデータベース管理システムにおいては、データ
ベースはユーザから二次元の表形式で見られるリレーシ
ョンから成り、かつこのリレーションは複数のダブル
(レコード)から構成されている。上記リレーション
は、データベース管理システムの入出力単位、すなわち
物理的に固定長の複数のデータページに格納されてい
る。リレーショナルデータベース管理システムにおいて
は、一般に、データを外部記憶装置中で表形式にとらわ
れないランダムな位置に格納しているため、外部記憶装
置中のデータを効率よく主記憶装置に転送する必要があ
る。また、データベース処理においては、逐次的にアク
セスする型の処理とランダムにアクセスする型の処理と
が混在する場合、入出力バッファの管理として、上記LR
U方式を用いたのでは入出力回数が増大してしまう。す
なわち、データを逐次的にアクセスする場合には、デー
タベースからのデータ入力として一括入力(複数ページ
入力)することが一般的である。また、リレーション中
の全データに対して更新を行った場合には、一括出力
(複数ページ単位出力)を行った方が、1ページ単位で
入出力を行うよりも効率的であることは、よく知られて
いる。しかし、従来のデータベースシステムにおいて
は、上述のようにデータベースに対する1ページ単位の
入出力と複数ページ単位の入出力とを混在させて、1つ
の入出力バッファ・プールの中で管理するという方法
は、未だ実用化されていない。
前述のリレーショナルデータベース管理システムで
は、入力された問合せを解析して内部処理手順を作成す
るので、ユーザはデータベースに対するアクセス手順を
決める必要はなく、データベース管理システム内で、デ
ータベースに対するアクセス特性を明示的に把握するこ
とが可能である。
上述のアクセス特性を利用して入出力バッファ管理を
行う方法としては、従来より、QLSM(Query Locality
Set Model)に基づくバッファ管理方式がある。この
方式は、問合せ要求毎に共用バッファを分割し、当該問
合せのアクセス要求に適した置換アルゴリズムにより管
理する管理方法である。
このQLSMに基づくバッファ管理方式では、問合せを解
析して、データベースに対するアクセス方法を決定する
最適化処理部等により、内部処理手順が決まると共用バ
ッファから適切なサイズ(以下、『ローカリティセット
サイズ』と呼ぶ)のバッファを分割(以下、この分割さ
れたバッファを『ローカリティセット』と呼ぶ)し、問
合せのデータベースに対するページ参照特性に適した置
換アルゴリズムにより管理するようにしている。
なお、上記QLSMに基づくバッファ管理方式に関して
は、Hong−Tai Chou等による第11回VLDB国際会議資料
『An Evaluation of Buffer Management Strategi
es for Relational Database Systems』の記載が参
考となる。
次に、上述のデータベース管理システムは、オペレー
ティングシステムの記憶管理方式である仮想記憶方式に
よる仮想空間上で動作するものである。つまり、データ
ベース管理システムの入出力バッファも、仮想記憶空間
上に確保されたものであって、常にオペレーティングシ
ステムによるページングの対象となっている。従って、
データベース管理システムの入出力バッファに対して、
オペレーティングシステムのページング管理部が、ペー
ジ例外割込みによりページング用の外部記憶装置のファ
イルに対して入出力処理を行うことがある。換言する
と、データベース管理システムが入出力バッファのバッ
ファ管理を行っている反面、オペレーティングシステム
もデータベース管理システムの入出力バッファに対して
ページング管理を行っている。つまり、二重バッファリ
ングが行われているのである。
データベース管理システムの入出力バッファ管理部で
は、入出力バッファ上に必要なデータがあるように管理
したとしても、他方のオペレーティングシステムのペー
ジング管理部では、その入出力バッファのデータが主記
憶上からページアウトされて、外部記憶装置上のページ
ング用ファイルにあるものと管理しているかも知れな
い。そのような場合、次回、その入出力バッファのデー
タを参照する際には、オペレーティングシステムが主記
憶を割り当てて、外部記憶装置上のページング用ファイ
ルからページアウトしたページを割り当てた主記憶上に
入力する(ページインを行う)。つまり、これだけで2
回の入出力動作が行われたことになるので、データベー
ス管理システムの性能に影響を及ぼすことになる。
これについては、オペレーティングシステムが仮想記
憶空間の領域を主記憶装置上に固定する機能(以下、
『ページ固定』と呼ぶ)を有しているので、データベー
ス管理システムが入出力バッファの領域に対してページ
固定を行うことにより、ページングの対象から外すこと
ができる。ただし、入出力バッファの領域の大きさが、
主記憶装置の容量を越えないことは前提となる。
また、ページングの問題を改善する方法として、拡張
記憶装置を設置する方法がある。拡張記憶は、主記憶と
直結されており、かつ主記憶と同じ半導体メモリ素子で
構成されており、物理的に固定長のページ単位でデータ
転送を実現することにより、論理的に主記憶装置を拡張
することができ、容量不足を補っている。
〔発明が解決しようとする課題〕
前述のように、(i)従来の技術では、データベース
管理システムの入出力バッファ管理方法において、複数
のユーザが入出力バッファに対して入出力要求を発行し
ている途中で、入出力バッファ上に空バッファが無くな
ってしまうと、他のユーザからのデータの入出力要求に
より、入出力バッファ上にアクセスするページが無けれ
ばバッファ不足の状態となる。その結果、その入出力要
求は待たされるか、あるいは強制的に置換アルゴリズム
により、残しておきたいバッファのページをページ置換
の対象としている。
また、(ロ)QLSMに基づくバッファ管理方法では、ユ
ーザからの問合せ実行前に、最適化処理部等によりロー
カリティセットのローカリティセットサイズを算出し
て、入出力バッファからローカリティセットサイズ分の
バッファを確保する。この時に、ローカリティセットサ
イズ分のバッファがバッファの不足により確保すること
ができないときには、確保できるまで待ち状態にするこ
とによって、問合せ実行を遅らせたり、あるいはそのロ
ーカリティセットのローカリティセットサイズを確保で
きるバッファサイズに変更することにより、入出力回数
を増加していた。特に、リレーショナルデータベース管
理システムでは、問合せにおいて、ジョイン演算(2つ
以上のリレーションの結合処理)を行う場合、各リレー
ション毎にローカリティセットを形成するため、ローカ
リティセットサイズを算出することができるが、ジョイ
ンされる側のリレーションに対しては複数のデータペー
ジを繰り返し参照することがあるため、そのサイズに適
したローカリティセットを確保すべきである。しかし、
最適化処理部等においても、正確なローカリティセット
サイズを算出することは困難であり、また算出したロー
カリティセットサイズが大量のバッファを必要とするの
では、現実的でないため、十分に入出力処理を効率化す
ることは不可能である。
(ハ)一方、QLSMに基づくバッファ管理方法において
は、例えば、ある問合せがリレーションに対して、逐次
的にアクセスするというアクセス特性を把握すると、ロ
ーカリティセットサイズを1とし、そのローカリティセ
ットの置換アルゴリズムとしてSB(Single Buffer)方
式で管理するという方策を用いていた。これは、予め複
数のバッファを用意して、用意されたバッファ数分のペ
ージを単位として一括入力する。つまり、先読み処理を
行う方法については、何等考慮されていなかった。
また、(ホ)前述のように、リレーションに対して逐
次的に参照しながら一括更新を行う場合、従来では、更
新されたページは新たに要求されたページがバッファ中
でページ不在を起こしたときに、置換アルゴリズムによ
り外部記憶装置に書き出され、要求されたページが読み
込まれることがあった。この場合、新たなページを入力
するために、本来不要となったいる入出力処理が発生す
ることがあり、それが性能劣化の原因となっていた。
さらに、(ヘ)データベース管理システムにおいて、
外部記憶装置から主記憶装置にデータを転送する場合、
データベース演算処理を行い、その処理結果を主記憶装
置に転送する過程を含むデータベースマシンを利用する
際には、前述の一括入力をデータマシンに行わせ、処理
結果を入出力バッファに入力する制御に関しては全く配
慮していなかった。また、データベースマシンの利用を
中止して、従来のデータベース管理システムによるデー
タの入出力方法に切換える制御についても、全く考慮さ
れていなかった。
次に、(ト)データベース管理システムでは、内部処
理としてソートマージ法による中間ファイルを作成する
処理がある。中間ファイルの作成処理は、入出力バッフ
ァ上で行われる。先ず、外部記憶装置上のデータベース
から入出力バッファにデータを読み込み、そのデータを
加工した後、1ページ分のデータを入出力バッファ上の
あるバッファに書き込み、ページ内ソートを行うという
処理を、データが読み終わるまで繰り返し行う。このよ
うにして作成された中間ファイルのデータは、入出力バ
ッファの置換アルゴリズムに従って、外部記憶装置上の
中間結果格納用ファイルに出力されることがある。次
に、この中間ファイルを読み直し、ソートマージ処理が
終了するまで、入出力バッファと外部記憶装置との間で
入出力処理が多く発生する。しかし、このような中間フ
ァイルは共用されるものではないため、他のユーザから
の問合せ処理により入力されたページがページ置換アル
ゴリズムにより掃き出され、再びページを参照したい場
合に、ページ置換の対象となったバッファを入力用バッ
ファとして選択すると、ページの入力前にバッファ中の
中間結果を外部記憶装置に出力してから、そのページを
入力するというように、不要な入出力処理が発生してし
まうため、性能が低下するという問題が生じた。
さらに、(チ)データベース管理システムでは、履歴
情報の管理において、履歴情報出力用バッファに履歴情
報を出力して管理している。そして、バッファに履歴情
報が満杯になると、外部記憶装置上の履歴情報ファイル
に出力していた。ここで、データベース管理システムが
動作中に、システム障害が発生すると、ある時点まで履
歴情報を基にしてデータベースの回復処理を行う。この
時、履歴情報を取得するため、外部記憶装置上の履歴情
報ファイルからの入力処理が発生して、データベースの
回復処理時間が長くなってしまうという問題があった。
(リ)一方、データベース管理システムは、仮想記憶
空間上で動作するものであり、データベース管理システ
ムが管理する入出力バッファも仮想記憶空間上に存在す
る。この仮想記憶空間と主記憶装置とのマッピングを行
うのが、オペレーティングシステムの仮想記憶管理、つ
まりページング管理である。すなわち、データベース管
理システムが入出力バッファ上のデータをアクセスしよ
うとしても、主記憶装置上にデータがなければ、外部記
憶装置上のページング用ファイルに退避されたデータを
主記憶装置上に入力し、復元する必要がある。逆に、ペ
ージング管理によりその入出力バッファ上のデータを持
つ主記憶上のページがページアウトの対象となり、外部
記憶装置上のページング用ファイルに出力し、退避する
ことも発生する。データベース管理システムは、このよ
うな記憶階層を考慮していないため、オペレーティング
システムのページング管理により不要な入出力処理が発
生するという問題がある。それに対処する方法として、
データベース管理システムの入出力バッファ全体を主記
憶装置上にページ固定する方法があるが、入出力バッフ
ァが大きいと、主記憶装置上のページング可能領域が減
少するため、ページングやスワッピングが頻発して、計
算機システム全体の能力が低下するという問題がある。
本発明は、上述のような従来の課題を解決するため
に、次の第1から第5までの目的を有する。すなわち、 本発明の第1の目的は、主記憶装置と拡張記憶装置と
を備えた計算機システムにおいて、できる限り外部記憶
装置に対する入出力処理を削減して、入出力バッファを
効率よく利用できる記憶階層を考慮したバッファ管理方
法を提供することにある。
また、本発明の第2の目的は、入出力バッファ上のデ
ータに対して更新が行われた場合に、外部記憶装置に対
する出力要求の予約が行われた際、および外部記憶装置
からの入出力バッファへの入力要求が複数ページ単位の
先読み処理要求の際に、入出力バッファを効率よく利用
することができるバッファ管理方法を提供することにあ
る。
また、本発明の第3の目的は、主記憶装置と論理的に
主記憶を拡張する拡張記憶装置を備えた計算機システム
において、データ入力処理要求で拡張記憶装置上にデー
タが存在しない場合と、入出力バッファからのデータ出
力処理を行う場合に、入出力バッファ管理の入出力処理
時間を短縮することが可能なバッファ管理方法を提供す
ることにある。
また、本発明の第4の目的は、アクセス特性がデータ
ベースの参照あるいは更新に関係なく、逐次的アクセス
を行う場合に、入出力時間を削減し、入出力バッファを
効率よく利用することができるバッファ管理方法を提供
することにある。
また、本発明の第5の目的は、データベースマシンに
障害が発生した場合に、入出力バッファを効率よく利用
することができるバッファ管理方法を提供することにあ
る。
〔課題を解決するための手段〕
上記第1の目的を達成するため、本発明のバッファ管
理方法は、(i)主記憶装置上に確保した入出力バッフ
ァ群と拡張記憶装置上に確保した入出力バッファ群とを
設け、主記憶装置上の入出力バッファが不足する場合に
は、入出力バッファ管理プログラムモジュールにより拡
張記憶装置上の入出力バッファに主記憶装置上の入出力
バッファ上のデータの一部を退避し、拡張記憶装置に退
避したデータが格納されていた主記憶装置上の入出力バ
ッファを利用して、データの入出力処理を行うことに特
徴がある。また、(ii)外部記憶装置上に蓄積されたデ
ータベースを管理するデータベース管理システムの入出
力バッファ管理プログラムモジュールにおいて、主記憶
装置上に確保した入出力バッファ群と拡張記憶装置上に
確保した入出力バッファ群とを管理するプログラムモジ
ュールを設け、主記憶装置上の入出力バッファが不足し
た場合には、入出力バッファ管理プログラムモジュール
は、拡張記憶装置上に確保した入出力バッファに主記憶
装置上の入出力バッファの置換アルゴリズムによりペー
ジ置換の対象となったデータを退避し、退避したデータ
が格納されていた主記憶装置上の入出力バッファ群を使
用して、データの入出力処理を行うことにも特徴があ
る。また、(iii)入出力バッファ管理プログラムモジ
ュールは、アクセス対象となったデータページが拡張記
憶装置上の入出力バッファに存在する場合には、主記憶
装置上の入出力バッファの置換アルゴリズムによりペー
ジ置換の対象となったバッファに復元して、データの入
出力処理を行うことにも特徴がある。また、(iv)入出
力バッファ管理プログラムモジュールは、ユーザからの
問合せによりソート・マージ法による中間ファイルを作
成する場合、主記憶装置上にソート・マージ処理で同時
に必要とする最小限の入出力バッファを確保し、拡張記
憶装置上に中間ファイルを格納するための第1の入出力
バッファ群および第2の入出力バッファ群を確保し、第
1段階では、データベースからデータを主記憶装置上の
入出力バッファ上に読込み、ソート・マージ処理を行っ
た結果の中間ファイルを拡張記憶装置上の第1の入出力
バッファ群に退避し、第2段階では、拡張記憶装置上の
第1の入出力バッファ群からデータを主記憶装置上の入
出力バッファに復元し、次にソート・マージ処理した結
果の中間ファイルを拡張記憶装置上の第2の入出力バッ
ファ群に退避し、この動作をソート・マージ処理が終了
するまで、拡張記憶装置上の第1および第2の入出力バ
ッファ群を交互に使用してデータの入出力処理を行うこ
とにも特徴がある。また、(v)主記憶装置上の入出力
バッファがデータベース管理システムの履歴情報管理用
バッファである場合、主記憶装置上に確保した入出力バ
ッファに履歴情報が満杯となったときには、入出力バッ
ファの履歴情報の全部ないし一部を拡張記憶装置上に確
保した入出力バッファに退避し、システム障害時のデー
タベース回復処理時に、拡張記憶装置上の入出力バッフ
ァに退避した履歴情報を主記憶装置上の入出力バッファ
に復元することにより、履歴情報の入出力処理を行うこ
とにも特徴がある。また、(vi)データベース管理シス
テムの入出力バッファ管理用プログラムモジュールは、
データベースに対する問合せ毎に入出力バッファ群を分
割するローカリティセット管理を行って、問合せのデー
タベースへのアクセス特性に適合するローカリティセッ
ト置換アルゴリズムを決定してデータの入出力処理を行
い、問合せ実行時に、入出力バッファからローカリティ
セットサイズ分のバッファを確保できないときには、不
足するサイズ分のバッファを拡張記憶装置上から確保し
て、主記憶装置上の入出力バッファで確保したサイズを
越えるデータの入力を行う場合、ローカリティセット置
換アルゴリズムによりページ置換の対象となったデータ
ページを拡張記憶装置上の入出力バッファに退避し、ペ
ージ置換の対象となった主記憶装置上の入出力バッファ
にデータを入力することにも特徴がある。また、(vi
i)データベースは複数のリレーションを含むリレーシ
ョナルデータベースであり、ユーザからの問合せでアク
セスするリレーションをローカリティセットを介してデ
ータの授受を行い、ローカリティセットはリレーション
へのアクセス特性に適合する置換アルゴリズムにより、
各リレーションのデータページを保持する主記憶装置上
の入出力バッファ、ないし前記拡張記憶装置上の入出力
バッファを置換制御することにも特徴がある。また、
(viii)データベース管理システムにより管理され、仮
想記憶システムの仮想記憶空間上に確保された主記憶装
置上の入出力バッファの管理方法において、入出力バッ
ファは1面毎に、入出力バッファの仮想記憶領域上の位
置情報と、入出力バッファに格納されたデータベースの
データページ情報と、データページのデータに対する更
新の有無を示す更新フラグとを記憶する管理テーブルを
有し、ユーザからの問合せにより該入出力バッファに格
納されているデータページのデータが更新されて、デー
タベース管理システムの入出力バッファ管理用プログラ
ムモジュールに対し、入出力バッファ上に格納されてい
るデータページに対する外部記憶装置のデータベースへ
の出力要求が発生すると、入出力バッファ管理用プログ
ラムモジュールは管理テーブルの更新フラグをオンにし
て、仮想記憶上の入出力バッファの領域を主記憶装置上
に固定する処理を行うことにも特徴がある。また、(i
x)入出力バッファ管理用プログラムモジュールは、入
出力バッファの置換アルゴリズムによりページ置換の対
象となった入出力バッファの管理テーブルの更新フラグ
を判別し、更新フラグがオンになっている時には、外部
記憶装置上に蓄積されたデータベースに入出力バッファ
のデータを出力して、主記憶装置上に固定された仮想記
憶上の上記入出力バッファの領域に対する固定を解除す
る処理を行い、更新フラグをオフにすることにも特徴が
ある。また、(x)データベース管理システムにより管
理され、仮想記憶システムの仮想記憶空間上に確保され
た主記憶装置上の入出力バッファの管理方法において、
入出力バッファは1面毎に、入出力バッファの仮想記憶
領域上の位置情報と、入出力バッファに格納されたデー
タベースのデータページ情報と、入出力バッファを主記
憶装置上に固定したことを示すページ固定フラグとを記
憶する管理テーブルを有し、ユーザからの問合せにより
データベース管理システムの入出力バッファ管理用プロ
グラムモジュールに対し、外部記憶装置上に蓄積された
データベースからの複数ページ単位の入力要求が発生す
ると、入出力バッファ管理用プログラムモジュールはデ
ータページ入力用に確保した入出力バッファ群に対し
て、主記憶装置上に固定する処理を行い、各入出力バッ
ファの管理テーブルページ固定フラグをオンにする処理
を行うことに特徴がある、また、(xi)入出力バッファ
管理用プログラムモジュールは、入力した複数ページの
データページについて1ページずつデータベース演算処
理を行い、処理が終了すると、データページの入出力バ
ッファに対して主記憶装置上の固定を解除する処理を行
い、入出力バッファの管理テーブルのページ固定フラグ
をオフにすることにも特徴がある。また、(xii)外部
記憶装置上のデータベースを拡張記憶装置上にも展開
し、入出力バッファ管理用プログラムモジュールはデー
タの入力処理要求に対して、拡張記憶装置上にないデー
タを外部記憶装置上のデータベースから入力し、データ
を拡張記憶装置上にも退避して、データの入出力処理を
行うことにも特徴がある、また、(xiii)入出力バッフ
ァ管理用プログラムモジュールは、入出力バッファの置
換アルゴリズムにより、ページ置換の対象となった入出
力バッファのデータに対して出力要求があったときに
は、外部記憶装置上のデータベースへの出力処理と拡張
記憶装置上の同一データを持つ入出力バッファへの更新
処理を行うことにも特徴がある。また、(xiv)入出力
バッファ管理用プログラムモジュールは、システム開始
時に、外部記憶装置上のデータベースのデータを拡張記
憶装置上に確保した入出力バッファに初期ロードし、初
期ロードでは、外部記憶装置からブロック単位(例え
ば、トラック単位)による一括入力を行って、データの
入出力処理を行うことにも特徴がある。また、(xv)デ
ータページに対する複数のユーザからの問合せを解析し
て、対応する内部処理手順を決定し、決定された手順に
従って処理を実行するデータベース管理システムにおい
て、データベース管理システムの入出力バッファ管理用
プログラムモジュールは、主記憶装置上の入出力バッフ
ァ群と上記データベースを格納する外部記憶装置との間
で、データページを1ページ単位で入出力するサブモジ
ュールと、データページを複数ページ単位で入出力する
サブモジュールとを有し、データベースに対する問合せ
毎に入出力バッファ群を分割するローカリティセット管
理を行い、問合せのデータベースへのアクセス特性に適
合したローカリティセット置換アルゴリズムを決定し
て、データの入出力処理を行うことにも特徴がある。
(xvi)データベースは、複数のリレーションを含むリ
レーショナルデータベースであり、ユーザからの問合せ
によりアクセスするリレーションを、ローカリティセッ
トを介してデータの授受を行い、ローカリティセットは
リレーションへのアクセス特性に適合する置換アルゴリ
ズムにより、各リレーションのデータページを保持する
バッファを置換制御することにも特徴がある。また、
(xvii)入出力バッファ群は、各問合せによりアクセス
の対象となるデータページの入ったバッファ群(ローカ
リティセット)を持つ第1の状態と、各ローカリティセ
ットから置換制御により各ローカリティセットサイズを
越えるデータページを保持するバッファを外し、置換ア
ルゴリズムによりチェインされるバッファ群(セカンダ
リバッファ)を持つ第2の状態と、未だデータページが
保持されていないバッファを置換アルゴリズムによりチ
ェインされるバッファ群(フリーバッファ)を持つ第3
の状態とを含むことにも特徴がある。また、(xviii)
入出力管理用プログラムモジュールが複数ページ単位で
入出力処理を行う場合、リレーションに対して逐次的に
全タプルをアクセスしながら全タプルの更新処理を行う
際には、複数ページ単位で一括してデータページ群を入
力した後、読込んだデータページ群のタプルの更新処理
を完了すると、次の一括入力を行う直前に、更新したデ
ータページ群を外部記憶装置に対し一括して出力するこ
とにも特徴がある。また、(xix)主記憶装置と外部記
憶装置との間で、外部記憶装置から主記憶装置にデータ
転送を行う場合、データベース演算処理を行うデータベ
ースマシンを利用し、データベースマシンにより与えら
れた検索範囲内の全てのデータページを出力する動作
と、与えられた検索条件式を満足するタプル(レコー
ド)を少なくとも1つ以上含むデータページを出力する
動作を行うように制御することにも特徴がある。また、
(xx)データベースマシンにより与えられた検索範囲内
の全てのデータページを出力する動作においては、入出
力バッファから検索範囲数分のデータページを受信する
に足るバッファ群を確保し、入出力バッファ内に与えら
れた検索範囲のデータページが存在するか否かを判定し
て、ページ不在となったページのみを確保したバッファ
群に読込み、使用しなかった入出力バッファは次の入力
要求に備え保持したままにすることにも特徴がある。ま
た、(xxi)データベースマシンにより与えられた検索
条件式を満足するタプル(レコード)を少なくとも1つ
以上含むデータページを出力する動作においては、入出
力バッファから少なくとも1ページ分以上のデータペー
ジを受信するに足る入出力バッファを確保し、入出力バ
ッファ内に与えられた検索範囲のデータページが存在す
るか否かを判定し、ページ不在となったページ情報と検
索条件式をデータベースマシンに与え、検索条件式を満
足するタプル(レコード)を少なくとも1つ以上含むデ
ータページを確保したバッファに受信することにも特徴
がある。さらに、(xxii)データベースマシンに障害が
発生したことを検知した場合には、該データベースマシ
ンによる検索要求を取止め、それ以降はデータページを
1ページ単位で入出力する入出力管理用プログラムサブ
モジュールと、データページを複数ページ単位で入出力
する入出力管理用プログラムサブモジュールとを用い
て、データの入出力を行うことにも特徴がある。
〔作用〕
本発明においては、(a)主記憶装置と論理的に主記
憶を拡張する拡張記憶装置を備えた計算機システムにお
いて、オペレーティングシステムの仮想記憶管理により
管理されている仮想記憶空間上で動作し、入出力バッフ
ァを用いて外部記憶装置上のデータの入出力管理を行う
プログラムが、拡張記憶装置上に確保した第2の入出力
バッファを管理する機能を有し、必要に応じて仮想空間
上の入出力バッファのデータを拡張記憶装置上の入出力
バッファに退避、または拡張記憶装置上の入出力バッフ
ァのデータを仮想空間上の入出力バッファに復元するこ
とにより、外部記憶装置に対する入出力処理を削減し
て、入出力バッファを効率よく利用している。また、
(b)入出力バッファ上のあるバッファのデータに対し
て更新が行われ、外部記憶装置に対する出力要求の予約
が行われると、入出力バッファの置換アルゴリズムによ
りページ置換の対象となり、外部記憶装置への出力処理
が行われるまで、そのバッファを主記憶装置上にページ
固定を行うことにより、オペレーティングシステムのペ
ージング管理の対象から外すこと、および外部記憶装置
からの入出力バッファへのデータの入力要求が複数ペー
ジ単位の先読み処理要求の場合、先読み処理単位のバッ
ファに対して主記憶装置上にページ固定を行うことによ
り、先読みしたデータの処理が終了するまで、オペレー
ティングシステムのページング管理の対象から外すこと
によって、入出力バッファを効率よく利用している。ま
た、(c)主記憶装置と論理的に主記憶を拡張する拡張
記憶装置を備えた計算機システムにおいて、データベー
ス管理システムが管理する外部記憶装置上のデータベー
スを拡張記憶装置上にも配置し、入出力バッファ管理部
では、データの入力処理要求に対して拡張記憶装置上に
データが存在しない場合と、入出力バッファからのデー
タの出力処理を行う場合に、外部記憶装置上のデータベ
ースに対する入出力処理を行うことによって、外部記憶
装置に対する入出力処理を削減して、入出力バッファ管
理の入出力処理時間を短縮している。また、(d)アク
セス特性がデータベースの参照あるいは更新に関係なく
逐次的アクセスを行う場合には、入出力処理起動時にバ
ッファへの先読み動作、またはバッファから外部記憶装
置へのまとめ書き動作を行うか否かを判定し、先読み処
理単位およびまとめ書き単位を決定することにより、入
出力時間を削減して、入出力バッファを効率よく利用し
ている。さらに、(e)主記憶装置と外部記憶装置との
間に位置し、外部記憶装置から主記憶装置へデータ転送
を行う際に、データベース演算処理を行い、そのデータ
ベース演算処理結果を主記憶装置に転送するデータベー
スマシンを利用するシステムにおいて、そのデータベー
スマシンに障害が発生した場合、データベースマシンへ
の検索要求を取止め、以降既存のデータベース管理シス
テムの複数ページ入出力処理、または1ページ入出力処
理によるデータの入出力に切換えることにより、入出力
バッファを効率よく利用している。
〔実施例〕
以下、本発明の実施例を、図面により詳細に説明す
る。
第2図は、本発明が適用される計算機システムのハー
ドウェア構成図である。
第2図において、1はデータ演算およびシステム内の
各装置を制御する中央処理装置(CPU)、2はCPU1が実
行するプログラムおよび各種データを記憶する主記憶装
置、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上の入出
力バッファ30により、データの入出力処理を行うプログ
ラムモジュールを設けて、外部記憶装置4との入出力処
理については、主記憶装置2上の入出力バッファ68を用
いて行い、主記憶装置2上の入出力バッファ68が不足す
る場合には、主記憶装置2上の入出力バッファ68の中か
ら置換アルゴリズムによりデータを拡張記憶装置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上の入出力バッファ30に退避しておき、システム障
害発生時には、拡張記憶装置3上の入出力バッファ30か
ら履歴情報を復元して、データベースの回復処理を行う
ことができるので、外部記憶装置4に対する入出力処理
を削減することができ、データベースの回復処理時間も
短縮できる。(f)また、データベース管理システム50
が扱う入出力バッファは、仮想記憶システムの仮想空間
5上に確保したものであり、データベース演算処理によ
り更新されたバッファおよび外部記憶装置4上のデータ
ベース40から複数ページ単位で先読み処理するバッファ
群に対して、主記憶装置2上にページ固定することによ
り、オペレーティングシステムのページング管理による
ページングの対象から外れるので、不要な入出力処理が
行われることがない。
(g)データベース管理システム50が管理する外部記憶
装置4上のデータベース40を拡張記憶装置3上に展開す
るようにして、入出力バッファ管理部53におけるデータ
の入力処理は拡張記憶装置3上のデータベース40から入
力し、拡張記憶装置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から掃出しの対象となることがな
く、同一のリレーションに対するアクセス要求を行って
いるローカリティセット間では、同一ページの共用を許
すので、入出力バッファ68上のページを効率よく利用で
きる。
また、データベース40に対して、逐次的に更新処理を
行う問合せの場合のローカリティセットは、複数ページ
単位で出力を行い、出力後は入出力バッファ68中にどの
ローカリティセットにも属さないバッファとすることに
より、他のユーザによるデータベースアクセス要求によ
って、ページ不在となったページを入力するためのバッ
ファがデータベース40の更新待ちとなっているバッファ
を選択することが少なくなるので、不要な入出力処理が
防止できる。
さらに、主記憶装置2と外部記憶装置4との間に位置
し、外部記憶装置4から主記憶装置2へのデータ転送を
行う場合、データベース演算処理を行うデータベースマ
シンを利用するプログラムモジュールを入出力バッファ
管理部53に設け、データベースマシンによるデータベー
ス演算処理を適用することにより、データベース管理シ
ステム50で行うデータベース演算処理の負荷を削除する
ことができる。そして、データベース管理システム50が
有する既存の1ページ入出力および複数ページ単位入出
力を行うプログラム以外の入出力プログラムを選択可能
にしている。なお、データベースマシンに障害が発生し
た場合には、データベースマシンによる検索要求を取り
止めて、それ以降は既存のデータベース管理システム50
が有する既存の1ページ入出力および複数ページ単位入
出力を行うプログラムに切換えることにより、データベ
ースマシンの障害によるデータベース管理システム50の
機能停止を防止することができる。
第3図は、第1図における入出力バッファ部のテーブ
ル関連図である。
入出力バッファ部60における状態、つまりローカリテ
ィセット、セカンダリバッファ、フリーバッファの各管
理テーブルの関連を示している。
ここでは、ローカリティセットが2個存在するものと
して、各々のローカリティセットを管理するローカリテ
ィセット管理テーブル61a,61bがある。ローカリティセ
ット管理テーブル61aには、それぞれ3ページ分のデー
タページが読み込まれ、ページ管理テーブル65a,65bお
よび拡張ページ管理テーブル67aを当該ローカリティセ
ットの置換アルゴリズムによりチェィニングしており、
またローカリティセット管理テーブル61bには、1ペー
ジのデータが読み込まれて、ページ管理テーブル65cを
当該ローカリティセットの置換アルゴリズムによりチェ
イニングしている。
セカンダリバッファとしては、セカンダリバッファ管
理テーブル62に、3ページ分のどのローカリティセット
にも属さないデータページがページ管理テーブル65d,65
e,65fとして、セカンダリバッファの置換アルゴリズムF
IFOによりチェイニングされている。
フリーバッファとしては、フリーバッファ管理テーブ
ル63に、仮想空間5上の入出力バッファが2面、拡張記
憶装置3上の拡張入出力バッファが3面あり、それらが
仮想空間5上の入出力バッファのページ管理テーブル65
g,65hとして、および拡張記憶装置3上の拡張入出力バ
ッファの拡張ページ管理テーブル67b,67c,67dとして、
各々フリーバッファの置換アルゴリズムFIFOによりチェ
イニングされている。
第4図は、第1図におけるハッシュブロック管理テー
ブルの接続例を示す構成図である。
入出力バッファ部60のハッシュブロック管理テーブル
64と入出力バッファ68との関連を、第3図を基に説明す
る。ハッシュブロック管理テーブル64は、当該入出力バ
ッファ数分のハッシュ値に対応するバッファのチェイン
情報を持っている。ハッシュブロック管理テーブル64の
ハッシュ値1には、第3図におけるページ管理テーブル
65b,65cがチェイニングされ、またハッシュ値3には、
ページ管理テーブル65f、ハッシュ値5には、ページ管
理テーブル63h、ハッシュ値n−1には、ページ管理テ
ーブル65e,65dが、それぞれハッシュチェインのポイン
タによりチェイニングされている。この時、第3図にお
けるローカリティセット管理テーブル61a,61bの各バッ
ファチェインは、第4図の破線で示すように、ページ管
理テーブルがポインタでチェイニングされている。
第5図は、第1図における入出力バッファ管理部の詳
細構成図である。
入出力バッファ管理部53は、データベース演算処理部
52からのローカリティセット確保、解放要求、データペ
ージの入出力要求等を解析する入出力要求解析部530
と、ローカリティセット確保要求時にローカリティセッ
ト管理テーブルを確保して、これを初期化するローカリ
ティセット確保処理部531と、ローカリティセット解放
要求時にローカリティセット中のバッファをセカンダリ
バッファにリチェインして、ローカリティセット管理テ
ーブル61を解放するローカリティセット解放処理部532
と、ローカリティセット内のバッファの置換制御および
ローカリティセットサイズを越えないように制御するロ
ーカリティセット管理部533と、セカンダリバッファをF
IFOにより置換制御を行うセカンダリバッファ管理部534
と、前記入出力要求解析部530からバッファに保持した
ページに対するフリー要求時にフリーバッファへのリチ
ェインを行う等、仮想空間上のフリーバッファと拡張記
憶装置3上のフリーバッファを各々FIFOにより置換制御
を行うフリーバッファ管理部535が、入出力要求のあっ
たデータページ(群)がバッファ中に存在するか否かを
サーチするバッファサーチ処理部536と、前記ローカリ
ティセット内の置換アルゴリズムによるバッファのリチ
ェインおよびローカリティセットとセカンダリバッファ
間のバッファの授受に伴うバッファの切り離し、接続を
行うページ置換制御部537と、前記バッファサーチ処理
部536によりページ不在となったページに対して1ペー
ジ入出力要求時には、外部記憶装置4からの1ページ入
出力を行う1ページ入出力処理部538と、先読み処理ま
たはまとめ書き処理要求時には、一括入出力を行う一括
入出力処理部539とから構成されている。
第6図は、第5図における入出力要求解析部の処理フ
ローチャートである。
前述のように、入出力要求解析部530は、データベー
ス演算処理部52から入出力バッファ管理部53に対して、
データベース40への入出力要求を解析する役割を果す。
先ず、データベース演算処理部52からの要求を判定し
て、問合せ処理開始時にローカリティセットを確保する
要求であれば、ローカリティセット確保処理部531に制
御を渡し(ステップ5300,5301)、一方、要求がローカ
リティセット解放要求であれば、ローカリティセット解
放処理部532に制御を渡す(ステップ5302,5303)。ま
た、要求がページ入出力処理要求であれば、ローカリテ
ィセット管理部533に制御を渡し(ステップ5304,530
5)、また、要求がバッファフリー要求であれば、フリ
ーバッファ管理部535に制御を渡す(ステップ5306,530
7)。このように、入出力バッファ管理部53に対する要
求に応じて、処理を振り分ける。
第7図は、第5図におけるローカリティセット確保処
理部の処理フローチャートである。
ローカリティセット確保処理部531は、問合せ処理開
始時にその問合せを解析して、決定したアクセス手順に
適したローカリティセットを確保し、これを初期化す
る。
先ず、最初に、第1図に示す入出力バッファ部60のロ
ーカリティセット管理テーブル61から、未使用状態のロ
ーカリティセット管理テーブル61を確保する(ステップ
5310)。次に、確保したローカリティセット管理テーブ
ル61に対してその問合せのローカリティセット情報を設
定する。次に、確保したローカリティセット管理テーブ
ル61に対して、問合せのローカリティセット情報を設定
する。確保したローカリティ管理テーブル61の初期化が
終了すると(ステップ5311)、当該ローカリティセット
を使用する問合せが一括入出力処理を行うか否かを判定
して(ステップ5312)、一括入出力処理を行う場合に
は、予め入出力バッファ68からローカリティセット分の
バッファを確保する(ステップ5313)。
第8図(a)は、本発明におけるローカリティセット
管理テーブルの情報を示す図である。
ローカリティセット管理テーブル61には、問合せ処理
を識別する検索ID610、入出力バッファ管理部53におい
て問合せのローカリティセットを識別するローカリティ
セットID611、ローカリティセットサイズ612、問合せに
よりローカリティセット内に割り当てたバッファ面数情
報であるローカリティセット内割り当てページ数613、
ローカリティセット内に割り当てたバッファを管理する
ページ管理テーブル65のチェインの先頭および末尾を位
置付ける先頭バッファアドレス614、末尾バッファアド
レス615、ローカリティセット内に割り当てた拡張入出
力バッファの拡張ページ管理テーブル67の先頭アドレス
である拡張入出力バッファ先頭アドレス616、当該ロー
カリティセット内バッファの置換制御方法を指示する置
換アルゴリズム617、当該ローカリティセットを利用す
る問合せが入出力バッファ管理部53により先読み処理ま
たはまとめ書き処理を行うか否かを指定する一括入出力
要求指定情報618、当該問合せでアクセスするリレーシ
ョンの情報619等が格納される。
第8図(b)は、本発明におけるページ管理テーブル
の情報を示す図である。
ページ管理テーブル65には、前述のローカリティセッ
トに関する情報であるローカリティセットIDおよび当該
ページ管理テーブル65で管理するページの情報として、
リレーションを識別する情報等のバッファ属性情報65
0、当該バッファを識別するバッファ番号651、複数のペ
ージ管理テーブル65のチェイン関係を位置付けるページ
管理テーブル前方ポインタ652、ページ管理テーブル後
方ポインタ653、ページサーチを高速化するためのハッ
シュ関数により決定したハッシュ値に属するバッファの
チェインを位置付けるハッシュチェイン前方ポインタ65
4、ハッシュチェイン後方ポインタ655、当該ページ管理
テーブルで管理しているページ番号656、当該ページ管
理テーブル65で管理しているページに対して外部記憶装
置4への出力要求が出ているか否かを示す出力要求フラ
グ657、当該ページ管理テーブル65で管理しているバッ
ファが主記憶装置2上にページ固定されているか否かを
示すページ固定フラグが、それぞれ格納されている。
第8図(c)は、本発明における拡張ページ管理テー
ブルの情報を示す図である。
拡張ページ管理テーブル67には、前述のページ管理テ
ーブル65と同等のバッファ属性情報670、当該バッファ
を識別するバッファ番号671、複数の拡張ページ管理テ
ーブルのチェイン関係を位置付ける拡張ページ管理テー
ブル前方ポインタ672、拡張ページ管理テーブル後方ポ
インタ673、当該拡張ページ管理テーブル67で管理して
いるページ番号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に対する要求が、ページ入出
力処理要求の場合には、ローカリティセット管理部533
が動作する。先ず、ページ入出力処理要求が入力要求で
あるか、出力要求であるかを判定し(ステップ5330
0)、入力要求の場合には、1ページ入力と一括入力と
を混在して処理できるように、入力要求によるページの
検索範囲について、処理が終了したか否かを判定する
(ステップ53301)。検索範囲が終了状態であれば、一
括入力要求であったか否かを判定し(ステップ5330
2)、一括入力要求であれば、一括入出力処理部に制御
を渡し、一括入力を行う(ステップ53303)。また、ロ
ーカリティセット管理部533において、検索範囲終了状
態でない場合、入出力バッファ内に要求するページが存
在するか否かをサーチするバッファサーチ処理部536に
制御を渡す(ステップ53304)。
第11図は、バッファサーチ処理部の処理フローチャー
トである。
第10図(a)において、バッファサーチ処理部536に
制御が渡されると、要求したページのページ番号により
あるハッシュ関数でハッシュ値を取得し(ステップ536
0)、取得したハッシュ値から当該ハッシュ値を持つバ
ッファのチェインからページをサーチする(ステップ53
61)。その結果、仮想空間5上の入出力バッファにペー
ジがあるか否かを判定し(ステップ5362)、ページ不在
の場合には、当該ページを要求したローカリティセット
内に拡張入出力バッファがチェインされているか否かを
判定する(ステップ5363)。
拡張入出力バッファがあれば、第8図(a)における
ローカリティセット管理テーブル61の拡張入出力バッフ
ァ先頭アドレス616から拡張ページ管理テーブル67のチ
ェインをサーチする(ステップ5364)。
再び、第10図(a)に戻って、バッファサーチ処理部
536のサーチの結果、ページ不在であるか否かを判定す
る(ステップ53305)。ページ不在でない場合、つまり
入出力バッファ上にページが存在する場合には、先ずバ
ッファ上に存在したページが既に要求した問合せのロー
カリティセット内にチェインされているか否かを判定す
る(ステップ53306)。要求したローカリティセット内
にチェインされている場合には、ローカリティセット内
のバッファのチェインを付け換えるために、ページ置換
制御部537に制御を渡す(ステップ53307)。要求したロ
ーカリティセット内にチェインされていない場合には、
他のローカリティセット内にチェインされているか否か
を判定し(ステップ53308)、他のローカリティセット
内にチェインされている場合には、当該ページを要求し
たローカリティセットにおいても共有するように、要求
したローカリティセットに共有ページ管理テーブル66を
チェインし、共有されたページのページ管理テーブル65
に共有ページ管理テーブル66をチェインするページ共有
制御処理を行う(ステップ53309)。
他のローカリティセットにチェインされていない場
合、つまりセカンダリバッファ上に存在する場合には、
要求したローカリティセット内の割り当てバッファ数が
ローカリティセットサイズと等しいか否かにより、ロー
カリティセットサイズを越えるか否かを判定する(ステ
ップ53310)。ローカリティセットを越えない場合に
は、ページ置換制御部537に制御を渡し、当該ページを
セカンダリバッファから要求したローカリティセットに
接続する(ステップ53311)。その後、要求したローカ
リティセットのローカリティセット管理テーブル61内の
ローカリティセット内割り当てバッファ数を変更する
(ステップ53312)。そして、セカンダリバッファ管理
部534に制御を渡し、バッファに存在したページのペー
ジ管理テーブル65をセカンダリバッファのチェインから
切り離す(ステップ53313)。
次に、ステップ53305において、ページ不在か否かの
判定処理で、ページ不在となった場合について、第10図
(b)により説明する。その場合には、当該入力要求が
1ページ入力要求であるか、一括入力要求であるかを判
定し(ステップ53318)、一括入力要求の場合には、外
部記憶装置4から一括入力するページ範囲情報を作成し
(ステップ53319)、検索範囲終了まで、ページサーチ
を繰り返す。また、1ページ入力要求の場合には、要求
したローカリティセット内の割り当てバッファ数が、ロ
ーカリティセットサイズと等しいか否かにより、ローカ
リティセットサイズを越えるか否かを判定する(ステッ
プ53320)。ローカリティセットサイズを越える場合に
は、当該ローカリティセットの置換アルゴリズムによ
り、1ページ分セカンダリバッファにチェインを付け換
えるため、セカンダリバッファ管理部534に制御を渡す
(ステップ53321)。その後、あるいはローカリティセ
ットサイズを越えない場合には、フリーバッファが存在
するか否かを判定し(ステップ53322)、フリーバッフ
ァがある場合には、フリーバッファチェインよりバッフ
ァを1面だけ確保し、当該要求元ローカリティセットに
確保したバッファを接続するため、フリーバッファ管理
部535に制御を渡す(ステップ53323)。フリーバッファ
が無い場合には、セカンダリバッファが存在するか否か
判定し(ステップ53324)、セカンダリバッファが存在
する場合には、セカンダリバッファの置換アルゴリズム
によりバッファを1面確保し、当該要求元ローカリティ
セットに確保したバッファを接続するため、セカンダリ
バッファ管理部534に制御を渡す(ステップ53325)。フ
リーバッファもセカンダリバッファも無い場合、つまり
バッファ不足の場合には、拡張入出力バッファからバッ
ファを取得する。先ず、当該要求元ローカリティセット
の置換アルゴリズムにより、ローカリティセットの中か
らページ置換を行うバッファを選択する(ステップ5332
6)。そして、フリーバッファ管理部535に制御を渡し、
拡張入出力バッファからバッファを1面だけ確保し、当
該要求元ローカリティセットに確保したバッファを接続
する(ステップ53327)。その後、ステップ53326で選択
したバッファのページを、確保した拡張入出力バッファ
に退避することにより(ステップ53328)、ページを退
避したバッファを外部記憶装置4からのページ入力に使
用する。1ページ入力要求の場合には、これらの処理が
終了して、外部記憶装置4上のデータベース40からのペ
ージ入力用バッファにページを入力するため、1ページ
入出力処理部538に制御を渡す(ステップ53329)。
次に、第10図(a)のローカリティセット管理部533
の処理において、ローカリティセット管理部533に対す
る要求が出力要求であるか否かの判定(ステップ5330
0)で、出力要求の場合には、第10図(b)に示すよう
に、さらに当該出力要求が一括出力要求であるか否かを
判定する(ステップ53314)。一括出力要求の場合に
は、ローカリティセット内の全ての出力要求有りのペー
ジを、外部記憶装置4のデータベース40に対してまとめ
書きするため、一括入出力処理部539に制御を渡す(ス
テップ53315)。また、当該出力要求が一括出力要求で
ない場合、つまり1ページ出力要求の場合には、当該出
力要求対象ページのページ管理テーブル65に出力要求フ
ラグをオンにセットし、当該ページの入出力バッファを
主記憶装置2上にページ固定する(ステップ53316,5331
7)。
第12図は、本発明におけるセカンダリバッファ管理部
の処理フローチャートである。
セカンダリバッファ管理部534では、セカンダリバッ
ファチェインに対するバッファの接続要求か否かを判定
し(ステップ5340)、接続要求である場合には、セカン
ダリバッファの置換アルゴリズムFIFOにより、セカンダ
リバッファチェインに要求されたページ管理テーブル65
を接続する(ステップ5341)。接続が完了すると、ペー
ジ管理テーブル65の属性情報(ローカリティセットID
等)を変更する(ステップ5342)。また、セカンダリバ
ッファチェインへのバッファの接続要求でない場合に
は、セカンダリバッファチェインからのバッファの切り
離し要求か否かを判定し(ステップ5343)、バッファ切
り離し要求の場合には、切り離しの対象となったバッフ
ァのページに対して、外部記憶装置4のデータベース40
への出力要求があるか否かを判定し(ステップ5344)。
出力要求有りの場合には、外部記憶装置4のデータベー
ス40への出力を行うために、1ページ入出力処理部538
に制御を渡す(ステップ5345)。そして、当該バッファ
の出力要求に対する処理が終了するか、または出力要求
がない場合には、セカンダリバッファチェインから当該
バッファのページ管理テーブル65を切り離す(ステップ
5346)。
第13図は、本発明におけるフリーバッファ管理部の処
理フローチャートである。
フリーバッファ管理部535においては、フリーバッフ
ァチェインへのバッファの接続要求であるか否かを判定
し(ステップ53500)、接続要求である場合には、当該
接続要求バッファが拡張入出力バッファであるか否かを
判定し(ステップ53501)、拡張入出力バッファでない
場合、つまり仮想記憶空間5上の入出力バッファの場合
には、フリーバッファの置換アルゴリズムFIFOによりフ
リーバッファチェインに要求されたページ管理テーブル
65を接続する(ステップ53502)。接続することによ
り、当該ページ管理テーブル65の属性情報等の情報を初
期状態にする(ステップ53503)。また、当該接続要求
が拡張入出力バッファである場合にも、ステップ53502,
53503と同じように、置換アルゴリズムFIFOにより拡張
フリーバッファチェインに要求された拡張ページ管理テ
ーブル67を接続して、拡張ページ管理テーブル67の属性
情報等の情報を初期状態にする(ステップ53504,5350
5)。一方、フリーバッファチェインへのバッファの接
続要求でない場合には、フリーバッファチェインからの
バッファの切り離し要求か否かを判定し(ステップ5350
6)、バッファ切り離し要求である場合には、切り離し
の対象となったバッファが拡張入出力バッファであるか
否かを判定し(ステップ53507)、当該切り離し要求が
拡張入出力バッファ30でない場合、つまり仮想記憶空間
5上の入出力バッファ68である場合には、切り離しの対
象となったバッファのページ管理テーブル65をフリーバ
ッファチェインから切り離す(ステップ53508)。その
後、切り離したページ管理テーブル65に対して、要求元
の情報を設定する(ステップ53509)。また、当該切り
離し要求が拡張入出力バッファ30である場合にも、ステ
ップ53508,53509と同じように、切り離しの対象となっ
た拡張ページ管理テーブルを拡張フリーバッファチェイ
ンから切り離し、切り離した拡張ページ管理テーブル67
に対して、要求元の情報を設定する(ステップ53510,53
511)。
第14図は、本発明におけるページ置換制御部の処理フ
ローチャートである。
ページ置換制御部537においては、先ずローカリティ
セットからのページ置換対象選択要求か否かを判定し
(ステップ53700)、要求が置換対象選択要求の場合に
は、指定したローカリティセット内から当該ローカリテ
ィセットの置換アルゴリズムにより置換対象となるペー
ジのページ管理テーブル65を探す(ステップ53701)。
そして、選択したページ管理テーブル65を指定されたロ
ーカリティセットのチェインから切り離す(ステップ53
702)。また、要求が置換対象選択要求でない場合、ロ
ーカリティセットへのページ取込み要求か否かを判定し
て(ステップ53703)、ページ取込み要求の場合には、
指定されたページ管理テーブル65の指定したローカリテ
ィセットの置換アルゴリズムに従って接続を行う(ステ
ップ53704)。また、要求がページ取込み要求でない場
合には、ローカリティセット内の指定したページに対す
る置換要求であるか否かを判定し(ステップ53705)、
ローカリティセット内置換要求の場合、要求されたペー
ジが拡張入出力バッファ30であるか否かを判定する(ス
テップ53706)。拡張入出力バッファ30である場合に
は、指定されたローカリティセットの置換アルゴリズム
により置換対象となるページのページ管理テーブル65を
探す(ステップ53707)。次に、選択された置換対象と
なるページを退避するためのバッファを拡張入出力バッ
ファ30から取得するために、フリーバッファ管理部535
に制御を渡す(ステップ53708)。そして、取得した拡
張入出力バッファ30に置換対象となったページを退避
し、退避されたページのページ管理テーブル65の情報
を、退避した拡張入出力バッファ30の拡張ページ管理テ
ーブル67に移す(ステップ53709)。そして、当該ロー
カリティセット内の置換要求対象の拡張入出力バッファ
30のページを、前記退避されたページの入出力バッファ
に復元する(ステップ53710)。その後、拡張ページバ
ッファでないか、あるいは拡張ページバッファの復元が
終了したとき、当該要求で指定されたページ管理テーブ
ル65をローカリティセットの置換アルゴリズムに従って
チェインを付け換える(ステップ53711)。
第15図は、本発明における1ページ入出力処理部の処
理フローチャートである。
先ず、当該1ページ入出力処理部538への処理要求が
入力要求であるか否かを判定し(ステップ5380)、入力
要求である場合には、外部記憶装置4のデータベース40
から指定したバッファにページを読み込む(ステップ53
81)。また、要求が入力要求でない場合には、出力要求
であるか否かを判定し(ステップ5382)、出力要求の場
合には、先ず指定したバッファのページを外部記憶装置
4のデータベース40に書き込み、当該バッファの主記憶
装置2上でのページ固定を解除する(ステップ5383,538
4)。
第16図は、本発明における一括入出力処理部の処理フ
ローチャートである。
先ず、当該一括入出力処理部539への処理要求が、一
括入力要求であるか否かを判定し(ステップ5390)、一
括入力要求の場合には、先読みするために指定されたバ
ッファ群を主記憶装置2上にページ固定する処理を行
い、バッファ群のページ管理テーブル65のページ固定フ
ラグをそれぞれオンにする(ステップ5391)。そして、
外部記憶装置4のデータベース40から指定した入出力バ
ッファ群に、第10図の処理フローで作成した一括入力要
求ページ範囲情報(ステップ53319参照)内のページ群
を一括して読み込む(ステップ5392)。一方、要求が一
括入力要求でない場合には、一括出力要求であるか否か
を判定し(ステップ5393)、一括出力要求の場合には、
外部記憶装置4のデータベース40に指定された入出力バ
ッファ群のページを一括してまとめ書きして、当該バッ
ファ群の主記憶装置2上に対するページ固定を解除する
(ステップ5394,5395)。
以上が、第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)682がソートマ
ージの結果で満杯になると、拡張入出力バッファ(B)
301にバッファ(C)682の内容を退避する。この動作を
拡張入出力バッファ(A)300の中間ファイルについ
て、ソートマージが終了するまで繰り返す。このように
して、拡張入出力バッファ(A)300と拡張入出力バッ
ファ(B)301とを交互に復元用または退避用に使用し
て、ソートマージ処理が終了するまで繰り返し行う。
次に、本発明の第3の実施例のバッファ管理方法につ
いて説明する。
第18図は、本発明の第3の実施例を示すデータベース
の配置と入出力バッファ部の関連図である。
第3の実施例においても、計算機システムの全体構成
は第1図に示す通りである。
入出力バッファ部60は、入出力バッファ68の各バッフ
ァの位置情報とページ情報を持つページ管理テーブル65
と、拡張記憶装置3上に確保したデータベース格納用拡
張入出力バッファ302について、各バッファの位置情報
とページに関する情報を持つ拡張ページ管理テーブル67
とを具備している。拡張記憶装置3上の拡張入出力バッ
ファ302は、データベース40を格納できる容量を持って
いる。
本実施例の応用として、ユーザからの問合せによりソ
ート・マージ法による中間ファイルを作成する内部処理
を行う場合が挙げられる。この場合には、主記憶装置2
上の入出力バッファ68にソート・マージ処理で同時に必
要とする最小のバッファを確保するとともに、拡張記憶
装置3上のデータベース格納用拡張入出力バッファ302
内に、中間ファイルを格納するための第1の入出力バッ
ファ群領域と第2のバッファ群領域とを確保する。
初期段階では、外部記憶装置4のデータベース40から
データを入出力バッファ部60の入出力バッファ68に読み
込み、ここでソート処理を行った後、ソート処理した中
間ファイルを拡張記憶装置3上の第1のバッファ群に退
避する。次の段階では、拡張記憶装置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上の入出力バッファ302に退避し
て、ページ置換の対象となった主記憶装置2上の入出力
バッファ68にデータを入力する。
第19図は、第1図における入出力バッファ管理部の処
理フローチャートである。
入出力バッファ管理部53では、先ず入力要求があった
ページについて、あるハッシュ関数を使用して、ページ
番号によりハッシュ値を取得する(ステップ540)。求
めたハッシュ値により入出力バッファ68をサーチし、当
該入力要求ページが入出力バッファ68上にあるか否かを
判定し(ステップ541)、当該要求ページが入出力バッ
ファ68上にない場合には、空バッファがあるか否かを判
定する(ステップ542)。空バッファがない場合には、
当該入出力バッファ管理部53の置換アルゴリズムにより
置換えるべきページを選択する(ステップ543)。そし
て、選択されたページに対して出力要求があるか否かを
判定し(ステップ544)、出力要求があれば、当該ペー
ジを外部記憶装置4上のデータベース40に出力する処理
を行う(ステップ545)。そして、当該ページを拡張記
憶装置3上の拡張入出力用バッファ302上の同一データ
の格納場所に書き出し、更新処理を行う(ステップ54
6)。このようにして、選択されたページ入力用バッフ
ァに対して、当該入力要求ページの入力処理を行う。
先ず、当該入力要求ページが拡張記憶装置3上の拡張
入出力用バッファ302上に既に格納されているか否かを
判定し(ステップ547)、拡張入出力バッファ302上に当
該入力要求ページがあれば、拡張入出力バッファ302上
にある当該ページをバッファに読み込む(ステップ54
8)。しかし、拡張入出力用バッファ302上に当該ページ
が未だ格納されていない場合には、外部記憶装置4のデ
ータベース40から当該ページを読み込む(ステップ54
9)。そして、読み込んだページを拡張記憶装置3上の
拡張入出力バッファ302に退避する(ステップ550)。
また、上述の例では、データベース処理時に、入力要
求ページが拡張入出力バッファ302に無い場合について
の処理を行っているが、データベース管理システム開始
処理時に、外部記憶装置4上のデータベース40を一括し
て拡張記憶装置3上のデータベース格納用入出力バッフ
ァ302に初期ロードしておけば、第19図における入力要
求ページが拡張記憶装置3上にあるか否かを判定する処
理(ステップ547)は不要となり、それに伴ってステッ
プ549,550が省略できる。
以上のように、第3の実施例では、入出力バッファ管
理部53において、仮想記憶空間5上の入出力バッファ68
と拡張記憶装置3上の拡張入出力バッファ302とを利用
したデータの入出力処理を行うことができる。また、出
力要求のあるバッファおよび先読み処理用のバッファ群
を主記憶装置2に固定することにより、オペレーティン
グシステムの仮想記憶管理を考慮したバッファ管理が可
能となる。
次に、本発明の第4の実施例のバッファ管理方法につ
いて、図面により説明する。
第21図は、本発明の第4の実施例を示す計算機システ
ムの全体構成図である。
第21図において、第1図と異なる点は、拡張記憶装置
3および入出力バッファ部6に拡張ページ管理テーブル
がないこと、CPU1と外部記憶装置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からの入出力要求によりバッファサ
ーチを行う場合に、ハッシングによるバッファのチェイ
ンを管理するハッシュブロック管理テーブル64と、ペー
ジを格納するバッファ毎に主記憶装置2上のバッファの
位置情報、ページ番号およびどのローカリティセットに
属しているか、セカンダリバッファに属しているか、ま
たはフリーバッファに属しているか等の状態を保持する
ページ管理テーブル65と、複数のローカリティセット間
でページを共有する場合に、その共有ページを管理する
共有ページ管理テーブル66と、データベースのページを
格納する入出力バッファ68とが設けられる。
第22図は、第21図における入出力バッファ部の入出力
バッファ状態である各管理テーブルの関連図である。
入出力バッファの状態は、ローカリティセット管理テ
ーブル61と、セカンダリバッファ管理テーブル62と、フ
リーバッファ管理テーブル63の関連で示される。ここで
は、ローカリティセットが3つあるものとして、各々の
ローカリティセットを管理するローカリティセット管理
テーブル245a,245b,245cであり、それぞれローカリティ
セット管理テーブル61aには3ページ分のデータページ
が読込まれる。そして、ページ管理テーブル245a、245
b、245cを、当該ローカリティセットの置換アルゴリズ
ムによりチェイニングしている。また、ローカリティセ
ット管理テーブル61bには、1ページのデータページが
読込まれ、ページ管理テーブル245dを当該ローカリティ
セットの置換アルゴリズムによりチェイニングしてい
る。また、ローカリティセット管理テーブル61cには、
2ページ分のデータページが読込まれ、ページ管理テー
ブル245e,245fを当該ローカリティセットの置換アルゴ
リズムによりチェイニングしている。
また、セカンダリバッファとしては、セカンダリバッ
ファ管理テーブル62に、どのローカリティセットにも属
さない3ページ分のデータページが、ページ管理テーブ
ル245g,245h,245iをセカンダリバッファの置換アルゴリ
ズムFIFOによりチェイニングしている。また、フリーバ
ッファとしては、フリーバッファ管理テーブル63に、フ
リーバッファが2面あり、ページ管理テーブル245j,245
kをフリーバッファ置換アルゴリズムFIFOによりチェイ
ニングしている。
第23図は、第21図におけるハッシュブロック管理テー
ブルと入出力バッファとの関連を示す図である。
ハッシュブロック管理テーブル64は、当該入出力バッ
ファ数分のハッシュ値に対応するバッファのチェイン情
報を持っている。ハッシュブロック管理テーブル64のハ
ッシュ値1には、第22図に示したページ管理テーブル24
5b,245cがチェイニングされ、ハッシュ値3には、ペー
ジ管理テーブル245f、ハッシュ値4には、ページ管理テ
ーブル245i、ハッシュ値5には、ページ管理テーブル24
5a,245g、ハッシュ値n−1には、ページ管理テーブル2
45h、ハッシュ値nには、ページ管理テーブル245e,245d
が、それぞれハッシュチェインのポインタによりチェイ
ニングされている。このとき、第22図におけるローカリ
ティセット管理テーブル241a〜241cの各バッファチェイ
ンは、第23図におけるページ管理テーブルを図中の点線
のようにポインタでチェイニングされている。
なお、第21図における入出力バッファ管理部53の構成
は、第5図に示した第1の実施例と同一であるので、説
明を省略する。また、第5図に示す入出力要求解析部53
0は、データベース演算処理部52から入出力バッファ管
理部53に対して渡された、データベースへの入出力要求
を解析する役割を果す。その処理フローは、第6図に示
した第1の実施例と同一であるため、説明を省略する。
また、第5図のローカリティセット確保処理部531は、
問合せ処理開始時に当該問合せを解析し、決定したアク
セス手順に適したローカリティセットを確保し、初期化
する役割を果す。その処理フローは、第7図に示した第
1の実施例と同一であるため、説明を省略する。
第24図(a)は、本実施例におけるローカリティセッ
ト管理テーブル61の情報を示す図である。
ローカリティセット管理テーブル61には、データベー
スマシンを利用する場合に、データベースマシンが識別
する検索ID6100、入出力バッファ管理部53において、各
問合せのローカリティセットを識別するローカリティセ
ットID6101、ローカリティセットサイズ6102、問合せに
よりローカリティセット内に割り当てたバッファ面数情
報であるローカリティセット内割り当てページ数6103、
ローカリティセット内に割り当てたバッファを管理する
ページ管理テーブルのチェインの先頭および末尾を位置
付ける先頭バッファアドレス6104、末尾バッファアドレ
ス6105、当該ローカリティセット内バッファの置換制御
方法を指示する置換アルゴリズム6106、当該ローカリテ
ィセットを利用する問合せが入出力バッファ管理部53に
より一括入出力を行うか否かを指定する一括入出力要求
指定情報6107、当該問合せでアクセスするリレーション
の情報6108が、それぞれ格納されている。
第24図(b)は、本実施例におけるページ管理テーブ
ルの情報を示す図である。
ページ管理テーブル65には、前述のローカリティセッ
トに関する情報であるローカリティセットIDおよび当該
ページ管理テーブルで管理するページの情報としてリレ
ーションを識別する情報のバッファ属性情報6500、当該
バッファを識別するバッファ番号6501、複数のページ管
理テーブルのチェイン関係を位置付けるページ管理テー
ブル前方ポインタ6502、ページ管理テーブル後方ポイン
タ6503、ページサーチを高速化するためハッシュ関数に
より決定したハッシュ値に属するバッファのチェインを
位置付けるハッシュチェイン前方ポインタ6504、ハッシ
ュチェイン後方ポインタ6505、当該ページ管理テーブル
で管理しているページ番号6506、当該ページ管理テーブ
ルで管理しているページに対して外部記憶装置4への出
力要求が出ているか否かを示す出力要求フラグ6507が、
それぞれ格納されている。
第24図(a)(b)と第1の実施例における第8図
(a)(b)とを比較すれば明らかなように、後者に
は、前者の拡張入出力バッファに関する情報およびペー
ジ固定フラグがない点で異なっている。
なお、入出力バッファ管理部53に対する要求が、ロー
カリティセット解放要求の場合のローカリティセット解
放処理部532の処理フローは、第9図に示した第1の実
施例と同一であるため、その説明を省略する。
第20図(a)(b)(c)は、本実施例のローカリテ
ィセット管理部の処理フローチャートである。
ローカリティセット管理部533は、入出力バッファ管
理部53に対する要求が、ページ入出力処理要求の場合に
動作する。先ず、ページ入出力処理要求が入力要求か、
出力要求かを判定し(ステップ23300)、入力要求の場
合には、1ページ入力と一括入力とを混在して処理でき
るように、入力要求によるページの検索範囲について処
理が終了したか否かを判定する(ステップ23301)。検
索範囲終了状態であれば、一括入力要求であったか否か
を判定し(ステップ23302)、一括入力要求であれば、
一括入出力処理部539に制御を渡し、一括入力を行う
(ステップ23303)。ローカリティセット管理部533にお
いて、検索範囲終了状態でない場合には、入出力バッフ
ァ内に要求するページが存在するか否かをサーチするバ
ッファサーチ処理部536に制御を渡す(ステップ2330
4)。
第27図は、本実施例におけるバッファサーチ処理部の
処理フローチャートである。
バッファサーチ処理部536は、要求したページのペー
ジ番号により、あるハッシュ関数でハッシュ値を取得し
(ステップ2361)、取得したハッシュ値から当該ハッシ
ュ値を持つバッファのチェーンから、ページをサーチす
る(ステップ2362)。その結果、第20図(a)に戻っ
て、ページ不在であるか否かを判定する(ステップ2330
5)。ページ不在でない場合、つまり入出力バッファ68
上にページが存在する場合には、バッファ上に存在した
ページが既に要求した問合せのローカリティセット内に
チェインされているか否かを判定する(ステップ2330
6)。要求したローカリティセット内にチェインされて
いる場合には、ローカリティセット内のバッファのチェ
インを付け換えるために、ページ置換制御部537に制御
を渡す(ステップ23307)。要求したローカリティセッ
ト内にチェインされていない場合には、他のローカリテ
ィセット内にチェインされているか否かを判定する(ス
テップ23308)。他のローカリティセット内にチェイン
されている場合には、当該ページを要求したローカリテ
ィセットにおいても共有するように、共有ページ管理テ
ーブル66を要求したローカリティセットにチェインし、
共有されたページのページ管理テーブル65に共有ページ
管理テーブル66をチェインするページ共有制御処理を行
う(ステップ23309)。
他のローカリティセットにチェインされていない場
合、つまりセカンダリバッファ上に存在する場合には、
要求したローカリティセット内の割り当てバッファ数が
ローカリティセットサイズと等しいか否かにより、ロー
カリティセットサイズを越えるか否かを判定する(ステ
ップ23310)。ローカリティセットサイズを越えない場
合には、ページ置換制御部537に制御を渡し、当該ペー
ジをセカンダリバッファから要求したローカリティセッ
トに接続する(ステップ23311)。その後、要求したロ
ーカリティセットのローカリティセット管理テーブル61
内のローカリティセット内割り当てバッファ数を変更す
る(ステップ23312)。そして、セカンダリバッファ管
理部534に制御を渡し、バッファに存在したページのペ
ージ管理テーブルのセカンダリバッファチェインから切
り離す(ステップ23313)。
次に、ステップ23305に戻って、ページ不在か否かの
判定において、ページ不在となった場合には、第20図
(c)に示すように、先ず、当該入力要求が1ページ入
力要求か、一括入力要求かを判定し(ステップ2331
7)、一括入力要求の場合には、外部記憶装置4から一
括入力するページ範囲情報を作成して(ステップ2331
8)、検索範囲終了までページサーチを繰り返す(ステ
ップ23301,23304,23305)。
また、1ページ入力要求の場合には、要求したローカ
リティセット内の割り当てバッファ数が、ローカリティ
セットサイズと等しいか否かにより、ローカリティセッ
トサイズを越えるか否かを判定する(ステップ2331
9)。ローカリティセットサイズを越える場合には、当
該ローカリティセットの置換アルゴリズムにより、1ペ
ージ分セカンダリバッファにチェインを付け換えるため
に、セカンダリバッファ管理部534に制御を渡す(ステ
ップ23320)。その後、またはローカリティセットサイ
ズを越えない場合には、フリーバッファが存在するか否
かを判定し(ステップ23321)、フリーバッファが無い
場合にはセカンダリバッファが存在するか否かを判定す
る(ステップ23322)。セカンダリバッファが存在する
場合には、セカンダリバッファの置換アルゴリズムによ
りバッファを1面だけ確保し、当該要求元ローカリティ
セットに確保したバッファを接続するため、セカンダリ
バッファ管理部534に制御を渡す(ステップ23324)。ま
た、フリーバッファがある場合には、フリーバッファチ
ェインよりバッファを1面だけ確保し、当該要求元ロー
カリティセットに確保したバッファを接続するため、フ
リーバッファ管理部535に制御を渡す(ステップ2332
5)。1ページ入力要求の場合には、これらの処理が終
了して、外部記憶装置4からのページ入力用バッファに
ページを入力するため、1ページ入出力処理部538に制
御を渡す(ステップ23326)。
次に、第20図(a)のローカリティセット管理部533
の処理において、ローカリティセット管理部533に対す
る要求が出力要求か否かを判定した結果(ステップ2330
0)、出力要求である場合には、第20図(b)に示すよ
うに、当該出力要求が一括出力要求か否かを判定する
(ステップ23314)。一括出力要求でない場合、つまり
1ページ出力要求の場合には、ページ管理テーブル65に
出力要求フラグをセットする(ステップ23315)。一括
出力要求の場合には、ローカリティセット内の全ての出
力要求有りのページを、外部記憶装置4に対して一括出
力するため、一括入出力処理部539に制御を渡す(ステ
ップ23316)。
第25図は、本実施例におけるセカンダリバッファ管理
部の処理フローチャートである。
セカンダリバッファ管理部534では、先ず、セカンダ
リバッファチェインのバッファへの接続要求か否かを判
定し(ステップ2340)、接続要求である場合には、セカ
ンダリバッファの置換アルゴリズムFIFOにより、セカン
ダリバッファチェインに要求されたページ管理テーブル
65を接続する(ステップ2341)。接続が完了した場合に
は、当該ページ管理テーブル65の属性情報(ローカリテ
ィセットID等)を変更する(ステップ2342)。また、セ
カンダリバッファチェインのバッファへの接続要求でな
い場合には、セカンダリバッファチェインからのバッフ
ァの切り離し要求か否かを判定し(ステップ2343)、バ
ッファ切り離し要求である場合には、切り離しの対象と
なったバッファのページに対して、外部記憶装置4への
出力要求があるか否かを判定する(ステップ2344)。出
力要求有りの場合には、外部記憶装置4への出力を行う
ため、1ページ入出力処理部538に制御を渡す(ステッ
プ2345)。そして、当該バッファの出力要求に対する処
理が終了するか、または出力要求がない場合には、セカ
ンダリバッファチェインから当該バッファのページ管理
テーブル65を切り離す(ステップ2346)。
第26図は、本実施例におけるフリーバッファ管理部の
処理フローチャートである。
フリーバッファ管理部535では、先ずフリーバッファ
チェインへのバッファの接続要求であるか否かを判定し
(ステップ2350)、接続要求の場合には、フリーバッフ
ァの置換アルゴリズムFIFOによりフリーバッファチェイ
ンに、要求されたページ管理テーブル65を接続する(ス
テップ2351)。接続すると、当該ページ管理テーブル65
の属性情報等を初期状態にする(ステップ2352)。ま
た、フリーバッファチェインのバッファへの接続要求で
ない場合には、フリーバッファチェインからのバッファ
の切り離し要求であるか否かを判定し(ステップ235
3)、バッファ切り離し要求である場合には、切り離し
の対象となったバッファのページ管理テーブル65を、フ
リーバッファチェインから切り離す(ステップ2354)。
その後、切り離したページ管理テーブル65に対して、要
求元の情報を設定する(ステップ2355)。
第28図は、本実施例におけるページ置換制御部の処理
フローチャートである。
ページ置換制御部537では、先ずローカリティセット
からのページ置換対象選択要求であるか否かを判定し
(ステップ2371)、要求が置換対象選択要求の場合に
は、指定したローカリティセット内から当該ローカリテ
ィセットの置換アルゴリズムにより、置換対象となるペ
ージのページ管理テーブル65を探す(ステップ2372)。
そして、選択したページ管理テーブル65を、指定された
ローカリティセットのチェインから切り離す(ステップ
2373)。また、置換対象選択要求でない場合、ローカリ
ティセットへのページ取込み要求であるか否かを判定し
(ステップ2374)、ページ取込み要求の場合には、指定
されたページのページ管理テーブル65を指定したローカ
リティセットの置換アルゴリズムに従って接続する(ス
テップ2375)。また、要求がページ取込み要求でない場
合には、ローカリティセット内の指定したページに対す
る置換要求であるか否かを判定する(ステップ2376)。
ローカリティセット内置換要求の場合には、指定された
ページのページ管理テーブル65を当該ローカリティセッ
トの置換アルゴリズムに従ってチェインを付け換える
(ステップ2377)。
第29図は、本実施例における1ページ入出力処理部の
処理フローチャートである。
1ページ入出力処理部538では、処理要求が入力要求
であるか(ステップ2380)、出力要求であるか(ステッ
プ2382)を判定し、入力要求の場合には、外部記憶装置
4から指定したバッファにページを読込み(ステップ23
81)、出力要求の場合には、指定したバッファのページ
を外部記憶装置4に書込む(ステップ2383)。
第30図は、本実施例における一括入出力処理部の処理
フローチャートである。
一括入出力処理部539では、先ず処理要求が一括入力
要求であるか(ステップ2390)、または一括出力要求で
あるか(ステップ2394)を判定する。一括入力要求の場
合には、さらにデータベースマシンを利用するか否かを
判定し(ステップ2391)、データベースマシンを利用し
ない場合には、外部記憶装置4から指定した入出力バッ
ファ群に、第20図(c)に示す処理で作成した一括入力
要求ページ範囲情報(ステップ23318)内のページ群を
一括して読込む(ステップ2392)。また、データベース
マシンを利用してデータベース検索を行う場合には、デ
ータベースマシンに対して検索範囲情報、データベース
演算処理要求を発行し、指定した入出力バッファ群にデ
ータベース演算処理結果を受信する(ステップ2393)。
一方、一括出力要求の場合には、外部記憶装置4に指
定された入出力バッファ群のページを一括して書込む
(ステップ2395)。
このような方法により、入出力バッファ管理部53にお
いて、1ページ入出力処理と一括入出力処理とを混在し
て入出力処理を行うことができる。
第31図は、第7図における一括入出力用バッファ確保
の一例を示すフローチャートであり、第32図は第5図の
入出力バッファ管理部の他の実施例を示す機能ブロック
構成図である。
第32図において、24は入出力バッファ管理部、241は
ローカリティセット管理テーブル、242はセカンダリバ
ッファ管理テーブル、243はフリーバッファ管理テーブ
ル、244はハッシュブロック管理テーブル、245はフリー
バッファ管理テーブル、246はハッシュブロック管理テ
ーブル、248は非共用バッファ管理テーブル、247は共用
入出力バッファ、249a,b,c・・・は非共用入出力バッフ
ァである。
第31図のローカリティセット確保処理部531におい
て、一括入出力バッファ確保処理(ステップ5313)で
は、一括入出力要求のうち、一括入力要求について、デ
ータベースマシンを適用するか否かを判定する(ステッ
プ23130)。データベースマシンを適用しない場合に
は、第32図に示す入出力バッファ管理部24の共用入出力
バッファ247からバッファを確保し、ローカリティセッ
ト内に確保したバッファのページ管理テーブルをチェイ
ンする(ステップ23131)。また、データベースマシン
を適用する場合には、データベースマシンによりデータ
ベース演算した結果を他ユーザが共用しないため、第32
図に示す入出力バッファ管理部24の非共用入出力バッフ
ァ249a,249b,249c等から未使用状態のものを確保する
(ステップ23232)。この非共用入出力バッファ249a,b,
cは、非共用バッファ管理テーブル248により管理され、
仮想記憶上でローカリティセットサイズ分の連続した領
域であり、ページ単位に管理する必要がなく、他ユーザ
からのバッファに対する干渉を受けない。
第33図は、第30図の一括入出力処理の他の実施例を示
す処理フローチャートである。
第33図においては、第30図の一括入出力処理部539の
処理について、一括入力要求で、かつデータベースマシ
ン適用有りの場合に、データベースマシンが障害により
利用できなくなった際の処理を示している。
先ず、一括入出力処理部539に対する処理要求が、一
括入力要求である場合(ステップ2390)、その一括入力
要求がデータベースマシンを適用するか否かを判定し
(ステップ2391)、データベースマシンを適用しない場
合には、外部記憶装置4から指定したバッファ群にペー
ジを一括して入力する(ステップ2392)。また、一括入
力要求がデータベースマシンを適用する場合には、現在
データベースマシンが使用状態にあるか否かを判定し
(ステップ2396)、データベースマシンが使用可能であ
るときには、データベースマシンに対して検索範囲、デ
ータベース演算処理要求を発行し、指定したバッファ群
にデータベース演算処理結果を受信する(ステップ239
3)。その後、データベースマシンによる演算の結果、
データベースマシンに障害が発生したか否か、つまり正
常終了したか否かを判定し(ステップ2397)、データベ
ースマシンに障害が発生したことを検知すると、データ
ベースマシンを使用不可状態にする(ステップ2398)。
次に、データベースマシンが使用可能状態か否かを判定
し(ステップ2396)、使用不可状態の場合には、データ
ベースマシンの適用を停止し、外部記憶装置4から指定
したバッファ群にページを一括して読込む(ステップ23
92)。これにより、データベースマシンが使用不可状態
になっても、入力処理を代えることにより問合せ処理を
継続することが可能である。
このように、本発明においては、(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図におけるページ置換制御
部の処理フローチャート、第15図は第5図における1ペ
ージ入出力処理部の処理フローチャート、第16図は第5
図における一括入出力処理部の処理フローチャート、第
17図は本発明の第2の実施例を示す説明図、第18図は本
発明の第3の実施例に係るデータベースの配置と入出力
バッファ部の関連図、第19図は第2の実施例を示す入出
力バッファ管理部の処理フローチャート、第20図は第2
の実施例を示すローカリティセット管理部の処理フロー
チャート、第21図は本発明の第4の実施例を示すバッフ
ァ管理方法を適用した計算機システムの全体ブロック
図、第22図は第21図における入出力バッファ部の各管理
テーブルの関連図、第23図は第21図におけるハッシュブ
ロック管理テーブルと入出力バッファとの関連図、第24
図は第21図における各管理テーブルに格納される情報の
図、第25図はセカンダリバッファ管理部の処理フローチ
ャート、第26図はフリーバッファ管理部の処理フローチ
ャート、第27図はバッファサーチ処理部の処理フローチ
ャート、第28図はページ置換制御部の処理フローチャー
ト、第29図は1ページ入出力処理部の処理フローチャー
ト、第30図は一括入出力処理部の処理フローチャート、
第31図はローカリティセット確保処理部における一括入
出力用バッファ確保処理のフローチャート、第32図は本
実施例の変形例を示す入出力バッファ管理部の機能ブロ
ック図、第33図はデータベースマシンの障害時の一括入
出力処理部の処理フローチャートである。 1:CPU、2:主記憶装置、3:拡張記憶装置、4:外部記憶装
置、5:仮想空間、30:拡張入出力バッファ、40:データベ
ース、51:データベース問合せ要求解析部、52:データベ
ース演算処理部、53:入出力バッファ管理部、60:入出力
バッファ部、61:ローカリティセット管理テーブル、62:
セカンダリバッファ管理テーブル、63:フリーバッファ
管理テーブル、64:ハッシュブロック管理テーブル、65:
ページ管理テーブル、66:共有ページ管理テーブル、67:
拡張ページ管理テーブル、68:入出力バッファ、530:入
出力要求解析部、531:ローカリティセット確保処理部、
532:ローカリティセット解放処理部、533:ローカリティ
セット管理部、534:セカンダリバッファ管理部、535:フ
リーバッファ管理部、536:バッファサーチ処理部、537:
ページ置換制御部、538:1ページ入出力処理部、539:一
括入出力処理部、300,301:拡張入出力バッファ、680,68
1,682:仮想空間上の1ページ分のバッファ、302:データ
ベース格納用拡張入出力バッファ、24:入出力バッファ
管理部、241:ローカリティセット管理テーブル、242:セ
カンダリバッファ管理テーブル、243:フリーバッファ管
理テーブル、244:ハッシュブロック管理テーブル、245:
フリーバッファ管理テーブル、246:ハッシュブロック管
理テーブル、248:非共用バッファ管理テーブル、247:共
用入出力バッファ、249a,249b,249c:非共用入出力バッ
ファ。
フロントページの続き (56)参考文献 特開 昭64−46857(JP,A) 特開 昭64−94457(JP,A) 特開 平2−245951(JP,A) 特開 平2−196351(JP,A) 千田正彦,MVSの機能と構造,日 本,株式会社近代科学社,1986年 6月 5日,p.54〜56 “大型機アーキテクチャはどこへ向か うか”,日経コンピュータ,日本,日経 BP社,1989年 9月11日,第208号, p.56〜77 (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 G06F 12/08 - 12/12

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】データベース管理システムにより管理さ
    れ、仮想記憶システムの仮想記憶空間上に確保された主
    記憶装置上の入出力バッファの管理方法であって、 該入出力バッファは1面毎に、該入出力バッファの仮想
    記憶領域上の位置情報と、該入出力バッファに格納され
    たデータベースのデータページ情報と、該データページ
    のデータに対する更新の有無を示す更新フラグとを記憶
    する管理テーブルを有し、 ユーザからの問合せにより該入出力バッファに格納され
    ているデータページのデータが更新されて、上記データ
    ベース管理システムの入出力バッファ管理用プログラム
    モジュールに対し、上記入出力バッファ上に格納されて
    いるデータページに対する外部記憶装置のデータベース
    への出力要求が発生すると、該入出力バッファ管理用プ
    ログラムモジュールは上記管理テーブルの更新フラグを
    オンにして、仮想記憶上の該入出力バッファの領域を上
    記主記憶装置上に固定する処理を行うことを特徴とする
    バッファ管理方法。
  2. 【請求項2】請求項1に記載のバッファ管理方法におい
    て、 前記入出力バッファは1面毎に、該入出力バッファの仮
    想記憶領域上の位置情報と、該入出力バッファに格納さ
    れたデータベースのデータページ情報と、該入出力バッ
    ファを上記主記憶装置上に固定したことを示すページ固
    定フラグとを記憶する管理テーブルを有し、ユーザから
    の問合せにより上記データベース管理システムの入出力
    バッファ管理用プログラムモジュールに対し、外部記憶
    装置上に蓄積されたデータベースからの複数ページ単位
    の入力要求が発生すると、上記入出力バッファ管理用プ
    ログラムモジュールはデータページ入力用に確保した入
    出力バッファ群に対して、上記主記憶装置上に固定する
    処理を行い、各入出力バッファの管理テーブルページ固
    定フラグをオンにする処理を行うことを特徴とするバッ
    ファ管理方法。
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
JP1-134887 1989-05-29
JP13488789 1989-05-29
JP04404690A JP3453757B2 (ja) 1989-05-29 1990-02-23 バッファ管理方法

Publications (2)

Publication Number Publication Date
JPH0373036A JPH0373036A (ja) 1991-03-28
JP3453757B2 true 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)

Families Citing this family (68)

* 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
WO1999009467A2 (en) * 1997-08-20 1999-02-25 Koninklijke Philips Electronics N.V. A transient datastream-processing buffer memory organization with software management adapted for multilevel housekeeping
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
US6072772A (en) * 1998-01-12 2000-06-06 Cabletron Systems, Inc. Method for providing bandwidth and delay guarantees in a crossbar switch with speedup
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
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
JP3664027B2 (ja) * 2000-02-01 2005-06-22 ヤマハ株式会社 記録再生装置
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
US7080060B2 (en) * 2003-01-08 2006-07-18 Sbc Properties, L.P. System and method for intelligent data caching
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
US7043623B2 (en) * 2003-01-22 2006-05-09 Intelitrac, Inc. Distributed memory computing environment and implementation thereof
US7318076B2 (en) * 2003-01-22 2008-01-08 Intelitrac, Inc. Memory-resident database management system 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
JP4463661B2 (ja) 2004-11-01 2010-05-19 株式会社日立製作所 計算機システム、計算機、データベースアクセス方法及びデータベースシステム
KR100689762B1 (ko) * 2005-01-25 2007-03-08 심상엽 데이터베이스 시스템 및 그 데이터베이스 시스템의데이터베이스 컴포넌트를 메인 메모리에 저장하는 시스템및 방법
JP5261809B2 (ja) * 2005-08-31 2013-08-14 株式会社日立製作所 計算機システム及びデータベース管理システムプログラム
WO2007034482A2 (en) * 2005-09-20 2007-03-29 Sterna Technologies (2005) Ltd. A 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
JP5108252B2 (ja) * 2006-04-27 2012-12-26 株式会社日立製作所 インデクス更新方法及びそのシステム
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
JP5098120B2 (ja) * 2011-10-12 2012-12-12 株式会社日立製作所 計算機システム及びデータベース管理システムプログラム
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
US10007443B1 (en) * 2016-03-31 2018-06-26 EMC IP Holding Company LLC Host to device I/O flow
US10331600B1 (en) 2016-03-31 2019-06-25 EMC IP Holding Company LLC Virtual I/O queuing

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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"大型機アーキテクチャはどこへ向かうか",日経コンピュータ,日本,日経BP社,1989年 9月11日,第208号,p.56〜77
千田正彦,MVSの機能と構造,日本,株式会社近代科学社,1986年 6月 5日,p.54〜56

Also Published As

Publication number Publication date
JPH0373036A (ja) 1991-03-28
US5237661A (en) 1993-08-17

Similar Documents

Publication Publication Date Title
JP3453757B2 (ja) バッファ管理方法
CN110825748B (zh) 利用差异化索引机制的高性能和易扩展的键值存储方法
JP4162183B2 (ja) データベース管理システムの静的な情報を取得する手段を有する記憶装置
US5758149A (en) System for optimally processing a transaction and a query to the same database concurrently
US6792518B2 (en) Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies
US6957362B2 (en) Instantaneous restoration of a production copy from a snapshot copy in a data storage system
US6934822B2 (en) Organization of multiple snapshot copies in a data storage system
US6216199B1 (en) Hardware mechanism for managing cache structures in a data storage system
JP3611305B2 (ja) 永続的且つロバストな記憶割当てシステム及び方法
US7096227B2 (en) Database utilities
US7266669B2 (en) File system with file management function and file management method
US6857045B2 (en) Method and system for updating data in a compressed read cache
JP3771803B2 (ja) 永続的且つロバストなメモリ管理のためのシステム及び方法
US11886401B2 (en) Database key compression
JPH06139120A (ja) ファイルの更新方式
CN113553476A (zh) 一种利用哈希减少写停顿的键值存储方法
JPH07152641A (ja) プログラムキャッシュ装置
JP3485598B2 (ja) ファイルの配置方法、データ多重化方法及びデータ処理システム
CN117120998A (zh) 用于读取树数据结构中保存的数据的方法和装置
US20030115408A1 (en) Cache storage system and method
US5414842A (en) External sorting using virtual storage as a work device
US7421456B2 (en) Method and system for data processing with database reorganization for the same
JP3378594B2 (ja) データベース再配置を行う処理装置
US20240118982A1 (en) Early Database Transaction Visibility
US20240193186A1 (en) Database layered filtering

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