(57)【特許請求の範囲】
【請求項１】
データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データを格納する２次記憶装置と、前記入出力バッファに一時的に格納するデータ及び前記２次記憶装置に格納するデータの置換処理を管理するバッファ管理部と、前記入出力バッファに格納されたデータがバッファ管理部において書き出される前に、事前書出しを行うプレライト処理を管理するプレライト管理部と、を有する計算機のデータ処理方法であって、
前記バッファ管理部が、前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定するステップと、
前記バッファ管理部が、所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測するステップと、
前記バッファ管理部が、所定時間あたりに前記複数の入出力バッファに格納されたデータを順番に参照する参照速度を算出するステップと、
前記プレライト管理部が、プレライト処理の実行契機を検出し、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定するステップと、
前記プレライト管理部が、前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出すステップと、
前記プレライト管理部が、前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定するステップと、
を含むことを特徴とするデータ処理方法。
【請求項２】
請求項１に記載のデータ処理方法であって、
前記プレライト管理部が今回のプレライト処理を行う対象となる入出力バッファを選定するステップは、前記現在バッファ管理部で参照されている入出力バッファの位置情報と前記前回プレライト処理が行われた入出力バッファの位置情報との差が一定値以上であり、且つ当該参照されている入出力バッファの位置情報と前記前回プレライト処理が行われた入出力バッファの位置情報との差が規定値未満の場合、前記前回プレライト処理された入出力バッファの次の入出力バッファを前記今回のプレライト処理を行う入出力バッファとして選定することを特徴とするデータ処理方法。
【請求項３】
請求項１又は２に記載のデータ処理方法であって、
前記バッファ管理部が、前記置換対象の入出力バッファを選定するステップにおいて、参照回数が一定値以下の入出力バッファを置換対象として選定するステップを更に含むことを特徴とするデータ処理方法。
【請求項４】
請求項１〜３のいずれか一項に記載のデータ処理方法であって、
前記バッファ管理部が、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報とを取得するステップを含み、
前記プレライト管理部が今回のプレライト処理を行う候補となる入出力バッファを選定するステップは、
前記前回プレライト処理を行った入出力バッファの位置情報と、前記現在バッファ管理部で参照されている入出力バッファの位置情報との差分を算出し、該差分に応じて、今回のプレライト処理の開始位置となる入出力バッファを設定するステップを含むことを特徴とするデータ処理方法。
【請求項５】
請求項１〜４の何れか一項に記載のデータ処理方法であって、
前記バッファ管理部が、前回のプレライト処理開始時点よりも過去から、今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を計数するとともに、前回のプレライト処理開始時点から今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を計数するステップを更に含み、
前記プレライト管理部が今回のプレライト処理を行う候補となる入出力バッファを選定するステップは、
前記プレライト管理部が、
前記両計数値の差を基に今回のプレライト処理において処理の対象となる入出力バッファの処理数を設定するステップを含むことを特徴とするデータ処理方法。
【請求項６】
請求項１〜５の何れか一項に記載のデータ処理方法であって、
前記プレライト管理部が、前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定するステップは、
前記プレライト管理部が今回のプレライト処理を行う対象となる入出力バッファを選定するステップで選定された入出力バッファのうち最後にプレライト処理の対象とされた入出力バッファの位置から所定数分減じた位置にある入出力バッファに対し、前記バッファ管理部が参照するまでの時間を前記参照速度に基づいて算出し、該算出結果を前記次回のプレライト処理の実行契機とすることを特徴とするデータ処理方法。
【請求項７】
データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データをバックアップするために格納する２次記憶装置と、前記主記憶装置と前記２次記憶装置とを制御するコントローラと、を備えるデータ処理装置であって、
前記コントローラは、
前記入出力バッファ及び前記２次記憶装置間のデータの置換処理を管理するバッファ管理部と、
前記入出力バッファに格納されたデータがバッファ管理部によって書き出される前に、事前書出しを行うプレライト処理を管理するプレライト管理部と、を有し、
前記バッファ管理部は、
前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定し、
所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測し、
所定時間あたりに前記複数の入出力バッファに格納されたデータを順番に参照する参照速度を算出し、
前記プレライト管理部は、
プレライト処理の実行契機を検出し、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定し、
前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出し、
前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定することを特徴とするデータ処理装置。
【請求項８】
請求項７に記載のデータ処理装置であって、
前記プレライト管理部が今回のプレライト処理を行う対象となる入出力バッファを選定する際、前記現在バッファ管理部で参照されている入出力バッファの位置情報と前記前回プレライト処理が行われた入出力バッファの位置情報との差が一定値以上であり、且つ当該参照されている入出力バッファの位置情報と前記前回プレライト処理が行われた入出力バッファの位置情報との差が規定値未満の場合、前記前回プレライト処理された入出力バッファの次の入出力バッファを前記今回のプレライト処理を行う入出力バッファとして選定することを特徴とするデータ処理装置。
【請求項９】
請求項７又は８に記載のデータ処理装置であって、
前記バッファ管理部が、前記置換対象の入出力バッファを選定する際、
参照回数が一定値以下の入出力バッファを置換対象として選定することを特徴とするデータ処理装置。
【請求項１０】
請求項７〜９のいずれか一項に記載のデータ処理装置であって、
前記バッファ管理部が、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報とを更に取得し、
前記プレライト管理部が、今回のプレライト処理を行う候補となる入出力バッファを選定する際
前記前回プレライト処理を行った入出力バッファの位置情報と、前記現在バッファ管理部で参照されている入出力バッファの位置情報との差分を算出し、該差分に応じて、今回のプレライト処理の開始位置となる入出力バッファを設定することを特徴とするデータ処理装置。
【請求項１１】
請求項７〜１０の何れか一項に記載のデータ処理装置であって、
前記バッファ管理部が、前回のプレライト処理開始時点よりも過去から、今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を計数するとともに、前回のプレライト処理開始時点から今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を更に計数し、
前記プレライト管理部が、今回のプレライト処理を行う候補となる入出力バッファを選定する際、
前記プレライト管理部が、
前記両計数値の差を基に今回のプレライト処理において処理の対象となる入出力バッファの処理数を設定することを特徴とするデータ処理装置。
【請求項１２】
請求項７〜１１の何れか一項に記載のデータ処理装置であって、
前記プレライト管理部が、前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定する際、
今回のプレライト処理を行う対象となる入出力バッファとして選定した入出力バッファのうち、最後にプレライト処理の対象とされた入出力バッファの位置から所定数分減じた位置にある入出力バッファに対し、前記バッファ管理部が参照するまでの時間を前記参照速度に基づいて算出し、該算出結果を前記次回のプレライト処理の実行契機とすることを特徴とするデータ処理装置。
【請求項１３】
データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データを格納する２次記憶装置と、前記入出力バッファに一時的に格納するデータ並びに前記２次記憶装置に格納するデータの置換処理の管理及び、前記入出力バッファに格納されたデータを、前記置換処理によって前記２次記憶装置に書き出す前に、事前書出しを行うプレライト処理の管理を行う制御部と、を有する計算機に、
前記入出力バッファを固定の循環リストとして捉え、前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定する機能と、
所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測する機能と、
所定時間あたりに前記複数の入出力バッファに格納されたデータを順番に参照する参照速度を算出する機能と、
プレライト処理の実行契機を検出し、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定する機能と、
前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出す機能と、
前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定する機能と、
を実現させることを特徴とするデータ処理プログラム。
【請求項１４】
請求項１３に記載のデータ処理プログラムであって、
今回のプレライト処理を行う対象となる入出力バッファを選定する際、前記現在バッファ管理部で参照されている入出力バッファの位置情報と前記前回プレライト処理が行われた入出力バッファの位置情報との差が一定値以上であり、且つ当該参照されている入出力バッファの位置情報と前記前回プレライト処理が行われた入出力バッファの位置情報との差が規定値未満の場合、前記前回プレライト処理された入出力バッファの次の入出力バッファを前記今回のプレライト処理を行う入出力バッファとして選定する機能を実現させることを特徴とするデータ処理プログラム。
【請求項１５】
請求項１３又は１４に記載のデータ処理プログラムであって、
前記置換対象の入出力バッファを選定する際、
参照回数が一定値以下の入出力バッファを置換対象として選定する機能を実現させることを特徴とするデータ処理プログラム。
【請求項１６】
請求項１３〜１５のいずれか一項に記載のデータ処理プログラムであって、
前回プレライト処理を行った入出力バッファの位置情報と、現在参照されている入出力バッファの位置情報とを更に取得する機能と、
今回のプレライト処理を行う候補となる入出力バッファを選定する際
前記前回プレライト処理を行った入出力バッファの位置情報と、前記現在参照されている入出力バッファの位置情報との差分を算出し、該差分に応じて、今回のプレライト処理の開始位置となる入出力バッファを設定する機能を更に実現することを特徴とするデータ処理プログラム。
【請求項１７】
請求項１３〜１６の何れか一項に記載のデータ処理プログラムであって、
前回のプレライト処理開始時点よりも過去から、今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を計数するとともに、前回のプレライト処理開始時点から今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を更に計数する機能と、
今回のプレライト処理を行う候補となる入出力バッファを選定する際、
前記両計数値の差を基に今回のプレライト処理において処理の対象となる入出力バッファの処理数を設定する機能とを実現することを特徴とするデータ処理プログラム。
【請求項１８】
請求項１３〜１７の何れか一項に記載のデータ処理プログラムであって、
前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定する際、
今回のプレライト処理を行う対象となる入出力バッファとして選定した入出力バッファのうち、最後にプレライト処理の対象とされた入出力バッファの位置から所定数分減じた位置にある入出力バッファに対し、前記バッファ管理部が参照するまでの時間を前記参照速度に基づいて算出し、該算出結果を前記次回のプレライト処理の実行契機とする機能を実現することを特徴とするデータ処理プログラム。
【請求項１９】
データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データを格納する２次記憶装置と、前記入出力バッファに一時的に格納するデータ及び前記２次記憶装置に格納するデータの置換処理を管理するバッファ管理部と、前記入出力バッファに格納されたデータがバッファ管理部において書き出される前に、事前書出しを行うプレライト処理を管理するプレライト管理部と、を有する計算機のデータ処理方法であって、
前記バッファ管理部が、前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定するステップと、
前記バッファ管理部が、所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測するステップと、
前記バッファ管理部が、前記置換実行回数が前回プレライト処理の対象となった入出力バッファ数以上である場合に、プレライト処理を起動するステップと、
前記プレライト管理部が、前記バッファ管理部によるプレライト処理の起動を条件に、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定するステップと、
前記プレライト管理部が、前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出すステップと、
を含むことを特徴とするデータ処理方法。
【請求項２０】
データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データを格納する２次記憶装置と、前記入出力バッファに一時的に格納するデータ及び前記２次記憶装置に格納するデータの置換処理を管理するバッファ管理部と、前記入出力バッファに格納されたデータがバッファ管理部において書き出される前に、事前書出しを行うプレライト処理を管理するプレライト管理部と、を有する計算機のデータ処理方法であって、
前記バッファ管理部が、前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定するステップと、
前記バッファ管理部が、所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測するステップと、
前記バッファ管理部が、所定時間あたりに前記複数の入出力バッファに格納されたデータを順番に参照する参照速度を算出するステップと、
前記プレライト管理部が、プレライト処理の実行契機を検出し、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定するステップと、
前記プレライト管理部が、現在バッファ管理部で参照されている入出力バッファの位置情報と前記プレライト処理を行う候補となる入出力バッファの位置情報との差分が規定値未満である場合、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを再度選定するステップと、
前記プレライト管理部が、現在バッファ管理部で参照されている入出力バッファの位置情報と前記プレライト処理を行う候補となる入出力バッファの位置情報との差分が規定値以上である場合であって、前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出すステップと、
前記プレライト管理部が、前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定するステップと、
を含むことを特徴とするデータ処理方法。
【発明の詳細な説明】
【参照による取り込み】
【０００１】
本出願は、平成２２年（２０１０年）４月２２日に出願された日本特許出願特願２０１０−０９８６５２の優先権を主張し、その内容を参照することにより、本出願に取り込む。
【技術分野】
【０００２】
本発明は、バッファ管理コンポーネントを有するシステムのデータ処理方法、データ処理装置及びデータ処理プログラムに関する。
【背景技術】
【０００３】
データベース管理システム（DBMS）等のソフトウェアでは、データ処理を実行する際、処理速度や転送速度の差を補い、処理の高速化を図るために、データをページと呼ばれる単位毎に、一時的に主記憶装置上のバッファプールに記憶する。バッファプール上に全てのデータを記憶できるとは限らないため、バッファプール上には、バッファ管理機構によって、使用される可能性の高いデータが記憶されるようになっている。使用される可能性が高いデータを含むページ以外のページは２次記憶装置などに格納されており、必要に応じてバッファプール上のページと置換する置換処理を行うようになっている。
ここで、置換処理とは、バッファプール上にあるページを２次記憶装置等に書出して、２次記憶装置から必要なデータをページ単位で読込む場合と、バッファプール上からの書出しを行わずに２次記憶装置から必要なデータをページ単位で読込む場合との両方の処理を含むものである。【０００４】
置換処理において、バッファプール上の置換対象となるページを選択するといった、バッファ上のリソース割り当てを行うアルゴリズムとしてLRU(Least Recently Used)やGeneralized CLOCK（以下、GCLOCK）がある。
LRUについては、特許文献１のDescription of the Related Artに纏められており、GCLOCKの詳細に関しては、非特許文献１のpp.17等で述べられている。【０００５】
バッファ管理機構において、置換処理を実施する場合、まず、バッファプール上の置換対象となるページを探索する。探索の結果、置換対象となるページが決まった後、そのページがバッファプールに読み込まれてから更新があったか否かを判定する。前記判定の結果、更新があった場合、2次記憶装置等の主記憶以外の記憶装置に対し、置換対象となるページを書き出す書出し処理を行う。【０００６】
その後、書出し処理を行った記憶装置から必要なデータをページ単位でバッファプール上に読み込む読込み処理が実施されるようになっている。つまり、置換処理は、書出し処理が発生した場合は、発生しなかった場合に比べて、書出し処理の分、処理に必要なデータへのアクセスレスポンスが長くなる。【０００７】
特定のデータへのアクセスレスポンスを向上させる方法として、アクセス要求が発生する前に、ページの書出し処理を予め完了させておくことが考えられる。この点、特許文献２には、ページを置換する際に書き出しが必要となるページ（以下、「ダーティなページ」という。）を、バッファ管理機構とは非同期に書き出す技術が開示されている。特許文献２に開示された技術では、ダーティなページを、バッファ管理機構とは非同期に全て書き出すようになっている。このような、ダーティなページを、事前且つ非同期に書き出す処理をプレライト処理と呼ぶ。【０００８】
プレライト処理において、ダーティなページを全て書き出した後、バッファ管理機構が、バッファプール上に有るページを置換対象とするまでの間に、そのページに含まれるデータが更新されると、そのページは再度ダーティなページとなる。このため、その後バッファ管理機構がそのページを置換対象としたときに、ページの書出し処理が発生してしまうといった第一の問題がある。【０００９】
また、前述したダーティなページを全て書き出すプレライト処理の場合では、バッファ管理機構がバッファプール上に有る特定のページを置換対象とするまでの間に、ページの更新と、そのページの書出し処理とが繰り返される可能性がある。このとき、その特定のページに対し有効なプレライト処理は、そのページが置換対象となる直前に実行されたプレライト処理だけであり、それ以前に実行されたプレライト処理で発生した書出し処理は、プレライト処理を実行するシステム全体に対してのオーバヘッド増大に繋がるといった第二の問題がある。【００１０】
前記２つの問題を解決するためには、一度のプレライト処理で書き出すページ数を適切に管理し、そのプレライト処理の実行直後にバッファ管理機構が置換対象とするようなページのみをプレライト処理の処理対象とする方法が考えられる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】米国特許第７，０９６，３２１号公報
【特許文献２】特開２００１−１０１０８０号公報
【非特許文献】
【００１２】
【非特許文献１】Principles of database buffer management (Wolfgang Effelsberg, Theo Haerder : ACM Trans. Database Syst.,Vol. 9, No. 4. (December 1984), pp. 560-595)
【発明の概要】
【発明が解決しようとする課題】
【００１３】
従来技術では、バッファ上のリソース割り当てを行うアルゴリズム毎に、置換対象となるページの選択方法が異なる。そのため、前記解決方法を実現するにあたり、アルゴリズム毎に異なるプレライト処理の処理方法が必要となる。
GCLOCKでは、バッファプール上に格納されたページを、順番の固定された循環リストとして管理しており、ページの置換処理が発生する場合、前記循環リスト上のページを順に辿りながらページを指し示すCLOCKHANDによって、前記循環リスト上に点在している置換対象となり得るページを探索する。【００１４】
つまり、GCLOCKを適用したバッファ管理において、プレライト処理実行直後に、バッファ管理機構において置換対象となるようなページのみをプレライト処理の処理対象とするためには、プレライト処理実行直後に、CLOCKHANDがポイントするページの近くに位置するページのみをプレライト処理の処理対象とする必要がある。【００１５】
例えば、プレライト処理の処理対象としているページの循環リスト上の位置と、CLOCKHANDが指し示しているページの循環リスト上の位置の差が大きく開いていると、バッファ管理機構においてページの書出し処理が発生することとなる。【００１６】
この事例を、図を用いて詳細に具体的に説明する。図１５は、バッファ管理機構によってページの書出し処理が発生する例を示す。図１５（ａ）と図１５（ｂ）は、同じ循環リストの例を示す図であり、図１５（ｂ）は、図１５（ａ）よりＮ時間経過した前記循環リストの状態を示している。図１５（ａ）の時点で、CLOCKHAND１５００は、ページ１５０１を指し示しており、ページ１５０３からページ１５０４までのページ群（点線内のページ）を対象にプレライト処理が実行されるものとする。【００１７】
このプレライト処理では、プレライト対象のページ群に書出し処理が必要なページを含むため、該当するページの書出し処理が実行される。また、書出し処理が必要なページには、ページ置換の対象となり得るページ１５０３とページ１５０４とが含まれる。つまり、CLOCKHAND１５００が指し示す前に、更新されたデータが格納されたページ１５０３とページ１５０４のプレライト処理が実行される。【００１８】
しかし、図１５の例では、ページ１５０１とページ１５０３との間においても書出し処理を必要とし且つ、ページ置換の対象となり得るページ１５０２が存在する。そのため、図１５（ｂ）の時点で、CLOCKHAND１５００がページ１５０２を指し示したとき、バッファ管理機構において、更新されたデータが格納されたページ１５０２に対して、書出し処理が実行されることとなる。【００１９】
また、プレライト処理において、書き出すページの量については、一度のプレライト処理で、大量のページの書出し処理を実行すると、上述した第一の問題と同様の問題が発生することになる。即ちバッファ管理機構によって置換対象される前に、再度ダーティなページとなってしまい、そのページをバッファ管理機構が置換対象としたときに、書出し処理が必要となるケースである。【００２０】
この事例を、図１６を用いて具体的に説明する。図１６（ａ）、図１６（ｂ）、図１６（ｃ）及び図１６（ｄ）は、同じ循環リストの例を示す図であり、図１６（ｂ）は、図１６（ａ）よりＮ時間経過した前記循環リストの状態を示しており、図１６（ｃ）は、図１６（ｂ）より更にＭ×Ｎ時間経過した前記循環リストの状態を示しており、図１６（ｄ）は、図１６（ｃ）より更にＮ時間経過した前記循環リストの状態を示している。【００２１】
図１６（ａ）の時点では、CLOCKHAND１５００はページ１５０１を指し示しており、前記循環リスト上でページ１５０１からページ１５０４までのページ群を対象にプレライト処理が実行されるものとする。このとき、プレライト処理において、書出し処理を必要とし且つページ置換の対象となり得るページ１５０２、ページ１５０３及びページ１５０４の、書出し処理が実行される。【００２２】
プレライト処理において、ページ１５０２の書出し処理が実行されることで、図１６（ｂ）の時点で、CLOCKHAND１５００がページ１５０２を指し示したとき、ページ１５０２のデータは、プレライト処理で既に書き出されているので、ページ１５０２の置換処理で、書出し処理が実行されることはない。【００２３】
しかし、図１６（ｂ）の時点から図１６（ｃ）の時点までＭ×Ｎ時間経過する間に、ページ１５０４に含まれるデータが更新された場合、再度ページ１５０４の書出し処理を必要とする状態になってしまう。そのため、図１６（ｄ）の時点で、CLOCKHAND１５００がページ１５０４を指し示したとき、バッファ管理機構の置換処理において、ページ１５０４の書出し処理が実行されることとなる。【００２４】
また、上述解決方法を実現するにあたり、プレライト処理の対象となるページの量は、CLOCKHANDが指し示すページ近くに位置するページのみ少量(適量)となるので、プレライト処理は常時動作する必要は無い。つまり、プレライト処理を実行後、一定期間休止し、続きのプレライト処理を実行させればよい。【００２５】
しかし、休止の期間が長く、プレライト休止中に前回実行したプレライト処理範囲をCLOCKHANDが通過してしまうと、置換処理でプレライト処理の実行前のページを参照し、結果、置換処理でページの書出し処理が必要となる。【００２６】
この事例を、図を用いて具体的に説明する。図１７に、プレライト処理実行前にCLOCKHANDが、プレライト対象ページを通過してしまうために、置換処理で書出し処理が必要となる例を示す。図１７（ａ）、図１７（ｂ）、図１７（ｃ）は、同じ循環リストの例を示す図であり、図１７（ｂ）は、図１７（ａ）よりＮ時間経過した前記循環リストの状態を示しており、図１７（ｃ）は、図１７（ｂ）より更にＭ×Ｎ時間経過した前記循環リストの状態を示している。【００２７】
図１７（ａ）の時点では、CLOCKHAND１５００は、ページ１５０１を指し示しており、前記循環リスト上でページ１５０１の次に位置するページからページ１５０２までのページ群を対象に、プレライト処理を実行するものとする。このとき、プレライト処理において、書出し処理を必要とし且つページ置換の対象となり得るページ１５０２の書出し処理が実行される。【００２８】
このプレライト処理において、ページ１５０２の書出し処理が実行されるので、図１７（ｂ）の時点で、CLOCKHAND１５００がページ１５０２を指し示したとき、ページ１５０２の書出し処理が実行されることはない。【００２９】
しかし、そのプレライト処理実行以降、図１７（ｂ）の時点から図１７（ｃ）の時点までＭ×Ｎ時間経過する間に、プレライト処理が実行されるようなことがなく、CLOCKHAND１５００が図１７（ａ）の時点で実行されたプレライト処理の処理範囲を超えてしまうと、図１７（ｃ）の時点でCLOCKHAND１５００がページ１５０３を指し示したときに、バッファ管理機構の置換処理において、ページ１５０３の書出し処理が実行されることとなる。【００３０】
このような事例とは対照的に、プレライト処理が常時動作するか、休止時間が短すぎると、時間の経過と共にプレライト処理の処理対象としているページの循環リスト上の位置と、CLOCKHANDが指し示しているページの循環リスト上の位置の差が大きくなり、上述した第一の問題と同様の問題が発生してしまう。即ちプレライト処理後からCLOCKHANDが指し示す前に更新され、書出し処理が必要になってしまったページを、バッファ管理機構の置換処理において、再度書出し処理が必要となってしまう。【００３１】
この事例について、図を用いて具体的に説明する。図１８に、書出し処理が必要となる例を示す。図１８（ａ）、図１８（ｂ）図１８（ｂ´）、図１８（ｃ）、図１８（ｄ）は、同じ循環リストの例を示す図であり、図１８（ｂ）は、図１８（ａ）よりＮ時間経過した前記循環リストの状態を示しており、図１８（ｂ´）は、図１８（ｂ）より更にＬ×Ｎ時間経過した前記循環リストの状態を示しており、図１８（ｃ）は、図１８（ｂ´）より更に（Ｍ―Ｌ）×Ｎ時間経過した前記循環リストの状態を示しており、図１８（ｄ）は、図１８（ｃ）より更にＮ時間経過した循環リストの状態を示している。【００３２】
図１８（ａ）の時点では、CLOCKHAND１５００はページ１５０１を指し示しており、前記循環リスト上でページ１５０１の次に位置するページからページ１５０２までのページ群を対象にプレライト処理が実行されるものとする。このとき、プレライト処理において、書出し処理を必要とし且つページ置換の対象となり得るページ１５０２の書出し処理が実行される。【００３３】
このプレライト処理において、ページ１５０２の書出し処理が実行されるので、図１８（ｂ）の時点でCLOCKHAND１５００がページ１５０２を指し示したとき、バッファ管理機構の置換処理で、ページ１５０２の書出し処理が実行されることはない。【００３４】
しかし、このプレライト処理実行以降、図１８（ａ）の時点から図１８（ｂ）の時点までＮ時間経過する間に、連続的にプレライト処理が実行され、図１８（ｂ）の時点で、ページ１５０３からページ１５０４までのページ群を対象にプレライト処理が実行されたとする。【００３５】
この２回目のプレライト処理において、書出し処理を必要とし且つページ置換の対象となり得るページ１５０３とページ１５０４の書出し処理が実行された場合、図１８（ｂ）の時点から図１８（ｃ）の時点までＭ×Ｎ時間経過する間に、ページ１５０４に含まれるデータが更新され、ページ１５０４が書出し処理の必要な状態となると、図１８（ｄ）の時点でCLOCKHAND１５００がページ１５０４を指し示したとき、バッファ管理機構の置換処理において、ページ１５０４の書出し処理が再度実行されることとなる。【００３６】
つまり、CLOCKHANDの動きに合わせて、プレライト処理を適切に制御することが課題となる。【００３７】
本発明は、前記従来技術の課題に鑑みて為されたものであり、その目的は、複数の入出力バッファを順に参照するCLOCKHANDの動きに合わせて、プレライト処理を適切に制御することができるデータ処理方法、データ処理装置およびデータ処理プログラムを提供することにある。
【課題を解決するための手段】
【００３８】
上記目的を達成するため、本発明は、データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データを格納する２次記憶装置と、前記入出力バッファに一時的に格納するデータ及び前記２次記憶装置に格納するデータの置換処理を管理するバッファ管理部と、前記入出力バッファに格納されたデータがバッファ管理部において書き出される前に、事前書出しを行うプレライト処理を管理するプレライト管理部と、を有する計算機のデータ処理方法であって、前記バッファ管理部が、前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定するステップと、前記バッファ管理部が、所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測するステップと、前記バッファ管理部が、所定時間あたりに前記複数の入出力バッファに格納されたデータを順番に参照する参照速度を算出するステップと、前記プレライト管理部が、プレライト処理の実行契機を検出し、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定するステップと、前記プレライト管理部が、前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出すステップと、前記プレライト管理部が、前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定するステップと、を含む。
【発明の効果】
【００３９】
本発明によれば、複数の入出力バッファを参照する動きに合わせて、プレライト処理を適切に制御することができ、システムのスループットの向上を図ることができる。
【図面の簡単な説明】
【００４０】
【図１】本発明の第一の実施形態の構成を示す図である。
【図２】第一の実施形態における開始位置決定部の処理内容を示すフローチャートである。
【図３】本発明におけるページセットの循環リストの例を示した図である。
【図４】第一の実施形態における対象数決定部の処理内容を示すフローチャートである。
【図５】本発明における置換実行回数表の例を示した図である。
【図６】第一の実施形態における置換実行回数取得部の処理内容を示すフローチャートである。
【図７】第一の実施形態におけるプレライト実処理部の処理内容を示すフローチャートである。
【図８】第一の実施形態における開始契機決定部の処理内容を示すフローチャートである。
【図９】第一の実施形態における本発明の処理の概略を示す図である。
【図１０】本発明の第二の実施形態の構成を示す図である。
【図１１】第二の実施形態におけるプレライト実処理部の処理内容を示すフローチャートである。
【図１２】第二の実施形態におけるプレライト起動部の処理内容を示すフローチャートである。
【図１３】第三の実施形態を第一の実施形態に適用した場合のプレライト実処理部の処理内容を示すフローチャートである。
【図１４】第三の実施形態を第二の実施形態に適用した場合のプレライト実処理部の処理内容を示すフローチャートである。
【図１５】バッファ管理においてページの書出し処理が発生するプレライト処理の一例を示した図である。
【図１６】バッファ管理においてページの書出し処理が発生するプレライト処理の一例を示した図である。
【図１７】バッファ管理においてページの書出し処理が発生するプレライト処理の一例を示した図である。
【図１８】バッファ管理においてページの書出し処理が発生するプレライト処理の一例を示した図である。
【発明を実施するための形態】
【００４１】
［第一の実施形態］
以下、本発明の第一実施形態について、図１を用いて説明する。
【００４２】
図１は、本発明を適用した計算機システムの全体構成図である。プレライト部１００が組み込まれるデータベース管理システム１２０は、データ管理サーバ１０１の中に構築される。データ管理サーバ１０１は、後記する各処理を実行するＣＰＵ（Central Processing Unit）１０２や、ＲＡＭ（Random Access Memory）等の主記憶装置１０３、ハードディスクドライブ等の２次記憶装置１０４、ネットワークインタフェース（以下、「ＮＩ」（Network Interface）という。）１２３を、バス１０８を介して接続した構成で実現される。
【００４３】
また、データ管理サーバ１０１には、管理するデータへのアクセス要求元として、多数の端末装置１２６が接続される。
【００４４】
データベース管理システム１２０は、主記憶装置１０３上に格納されており、データ処理部１２９、プレライト部１００及びバッファプール１０６から構成される。この際、ＣＰＵ１０２は、コントローラとして、データ処理部１２９やプレライト部１００にそれぞれ処理を実行させることになる。即ちＣＰＵ１０２が、データベース管理システム１２０を構成するプログラムを起動することで、データベース管理システム１２０上に、データ処理部１２９、データ処理部１２９、プレライト部１００およびバッファ管理部１１０が構成されることになる。
【００４５】
バッファプール１０６は、２次記憶装置１０４に格納されているデータをページ単位で一時的に記憶するデータ領域であって、複数の入出力バッファの格納領域として構成されている。このバッファプール１０６は、ページ１０５と、ページ１０５に対応するリファレンスカウンタ１２１及びダーティフラグ１０７からなるページセット１０９の循環リスト１３０を格納する。この際、各ページセット１０９は、各入出力バッファに対応してバッファプール１０６に格納される。
【００４６】
データ処理部１２９は、SQL解析部１２７、データベース演算部１２８及びバッファ管理部１１０から構成される。
【００４７】
バッファ管理部１１０は、GCLOCKページ置換部１２２及び置換実行回数取得部１２４から構成され、プレライト部１００が参照する統計情報として、CLOCKHAND位置情報１１６、CLOCKHAND移動情報１１９及び単位時間当たりにバッファ管理で発生した置換処理の発生回数を管理する置換実行回数表１２５をそれぞれ持つ。
【００４８】
この際、バッファ管理部１１０は、例えば、複数の入出力バッファの中から、そのデータを、２次記憶装置１０４のデータと置換するための置換対象となる入出力バッファを選定するためのバッファ管理処理を、プレライト部１００によるプレライト処理と並列に実行する過程において、置換対象となる入出力バッファ（ページセット１０９）を選定する中で置換対象となる入出力バッファ（ページセット１０９）を発見した回数を置換実行回数として計数する。
【００４９】
また、バッファ管理部１１０は、複数の入出力バッファに格納された情報（ページ１０５、リファレンスカウンタ１２１及びダーティフラグ１０７）を順番に参照するとともに、参照された入出力バッファの情報と計数された置換実行回数を基に複数の入出力バッファに格納された情報を参照する速度（CLOCKHANDの速度）を算出することとしている。
【００５０】
データベース管理システム１２０は、端末装置１２６からのデータベース問い合わせ要求であるSQLを受け取り、SQL解析部１２７において、構文解析処理、意味解析処理及びデータベースアクセスの最適なアクセス経路を決定する最適化処理によって要求されたデータを特定し、データベース演算部１２８において、SQL要求に応じてジョインなどのデータベース演算を実行し、バッファ管理部１１０に対して、必要なデータの取得要求を出す。
【００５１】
バッファ管理部１１０は、既にバッファプール１０６内に要求されたデータが読み込まれていた場合、そのデータが属するページセット１０９に対応するリファレンスカウンタ１２１をインクリメントし、バッファプール１０６内に存在する、要求されたデータを、アクセス要求元に返却する。
【００５２】
逆に、バッファ管理部１１０は、データベース演算部１２８から要求されたデータが、バッファプール１０６内に存在しないときには、２次記憶装置１０４内から、要求されたデータを読み出して、バッファプール１０６内のページセット１０９に格納するとともに、読み出したデータを、アクセス要求元に返却する。
【００５３】
このバッファプール１０６内に要求されたデータが読み込まれていなかった場合、GCLOCKページ置換部１２２において、バッファプール１０６上に存在するページセット１０９の中から置換対象となるページセット１０９を選定し、２次記憶装置１０４から要求されたデータを読み込み、読み込んだデータを置換対象のページセット１０９に格納するとともに、読み込んだデータを、アクセス要求元に返却するようになっている。そして、置換対象のページセット１０９に対応するリファレンスカウンタ１２１に「1」をセットし、２次記憶装置１０４との間にデータの差分がないとして、ダーティフラグ１０７をリセットする。
【００５４】
置換対象となるページセット１０９の選定方法としては、バッファ管理部１１０が管理するCLOCKHANDと呼ばれるポインタが指しているページセット１０９に対応するリファレンスカウンタ１２１を参照し、リファレンスカウンタの値が予め設定されている閾値以下であった場合、このページセット１０９を置換対象とする。例えば、閾値が「０」であり、CLOCKHANDと呼ばれるポインタが指しているページセット１０９に対応するリファレンスカウンタの値が「０」以下であった場合、このページセット１０９を置換対象とする。このとき、置換対象のページセット１０９に対応するダーティフラグ１０７がセットされていた場合（更新されたデータが存在する場合）、ページセット１０９に対応するページ１０５のデータを更新されたデータとして２次記憶装置１０４に書き出し、その後、２次記憶装置から読み出したデータを、置換対象のページセット１０９に格納するようになっている。
【００５５】
また、ページセット１０９に対応するリファレンスカウンタ１２１の値が、予め設定されている閾値（例えば、「0」。）を上回っていた場合、そのページセット１０９に対応するリファレンスカウンタ１２１をデクリメントし、CLOCKHANDに、循環リスト１３０上で、そのページセット１０９の次に位置するページセット１０９をポイントさせるようになっている。その後、置換対象として適当なページセット１０９を選定するまで、順次同様の処理を繰り返す。
【００５６】
次いで、第一実施形態のプレライト部１００について説明する。上述のように、バッファ管理部１１０は、置換対象となるページセット１０９について、対応するダーティフラグ１０７がセットされている場合、格納されているデータを２次記憶装置１０４に書き出すように構成されているが、第一実施形態のプレライト部は、バッファ管理部１１０が、ページセット１０９に格納されたデータを書き出す前に、上述のダーティなデータを、２次記憶装置１０４に書き出すプレライト処理を実行・管理するようになっている。
プレライト部１００は、開始位置決定部１１１、対象数決定部１１２、プレライト実処理部１１３、開始契機決定部１１４及び待機部１１５から構成され、データ処理部１２９とは独立であり、パラレルに動作するように構成されている。即ちプレライト部１００は、バッファプール１０６に格納されているページセット１０９において、ダーティフラグ１０７が設定されているページ１０５が、バッファ管理部１１０によって２次記憶装置１０４に書き出される前に、所定の条件に基づいて書き出すようになっている。
【００５７】
プレライト部１００は、バッファ管理部１１０で置換対象として選定される可能性のあるページセット１０９の中に更新されたデータ（ページ１０５）が存在するときには、CLOCKHAND位置情報１１６、CLOCKHAND移動情報１１９及び置換実行回数表１２５を参考に、前記更新されたデータ（ページ１０５）を含むページセット１０９の中から、２次記憶装置１０４に書き出す必要のあるページを選定し、書き出す処理を実行する。
【００５８】
以下、第一実施形態におけるプレライト処理の処理内容について説明する。
まず、プレライト部１００によって実行されるプレライト処理の概要について、図１を用いて説明する。
【００５９】
プレライト部１００は、データベース管理システム１２０からの起動要求によって起動される。この際、プレライト部１００は、開始位置決定部１１１から待機部１１５まで実行される処理を、データベース管理システム１２０からの停止要求があるまで繰り返すようになっている。
【００６０】
この繰り返し処理では、プレライト部１００は、まず開始位置決定部１１１を起動する。開始位置決定部１１１は、プレライト実処理部１１３で実行するプレライト実処理を開始するページセット１０９を、バッファプール１０６内の循環リスト１３０から決定する。
【００６１】
次に、プレライト部１００は、対象数決定部１１２を起動する。対象数決定部１１２は、プレライト実処理部１１３で実行するプレライト実処理で処理対象とする所定数分のページセット１０９の数を決定する。この後、プレライト部１００は、プレライト実処理部１１３を起動する。
【００６２】
プレライト実処理部１１３は、開始位置決定部１１１で、開始位置と決定したページセット１０９から順に、対象数決定部１１２で決定した所定数のページセット１０９を対象に、書出し処理を行う必要があるか否かを判定する。プレライト実処理部１１３は、書出し処理を行う必要があると判定されたページセット１０９に属するページ１０５のデータを２次記憶装置１０４に対して書き出す。
【００６３】
次に、プレライト部１００は、開始契機決定部１１４を起動する。開始契機決定部１１４は、待機部１１５で待機する時間を決定する。最後に、プレライト部１００は、待機部１１５を起動し、開始契機決定部１１４で決定された待機時間に従い待機処理を実行する。
【００６４】
次に、上述したプレライト処理で各部が実行する具体的な処理を説明する。
まず、開始位置決定部１１１の処理内容について図２及び図３を用いて説明する。
【００６５】
図２は、開始位置決定部１１１の処理内容を示したフロー図である。
図３は、図１に示すバッファプール１０６に格納されているページセット１０９の循環リスト１３０の一例を示したものであり、CLOCKHAND位置情報１１６と循環リストの関係を表した模式図である。
なお、ページセット１０９は、ページ１０５、ページ１０５に対応するリファレンスカウンタ１２１及びダーティフラグ１０７から構成される。
【００６６】
また、第一実施形態において、CLOCKHAND位置情報１１６とは、CLOCKHANDがポイントしているページセット１０９の位置を示す統計情報であり、図３の例では、CLOCKHAND位置情報１１６には、ページセット３０２が設定されているものとする。
【００６７】
また、第一実施形態において、プレライト処理を実行する上で、プレライト実処理の最良の処理開始位置であるページセットは、プレライト実処理開始時のCLCOKHAND位置情報１１６からみてCLOCKHANDの進行方向に、規定値mだけ先に位置するページセットであるものとする。プレライト実処理の処理開始位置とするページセットと、CLCOKHAND位置情報１１６との差が、規定値ｍ未満若しくは規定値ｎ＋ｍ以上となったとき、プレライト処理を正常に継続することができなくなると判定するものとする。規定値ｎ及びｍは、自然数（0を含む）であり、又いずれもデータベース管理システム１２０若しくはプレライト部１００によって、あるいは初期値として予め設定されているものとする。
【００６８】
開始位置決定部１１１は、まずステップ２００でバッファ管理部１１０が所持するCLOCKHAND位置情報１１６を取得する。
【００６９】
次に、ステップ２０１で、前記CLOCKHAND位置情報と直前（前回）のプレライト実処理が終了したページセットとの差分ｄを算出する。前記差分ｄが規定値ｍ未満であった場合、ステップ２０２で、直後のプレライト実処理の処理開始位置とするページセットをCLOCKHAND位置情報１１６から規定値ｍだけ進んだ位置に設定し、開始位置決定部１１１の処理を終了する。
【００７０】
ステップ２０１で、差分ｄが規定値ｍ以上であった場合、開始位置決定部１１１は、次に、ステップ２０３で、差分ｄが規定値ｎ＋ｍ以上であるか否かを判定する。即ちCLOCKHANDが、直前のプレライト実処理が終了したページセットと一定の距離以上離れていないかを判定する。
【００７１】
この判定の結果、差分ｄが、規定値ｎ＋ｍ以上であった場合、ステップ２０２において、今回のプレライト実処理の処理開始位置とするページセットをCLOCKHAND位置情報１１６から規定値ｍだけ進んだ位置に設定し、開始位置決定部１１１の処理を終了する。
【００７２】
差分ｄが、規定値ｍ以上であり且つ規定値ｎ＋ｍ未満であった場合にのみ、開始位置決定部１１１は、ステップ２０４において、今回のプレライト実処理の処理開始位置を、前回のプレライト実処理が終了したページセットの次のページセットに設定し、CLOCKHANDが、前回のプレライト実処理が終了したページセットと余り離れ過ぎず且つ追い越しもしていないとして、開始位置決定部１１１の処理を終了する。
【００７３】
図３の例に対し、規定値ｍを2、規定値ｎ＋ｍを5、前回のプレライト実処理が終了したページセットをページセット３０６と設定する。この際、規定値ｍとは、プレライト実処理の最良の処理開始位置であるページセットを決定する際に用いられる、予め設定される値である。また、ｎ＋ｍとは、プレライト処理を正常に継続できるかどうかを判定する際に用いられる、予め設定される値である。
【００７４】
また、図３の例では、CLOCKHAND位置情報１１６におけるページセット３０２と、前回のプレライト実処理が終了したページセット３０６との間には、4ページ分（ページセット３０３、３０４、３０５、３０６）の差があるため、差分ｄは、4となる。
【００７５】
このとき、差分ｄ（「４」）は、規定値ｍ（「２」）以上であり且つ規定値ｎ＋ｍ（「５」）未満であるため、今回のプレライト実処理の処理開始位置を、前回のプレライト実処理が終了したページセットの次のページセットとしても、正常にプレライト処理を継続可能であると判定する。これにより、直後のプレライト実処理の処理開始位置とするページセットを、直前のプレライト実処理が終了したページセット３０６の次のページセット３０７に設定する。
以上が開始位置決定部１１１の処理内容である。
【００７６】
次に、対象数決定部１１２の具体的処理を説明するが、それに先立ち対象数決定部１１２が使用する置換実行回数表１２５及びその表を作成する置換実行回数取得部１２４の処理を、図５及び図６を用いて具体的に説明する。
【００７７】
図５は、置換実行回数表１２５の一例を表した概念図である。置換実行回数表１２５は、ｉ回分のページ置換発生回数５００と、それに対応する項番５０２、ｉ回分のページ置換発生回数５００の平均値である平均ページ置換発生回数５０１から構成される。ページ置換発生回数５００は、単位時間ｔの間にGCLOCKページ置換部１２２において、ページ１０５の置換処理が実行された回数である。
【００７８】
図６は、置換実行回数取得部１２４の処理内容を示した図である。
置換実行回数取得部１２４は、単位時間ｔ（例えば、１秒）が経過する毎にバッファ管理部１１０から随時起動される。
【００７９】
置換実行回数取得部１２４は、まずステップ６００において、GCLOCKページ置換部１２２が所持するページ置換発生回数を取得する。このページ置換発生回数は、GCLOCKページ置換部１２２においてページの置換処理が実行される毎にインクリメントされる値である。
【００８０】
次に、置換実行回数取得部１２４は、ステップ６０１において、次の単位時間毎のページ置換発生回数を計測するために、ページ置換発生回数に０を設定する。
【００８１】
次に、置換実行回数取得部１２４は、ステップ６０２において、ステップ６００で取得したページ置換発生回数を、置換実行回数表１２５の項番ａに対応するページ置換発生回数５００に登録する。項番ａは、置換実行回数取得部１２４によって管理される値であり、バッファ管理部１１０が起動された時に１で初期化される。
【００８２】
次に、置換実行回数取得部１２４は、ステップ６０３において、置換実行回数表１２５に登録されている項番１から項番ｉのページ置換発生回数を基に平均ページ置換発生回数５０１を算出する。
【００８３】
最後に、置換実行回数取得部１２４は、ステップ６０４において、項番ａをインクリメントする。このときａの値がｉであった場合は、元に戻るために、ａに０を設定する。
【００８４】
以下、第一実施形態における対象数決定部１１２の処理内容について図４及び図５を用いて説明する。図５の詳細については前記の通りである。
以下の説明において、規定値Ｌとは、プレライト実処理の処理対象数を規定値から変更するか否かを判定するために、予めプレライト部１００において設定されている値である。
【００８５】
既定のプレライト実処理の処理対象数とは、開始位置決定部１１１で設定された処理開始位置からみて、CLOCKHANDの進行方向前方に位置し、バッファ管理部において置換対象となるページセットの数のことである。
【００８６】
対象数決定部１１２は、図４に示すように、まずステップ４００でバッファ管理部１１０の置換実行回数表１２５を参照し、平均ページ置換発生回数５０１ｘ（図５の例ではｘ＝２．５回）を取得する。
【００８７】
次に、対象数決定部１１２は、ステップ４０１で、置換実行回数表１２５から、前回のプレライト実処理が開始された時点から今回の処理開始位置決定処理が開始されるまでの置換処理発生回数５００を取得し、その間の平均置換処理発生回数ｙを算出する。
【００８８】
次に、対象数決定部１１２は、ステップ４０２で、平均ページ置換処理発生回数ｘと前記平均置換処理発生回数ｙとの減算（ｘ−ｙ）を実行し、減算結果ｚ（ｚ＝ｘ−ｙ）を取得する。この平均ページ置換処理発生回数ｘは、前回のプレライト処理開始時点よりも過去から、今回のプレライト処理の開始位置決定処理終了時点までの間における平均置換実行回数として算出される値である。
【００８９】
次に、対象数決定部１１２は、既定のプレライト実処理の処理対象数を取得し、減算結果ｚが、−Ｌ≦ｚ≦Ｌであった場合、ステップ４０３で、直後のプレライト実処理で処理するページセット１０９の処理対象数を、既定のプレライト実処理の処理対象数と同数に設定する。
【００９０】
減算結果ｚが、ｚ＜−Ｌであった場合、対象数決定部１１２は、ステップ４０４で、今回のプレライト実処理で処理するページセットの処理対象数として、既定のプレライト実処理の処理対象数から、f(z)を加算した結果を設定する。
【００９１】
減算結果ｚが、Ｌ＜ｚであった場合、対象数決定部１１２は、ステップ４０５で、今回のプレライト実処理で処理するページセット１０９の処理対象数として、既定のプレライト実処理の処理対象数に、f(z)を減算した結果を設定する。
以上が対象数決定部１１２の処理内容である。
【００９２】
図７は、プレライト実処理部１１３の処理内容を示した図である。
以下、第一実施形態におけるプレライト実処理部１１３の処理内容について図７のフローチャートを用いて説明する。
【００９３】
プレライト実処理部１１３は、まずステップ７００で、開始位置決定部１１１において設定された処理開始位置のページセット１０９を処理対象とする。
【００９４】
次に、プレライト実処理部１１３は、ステップ７０１で、プレライト実処理部１１３が管理する処理済ページカウンタに対して、０を設定して初期化する。処理済ページカウンタは、対象数決定部１１２で決定した処理対象数だけプレライト実処理を実施するため、処理対象となったページセットが、バッファ管理において置換対象となるときに、カウントアップするものであり、プレライト実処理部１１３によって管理される。
【００９５】
次に、ステップ７０２において、ステップ７０３からステップ７０８までの処理を、処理済ページカウンタのカウント値が、対象数決定部１１２で設定した処理対象数以上になるまで繰り返す。
【００９６】
この繰り返し処理では、まずステップ７０３で、処理対象であるページセット１０９が、バッファ管理において置換対象となるか否かを判定する。例えば、リファレンスカウンタ１２１のカウント値が０（閾値）以下か否かを判定する。
【００９７】
ステップ７０３の判定において、例えば、リファレンスカウンタ１２１のカウント値が０（閾値）以下で、処理対象であるページセット１０９が、置換対象となる場合（ステップ７０３：ＹＥＳ）は、ステップ７０４において、処理済ページカウンタをカウントアップする。
【００９８】
次に、プレライト実処理部１１３は、ステップ７０５で、そのページセット１０９に対応するダーティフラグ１０７がセットされているか否かを判定する。即ちそのページセット１０９に更新されたデータが存在するか否かを判定する。
【００９９】
ダーティフラグ１０７がセットされていた場合（ステップ７０５：ＹＥＳ）、ステップ７０６において、処理対象であるページセット１０９をプレライト実処理部１１３が管理する書出しリストに登録する。
【０１００】
次に、ステップ７０７において、ステップ７０３、ステップ７０５の判定結果に関わらず、処理対象として設定されているページセット１０９から見て、CLOCKHANDの進行方向に対し一つ先に位置するページセット１０９を新たな処理対象として設定する。
【０１０１】
次に、ステップ７０９において、ステップ７１０からステップ７１３までの処理を、書出しリストに登録されているページセット１０９がなくなるまで繰り返す。
【０１０２】
この繰り返し処理では、まずステップ７１０で、書出しリストの先頭から、ページセット１０９を一つ取り出す。
【０１０３】
次に、ステップ７１１で、取り出したページセット１０９に対応するページ１０５のデータを、更新されたデータとして２次記憶装置１０４に対して書き出す。
【０１０４】
次に、ステップ７１２で、ステップ７１１で取り出したページセット１０９に対応するダーティフラグ１０７をリセットする。
以上がプレライト実処理部１１３の処理内容である。
【０１０５】
以上の処理で、例えば、図３において、処理開始位置のページセットがページセット３０３であり、対象数決定部１１２において決定したプレライト実処理の処理対象数が２であった場合、プレライト実処理部１１３において処理対象となるページセットは、書出しリストに登録されているページセット３０５と、登録リストには登録されていないページセット３０８である。
【０１０６】
プレライト実処理部１１３では、ページセット３０５は、対応するダーティフラグ１０７がセットされており、ページセット３０８は、対応するダーティフラグ１０７がセットされていないことから、ページセット３０５に対応するページ１０５のデータのみが２次記憶装置１０４に書き出される。
【０１０７】
図８は、開始契機決定部１１４の処理内容を示した図である。
第一実施形態における、開始契機決定部１１４の処理内容について図８のフローチャートを用いて説明する。
【０１０８】
開始契機決定部１１４は、まずステップ８００において、バッファ管理部１１０よりCLOCKHAND位置情報１１６を取得する。
【０１０９】
次に、開始契機決定部１１４は、ステップ８０１において、バッファ管理部１１０からCLOCKHAND移動情報１１９を取得する。CLOCKHAND移動情報１１９とは、単位時間あたりにCLOCKHANDがポイント（参照）したページセットの数である。即ち本プレライト処理が実行されている間のCLOCKHANDの移動速度をみるために、バッファ管理部１１０からCLOCKHAND移動情報１１９を取得することとなる。
【０１１０】
次に、開始契機決定部１１４は、ステップ８０２において、今回の処理でプレライト実処理部１１３において最後に処理対象として設定されていたページセット１０９の位置からCLOCKHANDの進行方向とは逆に、規定値ｍだけ離れたページセット１０９を求める。
【０１１１】
さらに、ステップ８０２では、ステップ８００で取得したCLOCKHAND位置情報１１６と、ステップ８０１で取得したCLOCKHAND移動情報１１９から、CLOCKHAND位置情報１１６が、ステップ８０１で求めたページセット１０９の位置に到達するまでの時間を算出する。
【０１１２】
最後に、ステップ８０３において、待機部１１５に対して、ステップ８０２で算出した時間を待機時間として設定する。
以上が、開始契機決定部１１４の処理内容である。
【０１１３】
開始契機決定部１１４の処理が終了した後、待機部１１５において、開始契機決定部１１４で設定した待機時間に基づき待機処理を実行する。
そして、待機部１１５は、待機処理終了後、データベース管理システム１２０から、プレライト部１００に対する停止要求がない場合は、再度、開始位置決定部１１１を起動し、プレライト部１００に処理を開始させる。
【０１１４】
次に、以上説明した第一実施形態におけるプレライト処理に関し、図９（ａ）から（ｃ）を用いて、その処理動作を種々の条件に合わせて模式的に説明する。
【０１１５】
以下の説明において、規定値ｍは「2」、規定値ｎ＋ｍは「5」、既定のプレライト実処理の処理対象数は「3」、規定値Ｌは「1」、f(z)=[|z|/3]とする。また、本例で扱う置換実行回数表１２５は、図５の置換実行回数表１２５とする。また、開始位置決定部１１１、対象数決定部１１２、プレライト実処理部１１３、開始契機決定部１１４及び待機部１１５の順に実行される一連の処理を１つの処理のまとまりとして説明するものとする。
【０１１６】
まず、図９（ａ）は、プレライト部１００において、開始位置決定部１１１が起動され、待機部１１５が待機処理に入るまでの状態遷移を模式的に示す。まずバッファ管理部１１０から、CLOCKHAND位置情報１１６ａを取得する。図９（ａ）では、この時点でCLOCKHAND位置情報１１６ａはページセット９００である。
【０１１７】
次に、前回のプレライト実処理が終了したページセットをページセット９０１とする。このとき、ページセット９００とページセット９０１との差は3であり、この値は規定値ｍ「２」以上且つ規定値ｎ＋ｍ「５」未満であるため、今回のプレライト実処理の処理開始位置となるページセットをページセット９０２に設定する。
【０１１８】
次に、対象数決定部１１２において、今回のプレライト実処理の処理対象数を決定する。まず置換実行回数表１２５から、平均ページ置換発生回数５０１（本例では、図５の置換実行回数表１２５より、平均ページ置換発生回数ｘ＝２．５）を取得する。
【０１１９】
次に、前回のプレライト実処理が開始した時点から今回の処理開始位置決定処理が開始するまでの平均置換処理発生回数ｙを算出する。仮に算出した結果が2（ｙ＝２）であるとすると、両平均置換処理発生回数の差（ｘ−ｙ）は0.5であるため、本例では、規定値Ｌに対し、―Ｌ＝−1≦0.5≦1＝Ｌとなり、直後のプレライト実処理の処理対象数は、既定のプレライト実処理の処理対象数（即ち「３」）となる。
【０１２０】
次に、プレライト実処理部１１３において処理が実行される。このとき処理対象となるページセットはページセット９０３、９０４及び９０５であり、ページセット９０４とページセット９０５に対応するダーティフラグ１０７をリセットした後、ページセットページ９０４とページセットページ９０５に対応するページ１０５のデータを２次記憶装置１０４に書き出す。
【０１２１】
最後に、開始契機決定部１１４において、次回、開始位置決定部１１１を起動するまでの待機時間を決定する。本処理を開始するにあたり、バッファ管理部１１０からCLOCKHAND位置情報１１６ｂを取得する。
図９（ａ）では、本処理を開始した時のCLOCKHAND位置情報１１６ｂが指し示す位置のページセットをページセット９０１であるものとする。
【０１２２】
次に、直前のプレライト実処理の最後の処理対象となるページセット９０５と規定値ｍからページセット９０６を求め、これに加え、前記CLOCKHAND位置情報１１６ｂが指し示すページセット９０１と、バッファ管理部１１０より取得したCLOCKHAND移動情報１１９を基に、CLOCKHAND位置情報１１６が指し示すページセット９０６に到達するまでの待機時間を算出する。その後、算出した待機時間に基づき、再度開始位置決定部１１１を起動するまで、待機部１１５において待機処理を実行する。
【０１２３】
例えば、CLOCKHAND移動情報１１９が、2ページセット／秒であった場合、CLOCKHAND位置情報１１６ｂが指し示すページセット９０１と、ページセット９０６との差が7であることから、算出した待機時間は3.5秒となる。
【０１２４】
次に、待機処理終了後、再度開始位置決定部１１１が起動される。図９（ｂ）において、起動時のCLOCKHAND位置情報１１６はページセット９０７の位置であり、また、直前のプレライト実処理が終了したページセットは、ページセット９０５ｂであるため、ページセット９０７とページセット９０５ｂとの差分は6となる。この値は、規定値ｎ＋ｍ「５」以上であるため、今回のプレライト実処理の処理開始位置となるページセットには、ページセット９０７から、CLOCKHANDの進行方向に規定値ｍ「２」だけ進めたページセット９０８を設定する。
【０１２５】
次に、対象数決定部１１２において、直後のプレライト実処理部１１３の処理対象数を決定する。まず置換実行回数表１２５から平均ページ置換発生回数５０１を取得する。平均ページ置換発生回数５０１は、図９（ａ）のときから変化はない（平均ページ置換発生回数ｘ＝２．５）ものとする。
【０１２６】
次に、前回のプレライト実処理が開始した時点から、今回の処理開始位置決定処理が開始するまでの平均置換処理発生回数を算出する。
【０１２７】
本例において、前回のプレライト実処理が開始した時点から、今回の処理開始位置決定処理が開始するまでにバッファ管理部１１０において、発生したページの置換処理の回数は、1回（ページセット９０１において実行）であるため、算出した平均置換処理発生回数と平均ページ置換発生回数５０１の差分ｚ＝1.5はＬ＝1＜1.5＝ｚとなり、規定値Ｌを上回る。
【０１２８】
従ってf(z)に基づき、直後のプレライト実処理の処理対象数を算出する。このとき、差分ｚ＝1.5であるため、処理対象数は、既定のプレライト実処理の処理対象数＝「3」となる。
【０１２９】
次に、プレライト実処理部１１３において処理が実行される。このとき処理対象となるページセットは、ページセット９０４ｂ、９０５ｂ及び９０９であり、プレライト実処理部１１３は、ページセット９０５ｂとページセット９０９に対応するダーティフラグ１０７をリセットした後、ページセットページ９０５ｂとページセットページ９０９に対応するページ１０５のデータを２次記憶装置１０４に書き出す。
【０１３０】
最後に、開始契機決定部１１４において、本処理開始時にCLOCKHAND１１６ｄがポイントするページセット９０５ｂと、今回のプレライト実処理の最後の処理対象であったページセット９０９とCLOCKHAND移動情報１１９を基に、次回、開始位置決定部１１１を起動するまでの待機時間を決定し、その後、待機部１１５において待機処理を実行する。
【０１３１】
なお、ページセット９０５に対応するページ１０５は、図９（ａ）における待機処理開始時から図９（ｂ）の開始位置決定処理部１１１起動までに、端末装置１２６からの要求に伴い更新されており、ダーティフラグ１０７がセットされていたページセットをページセット９０５ｂとする。以上のような場合にも、本プレライト処理を実行することで、バッファ管理部１１０における２次記憶装置１０４への書出し処理の発生が抑制されている。
【０１３２】
次に、前記待機処理終了後、再度開始位置決定部１１１が起動される。
図９（ｃ）において、起動時のCLOCKHAND位置情報１１６がポイントするページセットはページセット９１０であり、また、直前のプレライト実処理が終了したページセットはページセット９０９ｃであるため、ページセット９１０とページセット９０９ｃとの差分は、−1となる。この値は、規定値ｍ未満であるため、直後のプレライト実処理の処理開始位置となるページセットには、ページセット９１０から、CLOCKHANDの進行方向に規定値ｍ（ｍ＝２）だけ進めたページセット９１１を設定する。
【０１３３】
次に、対象数決定部１１２において、直後のプレライト実処理の処理対象数を決定する。まず、置換実行回数表１２５から平均ページ置換発生回数５０１を取得する。平均ページ置換発生回数５０１は、図９（ａ）のときより変化はない（平均ページ置換発生回数ｘ＝２．５）ものとする。
【０１３４】
次に、対象数決定部１１２は、直前のプレライト実処理が開始した時点から直前の処理開始位置決定処理が開始するまでの平均置換処理発生回数を算出する。
【０１３５】
本例において、直前のプレライト実処理が開始した時点から直前の処理開始位置決定処理が開始するまでに、バッファ管理部１１０において、発生したページの置換処理の回数は、5回（ページセット９０３、９０４、９０５、９０９、９１０において実行）であり、この結果算出される両平均置換処理発生回数の差分ｚが−7＜ｚ＜−6であったとする。この値は、規定値−Ｌを下回るため、f(z)に基づき、直後のプレライト実処理の処理対象数を算出する。このとき、算出した処理対象数は、既定のプレライト実処理の処理対象数にf(z)の算出結果2が加算され、5となる。
【０１３６】
次に、プレライト実処理部１１３において処理が実行される。このとき処理対象となるページセットは、ページセット９１１、９１２、９１３、９１４、９１５であり、ページセット９１２とページセット９１５に対応するダーティフラグ１０７をリセットした後、ページセットページ９１２とページセットページ９１５に対応するページ１０５のデータを２次記憶装置１０４に書き出す。
【０１３７】
最後に、開始契機決定部１１４において、本処理開始時にCLOCKHAND１１６がポイントするページセット９１３と、直前のプレライト実処理の最後の処理対象であったページセット９１５と、CLOCKHAND移動情報１１９から、直後の開始位置決定部１１１を起動するまでの待機時間を決定し、その後、待機部１１５において待機処理を実行する。
【０１３８】
以上説明したように、バッファ管理部１１０におけるページ１０５の置換処理の発生回数の増減に伴い、プレライト実処理の処理開始位置、処理対象数、及びプレライト処理間の待機時間を適切に決めることで、プレライト処理において、処理対象となるページセット１０９が常にCLOCKHAND位置情報１１６から見てCLOCKHANDの進行方向前方に位置する。
【０１３９】
また、処理開始契機決定処理終了後、直前のプレライト実処理において書き出しの実行されたページ１０５のデータが、端末装置（ユーザ）１２６からの要求により更新され、バッファ管理において、ページ１０５の置換処理が実行されるときに、ページ１０５のデータの書出し処理が実行されるような事態が抑制される。
これにより、バッファ管理の処理レスポンスを一定に保つことが可能となる。
【０１４０】
また、プレライト処理が組み込まれるデータベース管理システム全体で発生する２次記憶装置１０４への書出し処理の実行回数を減少させることで、計算機システムのスループットを向上させることが可能となる。
【０１４１】
［第二の実施形態］
次に、本発明を適用した計算機システムの第二の実施形態について、図１０を用いて説明する。以下、主に、第一の実施形態との相違点について説明し、第一の実施形態との共通点については、説明を省略或いは簡略する。
【０１４２】
図１０は、本発明の第二の実施形態に関わる全体構成図である。
第二の実施形態で示すデータベース管理システム１２０は、基本的には第一の実施形態（図１）と同様の構成をとるが、データ処理部１２９内のバッファ管理部１１０ａとプレライト部１００ａの構成が異なる。
以下、第二の実施形態におけるデータベース管理システム１２０について説明する。
【０１４３】
第二の実施形態では、バッファ管理部１１０ａは、GCLOCKページ置換部１２２ａ、置換実行回数取得部１２４、プレライト起動部１０００から構成される。
【０１４４】
バッファ管理部１１０ａは、データベース演算部１２８から要求されたデータが、バッファプール１０６に読み込まれていなかった場合、GCLOCKページ置換部１２２ａにおいて、ページ１０５の置換処理を実行し、このページ１０５の置換処理を実行する中で、プレライト起動部１０００を介しプレライト部１００ａを起動する。
【０１４５】
以下、第二の実施形態における、GCLOCKページ置換部１２２ａの処理内容、並びにプレライト部１１３の起動条件について図１２のフローチャートを用いて説明する。
【０１４６】
GCLOCKページ置換部１２２ａは、バッファ管理部１１０ａによって起動される。GCLOCKページ置換部１２２ａは、まずステップ１２００において、GCLOCKページ置換アルゴリズムに基づき、バッファプール１０６上に存在するページセット１０９の中から置換対象となるページセット１０９を選定する。
【０１４７】
次に、ステップ１２０４において、前回プレライト部１００ａが起動されてから、GCLOCKページ置換部１２２ａの起動回数を取得し、起動回数をインクリメントする。この起動回数は、バッファ管理部１１０ａによって管理されるものであり、バッファ管理部１１０ａの起動時に0で初期化されるものとする。
【０１４８】
次に、GCLOCKページ置換部１２２ａは、ステップ１２０５で、プレライト部１００ａから前回のプレライト実処理の処理対象数を取得する。
【０１４９】
次に、GCLOCKページ置換部１２２ａは、ステップ１２０４で取得したGCLOCKページ置換部１２２ａの起動回数と、ステップ１２０５で取得した処理対象数とを比較する。
【０１５０】
比較の結果、GCLOCKページ置換部１２２ａの起動回数が、前回のプレライト実処理の処理対象数以上であった場合(ステップ１２０６：ＹＥＳ)、ステップ１２０７において、プレライト起動部１０００を介してプレライト部１００ａを起動する。
【０１５１】
次に、GCLOCKページ置換部１２２ａは、ステップ１２０１において、ステップ１２００で選定したページセット１０９のダーティフラグ１０７がセットされているかどうかを判定する。
【０１５２】
ステップ１２０１で、ダーティフラグ１０７がセットされていると判定した場合（ステップ１２０１：ＹＥＳ）、ステップ１２０３において、そのページセット１０９に対応するページ１０５のデータを２次記憶装置１０４に対して書き出し、本処理を終了する。
【０１５３】
以上が、GCLOCKページ置換部１２２ａの処理内容並びにプレライト部１１３が起動される条件である。
【０１５４】
プレライト起動部１０００は、プレライト部１００ａを起動後、バッファ管理部１１０ａが管理するGCLOCKページ置換部１２２ａの起動回数を0で初期化する。
【０１５５】
次に、プレライト部１００ａは、開始位置決定部１１１、対象数決定部１１２、プレライト実処理部１１３ａから構成されており、バッファ管理部１１０ａにおけるプレライト起動部１０００からの起動要求によって起動される。
【０１５６】
プレライト部１００ａは、まず、開始位置決定部１１１においてプレライト実処理を開始するページセット１０９を決定し、次に、対象数決定部１１２において、プレライト実処理の処理対象となるページセット１０９の数を決定する。
【０１５７】
最後に、プレライト実処理部１１３ａにおいて、プレライト実処理を実行し、プレライト処理を終了する。プレライト実処理部１１３ａの詳細については後記する。
【０１５８】
以下、第二の実施形態におけるプレライト実処理部１１３ａの処理内容について図１１のフローチャートを用いて説明する。
図１１に示す処理内容のうち、ステップ７００、７０１、７０３、７０４、７０５及び７０７の処理内容については第一の実施形態と同様である。
【０１５９】
プレライト実処理部１１３ａは、まずステップ７００、７０１の処理を実行し、次に、ステップ１１００において、ステップ７０３からステップ１１０１までの処理を、プレライト実処理部１１３ａが管理する処理済ページカウンタのカウント値が、対象数決定部１１２で設定した処理対象数以上になるまで繰り返す。
【０１６０】
この繰り返し処理では、プレライト実処理部１１３ａは、まずステップ７０３で、処理対象としてページセット１０９が、バッファ管理部１１０ａにおいて置換対象となるか否かを判定し、置換対象となる場合は（ステップ７０３：ＹＥＳ）、ステップ７０４において、処理済ページカウンタのカウント値をカウントアップする。逆に、置換対象とならない場合（ステップ７０３：ＮＯ）、ステップ７０７の処理に進む。
【０１６１】
次に、プレライト実処理部１１３ａは、ステップ７０５で、ページセット１０９に対応するダーティフラグ１０７がセットされているかどうかを判定し、ダーティフラグ１０７がセットされていた場合(ステップ７０５：ＹＥＳ)、ステップ７０９ａで、ページセット１０９に対応するページ１０５のデータを２次記憶装置１０４に対して書き出す。逆に、ダーティフラグがセットされていない場合（ステップ７０５：ＮＯ）、ステップ７０７の処理に進む。
【０１６２】
次に、ステップ７１０ａで、ページセット１０９に対応するダーティフラグ１０７をリセットし、最後に、ステップ７０６で、処理対象として設定されているページセット１０９から見て、CLOCKHANDの進行方向に対し一つ先に位置するページセット１０９を新たな処理対象として設定する。
以上がプレライト実処理部１１３ａの処理内容である。
【０１６３】
以上説明したように、第二の実施形態によれば、プレライト処理の起動をバッファ管理部１１０ａが制御することができる。
【０１６４】
具体的には、バッファ管理部１１０ａにおけるページの置換処理において、直前のプレライト処理で処理されたページセット１０９の数と同数のページセット１０９が置換対象として選択されたときに、プレライト処理を起動する。
【０１６５】
これにより、バッファ管理部１１０において、短期に大量のページ１０５の置換処理が発生するなどし、CLOCKHANDが、直前のプレライト処理で最後に処理されたページセット１０９を通過し、バッファ管理においてページ１０５の書出し処理が発生した場合にも、直後プレライト処理を開始することによって、バッファ管理におけるページ書出し処理の発生を第一の実施形態以上に抑制することが可能となる。
【０１６６】
第二の実施形態では、プレライト部１００ａの起動をバッファ管理部１１０ａのみが制御しているが、第一の実施形態のように、基本的にプレライト部１００が次のプレライト部１００の起動を管理するようなプレライト処理において、CLOCKHANDが直前のプレライト処理で最後に処理されたページセット１０９を通過したときに限り、バッファ管理部１１０がプレライト部１００を起動させても良い。
［第三の実施形態］
【０１６７】
第三の実施形態は、第一及び第二の実施形態のいずれにも組み合わせることができる。
【０１６８】
第三の実施形態で示すデータベース管理システム１２０は、第一の実施形態（図１）もしくは第二の実施形態（図１０）と同様の構成をとる。第一の実施形態及び第二の実施形態とはプレライト実処理部１１３ｂ(図示せず)の処理が異なる。
【０１６９】
以下、主に、第一の実施形態及び第二の実施形態との相違点について説明し、第一の実施形態及び第二の実施形態との共通点については説明を省略或いは簡略する。
【０１７０】
図１３は、第三の実施形態におけるプレライト実処理部１１３ｂの処理内容を示した図であり、第二の実施形態におけるプレライト実処理部１１３ａの処理の一部を変更した図である。特に、ステップ１３００〜１３０４の処理が、第二の実施形態と異なる。
以下、本実施形態におけるプレライト実処理部１１３ｂの処理内容について図１３のフローチャートを用いて説明する。
【０１７１】
プレライト実処理部１１３ｂは、ステップ１１００以降の繰り返し処理において、まず、ステップ１３００において、バッファ管理部１１０ａからCLOCKHAND位置情報１１６を取得する。
【０１７２】
次に、プレライト実処理部１１３ｂは、ステップ１３０１において、本繰り返し処理において、正に処理対象としているページセット１０９と、CLOCKHAND位置情報１１６との差分を算出し、算出した差分が、規定値ｍ未満であるか否かを判定する。即ち、処理対象としているページセット１０９が、CLOCKHANDに追い越されたか否かあるいは近々追い越される可能性があるか否かを判定する。
【０１７３】
算出した差分が、規定値ｍ未満であった場合、処理対象としているページセット１０９が、CLOCKHANDに追い越された（あるいは近々追い越される可能性がある）として、プレライト実処理部１１３ｂは、ステップ１３０２において、開始位置決定部１１１を起動し、本プレライト実処理部１１３ｂにおける処理開始位置の再設定を実行する。
【０１７４】
次に、ステップ１３０３において、対象数決定部１１２を起動し、本プレライト部における処理対象数の再設定を実行する。
最後に、ステップ１３０４において、プレライト実処理部１１３ｂを起動し、本プレライト実処理部１１３ｂの処理を終了する。
【０１７５】
一方、算出した差分が、規定値ｍ以上で、処理対象としているページセット１０９が、CLOCKHANDに追い越されていない（あるいは近々追い越される可能性がない）場合、プレライト実処理部１１３ｂは、ステップ７０３に移行する。なお、ステップ１３００、１３０１、１３０２、１３０３、１３０４以外の処理は、プレライト実処理部１１３ａの処理と同様である。
【０１７６】
図１４は、第一の実施形態におけるプレライト実処理部１１３の処理の一部を変更したプレライト実処理部１１３ｃ（図示せず）の処理内容を示した図である。
【０１７７】
以下、第三の実施形態におけるプレライト実処理部１１３ｃの処理内容について図１４のフローチャートを用いて説明する。
【０１７８】
プレライト実処理部１１３ｃは、ステップ７０９において、ステップ７１０からステップ７１３までの処理を、書出しリストに登録されているページセット１０９がなくなるまで繰り返す。
【０１７９】
プレライト実処理部１１３ｃは、繰り返し処理では、まずステップ７１０で前記書出しリストの先頭から、ページセット１０９を一つ取り出した後、ステップ１４００において、バッファ管理部１１０からCLOCKHAND位置情報１１６を取得する。
【０１８０】
次に、プレライト実処理部１１３ｃは、ステップ１４０１において、取り出したページセット１０９と、CLOCKHAND位置情報１１６との差分を算出し、算出した差分が、規定値ｍ未満であるか否かを判定する。即ち取り出したページセット１０９が、CLOCKHANDに追い越されたか否か（あるいは近々追い越される可能性があるか否か）を判定する。
【０１８１】
差分が、規定値ｍ未満であった場合(ステップ１４０１：ＹＥＳ)、プレライト実処理部１１３ｃは、ステップ１４０２において、開始位置決定部１１１を起動し、プレライト実処理部１１３ｃにおける処理開始位置の再設定を実行する。
【０１８２】
次に、プレライト実処理部１１３ｃは、ステップ１４０３において、対象数決定部１１２を起動し、プレライト実処理部１１３ｃにおける処理対象数の再設定を実行する。
最後に、ステップ１４０４において、プレライト実処理部１１３ｃを起動し、本プレライト実処理部１１３ｃの処理を終了する。
【０１８３】
ステップ１４００、１４０１、１４０２、１４０３、１４０４以外の処理は、プレライト実処理部１１３の処理と同様である。
【０１８４】
以上説明したように、本実施形態によれば、プレライト実処理において書出し処理を実行する直前に、CLOCKHAND位置情報１１６を取得し、CLOCKHAND位置情報１１６と書出し処理を実行するページセット１０９の位置との差分を算出し、算出した差分が、規定値ｍ未満であった（プレライト処理の処理対象としているページ１０５にページ置換処理の置換対象となるページ１０５が追いついた）場合、処理開始位置の決定処理、処理対象数の決定処理、プレライト実処理を再度実行することで、バッファ管理におけるページ書出し処理の発生を、第一の実施形態、もしくは第二の実施形態以上に抑制することが可能となる。
【０１８５】
また、バッファ管理部１１０とプレライト部１００において、書き出しの対象とするページセット１０９が競合することがなくなる。
【０１８６】
以上、本発明の実施形態として、第１〜第３実施形態を説明したが、これら実施形態は本発明の説明のための一例であり、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。
【０１８７】
例えば、前記実施形態では、データベース管理システム１２０を例としたが、バッファ管理を必要とするシステムであれば、本発明を適用可能である。
【０１８８】
また、例えば、前記実施形態では、データのリソース割り当てを決定するアルゴリズムにGCLOCKを適用した例を示したが、前記アルゴリズムは、GCLOCKをはじめ、ページセット１０９の循環リスト１３０を順に辿りながら置換対象となるページ１０５を探索するようなアルゴリズムでも良い。
【０１８９】
前記アルゴリズムを適用したバッファ管理が組み込まれたシステムにおいて、バッファ管理処理のレスポンスを一定に保つことが可能である。また、前記システムのスループットを向上させることが可能である。
【符号の説明】
【０１９０】
１００、１００ａ…プレライト部
１０１…データ管理サーバ
１０２…ＣＰＵ
１０４…２次記憶装置
１０５、１５０１、１５０２、１５０３、１５０４…ページ
１０６…バッファプール
１０７…ダーティフラグ
１０８…バス
１０９、３０２、３０３、３０４、３０５、３０６、３０７、３０８、９００、９０１、
９０２、９０３、９０４、９０５、９０４ｂ、９０５ｂ、９０６、９０７、９０８、９０
９、９０９ｃ、９１０、９１１、９１２、９１３、９１４、９１５…ページセット
１１０、１１０ａ…バッファ管理部
１１１…開始位置決定部
１１２…対象数決定部
１１３、１１３ａ、１１３ｂ、１１３ｃ…プレライト実処理部
１１４…開始契機決定部
１１５…待機部
１１６…CLOCKHAND位置情報
１１９…CLOCKHAND移動情報
１２０…データベース管理システム
１２１…リファレンスカウンタ
１２２、１２２ａ…GCLOCKページ置換部
１２３…ネットワークインタフェース
１２４…置換実行回数取得部
１２５…置換実行回数表
１２６…端末
１２７…SQL解析部
１２８…データベース演算部
１２９…データ処理部
１３０…ページセット循環リスト
５００…ページ置換発生回数
５０１…ページ置換発生回数平均値
５０２…ページ置換発生回数対応項番
１０００…プレライト起動部
１５００…CLOCKHAND
【図１】
0005450803.tif 000002
【図２】
0005450803.tif 000003
【図３】
0005450803.tif 000004
【図４】
0005450803.tif 000005
【図５】
0005450803.tif 000006
【図６】
0005450803.tif 000007
【図７】
0005450803.tif 000008
【図８】
0005450803.tif 000009
【図９】
0005450803.tif 000010
【図１０】
0005450803.tif 000011
【図１１】
0005450803.tif 000012
【図１２】
0005450803.tif 000013
【図１３】
0005450803.tif 000014
【図１４】
0005450803.tif 000015
【図１５】
0005450803.tif 000016
【図１６】
0005450803.tif 000017
【図１７】
0005450803.tif 000018
【図１８】
0005450803.tif 000019