JP3324572B2 - 情報処理装置並びにコンピュータに実行させるためのプログラムを記録した記録媒体 - Google Patents

情報処理装置並びにコンピュータに実行させるためのプログラムを記録した記録媒体

Info

Publication number
JP3324572B2
JP3324572B2 JP19119299A JP19119299A JP3324572B2 JP 3324572 B2 JP3324572 B2 JP 3324572B2 JP 19119299 A JP19119299 A JP 19119299A JP 19119299 A JP19119299 A JP 19119299A JP 3324572 B2 JP3324572 B2 JP 3324572B2
Authority
JP
Japan
Prior art keywords
data
processing
processing request
read
reading
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
JP19119299A
Other languages
English (en)
Other versions
JP2000347982A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP19119299A priority Critical patent/JP3324572B2/ja
Priority to CA002281856A priority patent/CA2281856A1/en
Priority to US09/407,723 priority patent/US6457097B1/en
Publication of JP2000347982A publication Critical patent/JP2000347982A/ja
Priority to US10/196,184 priority patent/US6557088B2/en
Application granted granted Critical
Publication of JP3324572B2 publication Critical patent/JP3324572B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、大容量記憶装置
からのデータをデータバッファを介して読み込む情報処
理装置に関し、例えば、ディスク装置上のデータベース
への問合せを処理するデータベースシステムに関する。
【0002】
【従来の技術】ディスク装置上のデータベースファイル
に対する問合せを処理するデータベースシステムにおい
ては、セントラル・プロセッシング・ユニット(CPU)
の処理能力よりもディスク装置からのデータ転送待ち時
間によって性能が制限されてしまうため、メモリ上にフ
ァイルを構成するディスクブロックを保持するバッファ
を設け、ディスク装置との間で実際に行われる入出力回
数を減らす、また、必要となるディスクブロックを前も
ってメモリ上に読み込んでおく、などの種々の方法が工
夫されている。
【0003】図16は、例えば1996年11月ACM
Transactions onComputer S
ystems誌第14巻第4号の311ページから34
3ページに掲載の論文“Implementation
and performance of integ
rated application−control
led file caching,prefetch
ing,and disk scheduling”に
示されたファイルアクセス制御方式を示す図である。
【0004】図16において、4a、4bは問合せ処理
タスク、6はファイルが格納されるディスク装置、71
はディスク装置との物理的な入出力を行うディスク入出
力制御モジュール、91は問合せ処理タスクからの要求
に先立ってディスク装置からブロックを読み込む先読み
モジュール、92はディスク装置から読み込んだブロッ
クをメモリ上に保持するためのバッファモジュールを示
している。
【0005】図17は、図16の問合せ処理タスク4a
が問合せ処理を実行している時の時間シーケンスを示し
たタイミング図である。図17において、縦軸は時間を
表している。また、40a、60はそれぞれ問合せ処理
タスク4aのデータ処理シーケンス、ディスク装置6の
データ転送シーケンスを表す。B1、B2はディスクブ
ロックの番号、t21、t22、t23、t24は時刻
を示している。41aは問合せ処理タスク4aがメモリ
に読み込まれた1つのブロックを処理するのにかかる時
間を表し、61はディスク装置6が1つのブロックを転
送するのにかかる時間を表す。
【0006】時刻t21において問合せ処理タスク4a
が実行を開始し、先読みモジュール91に対してアクセ
スするディスクブロックの順序、B1、B2、‥を通知
し、最初のブロックB1が読み込まれるのを待つ。先読
みモジュール91は問合せ処理タスク4aから通知され
たブロック順序に従い、まずブロックB1の読み込みを
ディスク入出力制御モジュール71に指示し、ディスク
装置6はブロックB1の転送を開始する。時刻t22に
おいて、ディスク装置からのブロックB1の転送が完了
し、問合せ処理タスク4aが当該ブロックのデータを処
理するとともに、先読みモジュール91は次のブロック
B2の読み込みをディスク入出力制御モジュール71に
指示し、ディスク装置6はブロックB2の転送を開始す
る。
【0007】時刻t23において問合せ処理タスク4a
がブロックB1の処理を完了すると、次のブロックB2
が読み込まれるのを待つ。時刻t24において、ディス
ク装置からのブロックB2の転送が完了し、問合せ処理
タスク4aが当該ブロックのデータを処理するととも
に、先読みモジュール91は次のブロックの読み込みを
ディスク入出力制御モジュール71に指示する。以上の
処理が、ファイルの全てのブロックを処理し終えるまで
繰り返される。以上のように、問合せ処理タスク4aが
通知したブロックアクセス順序を用いることで、先読み
モジュール91は問合せ処理タスク4aからのブロック
アクセス要求を待つことなくブロックの読み込みを開始
することができるので、最初のブロックB1以外のブロ
ックについては、問合せ処理タスク4aの待ち時間をデ
ィスク装置6のブロック転送時間61より短くすること
ができる。
【0008】
【発明が解決しようとする課題】上記のような従来のフ
ァイルアクセス方式では、ディスク装置とバッファ間で
のディスクブロック転送順序を入れ換えることは可能だ
が、バッファとタスク間でのディスクブロック転送順序
は変更できないため、複数のタスクが同時に同じファイ
ルに対してシーケンシャルアクセスしている場合であっ
ても、同時にアクセスされるディスクブロックが同じと
は限らなかった。そのため、バッファ容量より大きなフ
ァイルに対しては、あるタスクがアクセスしたディスク
ブロックが別のタスクによってアクセスされるまでバッ
ファ上に残っている可能性が低く、バッファの効果が得
られないという問題点があった。
【0009】この発明は上記のような課題を解決するた
めになされたもので、複数の問合せ処理タスクが同時に
大容量データベースファイルにアクセスしている場合で
も、バッファを効率よく使用することができる情報処理
装置を得ることを目的とする。
【0010】
【課題を解決するための手段】この発明にかかる情報処
理装置においては、記憶装置から読み込んだ複数のデー
タを一時的に記憶するバッファ記憶手段と、前記記憶装
置上の複数のデータを要求する処理要求から、この処理
要求に要求されている複数のデータのうち前記バッファ
記憶手段に記憶されているデータと一致するデータを検
出し、一致したデータと前記処理要求に要求されている
残りのデータとの読み込み順位を、前記一致したデータ
が先、前記残りのデータが後とする順位決定手段と、こ
の順位決定手段が決定した読み込み順位に従って、前記
残りのデータを前記記憶装置から前記バッファ記憶手段
に読み込む前に、前記一致したデータを前記バッファ記
憶手段から読み出す読み取り手段と、を備えたものであ
る。
【0011】また、前記記憶装置は、ディスク装置であ
り、前記読み取り手段は、前記一致したデータを読み取
った後に、前記残りのデータを前記ディスク装置から前
記バッファ記憶手段に読み込み、前記読み取り手段によ
り前記バッファ記憶手段から読み取られた前記一致した
データを送信した後に、前記残りのデータを送信する送
信手段を備えたものである。
【0012】また、記憶領域が複数のブロックに区分さ
れたディスク装置と、前記ディスク装置から読み出した
複数のブロックを記憶するバッファ記憶手段と、前記デ
ィスク装置に記憶された複数のデータを要求する第1の
処理要求を受け付け、この第1の処理要求に基づいて、
この第1の処理要求に要求された複数のデータが格納さ
れた複数のブロックを検出し、これらの検出した複数の
ブロックのデータを前記バッファ記憶手段から読み取る
第1の処理手段と、前記ディスク装置に記憶された複数
のデータを要求する第2の処理要求を受け付け、この第
2の処理要求に基づいて、この第2の処理要求に要求さ
れた複数のデータが格納された複数のブロックを検出
し、これらの検出した複数のブロックのデータを前記バ
ッファ記憶手段から読み取る第2の処理手段と、前記バ
ッファ記憶手段に記憶された複数のブロックのうち、前
記第1の処理要求及び前記第2の処理要求に共通するブ
ロックを検出する検出手段と、前記検出手段によって検
出された前記共通するブロックに含まれるデータを前記
バッファ記憶手段から消去する場合には、前記第1の処
理手段及び第2の処理手段の両者により、消去しようと
するデータが読み出されるまで待機してから消去するバ
ッファ管理手段とを備えたものである。
【0013】また、前記バッファ管理手段は、前記第1
の処理要求が検出した複数のブロックのデータ及び外部
から受け取った読み取り要求に指定されたブロックのデ
ータを前記ディスク装置から読み取り、読み取ったデー
タを前記バッファ記憶手段へ記憶させる先読み手段を備
え、前記検出手段は、前記第2の処理手段が検出した複
数のブロックのうち、前記共通するブロックを指定せ
ず、前記第1の処理要求にかかるブロックと共通しない
ブロックを指定して前記読み取り要求として前記先読み
手段へ出力するものである。
【0014】また、前記バッファ記憶手段は、前記第1
の処理要求及び第2の処理要求に要求された複数のデー
タを先入れ先出し方式の共有されたキューで記憶し、前
記先読み手段は、前記ディスク装置から読み取った前記
共通のデータを前記キューに記憶し、前記第1の処理手
段は、前記キューの記憶領域内の1つの場所を示す第1
のポインタに基づいて前記第1の処理要求に要求された
データを読み取り、前記第2の処理手段は、前記キュー
の記憶領域内の1つの場所を示す第2のポインタに基づ
いて前記第1の処理要求に要求されたデータを読み取る
ものである。
【0015】また、複数の処理要求に共通する複数の共
通データを一時的に記憶するバッファ記憶手段と、記憶
装置から新たなデータを読み取る読み取り手段と、前記
バッファ記憶手段に記憶された前記複数の共通データの
うち、前記複数の処理要求のうち少なくとも1つの処理
要求に対して処理が終了していない未処理の共通データ
に前記新たなデータを上書きせず、前記複数の処理要求
に対して処理が終了した共通データに前記新たなデータ
を上書きするバッファ管理手段と、を備えたものであ
る。
【0016】また、前記バッファ管理手段は、前記バッ
ファ記憶手段に記憶された前記複数の共通データ全てが
未処理の共通データであり、かつ、空き記憶領域がない
場合には、前記バッファ記憶手段への書き込みを停止す
るものである。
【0017】また、データを要求する第1の処理要求及
びこの第1の処理要求よりも少ない量のデータを要求す
る第2の処理要求を受け付け、前記第1及び第2の処理
要求でそれぞれ要求されたデータのデータ量に基づい
て、前記第1及び第2の処理要求のうちデータ量が少な
い第2の処理要求の優先順位を高く設定し、この第2の
処理要求と比べてデータ量が多い第1の処理要求の優先
順位を前記第2の処理要求よりも低い優先順位と決定す
る優先順位決定手段と、前記優先順位に基づいて、優先
順位の高い処理要求のデータを優先的に記憶装置から読
み取る読み取り手段と、を備えたものである。
【0018】また、前記優先順位決定手段は、予め定め
られたデータ量及び前記第1の処理要求にかかるデータ
量に基づき、前記第1の処理要求の優先順位を決定し、
前記予め定められたデータ量及び前記第2の処理要求に
かかるデータ量に基づき、前記第2の処理要求の優先順
位を決定するものである。
【0019】また、前記優先順位決定手段は、前記読み
取り手段が前記第1の処理要求の読み取りを行っている
間に、前記第2の処理要求を後から受け付けた場合、前
記優先順位を決定し直し、前記読み取り手段は、前記優
先順位決定手段が決定し直した優先順位に基づき、前記
第1の処理要求に要求されたデータの読み取りを中断
し、前記第2の処理要求に要求されたデータを読み取る
とともに、前記第2の処理要求に要求されたデータの読
み取りが終了した後に、前記第1の処理要求の読み取り
を再開するものである。
【0020】また、前記第1の処理要求と前記第2の処
理要求は、それぞれ異なるファイルをアクセスする要求
であり、前記読み取り手段は、前記第1の処理要求にか
かるファイルと、前記第2の処理要求にかかるファイル
とを前記優先順位に基づいて読み取るものである。
【0021】また、この発明のコンピュータに実行させ
るためのプログラムを記録した記録媒体においては、記
憶装置上の複数のデータを要求する処理要求を受け付け
る受け付けステップと、前記記憶装置から読み込んだデ
ータを一時的に記憶するバッファ記憶手段に、前記処理
要求に要求されたデータと一致するデータが記憶されて
いるかを判別する判別ステップと、前記判別ステップに
よる判別結果に基づき、前記一致するデータを前記バッ
ファ記憶手段から読み取る第1のリードステップと、前
記第1のリードステップが終了した後に、前記処理要求
に要求された複数のデータのうちの読み取っていないデ
ータを前記記憶装置から前記バッファ記憶手段に読み込
む第2のリードステップと、前記第2のリードステップ
で読み込まれたデータを前記バッファ記憶手段から読み
取る第3のリードステップと、を備えたものである。
【0022】また、前記第1のリードステップと第2の
リードステップの間に処理が開始され、前記第1のリー
ドステップで読み取られたデータを前記処理要求を依頼
してきた要求元へ送信する第1の送信ステップと、前記
第3のリードステップで読み取られたデータを前記依頼
元へ送信する第2の送信ステップと、をさらに備えたも
のである。
【0023】また、複数の処理要求を受け付ける受け付
けステップと、前記複数の処理要求に共通する共通デー
タを記憶装置から読み取り、データを一時的に記憶する
バッファ記憶手段に記憶させる第1の記憶ステップと、
前記複数の処理要求のうちの1つの処理要求を処理する
第1のタスクが前記第1の記憶ステップで記憶させた共
通データを前記バッファ記憶手段から読み取る第4のリ
ードステップと、前記複数の処理要求のうちの1つの処
理要求を処理する第2のタスクが前記第1の記憶ステッ
プで記憶させた共通データを前記バッファ記憶手段から
読み取る第5のリードステップと、前記第1の記憶ステ
ップ終了後に実行され、前記第4及び第5のリードステ
ップが終了したか否かを検知し、終了している場合に、
前記記憶装置からデータを読み取り、前記バッファ記憶
手段の前記共通データが記憶されている領域に前記記憶
装置から読み取ったデータを上書きし、終了していない
場合に、上書きを一時停止する第6のリードステップ
と、を備えたものである。
【0024】また、前記受け付けステップは、前記複数
の処理要求のうちの1つの処理要求として、第1の処理
要求を受け付ける第1の受け付けステップと、この第1
の受け付けステップで受け付けた第1の処理要求にかか
るデータの読み取りを要求する第1の要求ステップと、
前記第1の受け付けステップより後に実行され、前記複
数の処理要求のうちの1つの処理要求として、第2の処
理要求を受け付ける第2の受け付けステップと、前記第
2の受け付けステップで受け付けた第2の処理要求にか
かる複数のデータのうち、前記第1の処理要求にかかる
データと一致しないデータの読み取りを要求する第2の
要求ステップと、を備え、前記第6のリードステップ
は、前記第1及び第2の要求ステップで要求されたデー
タを前記記憶装置から前記バッファへ読み取るものであ
る。
【0025】また、データを要求する第1の処理要求を
受け付ける第1の受け付けステップと、前記第1の処理
要求にかかるデータをディスク装置からバッファ記憶手
段へ読み取る第7のリードステップと、前記第7のリー
ドステップの実行中に、データを要求する第2の処理要
求を受け付ける第2の受け付けステップと、前記第2の
受け付けステップの後に実行され、前記第1の処理要求
にかかるデータ量と前記第2の処理要求にかかるデータ
量の大きさを比較する比較ステップと、前記比較ステッ
プの比較結果に基づき、前記第2の処理要求にかかるデ
ータ量が前記第1の処理要求にかかるデータ量よりも小
さい場合に、前記第7のリードステップを中断し、前記
第2の処理要求にかかるデータを前記ディスク装置から
読み取って、前記第2の処理要求の要求元へ送信する第
8のリードステップと、前記第8のリードステップが終
了した後に実行され、中断していた前記第7のリードス
テップの実行を再開する第9のリードステップと、を備
えたものである。
【0026】また、前記第2の処理要求は、複数のファ
イルへのアクセスを要求する処理要求であり、前記比較
ステップは、前記第1の処理要求にかかるファイル及び
前記第2の処理要求にかかる複数のファイルをファイル
サイズの小さい順にアクセス順序を並び替え、前記第8
のリードステップは、前記アクセス順序に従って、前記
第2の処理要求にかかる複数のファイルを順番に前記デ
ィスク装置から前記バッファ記憶手段に読み取るととも
に、読み取ったファイルのデータを前記要求元へ送信
し、前記第9のリードステップは、前記第8のリードス
テップが終了する前であっても、前記第8のリードステ
ップが前記第1の処理要求と共通するファイルへのアク
セスを行う場合には、前記バッファ記憶手段から前記共
通するファイルのデータを読み取るものである。
【0027】また、前記第8のリードステップは、前記
共通するファイルの複数のブロックのうち、前記第1の
処理要求を処理するタスクが未処理のブロックを前記デ
ィスク装置から前記バッファ記憶手段へ優先的に読み取
り、その後に、前記第2の処理要求に対して未処理とな
っているブロックを前記ディスク装置から前記バッファ
記憶手段へ読み取るものである。
【0028】
【発明の実施の形態】実施の形態1.図1はこの発明が
適用される情報処理装置に係るデータベースシステムを
示す機能ブロック図である。図1において1a、1bは
端末であり、例えば公知のパーソナルコンピュータ、移
動体通信端末等を使用することができる。2はデータベ
ースシステムであり、通信機能を持つ様々なタイプのコ
ンピュータを使用することができ、例えば、マイクロソ
フト社のWindows NTを基本ソフトウェアとして搭載し
たサーバである。3a、3bは端末1a、及び1bとデ
ータベースシステム2とを接続するアクセス回線であ
り、有線回線、無線回線等の通信回線である。例えば、
公知のローカルエリアネットワーク(LAN)の回線を
使用することができる。6は大容量の記憶装置であるデ
ィスク装置であり、データベースの複数のデータをブロ
ック単位で区分して記憶している。
【0029】2aは、データベースシステム2のプロセ
ッサであるCPU、2bはCPU2aとバスで接続され
アクセス回線3a、3bとの通信インターフェースをと
るLANインタフェースである。ここで、プロセッサで
あるCPU2aは、後述する図4、図6、及び図10〜
図13に示された処理全てを行う。ただし、複数のプロ
セッサ又は装置を用いて分散処理できるシステムにおい
ては、これらの処理を複数のプロセッサ又は他の装置に
分散させて実行することもできる。2cはディスク装置
6をアクセスする際に、ディスク装置6とCPU2aと
のインターフェースを行うディスクインターフェースで
あり、例えば、公知のSCSIインタフェースボード等
を使用することができる。2dはディスクバッファ5
3、プログラム、その他プログラムの実行に必要な変数
やリストを記憶するメインメモリである。データベース
システム2は、CPU2a、LANインタフェース2
b、ディスクインタフェース2c、メインメモリ2d、
及びディスク装置6を有している。
【0030】この発明の実施の形態1においては、従来
のものと比べ、問合せ処理タスクと独立にファイル内の
ブロック処理順序を決定するソフトウェアを備えた点で
異なる。図2は図1の構成をより詳細に示した機能ブロ
ック図である。図2において、4a、4bは端末1aと
端末1bからそれぞれアクセス回線3aとアクセス回線
3bを介して起動された問合せ処理タスクであり、51
a、51bは問合せ処理タスク4aと問合せ処理タスク
4bのそれぞれがアクセスするファイル内の未処理ブロ
ック番号を記録するための未処理ブロック番号リスト、
52は問合せ処理タスク4aと問合せ処理タスク4bが
ブロックを処理するごとに未処理ブロック番号リスト5
1aと未処理ブロック番号リスト51bを更新するため
の未処理ブロック番号リスト管理モジュール、53はデ
ィスク装置6上のブロックの一部をメインメモリ2d上
に保持するためのディスクバッファ、54はディスクバ
ッファ53を管理するディスクバッファ管理モジュー
ル、55は未処理ブロック番号リスト51aと未処理ブ
ロック番号リスト51bおよびディスクバッファ53の
状態に基づいて問合せ処理タスク4aと問合せ処理タス
ク4bのそれぞれが次に処理するブロック番号を決定す
るためのブロック処理順序決定モジュール、71はディ
スク装置6との物理的な入出力を制御するディスク入出
力制御モジュールであり、図1のディスクインターフェ
ース2cのデバイスドライバである。
【0031】ここで、問合せ処理タスク4a、4b、未
処理ブロック番号リスト管理モジュール52、ディスク
バッファ管理モジュール54、ブロック処理順序決定モ
ジュール55、及びディスク入出力制御モジュール71
は、CPU2aに実行されるソフトウェアであり、メイ
ンメモリ2dに記憶されている。また、問合せ処理タス
ク4a及び4bは、別スレッド又は別プロセスで並行処
理されディスクバッファ管理モジュール54及びブロッ
ク処理順序決定モジュール55はこれらのスレッド又は
プロセス内で呼び出される共通ルーチンである。また、
未処理ブロック番号リスト51a、51b、及び、ディ
スクバッファ53は、メインメモリ2d上に記憶されて
おり、複数のスレッド若しくはプロセス間でデータを交
換できるように共有メモリになっている。図3は未処理
ブロック番号リスト51aの例を示した図である。未処
理ブロック番号リスト51aには、ブロックの連続する
領域毎に、領域の先頭ブロック番号511、領域のブロ
ック数512がそれぞれ組になって記憶されている。こ
こで、ディスクバッファ53は、バッファ記憶手段の一
例であり、ブロック処理順序決定モジュール55は順位
決定手段の一例、問合せ処理タスク4a及び4bのそれ
ぞれは読み取り手段の一例である。また、ディスク装置
6は記憶装置の一例であるが、記憶装置はディスク装置
に限らず、バッファ記憶手段に比べて大容量の情報を記
憶するものであればどんな記憶装置でもよい。また、問
合せ処理タスク4a及び4bのそれぞれで処理される要
求は処理要求の一例であり、例えば、公知のSQL言語(構
造化照会言語)で記載された問合せ処理等である。
【0032】次にこの実施の形態1の動作を図4と図5
に従って説明する。図4は図2に示したブロック図の動
作を説明するフローチャートである。まず、図4の受け
付けステップS1において、問合せ処理タスク4aが端
末1a若しくは1bから処理要求である問合せ処理を受
けると、問合せ処理タスク4aは問合せ処理に要求され
たファイルを探し、データベースファイルの処理を行う
ために当該ファイルをオープンする。このファイルのオ
ープンは、ファイルのブロック番号等の管理情報をディ
スク入出力制御モジュール71を介して読み込むことで
行う。次いで、ステップS2において、問合せ処理タス
ク4aは当該ファイル中で問合せ処理に必要なブロック
番号の集合を未処理ブロック番号リスト51aに設定す
る。例えば、問合せ処理タスク4aはブロック番号の集
合を図3に示すように設定する。問合せ処理に必要なブ
ロック番号が事前に不明な場合は、当該ファイルの全ブ
ロック番号を未処理ブロック番号リスト51aに設定す
る。
【0033】判別ステップS3において、問合せ処理タ
スク4aがブロックの読み込みを要求すると、ブロック
処理順序決定モジュール55はディスクバッファ53か
ら未処理ブロック番号リスト51a中のブロック番号に
一致するブロックの内容が格納されたバッファが存在す
るかどうか判断し、存在する場合はステップS9に進
む。未処理ブロックがディスクバッファ53内に存在し
なかった場合は、ステップS4に進み、ブロック処理順
序決定モジュール55は未処理ブロック番号リスト51
a中の任意のブロック番号を一つ選択し、次の処理対象
ブロックに決定し、当該ブロックのディスク装置6から
の読み込みをディスクバッファ管理モジュール54に要
求する。
【0034】次に、ステップS5において、ブロック処
理順序決定モジュール55からブロックの読み込みを要
求されると、ディスクバッファ管理モジュール54は、
ディスクバッファ53内に当該ブロックを読み込むため
の空きバッファが存在するかどうかを判断する。ここ
で、空きバッファが存在する場合はステップS7に進
む。空きバッファが存在しなかった場合、ディスクバッ
ファ管理モジュール54は、ステップS6においてディ
スクバッファ53内の使用中のバッファを1つ回収し、
空きバッファを生成する。次に、ステップS7におい
て、ディスクバッファ管理モジュール54は、ディスク
バッファ53から空きバッファをデータの読み込み用に
1つ割り当てる。ステップS8において、割り当てられ
た空きバッファに対する次の処理対象ブロックのディス
ク装置6からの読み込みをディスク装置制御モジュール
71に要求し、読み込みの完了を待ってブロック処理順
序決定モジュール55に読み込みの終了を通知する。
【0035】続いて、ステップS9において、ブロック
処理順序決定モジュール55は、ディスクバッファ53
に存在した未処理ブロック、または新たにディスク装置
6から読み込まれた未処理ブロックの内容、すなわち複
数のデータのうちいずれかをディスクバッファ53から
読み取って、読み取った複数のデータのうちいずれかを
問合せ処理タスク4aに返す。問合せ処理タスク4aは
データを受け取ると、受け取ったデータを基に当該ブロ
ックに対する問合せ処理を行う。次に、ステップS10
において、未処理ブロック番号リスト管理モジュール5
2は、ステップS9において処理されたブロック番号を
未処理ブロック番号リスト51aから削除する。
【0036】ステップS11において、ブロック処理順
序決定モジュール55は未処理ブロック番号リスト51
aが空かどうかを判断し、空でない場合はステップS3
に戻って処理を継続する。未処理ブロック番号リスト5
1aが空だった場合には、ステップS12において、問
合せ処理タスク4aはファイルをクローズし、当該ファ
イルに対する処理を終了する。以上に説明した処理の流
れは、それぞれの問合せ処理タスクの処理対象ファイル
一つ一つについて繰り返し行われる。従って、問合せ処
理タスク4bも、図4を用いて説明したように問合せ処
理タスク4aと同様の処理を行う。
【0037】次に、図5の時間シーケンス図を用いて、
問合せ処理タスク4aが問合せ処理を行っている期間
に、問合せ処理タスク4bが問合せ処理を開始した場合
の動作について説明する。図5において、40a、40
bはそれぞれ問合せ処理タスク4a、問合せ処理タスク
4bのブロック処理のシーケンスを示している。また、
41a、41bはそれぞれ問合せ処理タスク4a、問合
せ処理タスク4bがディスクバッファ53に読み込まれ
た1つのブロックを処理するのにかかる時間を示してい
る。42は、1つのブロックをディスク装置6からディ
スクバッファ53に読み込むのにかかる時間を示し、t
1、t2、t3、t4は時刻を示す。
【0038】時刻t1において問合せ処理タスク4aが
一つのファイルを処理中であり、時刻t1でデータベー
スシステム2は新たな問合せ処理を受け付け、問合せ処
理タスク4bが処理を開始する。ここで、問合せ処理タ
スク4bが受け付けた問合せ処理は、問合せ処理タスク
4aが処理中であるファイルと同じファイルに対する処
理要求であったとする。
【0039】時刻t1から時刻t2までの期間は、問合
せ処理タスク4aがブロックをディスク装置6からディ
スクバッファ53内に読み込んで処理する一方で、問合
せ処理タスク4bは既にディスクバッファ53に存在す
るブロックを順に読み込み処理を実行する。問合せ処理
タスク4bの問合せ処理は、要求されたデータのブロッ
ク番号の順序に関係なく、図4のステップS3、S9で
説明したように、ディスクバッファ53に記憶されたデ
ータから先に読まれる。ここでは、問合せ処理タスク4
bは、問合せ処理タスク4aによって既にディスクバッ
ファ53に読み込まれたデータから先に、読み込み処理
を行う。従って、問合せ処理タスク4bはディスク装置
6からのデータ転送を待機する必要がないので、1ブロ
ックの処理にかかる時間は時間41bであり、1ブロッ
クの処理に(時間41a+時間42)を要する問合せ処
理タスク4aに比べて高速に処理が進行し、時刻t2に
おいてディスクバッファ53内のブロックを全て処理し
終える。図5のt1bは、第1のリードステップが実行
されるタイミングの一例を示しており、この例では第1
のリードステップは、図4のステップS9で問合せ処理
タスク4bがディスクバッファ53からデータを読み込
むことによって実行される。また、各第1のリードステ
ップが終了すると、問合せ処理タスク4bは読み込んだ
データに基づいて処理要求を処理し、第1の送信ステッ
プとして、処理要求を送信してきた要求元の端末1bに
処理結果を送信する。この送信結果には、第1のリード
ステップで読み取られたデータが含まれている。この第
1の送信ステップは、後述する第3のリードステップが
実行される前に実行されると、処理要求の要求元は全て
のデータがディスク装置6から読み取られる前にデータ
を受け取ることができ、早期に処理を開始することがで
きる。また、後述する第2のリードステップが実行され
る前に、前述第1の送信ステップが開始されると、処理
要求の要求元はさらに早期にデータを受け取ることがで
きる。従って、例えば、図4のステップS9で、第1の
送信ステップを実行するとよい。また、複数ブロック分
のデータが溜まった時点で、それらのデータをまとめて
送信するようにして第1の送信ステップを実行してもよ
い。なお、全データの集計処理を行う場合など、全ての
データを読み終わるまで結果を出せない場合には、前述
第1の送信ステップは、第3のリードステップが実行さ
れた後に実行されてもよい。上述の説明は、問合せ処理
タスク4bについて説明したが、問合せ処理タスク4a
についても同様の処理が行われる。
【0040】ここで、問合せ処理タスク4bは、問合せ
処理タスク4aのデータがディスクバッファ53に残っ
ているうちに、共通するデータを時間的に優先して先に
読み込んでしまうため、ディスクバッファ53を有効に
使用することができ、ディスクバッファ53とディスク
装置6との間の物理的なアクセスを少なくすることがで
きる。これが従来の技術のように、問合せ処理のブロッ
ク番号順に読み取っているとすると、例え問合せ処理タ
スク4aと問合せ処理タスク4bとの間に、共通するデ
ータが合ったとしても処理タイミングがあわず、問合せ
処理タスク4aによりディスクバッファ53上に読み取
られた共通するデータが後から読み込まれたデータに上
書きされてしまったりする。すると、ディスク入出力制
御モジュール71は、問合せ処理タスク4bのために、
共通するデータを再びディスク装置6からディスクバッ
ファ53へ読み取らなければならないという事態が発生
してしまい、ディスク装置6への物理的アクセスが多く
発生してしまう。
【0041】時刻t2から時刻t3までの期間はディス
ク装置6からのデータ転送待ちの後に1つのバッファを
問合せ処理タスク4aと問合せ処理タスク4bで順次処
理する。すなわち、ここで、問合せ処理タスク4bにか
かるデータのうち、まだディスクバッファ53に存在し
ないデータに対する処理が行われる。問合せ処理タスク
4bにおいて処理を行う一方で次の処理ブロックの読み
込みを行うことができるので1ブロックの処理に要する
平均時間は(時間41a+時間42)であり、問合せ処
理タスク4aが単独で処理を行っている場合と変わらな
い。時刻t3において、問合せ処理タスク4aが全ての
ブロックの処理を完了する。ここで、図5のt2a又は
t3aは、第2のリードステップが実行されるタイミン
グの一例を示しており、この例では第2のリードステッ
プは、図4のステップS8で、ディスク入出力制御モジ
ュール71がディスク装置6からディスクバッファ53
へデータを読み込むことによって実行される。
【0042】時刻t3から時刻t4までの期間は、問合
せ処理タスク4bが単独で処理を行う。時刻t1から時
刻t3までに処理を行っていないブロックを順次ディス
ク装置6からディスクバッファ53内に読み込んで処理
し、時刻t4において問合せ処理タスク4bが全てのブ
ロックの処理を完了する。ここで、図5のt2b又はt
3bは、第3のリードステップが実行されるタイミング
の一例を示しており、この例では第3のリードステップ
は、図4のステップS9で、問合せ処理タスク4bがデ
ィスクバッファ53からデータを読み込むことによって
実行される。第3のリードステップで読み込まれたデー
タは、問合せ処理タスク4bにより処理された後、時間
t3bで示したタイミング後に、問合せ処理タスク4b
が処理要求を要求してきた要求元に送信し、第2の送信
ステップを実行する。なお、第3のリードステップが問
合せ処理タスク4aにより実行されたときは、第2の送
信ステップは問合せ処理タスク4aにより実行される。
【0043】以上のように、この実施の形態1では、特
に、未処理ブロック番号リストと、ディスクバッファ
と、これらの未処理ブロック番号リストとディスクバッ
ファの状態に基づいて次の処理対象ブロックを決定する
ブロック処理順序決定モジュールを備えているので、同
一ファイルに対して複数の問合せが同時に発行された場
合にも、ディスク装置との間の物理的なデータ転送を削
減でき、必要最低限のディスクアクセスで処理を行うこ
とができるという効果を奏する。
【0044】実施の形態2.図6はこの発明の実施の形
態2を示すデータベースシステムの機能ブロック図であ
り、図2と同一の符号は同一又は相当の部分を表してい
る。56はディスク装置6から読み取ったデータを一時
的に記憶するとともに、読み取り制御に関する先読みキ
ュー57、及び先読みキューポインタリスト58を記憶
するファイルバッファであり、ここでファイルバッファ
56はファイル毎に存在する。59はファイルバッファ
56を管理するファイルバッファ管理モジュール、72
は先読み要求を記憶する先読み要求キュー、73は先読
み要求キュー72に基づいて、ディスク入出力制御モジ
ュール71に対して先読み要求に要求されたデータの読
み込みを依頼する先読み制御モジュールである。なお、
ファイルバッファ管理モジュール59、及び先読み制御
モジュール73は、図1のCPU2aで実行されるプロ
グラムのモジュールであり、問合せ処理タスク4a、4
b、先読み制御モジュール73は、別スレッド又は別プ
ロセスで並行処理され、ファイルバッファ管理モジュー
ル59はこれらのスレッド又はプロセスから呼び出され
る共通ルーチンである。また、未処理ブロック番号リス
ト51a、51b、ファイルバッファ56、及び、先読
み要求キュー72は、メインメモリ2dに記憶され、上
述スレッド、若しくは、プロセス間で共通にアクセス可
能な共有メモリになっている。
【0045】図7は、先読みキュー57をリングバッフ
ァとして実現した場合の例を示した図である。先読みキ
ュー57は、有限個のバッファディスクリプタ570か
ら構成され、バッファディスクリプタ570にはブロッ
ク番号571とそのブロックが格納されているメモリ上
の領域を示すバッファポインタ572が組になって記憶
されている。また、各バッファディスクリプタ570は
先入れ先出しで循環的に使用され、最も以前にディスク
装置6から読み込まれたブロックのバッファディスクリ
プタ570を示す先頭インデックス573と、最近にデ
ィスク装置6から読み込まれたブロックのバッファディ
スクリプタ570を示す末尾インデックス574とを用
いて、有効な情報が格納されているバッファディスクリ
プタを示す。図8は、先読みキューポインタリスト58
の例を示した図である。先読みキューポインタリスト5
8は、当該ファイルをオープンしている全ての問合せ処
理タスク4a、4bについて、タスク番号581と、タ
スク番号581で識別されるタスクが次に処理するブロ
ックが格納されている、あるいは格納される予定である
バッファディスクリプタ570のインデックスを示す先
読みキューポインタ582が組になって記憶されてい
る。ここで、例えば、問合せ処理タスク4aのタスク番
号581が「T1」であるとすると、このタスク番号5
81に対応する先読みキューポインタ582が第1のポ
インタであり、問合せ処理タスク4bのタスク番号58
1が「T3」であるとすると、このタスク番号581に
対応する先読みキューポインタ582が第2のポインタ
である。
【0046】また、図9は、先読み要求キュー72の例
を示した図である。先読み要求キュー72は、ディスク
装置6上の連続ブロック領域について、先頭ブロック番
号721と、ブロック数722と、当該ブロック領域か
ら構成されるファイルのファイル番号723とが組にな
って記憶されている。ここで、図6の問合せ処理タスク
4aは、第1の処理手段及び検出手段の一例であり、問
合せ処理タスク4bは第2の処理手段及び検出手段の一
例である。ただし、検出手段はブロック処理順序決定モ
ジュール55等、問合せ処理タスク4a、4b以外のモ
ジュールに設けられてもよい。また、ファイルバッファ
管理モジュール59及び先読み制御モジュール73は、
バッファ管理手段の一例である。ここで、先読み制御モ
ジュール73は先読み手段の一例である。
【0047】次に、上記実施の形態2の動作を、図10
と図11に従って先読み制御モジュール73以外の部分
と先読み制御モジュール73とに分けて説明する。図1
0は、先読み制御モジュール73以外の部分の動作を説
明するフローチャートである。まず、図10のステップ
S21において、問合せ処理タスク4aがデータベース
ファイルの処理を行うために当該ファイルをオープンす
る。ここで、ステップS21では、問合せ処理タスク4
aが当該ファイルをオープンする前に処理要求を受け付
け、受け付けステップが実行される。上述の説明では、
問合せ処理タスク4aについて説明したが、実際にはこ
のステップS21は問合せ処理タスク4a及び4bのそ
れぞれで実行され、例えば、問合せ処理タスク4aが先
にステップS21を実行した場合には、その問合せ処理
タスク4aにかかるステップS21が第1の処理要求を
受け付ける第1の受け付けステップになり、後に実行さ
れる問合せ処理タスク4bにかかるステップS21が第
2の処理要求を受け付ける第2の受け付けステップとな
る。次いで、ステップS22において、ファイルバッフ
ァ管理モジュール59が当該ファイルの先読みキューポ
インタリスト58に、問合せ処理タスク4aのタスク番
号をタスク番号581として設定し、当該ファイルの先
読みキュー57の先頭インデックス573を先読みキュ
ーポインタ582として設定する。
【0048】次に、ステップS23において、問合せ処
理タスク4aは当該ファイル中で問合せ処理に必要なブ
ロック番号の集合を未処理ブロック番号リスト51aに
設定する。続いて、ステップS24において、問合せ処
理タスク4aは未処理ブロック番号リスト51aに含ま
れ、先読みキュー57と先読み要求キュー72のいずれ
にも含まれないブロック番号を求め、その結果を先読み
要求として先読み要求キュー72に追加する。ここで、
このステップS24は、第1又は第2の要求ステップの
一例である。例えば、前述のように問合せ処理タスク4
aが先に前述第1の受け付けステップを開始した場合に
は、このステップS24で問合せ処理タスク4aが第1
の要求ステップを実行し、さらに別スレッド又は別プロ
セスで実行されている問合せ処理タスク4bがこのステ
ップS24で第2の要求ステップを実行する。
【0049】次に、ステップS25において、問合せ処
理タスク4aがブロックの読み込みを要求すると、ブロ
ック処理順序決定モジュール55は先読みキューポイン
タリスト58から問合せ処理タスク4aの先読みキュー
ポインタ582の内容を取得し、その内容が指し示す先
読みキュー57中のバッファディスクリプタ570が有
効になるまで待機する。あるバッファディスクリプタ5
70が有効であるかどうかの判断は、当該バッファディ
スクリプタのインデックスを、先読みキュー57の先頭
インデックス573と末尾インデックス574と比較す
ることで行う。
【0050】続いて、ステップS26において、ブロッ
ク処理順序決定モジュール55は上述バッファディスク
リプタ570のブロック番号571が未処理ブロック番
号リスト51aに含まれるかどうか判断し、含まれない
場合はステップS29に進む。含まれていた場合、ステ
ップS27において前記ブロックが処理対象ブロックと
して決定され、前記バッファディスクリプタのバッファ
ポインタ572が示すバッファの内容が問合せ処理タス
ク4aに返され、問合せ処理タスク4a内において当該
ブロックに対する問合せ処理が行われる。すなわち、問
合せ処理タスク4aは、メインメモリ2d上のファイル
バッファ56からデータを読み取る。ここで、問合せ処
理タスク4aが行うこのステップS27は、第4のリー
ドステップの一例であり、この場合に問合せ処理タスク
4aは第1のタスクとなる。また、別スレッド又は別プ
ロセスで問合せ処理タスク4bにより実行されるステッ
プS27は、第5のリードステップの一例であり、この
場合、問合せ処理タスク4bは第2のタスクである。
【0051】次に、ステップS28において、未処理ブ
ロック番号リスト管理モジュール52は、ステップS2
7において処理されたブロック番号を未処理ブロック番
号リスト51aから削除する。続いて、ステップS29
において、先読みキューポインタリスト58の問合せ処
理タスク4aの先読みキューポインタ582の内容を、
先読みキュー57内の次のバッファディスクリプタ57
0を指し示すように更新する。
【0052】次に、ステップS30において、ファイル
バッファ管理モジュール59は、前記バッファディスク
リプタ570が回収可能かどうか判断し、回収可能でな
ければステップS32に進む。あるバッファディスクリ
プタ570が回収可能になる条件は、当該バッファディ
スクリプタ570を示すインデックスが先読みキュー5
7の先頭インデックス573と一致し、かつ先読みキュ
ーポインタリスト58の中で先読みキューポインタ58
2が当該バッファディスクリプタを指すタスクが存在し
ないことである。この条件が成立するとき、全ての問合
せ処理タスクは当該バッファディスクリプタ570に係
るブロックの処理を完了している。すなわち、このステ
ップS30では、ファイルバッファ管理モジュール59
が全ての問合せ処理タスク4a、4bが当該バッファデ
ィスクリプタ570に係るブロックの処理を完了してい
るか否かを判断する。前記バッファディスクリプタが回
収可能だった場合、ステップS31において、先読みキ
ュー57の先頭インデックス573を当該バッファディ
スクリプタの次のバッファディスクリプタ570を指す
ように更新することにより、当該バッファディスクリプ
タ570は回収されたことになる。従って、回収された
バッファディスクリプタ570のバッファポインタ57
2によって指し示されていたメインメモリ2d上の記憶
領域は、次のデータをディスク装置6から読み込むため
に使用可能になる。
【0053】次にステップS32において、問合せ処理
タスク4aが次のブロックの読み込みを要求すると、ブ
ロック処理順序決定モジュール55は未処理ブロック番
号リスト51aが空かどうかを判断し、空でない場合は
ステップS25に戻って処理を継続する。未処理ブロッ
ク番号リスト51aが空だった場合には、ステップS3
3において、ファイルバッファ管理モジュール59は、
先読みキューポインタリスト58から問合せ処理タスク
4aに係る設定を削除する。ステップS34において、
問合せ処理タスク4aはファイルをクローズし、当該フ
ァイルに対する処理を終了する。以上に説明した処理の
流れは、それぞれのタスクの処理対象ファイル一つ一つ
について繰り返し行われる。また、上述の説明は、問合
せ処理タスク4aについて説明したが、問合せ処理タス
ク4bにおいても同様である。ここで、問合せ処理タス
ク4a、問合せ処理タスク4bは異なるスレッドで並行
して処理される。
【0054】図11は、先読み制御モジュール73の動
作を説明するフローチャートである。まず、図11のス
テップS41において、先読み制御モジュール73は先
読み要求キュー72の先頭要素が有効になるのを待つ。
次いで、ステップS42において、先読み制御モジュー
ル73は、この先頭要素のファイル番号723で指定さ
れたファイルの先読みキュー57に空きバッファディス
クリプタができるまで待つ。先読みキュー57に空きバ
ッファディスクリプタ570が存在するかどうかは、先
頭インデックス573と末尾インデックス574を比較
することで判断する。前述のように複数の問合せ処理に
共通するデータは、図10のステップS30で検出され
ており、空きのファイルディスクリプタ570は、ステ
ップS31で作成される。ここで、先読み制御モジュー
ル73は、空きバッファディスクリプタ570ができる
まで待機するため、後述のステップS43によって、複
数の問合せ処理に共用されるデータが処理終了前に消去
されることを防止できる。従って、ディスク装置6から
ファイルバッファ56へ共通するデータを読み直さなく
ても済むため、ディスク装置との間の物理的なデータ転
送を削減でき、必要最低限のディスクアクセスで処理を
行うことができるという効果を奏する。
【0055】次に、ステップS43において、先読み制
御モジュール73は、前記先頭要素の先頭ブロック番号
721で指定されたブロックをディスク装置6から読み
込む。そして、先読みキュー57の末尾インデックス5
74で示されるバッファディスクリプタ570に続くバ
ッファディスクリプタ570のバッファポインタ572
で示されるメモリ領域に、読み込んだブロックを格納
し、ブロック番号571を先頭ブロック番号721の値
に設定する。このステップS43は、第1の記憶ステッ
プの一例である。
【0056】続いて、ステップS44において、先読み
制御モジュール73は、前記先頭要素の先頭ブロック番
号721を1増やし、ブロック数722を1減ずる。次
に、ステップS45において、先読み制御モジュール7
3は、このブロック数722が0に等しいかどうかを判
断し、等しくない場合はステップS42に戻る。等しか
った場合は、ステップS46において、先読み制御モジ
ュール73は、前記先頭要素を先読み要求キュー72か
ら削除し、次の要素を先頭要素とし、ステップS41に
戻る。以上に説明した処理の流れは、データベースシス
テム2が稼動している期間繰り返し行われる。ここで、
第6のリードステップについて説明すると、前述図10
のステップS30で、バッファ記憶手段の各記憶領域に
ついて第4及び第5のリードステップが終了したかが判
断されており、終了していない場合には、ステップS3
1でバッファディスクリプタが回収されておらず、空き
のバッファディスクリプタとなっていない。そのため、
図11のステップS43で先読み制御モジュール73は
当該記憶領域に記憶されたデータを上書きせず、バッフ
ァ記憶手段上に他の空き記憶領域がない場合には、第4
1及び第5のリードステップが終了するまで待機する。
また、ステップS30で終了していると判断された場合
には、図10のステップS31でファイルディスクリプ
タが回収され、空きのファイルディスクリプタとなって
いるため、図11のステップS43で先読み制御モジュ
ール73は、第6のリードステップで読み込んだ新しい
データを当該記憶領域に記憶されたデータに上書きす
る。
【0057】以上のように、この発明の実施の形態に記
載された発明は、先読みキューと先読みキューポインタ
リストからなるファイルバッファと、先読み制御モジュ
ールとを備えているので、ファイル内のブロック処理順
序を簡単に決定し、処理の完了したブロックを直ちに回
収し、連続するディスク読み込み操作の間の無駄時間を
削減できるという効果を奏する。そして、複数の処理要
求で先入れ先出し方式のバッファを共有利用し、バッフ
ァ領域を効率的に利用するとともに、共通するデータを
他の処理要求が未処理である場合に、もう一方の処理要
求にかかる問合せ処理タスクがその共通するデータを消
してしまうということを防止することができる。
【0058】実施の形態3.発明の実施の形態3は、先
読み要求キュー72への先読み要求挿入位置の決定方法
に係るものである。問合せにジョイン演算や副問合せが
含まれる場合は、1つの問合せで複数のファイルが検索
される。従って、複数の問合せがアクセスするファイル
に共通部分があった場合に、共通するファイルを別々に
ディスク装置6から読み込むことが減るように、ファイ
ル単位での処理順序を適切に決定する必要がある。先読
み要求は、先頭ブロック番号721とブロック数722
で表されるブロック領域について発行されるので、ブロ
ック数722が大きい要求の処理には長時間を要し、そ
の間他の要求は待たされる。そこで、ブロック数722
の大きさに応じて先読み要求の優先順位を設定し、小さ
なブロック数722を持つ先読み要求から処理するよう
に先読み要求キュー72への挿入位置を決定する。
【0059】この実施の形態3は、上述実施の形態2の
問合せ処理タスク4a、4bの動作を若干変更したもの
であり、以下に説明する点を除いては、この実施の形態
3の装置、及び動作は上述実施の形態2と同様である。
ここで、図11のステップS43は、この実施の形態に
おける第7、第8、及び第9のリードステップの一例で
ある。また、図6の問合せ処理タスク4a及び4bは、
優先順位決定手段を兼ねている。ただし、優先順位決定
手段は、ブロック処理順序決定モジュール55等、問合
せ処理タスク4a、4b以外のモジュールに設けられて
もよい。さらに、図6のディスク入出力制御モジュール
71及び先読み制御モジュール73は、読み取り手段の
一例である。
【0060】図12は、問合せ処理タスク4a、4bに
よる先読み要求の先読み要求キュー72への挿入位置決
定方法を説明するフローチャートであり、図10のステ
ップS24の詳細を示したものである。まず、図12の
ステップS61において、先読み要求をブロック数72
2の範囲に基づいて複数クラスのいずれかに分類する。
クラス数は、必要に応じて設定することが可能である
が、例えば、2つのクラスに分類する場合、10万ブロ
ック未満をクラス0、10万ブロック以上をクラス1の
様に分けることができる。それぞれのクラスには、小さ
なブロック数の要求が属するクラスから昇順にクラス番
号を付ける。
【0061】図13は、図12のステップS61の詳細
を示すフローチャートである。まず、ステップS61a
にて、問合せ処理タスク4aは、新たに受け付けた処理
要求に必要なファイル番号、先頭ブロック番号、及びブ
ロック数を調べる。次に、ステップS61bで、問合せ
処理タスク4aはステップS61aで作成した処理要求
のファイル番号が、先読み要求キュー72に記憶されて
いる先読み要求のファイル番号723と同じであるか否
かを判断する。同じファイル番号でない場合には、ステ
ップS61cに進み、前述の通り、ステップS61aで
調べたブロック数に基づいて、ステップS61aで作成
した先読み要求にクラスを設定する。ステップS61c
が終了すると、図12のステップS62に移行する。一
方、ステップS61bで、同一のファイルであると判断
された場合には、ステップS61dに進む。ステップS
61dでは、ステップS61aで作成した先読み要求と
先読み要求キュー72に記憶されている既存の先読み要
求720とで重複するブロックがあるか否かを問合せ処
理タスク4aが検出し、重複したブロックを除いた先読
み要求を作成し直す。次に、ステップS61eで、問合
せ処理タスク4aは、ステップS61bで検出した同一
ファイルと同一のクラスをステップS61dで作成した
先読み要求に割り当てる。そして、次の図12ステップ
S62に進む。
【0062】ここで、ステップS61bにて同一ファイ
ルが存在するかを調べその結果に基づいてクラス分けを
行う理由は以下の通りである。単純にブロック数だけで
クラス分けを行うとステップS61dのように重複した
ブロックを削除した結果、ブロック数が少ない先読み要
求720が発生してしまい、2つの処理要求に共通しな
いデータが先に読み込まれてしまう。これでは複数のタ
スク全体の処理効率を考えた場合、処理効率が悪くなっ
てしまうことが多い。このステップS61では、同一フ
ァイルが存在するかを調べその結果に基づいてクラス分
けを行っているため、2つの処理要求に共通するデータ
を優先的にディスク装置6から読み込むことができる。
このステップS61では、比較ステップの一例として複
数のクラスに分類しているが、第1の処理要求にかかる
データ量と第2の処理要求にかかるデータ量を比較でき
るものであれば、どのような処理、装置を用いてもよ
い。なお、上述の説明では、問合せ処理タスク4aにつ
いて説明したが、問合せ処理タスク4bについても、同
様に図13の処理が行われる。
【0063】ステップS62において、先読み要求のク
ラス番号が先読み要求キュー72の先頭要素のクラス番
号と等しいかどうか判断し、等しくなければステップS
66に進む。等しければ、ステップS63において、先
読み要求の先頭ブロック番号が先読み要求キュー72の
先頭要素の先頭ブロック番号より小さいかどうか判断
し、小さくない場合はステップS66に進む。小さい場
合、クラス番号と、先頭ブロック番号721にディスク
装置6の全ブロック数を加えたもの、との組み合わせを
比較キーとして設定する。ステップS65において、前
記比較キーに関して昇順となるように、先読み要求キュ
ー72への挿入位置を決定し、先読み要求キュー72に
先読み要求を挿入し、処理を終了する。
【0064】また、ステップS62とステップS63の
条件が成立しなかった場合、ステップS66において、
クラス番号と先頭ブロック番号721の組み合わせを比
較キーとして設定し、ステップS65に進む。
【0065】次に、問合せ処理タスク4aがファイルF
1を処理している期間に、比較的小さいファイルF2へ
の問合せ処理が発生した場合、問合せ処理タスク4bが
ファイルF2を優先して先に処理し、その後、引き続い
てファイルF1を処理する動作について、図14の時間
シーケンス図を用いて説明する。図14において、40
a、40bは図5と同様にそれぞれ問合せ処理タスク4
a、問合せ処理タスク4bのブロック処理のシーケンス
を示している。t11、t12、t13、t14は時刻
を示す。
【0066】時刻t11において、問合せ処理タスク4
aは第1の処理要求を受け付け、第1の受け付けステッ
プが既に終了しており、問合せ処理タスク4aは第1の
処理要求にかかるファイルF1を処理中である。このと
き、t10aで示したように、ディスク装置6からファ
イルバッファ56へデータが読み取られ第7のリードス
テップが実行される。ここで、t11で第2の処理要求
が問合せ処理タスク4bにより受け付けられ、第2の処
理要求にかかるファイルF2に対する問合せ処理が発生
した場合を想定する。問合せ処理タスク4bは、この新
しく発生した問合せ処理に対する処理を開始する。この
例では、ファイルF1の未処理ブロック領域のブロック
数が属するクラス番号は、ファイルF2の未処理ブロッ
ク領域のブロック数が属するクラス番号より大きい。従
って、上述図12を用いて説明した処理により、問合せ
処理タスク4bが発行するファイルF2の先読み要求
は、先読み要求キュー72の先頭に挿入され、ファイル
F1の先読み要求は2番目の要素となる。
【0067】そのため時刻t11で、問合せ処理タスク
4bは比較ステップを実行し、ファイルF2の先読み要
求が先読み要求キュー72の先頭に挿入される。そし
て、先読み制御モジュール73は、ファイルF2のブロ
ックの読み取り要求をディスク入出力制御モジュール7
1に発行し、時刻t11から時刻t12までの期間は先
読み制御モジュール72によってファイルF2が読み込
まれる。そのため問合せ処理タスク4aは処理を中断
し、問合せ処理タスク4bが処理を行う。すなわち、時
刻t11から時刻t12までの期間、t11bで示した
ように第8のリードステップが実行される。時刻t12
において、問合せ処理タスク4bがファイルF2の全て
のブロックの処理を完了すると、ファイルF2の先読み
要求が先読み要求キュー72の先頭から削除され、ファ
イルF1の先読み要求は再び先頭要素となる。
【0068】時刻t12から時刻t13までの期間は、
先読み制御モジュール73によってファイルF1が読み
込まれ、問合せ処理タスク4aが処理を再開する。時刻
t13において、問合せ処理タスク4bがファイルF1
の並列処理を開始する。時刻t13から時刻t14まで
の期間は、先読み制御モジュール73によって読み込ま
れるファイルF1のブロックを、問合せ処理タスク4a
と問合せ処理タスク4bとがそれぞれ処理する。時刻t
14において問合せ処理タスク4bが全てのブロックの
処理を完了する。従って、時刻t12から時刻t14ま
での期間において、ディスク入出力制御モジュール7
1、先読み制御モジュール73、及び問合せ処理タスク
4aは第9のリードステップを実行することになる。
【0069】時刻t14から時刻t15までの期間は、
問合せ処理タスク4bが単独でファイルF1の未処理ブ
ロックを処理し、時刻t15において全てのブロックの
処理を完了する。従って、時刻t13から時刻t15ま
での期間において、ディスク入出力制御モジュール7
1、先読み制御モジュール73、及び問合せ処理タスク
4bは第8のリードステップを実行することになる。
【0070】上述図14を用いた説明では、第2の処理
要求にかかるファイルが複数ある場合について述べた
が、第2の処理要求にかかるファイルが1つの場合に
は、図15のシーケンス図に示したようになる。図15
において、図14と同一の符号は同一又は相当の部分を
表している。図15に示されているように、図10〜図
13で説明した動作に従えば、第2の処理要求にかかる
ファイルが1つの場合には、第8のリードステップが終
了してから、第9のリードステップが開始される。
【0071】以上のように図13又は図14の動作で
は、問合せ処理タスク4aの実行時間は、単独で実行し
た場合に比べて時間43だけ長くなるが、一方で問合せ
処理タスク4bの実行時間は時間44又は時間45だけ
短くなる。時間43が時間44又は時間45に比べて小
さくない場合は、時刻t11における先読み要求キュー
の先頭要素の交代が起こらないため、問合せ処理タスク
の実行時間は平均して短くなる。
【0072】以上のように、この発明の実施の形態に記
載された発明は、特に、先読み要求のブロック数をクラ
ス分けし、そのクラスに基づいて先読みの優先順位を決
定することとしたので、小さなファイルの処理に対する
応答時間を低減し、また、複数の問合せが処理する複数
のファイルに共通部分とそうでない部分がある場合に、
共通するファイルの処理を並行して行う機会を増加させ
ることができるという効果を奏する。
【0073】
【発明の効果】この発明は、以上に説明したように構成
されているので、以下に記載されるような効果を奏す
る。
【0074】この発明にかかる情報処理装置において
は、記憶装置から読み込んだ複数のデータを一時的に記
憶するバッファ記憶手段と、前記記憶装置上の複数のデ
ータを要求する処理要求から、この処理要求に要求され
ている複数のデータのうち前記バッファ記憶手段に記憶
されているデータと一致するデータを検出し、一致した
データと前記処理要求に要求されている残りのデータと
の読み込み順位を、前記一致したデータが先、前記残り
のデータが後とする順位決定手段と、この順位決定手段
が決定した読み込み順位に従って、前記残りのデータを
前記記憶装置から前記バッファ記憶手段に読み込む前
に、前記一致したデータを前記バッファ記憶手段から読
み出す読み取り手段と、を備えたため、バッファを介し
たアクセスを高速に行うことができる。
【0075】また、前記記憶装置は、ディスク装置であ
り、前記読み取り手段は、前記一致したデータを読み取
った後に、前記残りのデータを前記ディスク装置から前
記バッファ記憶手段に読み込み、前記読み取り手段によ
り前記バッファ記憶手段から読み取られた前記一致した
データを送信した後に、前記残りのデータを送信する送
信手段を備えたため、バッファに記憶されデータを有効
に活用しディスク装置へのアクセス回数を減らすことが
できる。
【0076】また、記憶領域が複数のブロックに区分さ
れたディスク装置と、前記ディスク装置から読み出した
複数のブロックを記憶するバッファ記憶手段と、前記デ
ィスク装置に記憶された複数のデータを要求する第1の
処理要求を受け付け、この第1の処理要求に基づいて、
この第1の処理要求に要求された複数のデータが格納さ
れた複数のブロックを検出し、これらの検出した複数の
ブロックのデータを前記バッファ記憶手段から読み取る
第1の処理手段と、前記ディスク装置に記憶された複数
のデータを要求する第2の処理要求を受け付け、この第
2の処理要求に基づいて、この第2の処理要求に要求さ
れた複数のデータが格納された複数のブロックを検出
し、これらの検出した複数のブロックのデータを前記バ
ッファ記憶手段から読み取る第2の処理手段と、前記バ
ッファ記憶手段に記憶された複数のブロックのうち、前
記第1の処理要求及び前記第2の処理要求に共通するブ
ロックを検出する検出手段と、前記検出手段によって検
出された前記共通するブロックに含まれるデータを前記
バッファ記憶手段から消去する場合には、前記第1の処
理手段及び第2の処理手段の両者により、消去しようと
するデータが読み出されるまで待機してから消去するバ
ッファ管理手段とを備えたため、バッファを介したアク
セスを高速に行うことができる。
【0077】また、前記バッファ管理手段は、前記第1
の処理要求が検出した複数のブロックのデータ及び外部
から受け取った読み取り要求に指定されたブロックのデ
ータを前記ディスク装置から読み取り、読み取ったデー
タを前記バッファ記憶手段へ記憶させる先読み手段を備
え、前記検出手段は、前記第2の処理手段が検出した複
数のブロックのうち、前記共通するブロックを指定せ
ず、前記第1の処理要求にかかるブロックと共通しない
ブロックを指定して前記読み取り要求として前記先読み
手段へ出力するため、重複した読み取り要求を抑制し、
ディスク装置へのアクセス回数を減らすことができる。
【0078】また、前記バッファ記憶手段は、前記第1
の処理要求及び第2の処理要求に要求された複数のデー
タを先入れ先出し方式の共有されたキューで記憶し、前
記先読み手段は、前記ディスク装置から読み取った前記
共通のデータを前記キューに記憶し、前記第1の処理手
段は、前記キューの記憶領域内の1つの場所を示す第1
のポインタに基づいて前記第1の処理要求に要求された
データを読み取り、前記第2の処理手段は、前記キュー
の記憶領域内の1つの場所を示す第2のポインタに基づ
いて前記第1の処理要求に要求されたデータを読み取る
ため、キューを2つの処理要求で共有し、かつ、バッフ
ァの記憶容量を節約することができる。
【0079】また、複数の処理要求に共通する複数の共
通データを一時的に記憶するバッファ記憶手段と、記憶
装置から新たなデータを読み取る読み取り手段と、前記
バッファ記憶手段に記憶された前記複数の共通データの
うち、前記複数の処理要求のうち少なくとも1つの処理
要求に対して処理が終了していない未処理の共通データ
に前記新たなデータを上書きせず、前記複数の処理要求
に対して処理が終了した共通データに前記新たなデータ
を上書きするバッファ管理手段と、を備えたため、バッ
ファを介したアクセスを高速に行うことができる。
【0080】また、前記バッファ管理手段は、前記バッ
ファ記憶手段に記憶された前記複数の共通データ全てが
未処理の共通データであり、かつ、空き記憶領域がない
場合には、前記バッファ記憶手段への書き込みを停止す
るため、複数の処理要求に共有されるデータが処理され
ずに上書きされることを防止することができる。
【0081】また、データを要求する第1の処理要求及
びこの第1の処理要求よりも少ない量のデータを要求す
る第2の処理要求を受け付け、前記第1及び第2の処理
要求でそれぞれ要求されたデータのデータ量に基づい
て、前記第1及び第2の処理要求のうちデータ量が少な
い第2の処理要求の優先順位を高く設定し、この第2の
処理要求と比べてデータ量が多い第1の処理要求の優先
順位を前記第2の処理要求よりも低い優先順位と決定す
る優先順位決定手段と、前記優先順位に基づいて、優先
順位の高い処理要求のデータを優先的に記憶装置から読
み取る読み取り手段と、を備えたため、バッファを介し
たアクセスを高速に行うことができる。
【0082】また、前記優先順位決定手段は、予め定め
られたデータ量及び前記第1の処理要求にかかるデータ
量に基づき、前記第1の処理要求の優先順位を決定し、
前記予め定められたデータ量及び前記第2の処理要求に
かかるデータ量に基づき、前記第2の処理要求の優先順
位を決定するため、処理要求をクラスで管理することが
でき、同一クラス内での実行順序が頻繁に変わることを
抑制し、レスポンスが遅れることを抑制することができ
る。
【0083】また、前記優先順位決定手段は、前記読み
取り手段が前記第1の処理要求の読み取りを行っている
間に、前記第2の処理要求を後から受け付けた場合、前
記優先順位を決定し直し、前記読み取り手段は、前記優
先順位決定手段が決定し直した優先順位に基づき、前記
第1の処理要求に要求されたデータの読み取りを中断
し、前記第2の処理要求に要求されたデータを読み取る
とともに、前記第2の処理要求に要求されたデータの読
み取りが終了した後に、前記第1の処理要求の読み取り
を再開するため、バッファを介したアクセスをより高速
に行うことができる。
【0084】また、前記第1の処理要求と前記第2の処
理要求は、それぞれ異なるファイルをアクセスする要求
であり、前記読み取り手段は、前記第1の処理要求にか
かるファイルと、前記第2の処理要求にかかるファイル
とを前記優先順位に基づいて読み取るため、バッファを
介したファイルアクセスを高速に行うことができる。
【0085】また、この発明のコンピュータに実行させ
るためのプログラムを記録した記録媒体においては、記
憶装置上の複数のデータを要求する処理要求を受け付け
る受け付けステップと、前記記憶装置から読み込んだデ
ータを一時的に記憶するバッファ記憶手段に、前記処理
要求に要求されたデータと一致するデータが記憶されて
いるかを判別する判別ステップと、前記判別ステップに
よる判別結果に基づき、前記一致するデータを前記バッ
ファ記憶手段から読み取る第1のリードステップと、前
記第1のリードステップが終了した後に、前記処理要求
に要求された複数のデータのうちの読み取っていないデ
ータを前記記憶装置から前記バッファ記憶手段に読み込
む第2のリードステップと、前記第2のリードステップ
で読み込まれたデータを前記バッファ記憶手段から読み
取る第3のリードステップと、を備えたため、バッファ
を介したアクセスを高速に行うことができる。
【0086】また、前記第1のリードステップと第2の
リードステップの間に処理が開始され、前記第1のリー
ドステップで読み取られたデータを前記処理要求を依頼
してきた要求元へ送信する第1の送信ステップと、前記
第3のリードステップで読み取られたデータを前記依頼
元へ送信する第2の送信ステップと、をさらに備えたた
め、要求順序に関係なく送信できるものから高速にデー
タを送信することができる。
【0087】また、複数の処理要求を受け付ける受け付
けステップと、前記複数の処理要求に共通する共通デー
タを記憶装置から読み取り、データを一時的に記憶する
バッファ記憶手段に記憶させる第1の記憶ステップと、
前記複数の処理要求のうちの1つの処理要求を処理する
第1のタスクが前記第1の記憶ステップで記憶させた共
通データを前記バッファ記憶手段から読み取る第4のリ
ードステップと、前記複数の処理要求のうちの1つの処
理要求を処理する第2のタスクが前記第1の記憶ステッ
プで記憶させた共通データを前記バッファ記憶手段から
読み取る第5のリードステップと、前記第1の記憶ステ
ップ終了後に実行され、前記第4及び第5のリードステ
ップが終了したか否かを検知し、終了している場合に、
前記記憶装置からデータを読み取り、前記バッファ記憶
手段の前記共通データが記憶されている領域に前記記憶
装置から読み取ったデータを上書きし、終了していない
場合に、上書きを一時停止する第6のリードステップ
と、を備えたため、バッファを介したアクセスを高速に
行うことができる。
【0088】また、前記受け付けステップは、前記複数
の処理要求のうちの1つの処理要求として、第1の処理
要求を受け付ける第1の受け付けステップと、この第1
の受け付けステップで受け付けた第1の処理要求にかか
るデータの読み取りを要求する第1の要求ステップと、
前記第1の受け付けステップより後に実行され、前記複
数の処理要求のうちの1つの処理要求として、第2の処
理要求を受け付ける第2の受け付けステップと、前記第
2の受け付けステップで受け付けた第2の処理要求にか
かる複数のデータのうち、前記第1の処理要求にかかる
データと一致しないデータの読み取りを要求する第2の
要求ステップと、を備え、前記第6のリードステップ
は、前記第1及び第2の要求ステップで要求されたデー
タを前記記憶装置から前記バッファへ読み取るため、バ
ッファが複数の処理要求間で有効に活用され、バッファ
を介したアクセスを高速に行うことができる。
【0089】また、データを要求する第1の処理要求を
受け付ける第1の受け付けステップと、前記第1の処理
要求にかかるデータをディスク装置からバッファ記憶手
段へ読み取る第7のリードステップと、前記第7のリー
ドステップの実行中に、データを要求する第2の処理要
求を受け付ける第2の受け付けステップと、前記第2の
受け付けステップの後に実行され、前記第1の処理要求
にかかるデータ量と前記第2の処理要求にかかるデータ
量の大きさを比較する比較ステップと、前記比較ステッ
プの比較結果に基づき、前記第2の処理要求にかかるデ
ータ量が前記第1の処理要求にかかるデータ量よりも小
さい場合に、前記第7のリードステップを中断し、前記
第2の処理要求にかかるデータを前記ディスク装置から
読み取って、前記第2の処理要求の要求元へ送信する第
8のリードステップと、前記第8のリードステップが終
了した後に実行され、中断していた前記第7のリードス
テップの実行を再開する第9のリードステップと、を備
えたため、バッファを介したアクセスを高速に行うこと
ができる。
【0090】また、前記第2の処理要求は、複数のファ
イルへのアクセスを要求する処理要求であり、前記比較
ステップは、前記第1の処理要求にかかるファイル及び
前記第2の処理要求にかかる複数のファイルをファイル
サイズの小さい順にアクセス順序を並び替え、前記第8
のリードステップは、前記アクセス順序に従って、前記
第2の処理要求にかかる複数のファイルを順番に前記デ
ィスク装置から前記バッファ記憶手段に読み取るととも
に、読み取ったファイルのデータを前記要求元へ送信
し、前記第9のリードステップは、前記第8のリードス
テップが終了する前であっても、前記第8のリードステ
ップが前記第1の処理要求と共通するファイルへのアク
セスを行う場合には、前記バッファ記憶手段から前記共
通するファイルのデータを読み取るため、1つの処理要
求についての複数のファイルについても、処理が早期に
開始できるファイルから先に読み取ることができる。
【0091】また、前記第8のリードステップは、前記
共通するファイルの複数のブロックのうち、前記第1の
処理要求を処理するタスクが未処理のブロックを前記デ
ィスク装置から前記バッファ記憶手段へ優先的に読み取
り、その後に、前記第2の処理要求に対して未処理とな
っているブロックを前記ディスク装置から前記バッファ
記憶手段へ読み取るため、優先順位が低い処理要求も早
期に処理を開始することができる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1におけるデータベー
スシステムの機能ブロック図である。
【図2】 この発明の実施の形態1におけるデータベー
スシステムの機能ブロック図である。
【図3】 この発明の実施の形態1における未処理ブロ
ック番号リストを示すメモリマップである。
【図4】 この発明の実施の形態1における読み取り処
理を説明するフローチャートである。
【図5】 この発明の実施の形態1における読み取り処
理を説明するシーケンス図である。
【図6】 この発明の実施の形態2における読み取り処
理を説明するフローチャートである。
【図7】 この発明の実施の形態2における先読みキュ
ーを示すメモリマップである。
【図8】 この発明の実施の形態2における先読みキュ
ーポインタリストを示すメモリマップである。
【図9】 この発明の実施の形態2における先読み要求
キューを示すメモリマップである。
【図10】 この発明の実施の形態2における先読み要
求処理を説明するフローチャートである。
【図11】 この発明の実施の形態2における先読み処
理を説明するフローチャートである。
【図12】 この発明の実施の形態3における先読み要
求処理を説明するフローチャートである。
【図13】 この発明の実施の形態3における先読み要
求処理を説明するフローチャートである。
【図14】 この発明の実施の形態3における読み取り
処理を説明するシーケンス図である。
【図15】 この発明の実施の形態3における読み取り
処理を説明するシーケンス図である。
【図16】 従来の技術におけるデータベースシステム
を示す機能ブロック図である。
【図17】 従来の技術における読み取り処理を示すシ
ーケンス図である。
【符号の説明】
1a、1b 端末、 2 データベースシステム、 3
a、3b アクセス回線、 2a CPU、 2b L
ANインタフェース、 2c ディスクインターフェー
ス、 2d メインメモリ、 4a、4b 問合せ処理
タスク、 6ディスク装置、 51a、51b 未処理
ブロック番号リスト、 52 未処理ブロック番号リス
ト管理モジュール、53 ディスクバッファ、 54
ディスクバッファ管理モジュール、 55 ブロック処
理順序決定モジュール、 59ファイルバッファ管理モ
ジュール、 71 ディスク入出力制御モジュール、7
2 先読み要求キュー、 73 先読み制御モジュー
ル。

Claims (16)

    (57)【特許請求の範囲】
  1. 【請求項1】 記憶装置から読み込んだ複数のデータを
    一時的に記憶するバッファ記憶手段と、 前記記憶装置上の複数のデータを要求する処理要求か
    ら、この処理要求に要求されている複数のデータのうち
    前記バッファ記憶手段に記憶されているデータと一致す
    るデータを検出し、一致したデータと前記処理要求に要
    求されている残りのデータとの読み込み順位を、前記一
    致したデータが先、前記残りのデータが後とする順位決
    定手段と、 この順位決定手段が決定した読み込み順位に従って、前
    記残りのデータを前記記憶装置から前記バッファ記憶手
    段に読み込む前に、前記一致したデータを前記バッファ
    記憶手段から読み出す読み取り手段と、 を備えた情報処理装置。
  2. 【請求項2】 前記記憶装置は、ディスク装置であり、 前記読み取り手段は、前記一致したデータを読み取った
    後に、前記残りのデータを前記ディスク装置から前記バ
    ッファ記憶手段に読み込み、 前記読み取り手段により前記バッファ記憶手段から読み
    取られた前記一致したデータを送信した後に、前記残り
    のデータを送信する送信手段を備えたことを特徴とする
    請求項1に記載の情報処理装置。
  3. 【請求項3】 記憶領域が複数のブロックに区分された
    ディスク装置と、 前記ディスク装置から読み出した複数のブロックを記憶
    するバッファ記憶手段と、 前記ディスク装置に記憶された複数のデータを要求する
    第1の処理要求を受け付け、この第1の処理要求に基づ
    いて、この第1の処理要求に要求された複数のデータが
    格納された複数のブロックを検出し、これらの検出した
    複数のブロックのデータを前記バッファ記憶手段から読
    み取る第1の処理手段と、 前記ディスク装置に記憶された複数のデータを要求する
    第2の処理要求を受け付け、この第2の処理要求に基づ
    いて、この第2の処理要求に要求された複数のデータが
    格納された複数のブロックを検出し、これらの検出した
    複数のブロックのデータを前記バッファ記憶手段から読
    み取る第2の処理手段と、 前記バッファ記憶手段に記憶された複数のブロックのう
    ち、前記第1の処理要求及び前記第2の処理要求に共通
    するブロックを検出する検出手段と、 前記検出手段によって検出された前記共通するブロック
    に含まれるデータを前記バッファ記憶手段から消去する
    場合には、前記第1の処理手段及び第2の処理手段の両
    者により、消去しようとするデータが読み出されるまで
    待機してから消去するバッファ管理手段とを備えた情報
    処理装置。
  4. 【請求項4】 前記バッファ管理手段は、前記第1の処
    理要求が検出した複数のブロックのデータ及び外部から
    受け取った読み取り要求に指定されたブロックのデータ
    を前記ディスク装置から読み取り、読み取ったデータを
    前記バッファ記憶手段へ記憶させる先読み手段を備え、 前記検出手段は、前記第2の処理手段が検出した複数の
    ブロックのうち、前記共通するブロックを指定せず、前
    記第1の処理要求にかかるブロックと共通しないブロッ
    クを指定して前記読み取り要求として前記先読み手段へ
    出力することを特徴とする請求項3に記載の情報処理装
    置。
  5. 【請求項5】 前記バッファ記憶手段は、前記第1の処
    理要求及び第2の処理要求に要求された複数のデータを
    先入れ先出し方式の共有されたキューで記憶し、 前記先読み手段は、前記ディスク装置から読み取った前
    記共通のデータを前記キューに記憶し、 前記第1の処理手段は、前記キューの記憶領域内の1つ
    の場所を示す第1のポインタに基づいて前記第1の処理
    要求に要求されたデータを読み取り、 前記第2の処理手段は、前記キューの記憶領域内の1つ
    の場所を示す第2のポインタに基づいて前記第1の処理
    要求に要求されたデータを読み取ることを特徴とする請
    求項4に記載の情報処理装置。
  6. 【請求項6】 複数の処理要求に共通する複数の共通デ
    ータを一時的に記憶するバッファ記憶手段と、 記憶装置から新たなデータを読み取る読み取り手段と、 前記バッファ記憶手段に記憶された前記複数の共通デー
    タのうち、前記複数の処理要求のうち少なくとも1つの
    処理要求に対して処理が終了していない未処理の共通デ
    ータに前記新たなデータを上書きせず、前記複数の処理
    要求に対して処理が終了した共通データに前記新たなデ
    ータを上書きするバッファ管理手段と、を備え、前記バッファ管理手段は、前記バッファ記憶手段に記憶
    された前記複数の共通データ全てが未処理の共通データ
    であり、かつ、空き記憶領域がない場合には、前記バッ
    ファ記憶手段への書き込みを停止することを特徴とする
    情報処理装置。
  7. 【請求項7】 データを要求する第1の処理要求及びこ
    の第1の処理要求よりも少ない量のデータを要求する第
    2の処理要求を受け付け、前記第1及び第2の処理要求
    でそれぞれ要求されたデータのデータ量に基づいて、前
    記第1及び第2の処理要求のうちデータ量が少ない第2
    の処理要求の優先順位を高く設定し、この第2の処理要
    求と比べてデータ量が多い第1の処理要求の優先順位を
    前記第2の処理要求よりも低い優先順位と決定する優先
    順位決定手段と、 前記優先順位に基づいて、優先順位の高い処理要求のデ
    ータを優先的に記憶装置から読み取る読み取り手段と、 を備え 前記優先順位決定手段は、前記読み取り手段が前記第1
    の処理要求の読み取りを行っている間に、前記第2の処
    理要求を後から受け付けた場合、前記優先順位を決定し
    直し、 前記読み取り手段は、前記優先順位決定手段が決定し直
    した優先順位に基づき、前記第1の処理要求に要求され
    たデータの読み取りを中断し、前記第2の処理要求に要
    求されたデータを読み取るとともに、前記第2の処理要
    求に要求されたデータの読み取りが終了した後に、前記
    第1の処理要求の読み取りを再開することを特徴とする
    情報処理装置。
  8. 【請求項8】 前記優先順位決定手段は、予め定められ
    たデータ量及び前記第1の処理要求にかかるデータ量に
    基づき、前記第1の処理要求の優先順位を決定し、前記
    予め定められたデータ量及び前記第2の処理要求にかか
    るデータ量に基づき、前記第2の処理要求の優先順位を
    決定することを特徴とする請求項に記載の情報処理装
    置。
  9. 【請求項9】 前記第1の処理要求と前記第2の処理要
    求は、それぞれ異なるファイルをアクセスする要求であ
    り、 前記読み取り手段は、前記第1の処理要求にかかるファ
    イルと、前記第2の処理要求にかかるファイルとを前記
    優先順位に基づいて読み取ることを特徴とする請求項
    又は8に記載の情報処理装置。
  10. 【請求項10】 記憶装置上の複数のデータを要求する
    処理要求を受け付ける受け付けステップと、 前記記憶装置から読み込んだデータを一時的に記憶する
    バッファ記憶手段に、前記処理要求に要求されたデータ
    と一致するデータが記憶されているかを判別する判別ス
    テップと、 前記判別ステップによる判別結果に基づき、前記一致す
    るデータを前記バッファ記憶手段から読み取る第1のリ
    ードステップと、 前記第1のリードステップが終了した後に、前記処理要
    求に要求された複数のデータのうちの読み取っていない
    データを前記記憶装置から前記バッファ記憶手段に読み
    込む第2のリードステップと、 前記第2のリードステップで読み込まれたデータを前記
    バッファ記憶手段から読み取る第3のリードステップ
    と、 をコンピュータに実行させるためのプログラムを記録し
    た記録媒体。
  11. 【請求項11】 前記第1のリードステップと第2のリ
    ードステップの間に処理が開始され、前記第1のリード
    ステップで読み取られたデータを前記処理要求を依頼し
    てきた要求元へ送信する第1の送信ステップと、 前記第3のリードステップで読み取られたデータを前記
    依頼元へ送信する第2の送信ステップと、 をさらに備えたことを特徴とする請求項10に記載のコ
    ンピュータに実行させるためのプログラムを記録した記
    録媒体。
  12. 【請求項12】 複数の処理要求を受け付ける受け付け
    ステップと、 前記複数の処理要求に共通する共通データを記憶装置か
    ら読み取り、データを一時的に記憶するバッファ記憶手
    段に記憶させる第1の記憶ステップと、 前記複数の処理要求のうちの1つの処理要求を処理する
    第1のタスクが前記第1の記憶ステップで記憶させた共
    通データを前記バッファ記憶手段から読み取る第4のリ
    ードステップと、 前記複数の処理要求のうちの1つの処理要求を処理する
    第2のタスクが前記第1の記憶ステップで記憶させた共
    通データを前記バッファ記憶手段から読み取る第5のリ
    ードステップと前記第1の記憶ステップ終了後に実行さ
    れ、前記第4及び第5のリードステップが終了したか否
    かを検知し、終了している場合に、前記記憶装置からデ
    ータを読み取り、前記バッファ記憶手段の前記共通デー
    タが記憶されている領域に前記記憶装置から読み取った
    データを上書きし、終了していない場合に、上書きを一
    時停止する第6のリードステップと、 をコンピュータに実行させるためのプログラムを記録し
    た記録媒体。
  13. 【請求項13】 前記受け付けステップは、 前記複数の処理要求のうちの1つの処理要求として、第
    1の処理要求を受け付ける第1の受け付けステップと、 この第1の受け付けステップで受け付けた第1の処理要
    求にかかるデータの読み取りを要求する第1の要求ステ
    ップと、 前記第1の受け付けステップより後に実行され、前記複
    数の処理要求のうちの1つの処理要求として、第2の処
    理要求を受け付ける第2の受け付けステップと、 前記第2の受け付けステップで受け付けた第2の処理要
    求にかかる複数のデータのうち、前記第1の処理要求に
    かかるデータと一致しないデータの読み取りを要求する
    第2の要求ステップと、 を備え、 前記第6のリードステップは、前記第1及び第2の要求
    ステップで要求されたデータを前記記憶装置から前記バ
    ッファ記憶手段へ読み取ることを特徴とする請求項12
    に記載のコンピュータに実行させるためのプログラムを
    記録した記録媒体。
  14. 【請求項14】 データを要求する第1の処理要求を受
    け付ける第1の受け付けステップと、 前記第1の処理要求にかかるデータをディスク装置から
    バッファ記憶手段へ読み取る第7のリードステップと、 前記第7のリードステップの実行中に、データを要求す
    る第2の処理要求を受け付ける第2の受け付けステップ
    と、 前記第2の受け付けステップの後に実行され、前記第1
    の処理要求にかかるデータ量と前記第2の処理要求にか
    かるデータ量の大きさを比較する比較ステップと、 前記比較ステップの比較結果に基づき、前記第2の処理
    要求にかかるデータ量が前記第1の処理要求にかかるデ
    ータ量よりも小さい場合に、前記第7のリードステップ
    を中断し、前記第2の処理要求にかかるデータを前記デ
    ィスク装置から読み取って、前記第2の処理要求の要求
    元へ送信する第8のリードステップと、 前記第8のリードステップが終了した後に実行され、中
    断していた前記第7のリードステップの実行を再開する
    第9のリードステップと、 をコンピュータに実行させるためのプログラムを記録し
    た記録媒体。
  15. 【請求項15】 前記第2の処理要求は、複数のファイ
    ルへのアクセスを要求する処理要求であり、 前記比較ステップは、前記第1の処理要求にかかるファ
    イル及び前記第2の処理要求にかかる複数のファイルを
    ファイルサイズの小さい順にアクセス順序を並び替え、 前記第8のリードステップは、前記アクセス順序に従っ
    て、前記第2の処理要求にかかる複数のファイルを順番
    に前記ディスク装置から前記バッファ記憶手段に読み取
    るとともに、読み取ったファイルのデータを前記要求元
    へ送信し、 前記第9のリードステップは、前記第8のリードステッ
    プが終了する前であっても、前記第8のリードステップ
    が前記第1の処理要求と共通するファイルへのアクセス
    を行う場合には、前記バッファ記憶手段から前記共通す
    るファイルのデータを読み取ることを特徴とする請求項
    14に記載のコンピュータに実行させるためのプログラ
    ムを記録した記録媒体。
  16. 【請求項16】 前記第8のリードステップは、前記共
    通するファイルの複数のブロックのうち、前記第1の処
    理要求を処理するタスクが未処理のブロックを前記ディ
    スク装置から前記バッファ記憶手段へ優先的に読み取
    り、その後に、前記第2の処理要求に対して未処理とな
    っているブロックを前記ディスク装置から前記バッファ
    記憶手段へ読み取ることを特徴とする請求項15に記載
    のコンピュータに実行させるためのプログラムを記録し
    た記録媒体。
JP19119299A 1999-03-30 1999-07-06 情報処理装置並びにコンピュータに実行させるためのプログラムを記録した記録媒体 Expired - Fee Related JP3324572B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP19119299A JP3324572B2 (ja) 1999-03-30 1999-07-06 情報処理装置並びにコンピュータに実行させるためのプログラムを記録した記録媒体
CA002281856A CA2281856A1 (en) 1999-03-30 1999-09-10 Information processing system and recording medium to facilitate reading data from a large-capacity storage unit through a data buffer
US09/407,723 US6457097B1 (en) 1999-03-30 1999-09-28 Information processing system and recording medium recording a program to cause a computer to execute steps
US10/196,184 US6557088B2 (en) 1999-03-30 2002-07-17 Information processing system and recording medium recording a program to cause a computer to execute steps

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP11-87627 1999-03-30
JP8762799 1999-03-30
JP19119299A JP3324572B2 (ja) 1999-03-30 1999-07-06 情報処理装置並びにコンピュータに実行させるためのプログラムを記録した記録媒体

Publications (2)

Publication Number Publication Date
JP2000347982A JP2000347982A (ja) 2000-12-15
JP3324572B2 true JP3324572B2 (ja) 2002-09-17

Family

ID=26428878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19119299A Expired - Fee Related JP3324572B2 (ja) 1999-03-30 1999-07-06 情報処理装置並びにコンピュータに実行させるためのプログラムを記録した記録媒体

Country Status (3)

Country Link
US (2) US6457097B1 (ja)
JP (1) JP3324572B2 (ja)
CA (1) CA2281856A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60040690D1 (de) * 2000-06-07 2008-12-11 Mitsubishi Electric Corp Navigationsvorrichtung
US7218977B2 (en) * 2000-09-08 2007-05-15 Diamondware, Ltd. Software and process for play-cursor calculation
US6647441B1 (en) * 2000-09-15 2003-11-11 Hewlett-Packard Development Company, L.P. Method of maximizing servicing capability of large numbers of I/O descriptors
JP2002196960A (ja) * 2000-12-25 2002-07-12 Hitachi Ltd ファイル入出力制御方法、ファイル管理サーバ及び並列計算機システム
US6732194B1 (en) * 2001-06-27 2004-05-04 Emc Corporation Method and apparatus for multi-sequential data operations
US7836222B2 (en) * 2003-06-26 2010-11-16 International Business Machines Corporation System and method for tracking messages between a processing unit and an external device
US7577804B2 (en) * 2004-10-06 2009-08-18 International Business Machines Corporation Detecting data integrity
US7702742B2 (en) * 2005-01-18 2010-04-20 Fortinet, Inc. Mechanism for enabling memory transactions to be conducted across a lossy network
US20060218382A1 (en) * 2005-03-11 2006-09-28 Inventec Corporation Data processing disorder preventing method
US8047075B2 (en) * 2007-06-21 2011-11-01 Invensense, Inc. Vertically integrated 3-axis MEMS accelerometer with electronics
JP5171602B2 (ja) * 2008-12-25 2013-03-27 京セラドキュメントソリューションズ株式会社 Raidドライバ及びこれを備えた電子機器並びにraidに対するアクセス要求調停方法
US9043555B1 (en) * 2009-02-25 2015-05-26 Netapp, Inc. Single instance buffer cache method and system
JP2011097421A (ja) * 2009-10-30 2011-05-12 Panasonic Corp 通信端末装置及びコンテンツデータ受信方法
CN102096722B (zh) * 2011-03-21 2013-03-27 华为数字技术(成都)有限公司 文件存储方法和装置
JP5564019B2 (ja) * 2011-08-26 2014-07-30 株式会社東芝 ファイル転送装置およびその方法
JP5098120B2 (ja) * 2011-10-12 2012-12-12 株式会社日立製作所 計算機システム及びデータベース管理システムプログラム
US8898408B2 (en) * 2011-12-12 2014-11-25 Dell Products L.P. Memory controller-independent memory mirroring
WO2014132246A1 (en) * 2013-02-28 2014-09-04 Safend Ltd. System and method for conflict-free cloud storage encryption
JP6075571B2 (ja) 2014-10-31 2017-02-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 階層型ストレージ・システムでのファイルの移動方法
CN109542361B (zh) * 2018-12-04 2022-06-07 郑州云海信息技术有限公司 一种分布式存储系统文件读取方法、系统及相关装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4642758A (en) * 1984-07-16 1987-02-10 At&T Bell Laboratories File transfer scheduling arrangement
US5644786A (en) * 1990-11-08 1997-07-01 At&T Global Information Solutions Company Method for scheduling the execution of disk I/O operations
JP2629648B2 (ja) 1995-05-12 1997-07-09 日本電気株式会社 データ転送システム
JP2853608B2 (ja) 1995-05-30 1999-02-03 日本電気株式会社 並列処理システムのファイルアクセス制御方式
US5752193A (en) * 1995-09-01 1998-05-12 Motorola, Inc. Method and apparatus for communicating in a wireless communication system
US6038601A (en) * 1997-07-21 2000-03-14 Tibco, Inc. Method and apparatus for storing and delivering documents on the internet
FR2778258A1 (fr) * 1998-04-29 1999-11-05 Texas Instruments France Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces
US6393506B1 (en) * 1999-06-15 2002-05-21 National Semiconductor Corporation Virtual channel bus and system architecture

Also Published As

Publication number Publication date
JP2000347982A (ja) 2000-12-15
US6557088B2 (en) 2003-04-29
US20020174294A1 (en) 2002-11-21
US6457097B1 (en) 2002-09-24
CA2281856A1 (en) 2000-09-30

Similar Documents

Publication Publication Date Title
JP3324572B2 (ja) 情報処理装置並びにコンピュータに実行させるためのプログラムを記録した記録媒体
US7366835B2 (en) Data access responding system, storage system, client apparatus, cache apparatus, and method for accessing data access responding system
US7403960B2 (en) Method and system for creating snapshots by condition
US6047356A (en) Method of dynamically allocating network node memory's partitions for caching distributed files
US5933847A (en) Selecting erase method based on type of power supply for flash EEPROM
US6449696B2 (en) Device and method for input/output control of a computer system for efficient prefetching of data based on lists of data read requests for different computers and time between access requests
US6598129B2 (en) Storage device and method for data sharing
JP4116413B2 (ja) プリフェッチアプライアンスサーバ
US6505273B2 (en) Disk control device and method processing variable-block and fixed-block accesses from host devices
US4593354A (en) Disk cache system
US5893097A (en) Database management system and method utilizing a shared memory
US20060168362A1 (en) Control method for storage device controller system, and storage device controller system
US20070220205A1 (en) Nas with worm function
JP4036992B2 (ja) キャッシュモジュール間でデータを動的に管理するキャッシュ制御装置および方法
JPH0773085A (ja) データ処理システムおよびメタデータの先読み方法
CA2433254A1 (en) System and method for warm shutdown and restart of a buffer pool
KR100389104B1 (ko) 기록 커맨드를 수행하기 위한 방법 및 직접 액세스 저장장치
JPH07239808A (ja) 分散データ管理方式
US6487632B1 (en) Emulation technique for variable-length disk system to access data in a fixed-length disk system
US7865514B2 (en) Computer system and database management method using the same
JP4076316B2 (ja) 不揮発性キャッシュメモリを用いたデータ書き込みシステム
JPH0997206A (ja) フラッシュrom管理方法及び装置及びコンピュータ制御装置
JPH10214217A (ja) ネットワークキャッシュ装置およびネットワークキャッシュ方法
KR100825724B1 (ko) 직접접속방식을 적용하는 고속 전송이 가능한PMEM(PCI Memory)를 이용한 객체 기반저장시스템 및 그 시스템에서의 전송 방법
JP2787107B2 (ja) バッファ制御方式及び装置

Legal Events

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

Free format text: PAYMENT UNTIL: 20070705

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080705

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090705

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100705

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100705

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110705

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110705

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120705

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120705

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130705

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees