JP5450803B2 - データ処理方法、データ処理装置及びデータ処理プログラム - Google Patents

データ処理方法、データ処理装置及びデータ処理プログラム Download PDF

Info

Publication number
JP5450803B2
JP5450803B2 JP2012511518A JP2012511518A JP5450803B2 JP 5450803 B2 JP5450803 B2 JP 5450803B2 JP 2012511518 A JP2012511518 A JP 2012511518A JP 2012511518 A JP2012511518 A JP 2012511518A JP 5450803 B2 JP5450803 B2 JP 5450803B2
Authority
JP
Japan
Prior art keywords
input
prewrite
output buffer
buffer
management unit
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
JP2012511518A
Other languages
English (en)
Other versions
JPWO2011132357A1 (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 JP2012511518A priority Critical patent/JP5450803B2/ja
Publication of JPWO2011132357A1 publication Critical patent/JPWO2011132357A1/ja
Application granted granted Critical
Publication of JP5450803B2 publication Critical patent/JP5450803B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

参照による取り込み
本出願は、平成22年(2010年)4月22日に出願された日本特許出願特願2010−098652の優先権を主張し、その内容を参照することにより、本出願に取り込む。
本発明は、バッファ管理コンポーネントを有するシステムのデータ処理方法、データ処理装置及びデータ処理プログラムに関する。
データベース管理システム(DBMS)等のソフトウェアでは、データ処理を実行する際、処理速度や転送速度の差を補い、処理の高速化を図るために、データをページと呼ばれる単位毎に、一時的に主記憶装置上のバッファプールに記憶する。バッファプール上に全てのデータを記憶できるとは限らないため、バッファプール上には、バッファ管理機構によって、使用される可能性の高いデータが記憶されるようになっている。使用される可能性が高いデータを含むページ以外のページは2次記憶装置などに格納されており、必要に応じてバッファプール上のページと置換する置換処理を行うようになっている。
ここで、置換処理とは、バッファプール上にあるページを2次記憶装置等に書出して、2次記憶装置から必要なデータをページ単位で読込む場合と、バッファプール上からの書出しを行わずに2次記憶装置から必要なデータをページ単位で読込む場合との両方の処理を含むものである。
置換処理において、バッファプール上の置換対象となるページを選択するといった、バッファ上のリソース割り当てを行うアルゴリズムとしてLRU(Least Recently Used)やGeneralized CLOCK(以下、GCLOCK)がある。
LRUについては、特許文献1のDescription of the Related Artに纏められており、GCLOCKの詳細に関しては、非特許文献1のpp.17等で述べられている。
バッファ管理機構において、置換処理を実施する場合、まず、バッファプール上の置換対象となるページを探索する。探索の結果、置換対象となるページが決まった後、そのページがバッファプールに読み込まれてから更新があったか否かを判定する。前記判定の結果、更新があった場合、2次記憶装置等の主記憶以外の記憶装置に対し、置換対象となるページを書き出す書出し処理を行う。
その後、書出し処理を行った記憶装置から必要なデータをページ単位でバッファプール上に読み込む読込み処理が実施されるようになっている。つまり、置換処理は、書出し処理が発生した場合は、発生しなかった場合に比べて、書出し処理の分、処理に必要なデータへのアクセスレスポンスが長くなる。
特定のデータへのアクセスレスポンスを向上させる方法として、アクセス要求が発生する前に、ページの書出し処理を予め完了させておくことが考えられる。この点、特許文献2には、ページを置換する際に書き出しが必要となるページ(以下、「ダーティなページ」という。)を、バッファ管理機構とは非同期に書き出す技術が開示されている。特許文献2に開示された技術では、ダーティなページを、バッファ管理機構とは非同期に全て書き出すようになっている。このような、ダーティなページを、事前且つ非同期に書き出す処理をプレライト処理と呼ぶ。
プレライト処理において、ダーティなページを全て書き出した後、バッファ管理機構が、バッファプール上に有るページを置換対象とするまでの間に、そのページに含まれるデータが更新されると、そのページは再度ダーティなページとなる。このため、その後バッファ管理機構がそのページを置換対象としたときに、ページの書出し処理が発生してしまうといった第一の問題がある。
また、前述したダーティなページを全て書き出すプレライト処理の場合では、バッファ管理機構がバッファプール上に有る特定のページを置換対象とするまでの間に、ページの更新と、そのページの書出し処理とが繰り返される可能性がある。このとき、その特定のページに対し有効なプレライト処理は、そのページが置換対象となる直前に実行されたプレライト処理だけであり、それ以前に実行されたプレライト処理で発生した書出し処理は、プレライト処理を実行するシステム全体に対してのオーバヘッド増大に繋がるといった第二の問題がある。
前記2つの問題を解決するためには、一度のプレライト処理で書き出すページ数を適切に管理し、そのプレライト処理の実行直後にバッファ管理機構が置換対象とするようなページのみをプレライト処理の処理対象とする方法が考えられる。
米国特許第7,096,321号公報 特開2001−101080号公報
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が指し示しているページの循環リスト上の位置の差が大きく開いていると、バッファ管理機構においてページの書出し処理が発生することとなる。
この事例を、図を用いて詳細に具体的に説明する。図15は、バッファ管理機構によってページの書出し処理が発生する例を示す。図15(a)と図15(b)は、同じ循環リストの例を示す図であり、図15(b)は、図15(a)よりN時間経過した前記循環リストの状態を示している。図15(a)の時点で、CLOCKHAND1500は、ページ1501を指し示しており、ページ1503からページ1504までのページ群(点線内のページ)を対象にプレライト処理が実行されるものとする。
このプレライト処理では、プレライト対象のページ群に書出し処理が必要なページを含むため、該当するページの書出し処理が実行される。また、書出し処理が必要なページには、ページ置換の対象となり得るページ1503とページ1504とが含まれる。つまり、CLOCKHAND1500が指し示す前に、更新されたデータが格納されたページ1503とページ1504のプレライト処理が実行される。
しかし、図15の例では、ページ1501とページ1503との間においても書出し処理を必要とし且つ、ページ置換の対象となり得るページ1502が存在する。そのため、図15(b)の時点で、CLOCKHAND1500がページ1502を指し示したとき、バッファ管理機構において、更新されたデータが格納されたページ1502に対して、書出し処理が実行されることとなる。
また、プレライト処理において、書き出すページの量については、一度のプレライト処理で、大量のページの書出し処理を実行すると、上述した第一の問題と同様の問題が発生することになる。即ちバッファ管理機構によって置換対象される前に、再度ダーティなページとなってしまい、そのページをバッファ管理機構が置換対象としたときに、書出し処理が必要となるケースである。
この事例を、図16を用いて具体的に説明する。図16(a)、図16(b)、図16(c)及び図16(d)は、同じ循環リストの例を示す図であり、図16(b)は、図16(a)よりN時間経過した前記循環リストの状態を示しており、図16(c)は、図16(b)より更にM×N時間経過した前記循環リストの状態を示しており、図16(d)は、図16(c)より更にN時間経過した前記循環リストの状態を示している。
図16(a)の時点では、CLOCKHAND1500はページ1501を指し示しており、前記循環リスト上でページ1501からページ1504までのページ群を対象にプレライト処理が実行されるものとする。このとき、プレライト処理において、書出し処理を必要とし且つページ置換の対象となり得るページ1502、ページ1503及びページ1504の、書出し処理が実行される。
プレライト処理において、ページ1502の書出し処理が実行されることで、図16(b)の時点で、CLOCKHAND1500がページ1502を指し示したとき、ページ1502のデータは、プレライト処理で既に書き出されているので、ページ1502の置換処理で、書出し処理が実行されることはない。
しかし、図16(b)の時点から図16(c)の時点までM×N時間経過する間に、ページ1504に含まれるデータが更新された場合、再度ページ1504の書出し処理を必要とする状態になってしまう。そのため、図16(d)の時点で、CLOCKHAND1500がページ1504を指し示したとき、バッファ管理機構の置換処理において、ページ1504の書出し処理が実行されることとなる。
また、上述解決方法を実現するにあたり、プレライト処理の対象となるページの量は、CLOCKHANDが指し示すページ近くに位置するページのみ少量(適量)となるので、プレライト処理は常時動作する必要は無い。つまり、プレライト処理を実行後、一定期間休止し、続きのプレライト処理を実行させればよい。
しかし、休止の期間が長く、プレライト休止中に前回実行したプレライト処理範囲をCLOCKHANDが通過してしまうと、置換処理でプレライト処理の実行前のページを参照し、結果、置換処理でページの書出し処理が必要となる。
この事例を、図を用いて具体的に説明する。図17に、プレライト処理実行前にCLOCKHANDが、プレライト対象ページを通過してしまうために、置換処理で書出し処理が必要となる例を示す。図17(a)、図17(b)、図17(c)は、同じ循環リストの例を示す図であり、図17(b)は、図17(a)よりN時間経過した前記循環リストの状態を示しており、図17(c)は、図17(b)より更にM×N時間経過した前記循環リストの状態を示している。
図17(a)の時点では、CLOCKHAND1500は、ページ1501を指し示しており、前記循環リスト上でページ1501の次に位置するページからページ1502までのページ群を対象に、プレライト処理を実行するものとする。このとき、プレライト処理において、書出し処理を必要とし且つページ置換の対象となり得るページ1502の書出し処理が実行される。
このプレライト処理において、ページ1502の書出し処理が実行されるので、図17(b)の時点で、CLOCKHAND1500がページ1502を指し示したとき、ページ1502の書出し処理が実行されることはない。
しかし、そのプレライト処理実行以降、図17(b)の時点から図17(c)の時点までM×N時間経過する間に、プレライト処理が実行されるようなことがなく、CLOCKHAND1500が図17(a)の時点で実行されたプレライト処理の処理範囲を超えてしまうと、図17(c)の時点でCLOCKHAND1500がページ1503を指し示したときに、バッファ管理機構の置換処理において、ページ1503の書出し処理が実行されることとなる。
このような事例とは対照的に、プレライト処理が常時動作するか、休止時間が短すぎると、時間の経過と共にプレライト処理の処理対象としているページの循環リスト上の位置と、CLOCKHANDが指し示しているページの循環リスト上の位置の差が大きくなり、上述した第一の問題と同様の問題が発生してしまう。即ちプレライト処理後からCLOCKHANDが指し示す前に更新され、書出し処理が必要になってしまったページを、バッファ管理機構の置換処理において、再度書出し処理が必要となってしまう。
この事例について、図を用いて具体的に説明する。図18に、書出し処理が必要となる例を示す。図18(a)、図18(b)図18(b´)、図18(c)、図18(d)は、同じ循環リストの例を示す図であり、図18(b)は、図18(a)よりN時間経過した前記循環リストの状態を示しており、図18(b´)は、図18(b)より更にL×N時間経過した前記循環リストの状態を示しており、図18(c)は、図18(b´)より更に(M―L)×N時間経過した前記循環リストの状態を示しており、図18(d)は、図18(c)より更にN時間経過した循環リストの状態を示している。
図18(a)の時点では、CLOCKHAND1500はページ1501を指し示しており、前記循環リスト上でページ1501の次に位置するページからページ1502までのページ群を対象にプレライト処理が実行されるものとする。このとき、プレライト処理において、書出し処理を必要とし且つページ置換の対象となり得るページ1502の書出し処理が実行される。
このプレライト処理において、ページ1502の書出し処理が実行されるので、図18(b)の時点でCLOCKHAND1500がページ1502を指し示したとき、バッファ管理機構の置換処理で、ページ1502の書出し処理が実行されることはない。
しかし、このプレライト処理実行以降、図18(a)の時点から図18(b)の時点までN時間経過する間に、連続的にプレライト処理が実行され、図18(b)の時点で、ページ1503からページ1504までのページ群を対象にプレライト処理が実行されたとする。
この2回目のプレライト処理において、書出し処理を必要とし且つページ置換の対象となり得るページ1503とページ1504の書出し処理が実行された場合、図18(b)の時点から図18(c)の時点までM×N時間経過する間に、ページ1504に含まれるデータが更新され、ページ1504が書出し処理の必要な状態となると、図18(d)の時点でCLOCKHAND1500がページ1504を指し示したとき、バッファ管理機構の置換処理において、ページ1504の書出し処理が再度実行されることとなる。
つまり、CLOCKHANDの動きに合わせて、プレライト処理を適切に制御することが課題となる。
本発明は、前記従来技術の課題に鑑みて為されたものであり、その目的は、複数の入出力バッファを順に参照するCLOCKHANDの動きに合わせて、プレライト処理を適切に制御することができるデータ処理方法、データ処理装置およびデータ処理プログラムを提供することにある。
上記目的を達成するため、本発明は、データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データを格納する2次記憶装置と、前記入出力バッファに一時的に格納するデータ及び前記2次記憶装置に格納するデータの置換処理を管理するバッファ管理部と、前記入出力バッファに格納されたデータがバッファ管理部において書き出される前に、事前書出しを行うプレライト処理を管理するプレライト管理部と、を有する計算機のデータ処理方法であって、前記バッファ管理部が、前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定するステップと、前記バッファ管理部が、所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測するステップと、前記バッファ管理部が、所定時間あたりに前記複数の入出力バッファに格納されたデータを順番に参照する参照速度を算出するステップと、前記プレライト管理部が、プレライト処理の実行契機を検出し、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定するステップと、前記プレライト管理部が、前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出すステップと、前記プレライト管理部が、前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定するステップと、を含む。
本発明によれば、複数の入出力バッファを参照する動きに合わせて、プレライト処理を適切に制御することができ、システムのスループットの向上を図ることができる。
本発明の第一の実施形態の構成を示す図である。 第一の実施形態における開始位置決定部の処理内容を示すフローチャートである。 本発明におけるページセットの循環リストの例を示した図である。 第一の実施形態における対象数決定部の処理内容を示すフローチャートである。 本発明における置換実行回数表の例を示した図である。 第一の実施形態における置換実行回数取得部の処理内容を示すフローチャートである。 第一の実施形態におけるプレライト実処理部の処理内容を示すフローチャートである。 第一の実施形態における開始契機決定部の処理内容を示すフローチャートである。 第一の実施形態における本発明の処理の概略を示す図である。 本発明の第二の実施形態の構成を示す図である。 第二の実施形態におけるプレライト実処理部の処理内容を示すフローチャートである。 第二の実施形態におけるプレライト起動部の処理内容を示すフローチャートである。 第三の実施形態を第一の実施形態に適用した場合のプレライト実処理部の処理内容を示すフローチャートである。 第三の実施形態を第二の実施形態に適用した場合のプレライト実処理部の処理内容を示すフローチャートである。 バッファ管理においてページの書出し処理が発生するプレライト処理の一例を示した図である。 バッファ管理においてページの書出し処理が発生するプレライト処理の一例を示した図である。 バッファ管理においてページの書出し処理が発生するプレライト処理の一例を示した図である。 バッファ管理においてページの書出し処理が発生するプレライト処理の一例を示した図である。
[第一の実施形態]
以下、本発明の第一実施形態について、図1を用いて説明する。
図1は、本発明を適用した計算機システムの全体構成図である。プレライト部100が組み込まれるデータベース管理システム120は、データ管理サーバ101の中に構築される。データ管理サーバ101は、後記する各処理を実行するCPU(Central Processing Unit)102や、RAM(Random Access Memory)等の主記憶装置103、ハードディスクドライブ等の2次記憶装置104、ネットワークインタフェース(以下、「NI」(Network Interface)という。)123を、バス108を介して接続した構成で実現される。
また、データ管理サーバ101には、管理するデータへのアクセス要求元として、多数の端末装置126が接続される。
データベース管理システム120は、主記憶装置103上に格納されており、データ処理部129、プレライト部100及びバッファプール106から構成される。この際、CPU102は、コントローラとして、データ処理部129やプレライト部100にそれぞれ処理を実行させることになる。即ちCPU102が、データベース管理システム120を構成するプログラムを起動することで、データベース管理システム120上に、データ処理部129、データ処理部129、プレライト部100およびバッファ管理部110が構成されることになる。
バッファプール106は、2次記憶装置104に格納されているデータをページ単位で一時的に記憶するデータ領域であって、複数の入出力バッファの格納領域として構成されている。このバッファプール106は、ページ105と、ページ105に対応するリファレンスカウンタ121及びダーティフラグ107からなるページセット109の循環リスト130を格納する。この際、各ページセット109は、各入出力バッファに対応してバッファプール106に格納される。
データ処理部129は、SQL解析部127、データベース演算部128及びバッファ管理部110から構成される。
バッファ管理部110は、GCLOCKページ置換部122及び置換実行回数取得部124から構成され、プレライト部100が参照する統計情報として、CLOCKHAND位置情報116、CLOCKHAND移動情報119及び単位時間当たりにバッファ管理で発生した置換処理の発生回数を管理する置換実行回数表125をそれぞれ持つ。
この際、バッファ管理部110は、例えば、複数の入出力バッファの中から、そのデータを、2次記憶装置104のデータと置換するための置換対象となる入出力バッファを選定するためのバッファ管理処理を、プレライト部100によるプレライト処理と並列に実行する過程において、置換対象となる入出力バッファ(ページセット109)を選定する中で置換対象となる入出力バッファ(ページセット109)を発見した回数を置換実行回数として計数する。
また、バッファ管理部110は、複数の入出力バッファに格納された情報(ページ105、リファレンスカウンタ121及びダーティフラグ107)を順番に参照するとともに、参照された入出力バッファの情報と計数された置換実行回数を基に複数の入出力バッファに格納された情報を参照する速度(CLOCKHANDの速度)を算出することとしている。
データベース管理システム120は、端末装置126からのデータベース問い合わせ要求であるSQLを受け取り、SQL解析部127において、構文解析処理、意味解析処理及びデータベースアクセスの最適なアクセス経路を決定する最適化処理によって要求されたデータを特定し、データベース演算部128において、SQL要求に応じてジョインなどのデータベース演算を実行し、バッファ管理部110に対して、必要なデータの取得要求を出す。
バッファ管理部110は、既にバッファプール106内に要求されたデータが読み込まれていた場合、そのデータが属するページセット109に対応するリファレンスカウンタ121をインクリメントし、バッファプール106内に存在する、要求されたデータを、アクセス要求元に返却する。
逆に、バッファ管理部110は、データベース演算部128から要求されたデータが、バッファプール106内に存在しないときには、2次記憶装置104内から、要求されたデータを読み出して、バッファプール106内のページセット109に格納するとともに、読み出したデータを、アクセス要求元に返却する。
このバッファプール106内に要求されたデータが読み込まれていなかった場合、GCLOCKページ置換部122において、バッファプール106上に存在するページセット109の中から置換対象となるページセット109を選定し、2次記憶装置104から要求されたデータを読み込み、読み込んだデータを置換対象のページセット109に格納するとともに、読み込んだデータを、アクセス要求元に返却するようになっている。そして、置換対象のページセット109に対応するリファレンスカウンタ121に「1」をセットし、2次記憶装置104との間にデータの差分がないとして、ダーティフラグ107をリセットする。
置換対象となるページセット109の選定方法としては、バッファ管理部110が管理するCLOCKHANDと呼ばれるポインタが指しているページセット109に対応するリファレンスカウンタ121を参照し、リファレンスカウンタの値が予め設定されている閾値以下であった場合、このページセット109を置換対象とする。例えば、閾値が「0」であり、CLOCKHANDと呼ばれるポインタが指しているページセット109に対応するリファレンスカウンタの値が「0」以下であった場合、このページセット109を置換対象とする。このとき、置換対象のページセット109に対応するダーティフラグ107がセットされていた場合(更新されたデータが存在する場合)、ページセット109に対応するページ105のデータを更新されたデータとして2次記憶装置104に書き出し、その後、2次記憶装置から読み出したデータを、置換対象のページセット109に格納するようになっている。
また、ページセット109に対応するリファレンスカウンタ121の値が、予め設定されている閾値(例えば、「0」。)を上回っていた場合、そのページセット109に対応するリファレンスカウンタ121をデクリメントし、CLOCKHANDに、循環リスト130上で、そのページセット109の次に位置するページセット109をポイントさせるようになっている。その後、置換対象として適当なページセット109を選定するまで、順次同様の処理を繰り返す。
次いで、第一実施形態のプレライト部100について説明する。上述のように、バッファ管理部110は、置換対象となるページセット109について、対応するダーティフラグ107がセットされている場合、格納されているデータを2次記憶装置104に書き出すように構成されているが、第一実施形態のプレライト部は、バッファ管理部110が、ページセット109に格納されたデータを書き出す前に、上述のダーティなデータを、2次記憶装置104に書き出すプレライト処理を実行・管理するようになっている。
プレライト部100は、開始位置決定部111、対象数決定部112、プレライト実処理部113、開始契機決定部114及び待機部115から構成され、データ処理部129とは独立であり、パラレルに動作するように構成されている。即ちプレライト部100は、バッファプール106に格納されているページセット109において、ダーティフラグ107が設定されているページ105が、バッファ管理部110によって2次記憶装置104に書き出される前に、所定の条件に基づいて書き出すようになっている。
プレライト部100は、バッファ管理部110で置換対象として選定される可能性のあるページセット109の中に更新されたデータ(ページ105)が存在するときには、CLOCKHAND位置情報116、CLOCKHAND移動情報119及び置換実行回数表125を参考に、前記更新されたデータ(ページ105)を含むページセット109の中から、2次記憶装置104に書き出す必要のあるページを選定し、書き出す処理を実行する。
以下、第一実施形態におけるプレライト処理の処理内容について説明する。
まず、プレライト部100によって実行されるプレライト処理の概要について、図1を用いて説明する。
プレライト部100は、データベース管理システム120からの起動要求によって起動される。この際、プレライト部100は、開始位置決定部111から待機部115まで実行される処理を、データベース管理システム120からの停止要求があるまで繰り返すようになっている。
この繰り返し処理では、プレライト部100は、まず開始位置決定部111を起動する。開始位置決定部111は、プレライト実処理部113で実行するプレライト実処理を開始するページセット109を、バッファプール106内の循環リスト130から決定する。
次に、プレライト部100は、対象数決定部112を起動する。対象数決定部112は、プレライト実処理部113で実行するプレライト実処理で処理対象とする所定数分のページセット109の数を決定する。この後、プレライト部100は、プレライト実処理部113を起動する。
プレライト実処理部113は、開始位置決定部111で、開始位置と決定したページセット109から順に、対象数決定部112で決定した所定数のページセット109を対象に、書出し処理を行う必要があるか否かを判定する。プレライト実処理部113は、書出し処理を行う必要があると判定されたページセット109に属するページ105のデータを2次記憶装置104に対して書き出す。
次に、プレライト部100は、開始契機決定部114を起動する。開始契機決定部114は、待機部115で待機する時間を決定する。最後に、プレライト部100は、待機部115を起動し、開始契機決定部114で決定された待機時間に従い待機処理を実行する。
次に、上述したプレライト処理で各部が実行する具体的な処理を説明する。
まず、開始位置決定部111の処理内容について図2及び図3を用いて説明する。
図2は、開始位置決定部111の処理内容を示したフロー図である。
図3は、図1に示すバッファプール106に格納されているページセット109の循環リスト130の一例を示したものであり、CLOCKHAND位置情報116と循環リストの関係を表した模式図である。
なお、ページセット109は、ページ105、ページ105に対応するリファレンスカウンタ121及びダーティフラグ107から構成される。
また、第一実施形態において、CLOCKHAND位置情報116とは、CLOCKHANDがポイントしているページセット109の位置を示す統計情報であり、図3の例では、CLOCKHAND位置情報116には、ページセット302が設定されているものとする。
また、第一実施形態において、プレライト処理を実行する上で、プレライト実処理の最良の処理開始位置であるページセットは、プレライト実処理開始時のCLCOKHAND位置情報116からみてCLOCKHANDの進行方向に、規定値mだけ先に位置するページセットであるものとする。プレライト実処理の処理開始位置とするページセットと、CLCOKHAND位置情報116との差が、規定値m未満若しくは規定値n+m以上となったとき、プレライト処理を正常に継続することができなくなると判定するものとする。規定値n及びmは、自然数(0を含む)であり、又いずれもデータベース管理システム120若しくはプレライト部100によって、あるいは初期値として予め設定されているものとする。
開始位置決定部111は、まずステップ200でバッファ管理部110が所持するCLOCKHAND位置情報116を取得する。
次に、ステップ201で、前記CLOCKHAND位置情報と直前(前回)のプレライト実処理が終了したページセットとの差分dを算出する。前記差分dが規定値m未満であった場合、ステップ202で、直後のプレライト実処理の処理開始位置とするページセットをCLOCKHAND位置情報116から規定値mだけ進んだ位置に設定し、開始位置決定部111の処理を終了する。
ステップ201で、差分dが規定値m以上であった場合、開始位置決定部111は、次に、ステップ203で、差分dが規定値n+m以上であるか否かを判定する。即ちCLOCKHANDが、直前のプレライト実処理が終了したページセットと一定の距離以上離れていないかを判定する。
この判定の結果、差分dが、規定値n+m以上であった場合、ステップ202において、今回のプレライト実処理の処理開始位置とするページセットをCLOCKHAND位置情報116から規定値mだけ進んだ位置に設定し、開始位置決定部111の処理を終了する。
差分dが、規定値m以上であり且つ規定値n+m未満であった場合にのみ、開始位置決定部111は、ステップ204において、今回のプレライト実処理の処理開始位置を、前回のプレライト実処理が終了したページセットの次のページセットに設定し、CLOCKHANDが、前回のプレライト実処理が終了したページセットと余り離れ過ぎず且つ追い越しもしていないとして、開始位置決定部111の処理を終了する。
図3の例に対し、規定値mを2、規定値n+mを5、前回のプレライト実処理が終了したページセットをページセット306と設定する。この際、規定値mとは、プレライト実処理の最良の処理開始位置であるページセットを決定する際に用いられる、予め設定される値である。また、n+mとは、プレライト処理を正常に継続できるかどうかを判定する際に用いられる、予め設定される値である。
また、図3の例では、CLOCKHAND位置情報116におけるページセット302と、前回のプレライト実処理が終了したページセット306との間には、4ページ分(ページセット303、304、305、306)の差があるため、差分dは、4となる。
このとき、差分d(「4」)は、規定値m(「2」)以上であり且つ規定値n+m(「5」)未満であるため、今回のプレライト実処理の処理開始位置を、前回のプレライト実処理が終了したページセットの次のページセットとしても、正常にプレライト処理を継続可能であると判定する。これにより、直後のプレライト実処理の処理開始位置とするページセットを、直前のプレライト実処理が終了したページセット306の次のページセット307に設定する。
以上が開始位置決定部111の処理内容である。
次に、対象数決定部112の具体的処理を説明するが、それに先立ち対象数決定部112が使用する置換実行回数表125及びその表を作成する置換実行回数取得部124の処理を、図5及び図6を用いて具体的に説明する。
図5は、置換実行回数表125の一例を表した概念図である。置換実行回数表125は、i回分のページ置換発生回数500と、それに対応する項番502、i回分のページ置換発生回数500の平均値である平均ページ置換発生回数501から構成される。ページ置換発生回数500は、単位時間tの間にGCLOCKページ置換部122において、ページ105の置換処理が実行された回数である。
図6は、置換実行回数取得部124の処理内容を示した図である。
置換実行回数取得部124は、単位時間t(例えば、1秒)が経過する毎にバッファ管理部110から随時起動される。
置換実行回数取得部124は、まずステップ600において、GCLOCKページ置換部122が所持するページ置換発生回数を取得する。このページ置換発生回数は、GCLOCKページ置換部122においてページの置換処理が実行される毎にインクリメントされる値である。
次に、置換実行回数取得部124は、ステップ601において、次の単位時間毎のページ置換発生回数を計測するために、ページ置換発生回数に0を設定する。
次に、置換実行回数取得部124は、ステップ602において、ステップ600で取得したページ置換発生回数を、置換実行回数表125の項番aに対応するページ置換発生回数500に登録する。項番aは、置換実行回数取得部124によって管理される値であり、バッファ管理部110が起動された時に1で初期化される。
次に、置換実行回数取得部124は、ステップ603において、置換実行回数表125に登録されている項番1から項番iのページ置換発生回数を基に平均ページ置換発生回数501を算出する。
最後に、置換実行回数取得部124は、ステップ604において、項番aをインクリメントする。このときaの値がiであった場合は、元に戻るために、aに0を設定する。
以下、第一実施形態における対象数決定部112の処理内容について図4及び図5を用いて説明する。図5の詳細については前記の通りである。
以下の説明において、規定値Lとは、プレライト実処理の処理対象数を規定値から変更するか否かを判定するために、予めプレライト部100において設定されている値である。
既定のプレライト実処理の処理対象数とは、開始位置決定部111で設定された処理開始位置からみて、CLOCKHANDの進行方向前方に位置し、バッファ管理部において置換対象となるページセットの数のことである。
対象数決定部112は、図4に示すように、まずステップ400でバッファ管理部110の置換実行回数表125を参照し、平均ページ置換発生回数501x(図5の例ではx=2.5回)を取得する。
次に、対象数決定部112は、ステップ401で、置換実行回数表125から、前回のプレライト実処理が開始された時点から今回の処理開始位置決定処理が開始されるまでの置換処理発生回数500を取得し、その間の平均置換処理発生回数yを算出する。
次に、対象数決定部112は、ステップ402で、平均ページ置換処理発生回数xと前記平均置換処理発生回数yとの減算(x−y)を実行し、減算結果z(z=x−y)を取得する。この平均ページ置換処理発生回数xは、前回のプレライト処理開始時点よりも過去から、今回のプレライト処理の開始位置決定処理終了時点までの間における平均置換実行回数として算出される値である。
次に、対象数決定部112は、既定のプレライト実処理の処理対象数を取得し、減算結果zが、−L≦z≦Lであった場合、ステップ403で、直後のプレライト実処理で処理するページセット109の処理対象数を、既定のプレライト実処理の処理対象数と同数に設定する。
減算結果zが、z<−Lであった場合、対象数決定部112は、ステップ404で、今回のプレライト実処理で処理するページセットの処理対象数として、既定のプレライト実処理の処理対象数から、f(z)を加算した結果を設定する。
減算結果zが、L<zであった場合、対象数決定部112は、ステップ405で、今回のプレライト実処理で処理するページセット109の処理対象数として、既定のプレライト実処理の処理対象数に、f(z)を減算した結果を設定する。
以上が対象数決定部112の処理内容である。
図7は、プレライト実処理部113の処理内容を示した図である。
以下、第一実施形態におけるプレライト実処理部113の処理内容について図7のフローチャートを用いて説明する。
プレライト実処理部113は、まずステップ700で、開始位置決定部111において設定された処理開始位置のページセット109を処理対象とする。
次に、プレライト実処理部113は、ステップ701で、プレライト実処理部113が管理する処理済ページカウンタに対して、0を設定して初期化する。処理済ページカウンタは、対象数決定部112で決定した処理対象数だけプレライト実処理を実施するため、処理対象となったページセットが、バッファ管理において置換対象となるときに、カウントアップするものであり、プレライト実処理部113によって管理される。
次に、ステップ702において、ステップ703からステップ708までの処理を、処理済ページカウンタのカウント値が、対象数決定部112で設定した処理対象数以上になるまで繰り返す。
この繰り返し処理では、まずステップ703で、処理対象であるページセット109が、バッファ管理において置換対象となるか否かを判定する。例えば、リファレンスカウンタ121のカウント値が0(閾値)以下か否かを判定する。
ステップ703の判定において、例えば、リファレンスカウンタ121のカウント値が0(閾値)以下で、処理対象であるページセット109が、置換対象となる場合(ステップ703:YES)は、ステップ704において、処理済ページカウンタをカウントアップする。
次に、プレライト実処理部113は、ステップ705で、そのページセット109に対応するダーティフラグ107がセットされているか否かを判定する。即ちそのページセット109に更新されたデータが存在するか否かを判定する。
ダーティフラグ107がセットされていた場合(ステップ705:YES)、ステップ706において、処理対象であるページセット109をプレライト実処理部113が管理する書出しリストに登録する。
次に、ステップ707において、ステップ703、ステップ705の判定結果に関わらず、処理対象として設定されているページセット109から見て、CLOCKHANDの進行方向に対し一つ先に位置するページセット109を新たな処理対象として設定する。
次に、ステップ709において、ステップ710からステップ713までの処理を、書出しリストに登録されているページセット109がなくなるまで繰り返す。
この繰り返し処理では、まずステップ710で、書出しリストの先頭から、ページセット109を一つ取り出す。
次に、ステップ711で、取り出したページセット109に対応するページ105のデータを、更新されたデータとして2次記憶装置104に対して書き出す。
次に、ステップ712で、ステップ711で取り出したページセット109に対応するダーティフラグ107をリセットする。
以上がプレライト実処理部113の処理内容である。
以上の処理で、例えば、図3において、処理開始位置のページセットがページセット303であり、対象数決定部112において決定したプレライト実処理の処理対象数が2であった場合、プレライト実処理部113において処理対象となるページセットは、書出しリストに登録されているページセット305と、登録リストには登録されていないページセット308である。
プレライト実処理部113では、ページセット305は、対応するダーティフラグ107がセットされており、ページセット308は、対応するダーティフラグ107がセットされていないことから、ページセット305に対応するページ105のデータのみが2次記憶装置104に書き出される。
図8は、開始契機決定部114の処理内容を示した図である。
第一実施形態における、開始契機決定部114の処理内容について図8のフローチャートを用いて説明する。
開始契機決定部114は、まずステップ800において、バッファ管理部110よりCLOCKHAND位置情報116を取得する。
次に、開始契機決定部114は、ステップ801において、バッファ管理部110からCLOCKHAND移動情報119を取得する。CLOCKHAND移動情報119とは、単位時間あたりにCLOCKHANDがポイント(参照)したページセットの数である。即ち本プレライト処理が実行されている間のCLOCKHANDの移動速度をみるために、バッファ管理部110からCLOCKHAND移動情報119を取得することとなる。
次に、開始契機決定部114は、ステップ802において、今回の処理でプレライト実処理部113において最後に処理対象として設定されていたページセット109の位置からCLOCKHANDの進行方向とは逆に、規定値mだけ離れたページセット109を求める。
さらに、ステップ802では、ステップ800で取得したCLOCKHAND位置情報116と、ステップ801で取得したCLOCKHAND移動情報119から、CLOCKHAND位置情報116が、ステップ801で求めたページセット109の位置に到達するまでの時間を算出する。
最後に、ステップ803において、待機部115に対して、ステップ802で算出した時間を待機時間として設定する。
以上が、開始契機決定部114の処理内容である。
開始契機決定部114の処理が終了した後、待機部115において、開始契機決定部114で設定した待機時間に基づき待機処理を実行する。
そして、待機部115は、待機処理終了後、データベース管理システム120から、プレライト部100に対する停止要求がない場合は、再度、開始位置決定部111を起動し、プレライト部100に処理を開始させる。
次に、以上説明した第一実施形態におけるプレライト処理に関し、図9(a)から(c)を用いて、その処理動作を種々の条件に合わせて模式的に説明する。
以下の説明において、規定値mは「2」、規定値n+mは「5」、既定のプレライト実処理の処理対象数は「3」、規定値Lは「1」、f(z)=[|z|/3]とする。また、本例で扱う置換実行回数表125は、図5の置換実行回数表125とする。また、開始位置決定部111、対象数決定部112、プレライト実処理部113、開始契機決定部114及び待機部115の順に実行される一連の処理を1つの処理のまとまりとして説明するものとする。
まず、図9(a)は、プレライト部100において、開始位置決定部111が起動され、待機部115が待機処理に入るまでの状態遷移を模式的に示す。まずバッファ管理部110から、CLOCKHAND位置情報116aを取得する。図9(a)では、この時点でCLOCKHAND位置情報116aはページセット900である。
次に、前回のプレライト実処理が終了したページセットをページセット901とする。このとき、ページセット900とページセット901との差は3であり、この値は規定値m「2」以上且つ規定値n+m「5」未満であるため、今回のプレライト実処理の処理開始位置となるページセットをページセット902に設定する。
次に、対象数決定部112において、今回のプレライト実処理の処理対象数を決定する。まず置換実行回数表125から、平均ページ置換発生回数501(本例では、図5の置換実行回数表125より、平均ページ置換発生回数x=2.5)を取得する。
次に、前回のプレライト実処理が開始した時点から今回の処理開始位置決定処理が開始するまでの平均置換処理発生回数yを算出する。仮に算出した結果が2(y=2)であるとすると、両平均置換処理発生回数の差(x−y)は0.5であるため、本例では、規定値Lに対し、―L=−1≦0.5≦1=Lとなり、直後のプレライト実処理の処理対象数は、既定のプレライト実処理の処理対象数(即ち「3」)となる。
次に、プレライト実処理部113において処理が実行される。このとき処理対象となるページセットはページセット903、904及び905であり、ページセット904とページセット905に対応するダーティフラグ107をリセットした後、ページセットページ904とページセットページ905に対応するページ105のデータを2次記憶装置104に書き出す。
最後に、開始契機決定部114において、次回、開始位置決定部111を起動するまでの待機時間を決定する。本処理を開始するにあたり、バッファ管理部110からCLOCKHAND位置情報116bを取得する。
図9(a)では、本処理を開始した時のCLOCKHAND位置情報116bが指し示す位置のページセットをページセット901であるものとする。
次に、直前のプレライト実処理の最後の処理対象となるページセット905と規定値mからページセット906を求め、これに加え、前記CLOCKHAND位置情報116bが指し示すページセット901と、バッファ管理部110より取得したCLOCKHAND移動情報119を基に、CLOCKHAND位置情報116が指し示すページセット906に到達するまでの待機時間を算出する。その後、算出した待機時間に基づき、再度開始位置決定部111を起動するまで、待機部115において待機処理を実行する。
例えば、CLOCKHAND移動情報119が、2ページセット/秒であった場合、CLOCKHAND位置情報116bが指し示すページセット901と、ページセット906との差が7であることから、算出した待機時間は3.5秒となる。
次に、待機処理終了後、再度開始位置決定部111が起動される。図9(b)において、起動時のCLOCKHAND位置情報116はページセット907の位置であり、また、直前のプレライト実処理が終了したページセットは、ページセット905bであるため、ページセット907とページセット905bとの差分は6となる。この値は、規定値n+m「5」以上であるため、今回のプレライト実処理の処理開始位置となるページセットには、ページセット907から、CLOCKHANDの進行方向に規定値m「2」だけ進めたページセット908を設定する。
次に、対象数決定部112において、直後のプレライト実処理部113の処理対象数を決定する。まず置換実行回数表125から平均ページ置換発生回数501を取得する。平均ページ置換発生回数501は、図9(a)のときから変化はない(平均ページ置換発生回数x=2.5)ものとする。
次に、前回のプレライト実処理が開始した時点から、今回の処理開始位置決定処理が開始するまでの平均置換処理発生回数を算出する。
本例において、前回のプレライト実処理が開始した時点から、今回の処理開始位置決定処理が開始するまでにバッファ管理部110において、発生したページの置換処理の回数は、1回(ページセット901において実行)であるため、算出した平均置換処理発生回数と平均ページ置換発生回数501の差分z=1.5はL=1<1.5=zとなり、規定値Lを上回る。
従ってf(z)に基づき、直後のプレライト実処理の処理対象数を算出する。このとき、差分z=1.5であるため、処理対象数は、既定のプレライト実処理の処理対象数=「3」となる。
次に、プレライト実処理部113において処理が実行される。このとき処理対象となるページセットは、ページセット904b、905b及び909であり、プレライト実処理部113は、ページセット905bとページセット909に対応するダーティフラグ107をリセットした後、ページセットページ905bとページセットページ909に対応するページ105のデータを2次記憶装置104に書き出す。
最後に、開始契機決定部114において、本処理開始時にCLOCKHAND116dがポイントするページセット905bと、今回のプレライト実処理の最後の処理対象であったページセット909とCLOCKHAND移動情報119を基に、次回、開始位置決定部111を起動するまでの待機時間を決定し、その後、待機部115において待機処理を実行する。
なお、ページセット905に対応するページ105は、図9(a)における待機処理開始時から図9(b)の開始位置決定処理部111起動までに、端末装置126からの要求に伴い更新されており、ダーティフラグ107がセットされていたページセットをページセット905bとする。以上のような場合にも、本プレライト処理を実行することで、バッファ管理部110における2次記憶装置104への書出し処理の発生が抑制されている。
次に、前記待機処理終了後、再度開始位置決定部111が起動される。
図9(c)において、起動時のCLOCKHAND位置情報116がポイントするページセットはページセット910であり、また、直前のプレライト実処理が終了したページセットはページセット909cであるため、ページセット910とページセット909cとの差分は、−1となる。この値は、規定値m未満であるため、直後のプレライト実処理の処理開始位置となるページセットには、ページセット910から、CLOCKHANDの進行方向に規定値m(m=2)だけ進めたページセット911を設定する。
次に、対象数決定部112において、直後のプレライト実処理の処理対象数を決定する。まず、置換実行回数表125から平均ページ置換発生回数501を取得する。平均ページ置換発生回数501は、図9(a)のときより変化はない(平均ページ置換発生回数x=2.5)ものとする。
次に、対象数決定部112は、直前のプレライト実処理が開始した時点から直前の処理開始位置決定処理が開始するまでの平均置換処理発生回数を算出する。
本例において、直前のプレライト実処理が開始した時点から直前の処理開始位置決定処理が開始するまでに、バッファ管理部110において、発生したページの置換処理の回数は、5回(ページセット903、904、905、909、910において実行)であり、この結果算出される両平均置換処理発生回数の差分zが−7<z<−6であったとする。この値は、規定値−Lを下回るため、f(z)に基づき、直後のプレライト実処理の処理対象数を算出する。このとき、算出した処理対象数は、既定のプレライト実処理の処理対象数にf(z)の算出結果2が加算され、5となる。
次に、プレライト実処理部113において処理が実行される。このとき処理対象となるページセットは、ページセット911、912、913、914、915であり、ページセット912とページセット915に対応するダーティフラグ107をリセットした後、ページセットページ912とページセットページ915に対応するページ105のデータを2次記憶装置104に書き出す。
最後に、開始契機決定部114において、本処理開始時にCLOCKHAND116がポイントするページセット913と、直前のプレライト実処理の最後の処理対象であったページセット915と、CLOCKHAND移動情報119から、直後の開始位置決定部111を起動するまでの待機時間を決定し、その後、待機部115において待機処理を実行する。
以上説明したように、バッファ管理部110におけるページ105の置換処理の発生回数の増減に伴い、プレライト実処理の処理開始位置、処理対象数、及びプレライト処理間の待機時間を適切に決めることで、プレライト処理において、処理対象となるページセット109が常にCLOCKHAND位置情報116から見てCLOCKHANDの進行方向前方に位置する。
また、処理開始契機決定処理終了後、直前のプレライト実処理において書き出しの実行されたページ105のデータが、端末装置(ユーザ)126からの要求により更新され、バッファ管理において、ページ105の置換処理が実行されるときに、ページ105のデータの書出し処理が実行されるような事態が抑制される。
これにより、バッファ管理の処理レスポンスを一定に保つことが可能となる。
また、プレライト処理が組み込まれるデータベース管理システム全体で発生する2次記憶装置104への書出し処理の実行回数を減少させることで、計算機システムのスループットを向上させることが可能となる。
[第二の実施形態]
次に、本発明を適用した計算機システムの第二の実施形態について、図10を用いて説明する。以下、主に、第一の実施形態との相違点について説明し、第一の実施形態との共通点については、説明を省略或いは簡略する。
図10は、本発明の第二の実施形態に関わる全体構成図である。
第二の実施形態で示すデータベース管理システム120は、基本的には第一の実施形態(図1)と同様の構成をとるが、データ処理部129内のバッファ管理部110aとプレライト部100aの構成が異なる。
以下、第二の実施形態におけるデータベース管理システム120について説明する。
第二の実施形態では、バッファ管理部110aは、GCLOCKページ置換部122a、置換実行回数取得部124、プレライト起動部1000から構成される。
バッファ管理部110aは、データベース演算部128から要求されたデータが、バッファプール106に読み込まれていなかった場合、GCLOCKページ置換部122aにおいて、ページ105の置換処理を実行し、このページ105の置換処理を実行する中で、プレライト起動部1000を介しプレライト部100aを起動する。
以下、第二の実施形態における、GCLOCKページ置換部122aの処理内容、並びにプレライト部113の起動条件について図12のフローチャートを用いて説明する。
GCLOCKページ置換部122aは、バッファ管理部110aによって起動される。GCLOCKページ置換部122aは、まずステップ1200において、GCLOCKページ置換アルゴリズムに基づき、バッファプール106上に存在するページセット109の中から置換対象となるページセット109を選定する。
次に、ステップ1204において、前回プレライト部100aが起動されてから、GCLOCKページ置換部122aの起動回数を取得し、起動回数をインクリメントする。この起動回数は、バッファ管理部110aによって管理されるものであり、バッファ管理部110aの起動時に0で初期化されるものとする。
次に、GCLOCKページ置換部122aは、ステップ1205で、プレライト部100aから前回のプレライト実処理の処理対象数を取得する。
次に、GCLOCKページ置換部122aは、ステップ1204で取得したGCLOCKページ置換部122aの起動回数と、ステップ1205で取得した処理対象数とを比較する。
比較の結果、GCLOCKページ置換部122aの起動回数が、前回のプレライト実処理の処理対象数以上であった場合(ステップ1206:YES)、ステップ1207において、プレライト起動部1000を介してプレライト部100aを起動する。
次に、GCLOCKページ置換部122aは、ステップ1201において、ステップ1200で選定したページセット109のダーティフラグ107がセットされているかどうかを判定する。
ステップ1201で、ダーティフラグ107がセットされていると判定した場合(ステップ1201:YES)、ステップ1203において、そのページセット109に対応するページ105のデータを2次記憶装置104に対して書き出し、本処理を終了する。
以上が、GCLOCKページ置換部122aの処理内容並びにプレライト部113が起動される条件である。
プレライト起動部1000は、プレライト部100aを起動後、バッファ管理部110aが管理するGCLOCKページ置換部122aの起動回数を0で初期化する。
次に、プレライト部100aは、開始位置決定部111、対象数決定部112、プレライト実処理部113aから構成されており、バッファ管理部110aにおけるプレライト起動部1000からの起動要求によって起動される。
プレライト部100aは、まず、開始位置決定部111においてプレライト実処理を開始するページセット109を決定し、次に、対象数決定部112において、プレライト実処理の処理対象となるページセット109の数を決定する。
最後に、プレライト実処理部113aにおいて、プレライト実処理を実行し、プレライト処理を終了する。プレライト実処理部113aの詳細については後記する。
以下、第二の実施形態におけるプレライト実処理部113aの処理内容について図11のフローチャートを用いて説明する。
図11に示す処理内容のうち、ステップ700、701、703、704、705及び707の処理内容については第一の実施形態と同様である。
プレライト実処理部113aは、まずステップ700、701の処理を実行し、次に、ステップ1100において、ステップ703からステップ1101までの処理を、プレライト実処理部113aが管理する処理済ページカウンタのカウント値が、対象数決定部112で設定した処理対象数以上になるまで繰り返す。
この繰り返し処理では、プレライト実処理部113aは、まずステップ703で、処理対象としてページセット109が、バッファ管理部110aにおいて置換対象となるか否かを判定し、置換対象となる場合は(ステップ703:YES)、ステップ704において、処理済ページカウンタのカウント値をカウントアップする。逆に、置換対象とならない場合(ステップ703:NO)、ステップ707の処理に進む。
次に、プレライト実処理部113aは、ステップ705で、ページセット109に対応するダーティフラグ107がセットされているかどうかを判定し、ダーティフラグ107がセットされていた場合(ステップ705:YES)、ステップ709aで、ページセット109に対応するページ105のデータを2次記憶装置104に対して書き出す。逆に、ダーティフラグがセットされていない場合(ステップ705:NO)、ステップ707の処理に進む。
次に、ステップ710aで、ページセット109に対応するダーティフラグ107をリセットし、最後に、ステップ706で、処理対象として設定されているページセット109から見て、CLOCKHANDの進行方向に対し一つ先に位置するページセット109を新たな処理対象として設定する。
以上がプレライト実処理部113aの処理内容である。
以上説明したように、第二の実施形態によれば、プレライト処理の起動をバッファ管理部110aが制御することができる。
具体的には、バッファ管理部110aにおけるページの置換処理において、直前のプレライト処理で処理されたページセット109の数と同数のページセット109が置換対象として選択されたときに、プレライト処理を起動する。
これにより、バッファ管理部110において、短期に大量のページ105の置換処理が発生するなどし、CLOCKHANDが、直前のプレライト処理で最後に処理されたページセット109を通過し、バッファ管理においてページ105の書出し処理が発生した場合にも、直後プレライト処理を開始することによって、バッファ管理におけるページ書出し処理の発生を第一の実施形態以上に抑制することが可能となる。
第二の実施形態では、プレライト部100aの起動をバッファ管理部110aのみが制御しているが、第一の実施形態のように、基本的にプレライト部100が次のプレライト部100の起動を管理するようなプレライト処理において、CLOCKHANDが直前のプレライト処理で最後に処理されたページセット109を通過したときに限り、バッファ管理部110がプレライト部100を起動させても良い。
[第三の実施形態]
第三の実施形態は、第一及び第二の実施形態のいずれにも組み合わせることができる。
第三の実施形態で示すデータベース管理システム120は、第一の実施形態(図1)もしくは第二の実施形態(図10)と同様の構成をとる。第一の実施形態及び第二の実施形態とはプレライト実処理部113b(図示せず)の処理が異なる。
以下、主に、第一の実施形態及び第二の実施形態との相違点について説明し、第一の実施形態及び第二の実施形態との共通点については説明を省略或いは簡略する。
図13は、第三の実施形態におけるプレライト実処理部113bの処理内容を示した図であり、第二の実施形態におけるプレライト実処理部113aの処理の一部を変更した図である。特に、ステップ1300〜1304の処理が、第二の実施形態と異なる。
以下、本実施形態におけるプレライト実処理部113bの処理内容について図13のフローチャートを用いて説明する。
プレライト実処理部113bは、ステップ1100以降の繰り返し処理において、まず、ステップ1300において、バッファ管理部110aからCLOCKHAND位置情報116を取得する。
次に、プレライト実処理部113bは、ステップ1301において、本繰り返し処理において、正に処理対象としているページセット109と、CLOCKHAND位置情報116との差分を算出し、算出した差分が、規定値m未満であるか否かを判定する。即ち、処理対象としているページセット109が、CLOCKHANDに追い越されたか否かあるいは近々追い越される可能性があるか否かを判定する。
算出した差分が、規定値m未満であった場合、処理対象としているページセット109が、CLOCKHANDに追い越された(あるいは近々追い越される可能性がある)として、プレライト実処理部113bは、ステップ1302において、開始位置決定部111を起動し、本プレライト実処理部113bにおける処理開始位置の再設定を実行する。
次に、ステップ1303において、対象数決定部112を起動し、本プレライト部における処理対象数の再設定を実行する。
最後に、ステップ1304において、プレライト実処理部113bを起動し、本プレライト実処理部113bの処理を終了する。
一方、算出した差分が、規定値m以上で、処理対象としているページセット109が、CLOCKHANDに追い越されていない(あるいは近々追い越される可能性がない)場合、プレライト実処理部113bは、ステップ703に移行する。なお、ステップ1300、1301、1302、1303、1304以外の処理は、プレライト実処理部113aの処理と同様である。
図14は、第一の実施形態におけるプレライト実処理部113の処理の一部を変更したプレライト実処理部113c(図示せず)の処理内容を示した図である。
以下、第三の実施形態におけるプレライト実処理部113cの処理内容について図14のフローチャートを用いて説明する。
プレライト実処理部113cは、ステップ709において、ステップ710からステップ713までの処理を、書出しリストに登録されているページセット109がなくなるまで繰り返す。
プレライト実処理部113cは、繰り返し処理では、まずステップ710で前記書出しリストの先頭から、ページセット109を一つ取り出した後、ステップ1400において、バッファ管理部110からCLOCKHAND位置情報116を取得する。
次に、プレライト実処理部113cは、ステップ1401において、取り出したページセット109と、CLOCKHAND位置情報116との差分を算出し、算出した差分が、規定値m未満であるか否かを判定する。即ち取り出したページセット109が、CLOCKHANDに追い越されたか否か(あるいは近々追い越される可能性があるか否か)を判定する。
差分が、規定値m未満であった場合(ステップ1401:YES)、プレライト実処理部113cは、ステップ1402において、開始位置決定部111を起動し、プレライト実処理部113cにおける処理開始位置の再設定を実行する。
次に、プレライト実処理部113cは、ステップ1403において、対象数決定部112を起動し、プレライト実処理部113cにおける処理対象数の再設定を実行する。
最後に、ステップ1404において、プレライト実処理部113cを起動し、本プレライト実処理部113cの処理を終了する。
ステップ1400、1401、1402、1403、1404以外の処理は、プレライト実処理部113の処理と同様である。
以上説明したように、本実施形態によれば、プレライト実処理において書出し処理を実行する直前に、CLOCKHAND位置情報116を取得し、CLOCKHAND位置情報116と書出し処理を実行するページセット109の位置との差分を算出し、算出した差分が、規定値m未満であった(プレライト処理の処理対象としているページ105にページ置換処理の置換対象となるページ105が追いついた)場合、処理開始位置の決定処理、処理対象数の決定処理、プレライト実処理を再度実行することで、バッファ管理におけるページ書出し処理の発生を、第一の実施形態、もしくは第二の実施形態以上に抑制することが可能となる。
また、バッファ管理部110とプレライト部100において、書き出しの対象とするページセット109が競合することがなくなる。
以上、本発明の実施形態として、第1〜第3実施形態を説明したが、これら実施形態は本発明の説明のための一例であり、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。
例えば、前記実施形態では、データベース管理システム120を例としたが、バッファ管理を必要とするシステムであれば、本発明を適用可能である。
また、例えば、前記実施形態では、データのリソース割り当てを決定するアルゴリズムにGCLOCKを適用した例を示したが、前記アルゴリズムは、GCLOCKをはじめ、ページセット109の循環リスト130を順に辿りながら置換対象となるページ105を探索するようなアルゴリズムでも良い。
前記アルゴリズムを適用したバッファ管理が組み込まれたシステムにおいて、バッファ管理処理のレスポンスを一定に保つことが可能である。また、前記システムのスループットを向上させることが可能である。
100、100a…プレライト部
101…データ管理サーバ
102…CPU
104…2次記憶装置
105、1501、1502、1503、1504…ページ
106…バッファプール
107…ダーティフラグ
108…バス
109、302、303、304、305、306、307、308、900、901、
902、903、904、905、904b、905b、906、907、908、90
9、909c、910、911、912、913、914、915…ページセット
110、110a…バッファ管理部
111…開始位置決定部
112…対象数決定部
113、113a、113b、113c…プレライト実処理部
114…開始契機決定部
115…待機部
116…CLOCKHAND位置情報
119…CLOCKHAND移動情報
120…データベース管理システム
121…リファレンスカウンタ
122、122a…GCLOCKページ置換部
123…ネットワークインタフェース
124…置換実行回数取得部
125…置換実行回数表
126…端末
127…SQL解析部
128…データベース演算部
129…データ処理部
130…ページセット循環リスト
500…ページ置換発生回数
501…ページ置換発生回数平均値
502…ページ置換発生回数対応項番
1000…プレライト起動部
1500…CLOCKHAND

Claims (20)

  1. データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データを格納する2次記憶装置と、前記入出力バッファに一時的に格納するデータ及び前記2次記憶装置に格納するデータの置換処理を管理するバッファ管理部と、前記入出力バッファに格納されたデータがバッファ管理部において書き出される前に、事前書出しを行うプレライト処理を管理するプレライト管理部と、を有する計算機のデータ処理方法であって、
    前記バッファ管理部が、前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定するステップと、
    前記バッファ管理部が、所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測するステップと、
    前記バッファ管理部が、所定時間あたりに前記複数の入出力バッファに格納されたデータを順番に参照する参照速度を算出するステップと、
    前記プレライト管理部が、プレライト処理の実行契機を検出し、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定するステップと、
    前記プレライト管理部が、前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出すステップと、
    前記プレライト管理部が、前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定するステップと、
    を含むことを特徴とするデータ処理方法。
  2. 請求項1に記載のデータ処理方法であって、
    前記プレライト管理部が今回のプレライト処理を行う対象となる入出力バッファを選定するステップは、前記現在バッファ管理部で参照されている入出力バッファの位置情報と前記前回プレライト処理が行われた入出力バッファの位置情報との差が一定値以上であり、且つ当該参照されている入出力バッファの位置情報と前記前回プレライト処理が行われた入出力バッファの位置情報との差が規定値未満の場合、前記前回プレライト処理された入出力バッファの次の入出力バッファを前記今回のプレライト処理を行う入出力バッファとして選定することを特徴とするデータ処理方法。
  3. 請求項1又は2に記載のデータ処理方法であって、
    前記バッファ管理部が、前記置換対象の入出力バッファを選定するステップにおいて、参照回数が一定値以下の入出力バッファを置換対象として選定するステップを更に含むことを特徴とするデータ処理方法。
  4. 請求項1〜3のいずれか一項に記載のデータ処理方法であって、
    前記バッファ管理部が、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報とを取得するステップを含み、
    前記プレライト管理部が今回のプレライト処理を行う候補となる入出力バッファを選定するステップは、
    前記前回プレライト処理を行った入出力バッファの位置情報と、前記現在バッファ管理部で参照されている入出力バッファの位置情報との差分を算出し、該差分に応じて、今回のプレライト処理の開始位置となる入出力バッファを設定するステップを含むことを特徴とするデータ処理方法。
  5. 請求項1〜4の何れか一項に記載のデータ処理方法であって、
    前記バッファ管理部が、前回のプレライト処理開始時点よりも過去から、今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を計数するとともに、前回のプレライト処理開始時点から今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を計数するステップを更に含み、
    前記プレライト管理部が今回のプレライト処理を行う候補となる入出力バッファを選定するステップは、
    前記プレライト管理部が、
    前記両計数値の差を基に今回のプレライト処理において処理の対象となる入出力バッファの処理数を設定するステップを含むことを特徴とするデータ処理方法。
  6. 請求項1〜5の何れか一項に記載のデータ処理方法であって、
    前記プレライト管理部が、前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定するステップは、
    前記プレライト管理部が今回のプレライト処理を行う対象となる入出力バッファを選定するステップで選定された入出力バッファのうち最後にプレライト処理の対象とされた入出力バッファの位置から所定数分減じた位置にある入出力バッファに対し、前記バッファ管理部が参照するまでの時間を前記参照速度に基づいて算出し、該算出結果を前記次回のプレライト処理の実行契機とすることを特徴とするデータ処理方法。
  7. データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データをバックアップするために格納する2次記憶装置と、前記主記憶装置と前記2次記憶装置とを制御するコントローラと、を備えるデータ処理装置であって、
    前記コントローラは、
    前記入出力バッファ及び前記2次記憶装置間のデータの置換処理を管理するバッファ管理部と、
    前記入出力バッファに格納されたデータがバッファ管理部によって書き出される前に、事前書出しを行うプレライト処理を管理するプレライト管理部と、を有し、
    前記バッファ管理部は、
    前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定し、
    所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測し、
    所定時間あたりに前記複数の入出力バッファに格納されたデータを順番に参照する参照速度を算出し、
    前記プレライト管理部は、
    プレライト処理の実行契機を検出し、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定し、
    前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出し、
    前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定することを特徴とするデータ処理装置。
  8. 請求項7に記載のデータ処理装置であって、
    前記プレライト管理部が今回のプレライト処理を行う対象となる入出力バッファを選定する際、前記現在バッファ管理部で参照されている入出力バッファの位置情報と前記前回プレライト処理が行われた入出力バッファの位置情報との差が一定値以上であり、且つ当該参照されている入出力バッファの位置情報と前記前回プレライト処理が行われた入出力バッファの位置情報との差が規定値未満の場合、前記前回プレライト処理された入出力バッファの次の入出力バッファを前記今回のプレライト処理を行う入出力バッファとして選定することを特徴とするデータ処理装置。
  9. 請求項7又は8に記載のデータ処理装置であって、
    前記バッファ管理部が、前記置換対象の入出力バッファを選定する際、
    参照回数が一定値以下の入出力バッファを置換対象として選定することを特徴とするデータ処理装置。
  10. 請求項7〜9のいずれか一項に記載のデータ処理装置であって、
    前記バッファ管理部が、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報とを更に取得し、
    前記プレライト管理部が、今回のプレライト処理を行う候補となる入出力バッファを選定する際
    前記前回プレライト処理を行った入出力バッファの位置情報と、前記現在バッファ管理部で参照されている入出力バッファの位置情報との差分を算出し、該差分に応じて、今回のプレライト処理の開始位置となる入出力バッファを設定することを特徴とするデータ処理装置。
  11. 請求項7〜10の何れか一項に記載のデータ処理装置であって、
    前記バッファ管理部が、前回のプレライト処理開始時点よりも過去から、今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を計数するとともに、前回のプレライト処理開始時点から今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を更に計数し、
    前記プレライト管理部が、今回のプレライト処理を行う候補となる入出力バッファを選定する際、
    前記プレライト管理部が、
    前記両計数値の差を基に今回のプレライト処理において処理の対象となる入出力バッファの処理数を設定することを特徴とするデータ処理装置。
  12. 請求項7〜11の何れか一項に記載のデータ処理装置であって、
    前記プレライト管理部が、前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定する際、
    今回のプレライト処理を行う対象となる入出力バッファとして選定した入出力バッファのうち、最後にプレライト処理の対象とされた入出力バッファの位置から所定数分減じた位置にある入出力バッファに対し、前記バッファ管理部が参照するまでの時間を前記参照速度に基づいて算出し、該算出結果を前記次回のプレライト処理の実行契機とすることを特徴とするデータ処理装置。
  13. データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データを格納する2次記憶装置と、前記入出力バッファに一時的に格納するデータ並びに前記2次記憶装置に格納するデータの置換処理の管理及び、前記入出力バッファに格納されたデータを、前記置換処理によって前記2次記憶装置に書き出す前に、事前書出しを行うプレライト処理の管理を行う制御部と、を有する計算機に、
    前記入出力バッファを固定の循環リストとして捉え、前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定する機能と、
    所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測する機能と、
    所定時間あたりに前記複数の入出力バッファに格納されたデータを順番に参照する参照速度を算出する機能と、
    プレライト処理の実行契機を検出し、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定する機能と、
    前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出す機能と、
    前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定する機能と、
    を実現させることを特徴とするデータ処理プログラム。
  14. 請求項13に記載のデータ処理プログラムであって、
    今回のプレライト処理を行う対象となる入出力バッファを選定する際、前記現在バッファ管理部で参照されている入出力バッファの位置情報と前記前回プレライト処理が行われた入出力バッファの位置情報との差が一定値以上であり、且つ当該参照されている入出力バッファの位置情報と前記前回プレライト処理が行われた入出力バッファの位置情報との差が規定値未満の場合、前記前回プレライト処理された入出力バッファの次の入出力バッファを前記今回のプレライト処理を行う入出力バッファとして選定する機能を実現させることを特徴とするデータ処理プログラム。

  15. 請求項13又は14に記載のデータ処理プログラムであって、
    前記置換対象の入出力バッファを選定する際、
    参照回数が一定値以下の入出力バッファを置換対象として選定する機能を実現させることを特徴とするデータ処理プログラム。
  16. 請求項13〜15のいずれか一項に記載のデータ処理プログラムであって、
    前回プレライト処理を行った入出力バッファの位置情報と、現在参照されている入出力バッファの位置情報とを更に取得する機能と、
    今回のプレライト処理を行う候補となる入出力バッファを選定する際
    前記前回プレライト処理を行った入出力バッファの位置情報と、前記現在参照されている入出力バッファの位置情報との差分を算出し、該差分に応じて、今回のプレライト処理の開始位置となる入出力バッファを設定する機能を更に実現することを特徴とするデータ処理プログラム。
  17. 請求項13〜16の何れか一項に記載のデータ処理プログラムであって、
    前回のプレライト処理開始時点よりも過去から、今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を計数するとともに、前回のプレライト処理開始時点から今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を更に計数する機能と、
    今回のプレライト処理を行う候補となる入出力バッファを選定する際、
    前記両計数値の差を基に今回のプレライト処理において処理の対象となる入出力バッファの処理数を設定する機能とを実現することを特徴とするデータ処理プログラム。
  18. 請求項13〜17の何れか一項に記載のデータ処理プログラムであって、
    前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定する際、
    今回のプレライト処理を行う対象となる入出力バッファとして選定した入出力バッファのうち、最後にプレライト処理の対象とされた入出力バッファの位置から所定数分減じた位置にある入出力バッファに対し、前記バッファ管理部が参照するまでの時間を前記参照速度に基づいて算出し、該算出結果を前記次回のプレライト処理の実行契機とする機能を実現することを特徴とするデータ処理プログラム。
  19. データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データを格納する2次記憶装置と、前記入出力バッファに一時的に格納するデータ及び前記2次記憶装置に格納するデータの置換処理を管理するバッファ管理部と、前記入出力バッファに格納されたデータがバッファ管理部において書き出される前に、事前書出しを行うプレライト処理を管理するプレライト管理部と、を有する計算機のデータ処理方法であって、
    前記バッファ管理部が、前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定するステップと、
    前記バッファ管理部が、所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測するステップと、
    前記バッファ管理部が、前記置換実行回数が前回プレライト処理の対象となった入出力バッファ数以上である場合に、プレライト処理を起動するステップと、
    前記プレライト管理部が、前記バッファ管理部によるプレライト処理の起動を条件に、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定するステップと、
    前記プレライト管理部が、前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出すステップと、
    を含むことを特徴とするデータ処理方法。
  20. データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データを格納する2次記憶装置と、前記入出力バッファに一時的に格納するデータ及び前記2次記憶装置に格納するデータの置換処理を管理するバッファ管理部と、前記入出力バッファに格納されたデータがバッファ管理部において書き出される前に、事前書出しを行うプレライト処理を管理するプレライト管理部と、を有する計算機のデータ処理方法であって、
    前記バッファ管理部が、前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定するステップと、
    前記バッファ管理部が、所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測するステップと、
    前記バッファ管理部が、所定時間あたりに前記複数の入出力バッファに格納されたデータを順番に参照する参照速度を算出するステップと、
    前記プレライト管理部が、プレライト処理の実行契機を検出し、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定するステップと、
    前記プレライト管理部が、現在バッファ管理部で参照されている入出力バッファの位置情報と前記プレライト処理を行う候補となる入出力バッファの位置情報との差分が規定値未満である場合、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを再度選定するステップと、
    前記プレライト管理部が、現在バッファ管理部で参照されている入出力バッファの位置情報と前記プレライト処理を行う候補となる入出力バッファの位置情報との差分が規定値以上である場合であって、前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出すステップと、
    前記プレライト管理部が、前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定するステップと、
    を含むことを特徴とするデータ処理方法。

JP2012511518A 2010-04-22 2011-02-28 データ処理方法、データ処理装置及びデータ処理プログラム Expired - Fee Related JP5450803B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012511518A JP5450803B2 (ja) 2010-04-22 2011-02-28 データ処理方法、データ処理装置及びデータ処理プログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010098652 2010-04-22
JP2010098652 2010-04-22
JP2012511518A JP5450803B2 (ja) 2010-04-22 2011-02-28 データ処理方法、データ処理装置及びデータ処理プログラム
PCT/JP2011/001143 WO2011132357A1 (ja) 2010-04-22 2011-02-28 データ処理方法、データ処理装置及びデータ処理プログラム

Publications (2)

Publication Number Publication Date
JPWO2011132357A1 JPWO2011132357A1 (ja) 2013-07-18
JP5450803B2 true JP5450803B2 (ja) 2014-03-26

Family

ID=44833902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012511518A Expired - Fee Related JP5450803B2 (ja) 2010-04-22 2011-02-28 データ処理方法、データ処理装置及びデータ処理プログラム

Country Status (2)

Country Link
JP (1) JP5450803B2 (ja)
WO (1) WO2011132357A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328899A (ja) * 1995-06-05 1996-12-13 Hitachi Ltd マイクロコンピュータ及びエミュレータ
JPH09305449A (ja) * 1996-05-16 1997-11-28 Hitachi Ltd データベース管理システム
JP2003223350A (ja) * 2002-01-29 2003-08-08 Ricoh Co Ltd データベースシステム
JP2004295790A (ja) * 2003-03-28 2004-10-21 Hitachi Ltd 記憶装置のキャッシュ管理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6466756A (en) * 1987-09-07 1989-03-13 Nec Corp Roll-back buffer control system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328899A (ja) * 1995-06-05 1996-12-13 Hitachi Ltd マイクロコンピュータ及びエミュレータ
JPH09305449A (ja) * 1996-05-16 1997-11-28 Hitachi Ltd データベース管理システム
JP2003223350A (ja) * 2002-01-29 2003-08-08 Ricoh Co Ltd データベースシステム
JP2004295790A (ja) * 2003-03-28 2004-10-21 Hitachi Ltd 記憶装置のキャッシュ管理方法

Also Published As

Publication number Publication date
JPWO2011132357A1 (ja) 2013-07-18
WO2011132357A1 (ja) 2011-10-27

Similar Documents

Publication Publication Date Title
US10706009B2 (en) Techniques to parallelize CPU and IO work of log writes
US8689221B2 (en) Speculative thread execution and asynchronous conflict events
US20210026707A1 (en) Predictive analysis for migration schedulers
US20230091261A1 (en) Orchestration and scheduling of services
US20130232310A1 (en) Energy efficiency in a distributed storage system
US10157155B2 (en) Operating system-managed interrupt steering in multiprocessor systems
JP6188607B2 (ja) インデクスツリーの探索方法及び計算機
US20220414503A1 (en) Slo-aware artificial intelligence inference scheduler for heterogeneous processors in edge platforms
US8458710B2 (en) Scheduling jobs for execution on a computer system
CN111124254A (zh) 调度存储空间回收请求的方法、电子设备和程序产品
US10599472B2 (en) Information processing apparatus, stage-out processing method and recording medium recording job management program
US20170262310A1 (en) Method for executing and managing distributed processing, and control apparatus
CN102855299A (zh) 不中断服务条件下,分布式数据库迭代迁移的方法
US7908268B2 (en) Predictive database pool preparation
JP5450803B2 (ja) データ処理方法、データ処理装置及びデータ処理プログラム
Zhang et al. PAME: precision-aware multi-exit DNN serving for reducing latencies of batched inferences
CN109240941B (zh) 一种存储系统的垃圾回收方法及相关装置
US10372578B2 (en) Dynamically adjusting statistics collection time in a database management system
US10871945B2 (en) Resumable merge sort
CN103984525A (zh) 指令处理系统及方法
JP2020135189A (ja) データベース管理システム、及び、データベース管理方法
JP5147296B2 (ja) 計算機システム、データベース管理方法及びプログラム
CN113986962A (zh) 排行榜生成方法、装置、设备及存储介质
CN107577517B (zh) 一种面向NUMA内存架构的细粒度vCPU调度方法及系统
JP4768054B2 (ja) キャッシュ制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130702

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130829

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131225

R151 Written notification of patent or utility model registration

Ref document number: 5450803

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees