JP3929269B2 - Data processing method and apparatus - Google Patents

Data processing method and apparatus Download PDF

Info

Publication number
JP3929269B2
JP3929269B2 JP2001284215A JP2001284215A JP3929269B2 JP 3929269 B2 JP3929269 B2 JP 3929269B2 JP 2001284215 A JP2001284215 A JP 2001284215A JP 2001284215 A JP2001284215 A JP 2001284215A JP 3929269 B2 JP3929269 B2 JP 3929269B2
Authority
JP
Japan
Prior art keywords
record
sub
input
output
search
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
JP2001284215A
Other languages
Japanese (ja)
Other versions
JP2002108664A (en
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 Software Engineering Co Ltd
Hitachi Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
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 Software Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2001284215A priority Critical patent/JP3929269B2/en
Publication of JP2002108664A publication Critical patent/JP2002108664A/en
Application granted granted Critical
Publication of JP3929269B2 publication Critical patent/JP3929269B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は大容量でかつ長大データを格納する必要があるファイル管理システム全般、特に文字テキスト、図形、画像データを扱うマルチメディアデータベースや地図情報データベースおよび知識データベースを管理するデータ処理方法および処理装置に関するものである。
【0002】
【従来の技術】
文字テキスト,図形,画像データ等の長大データ(以下、単に「データ」という)を扱うシステムにおいては、データの論理レコード長が増大し、データを格納する外部記憶装置とデータを処理する中央処理装置内の主記憶装置中に設定された入出力バッファ間の転送データ量が膨大になるため、データ転送速度の限界によってアクセス性能が得られなくなる。また、膨大なレコードの更新,追加,削除を繰り返すことにより、ファイル内に無効領域が散在してファイルのスペース効率が悪化する。
これに対しては、例えば、特開平1-106217号公報に示されるように、複数の二次記憶装置中に独立したファイルを作成するのではなく、それら全体で一つのファイルを構成する分割ファイルを作成し、複数の分割ファイルの一つに他の分割ファイルに関するファイル情報を格納しておき、データ格納,読み出し要求の際に、上述のファイル情報を読み出してそのファイル情報が示す各二次記憶装置内の各分割ファイルに並列にデータを格納したり、各分割ファイルから並列にデータを読み出したりするデータ処理装置がある。この技術は、データ処理並列化によるデータのアクセス速度の高速化が図れるとともに、分割ファイルの所在管理を利用者が意識しないで済むという利点がある。
また、これとは別に、特公平2-52305号公報に示されるように、図面等の原稿を画像ファイルとして格納する画像ファイル装置において、入力された原稿を所定の数に分割した画像ユニットとして分割格納し、原稿に変更が生じた場合には内容に変更があった画像ユニットだけを格納し直すという画像データの更新方法がある。この技術では、変更が生じた画像全体を新たに格納し直さないので、画像ファイルの画像格納スペースを有効活用でき、また、修正前原稿と修正後原稿を比較してその相違を自動認識するため、修正原稿のどの部分が変更されているかを指示する必要がなく、オペレータの負荷を軽減できるという利点がある。
【0003】
【発明が解決しようとする課題】
上記従来技術では、常に、各分割ファイルのデータ処理をすべて並列に行うため、分割ファイルの一部データだけを単独処理するデータ操作や、必要となる入出力バッファの管理,分割ファイルへのデータ格納方式,可変長データ形式について配慮されておらず、以下のような問題がある。
すなわち、データ転送の並列化を期待してデータを複数個の分割ファイルに分割して格納する方式では、データの並列転送の効果を出すために主記憶装置中に大量の入出力バッファを用意しなければならない。文字テキスト,図形,画像等のマルチメディアデータは、レコード長が数100KB〜数100MBになるため、1レコードの入出力に要する主記憶容量が増大する。このため、すべてのレコード操作要求をレコード単位に行うと、複数のレコード操作要求を多重処理する際に主記憶容量の制約を受け、入出力バッファの空き待ちによるタイムロスが発生して、システム全体のスループットが低下する。
また、レコードの検索命令において、検索条件判定処理を主記憶装置中の入出力バッファにデータを読み込んで行う際に、検索条件の判定はデータの一部の項目でしか行わないにもかかわらず、レコードを構成する全データを読み込んで行うと、条件ヒットしないケースにおいては検索条件に関係のない無駄なデータの読み込みが発生し、入出力バッファも無駄に占有してしまう。
更に、データの更新をレコード単位で行うと、データを分割格納して並列に入出力しても、更新されていない部分については無駄な入出力となり、入出力バッファも無駄に占有してしまう。また、前記画像ファイル装置においては、分割格納された画像のうち、実際に変更のあった画像ユニットだけを認識して格納し直すために、修正原稿と修正前データの入力および相違比較が必要になり、データが更新されていない画像ユニットの無駄な入力と入出力バッファの無駄な占有が同様に発生する。
【0004】
一方、レコードの複数ファイルへの分割格納においては、分割された各サブレコードの長さを同一にしないと次の問題が発生する。
すなわち、分割された各サブレコードの長さを変えると、各分割ファイルの容量が変わり、各サブレコードが格納されている、ファイル内相対バイトアドレスまたは物理アドレス等の格納アドレスも、各分割ファイル毎に変わってしまう。このため、各サブレコード実現値中に対応する次のサブレコード実現値の格納アドレスを持つ等して、一つのレコードを構成する各サブレコードの関連付けを行わないと、任意のレコードのランダムアクセスができなくなる。一方、こうしたサブレコード間の関連付けを行うと、レコード格納のキーとなる項目を含むサブレコード以外は、サブレコードの格納アドレスを持つ直前のサブレコードを入力しないと当該サブレコードの格納アドレスがわからないため、各サブレコードの並列入力ができなくなる。
更に、レコードが可変長形式の場合には次の問題がある。
すなわち、最大レコード長で複数ファイルへの分割格納をすると、レコード長の短いレコード実現値は後方の分割ファイルに格納すべきデータがなかったり、少なかったりする。このため、すべて無効領域または無効領域を多く持ったサブレコード実現値を発生させ、後方の分割ファイルのスペース効率が悪化する。
本発明は上記事情に鑑みてなされたもので、その目的とするところは、従来の技術における上述の如き問題を解消し、長大データの多数のデータ処理を、限られた入出力バッファ領域を用いた必要最小限の入出力処理で高速かつ効率良く行えるデータ処理方法および装置を提供することにある。
本発明の他の目的は、以下の説明により、明らかにされる。
【0005】
【課題を解決するための手段】
本発明の上述の目的は、管理情報を格納するためのメモリと複数の記憶装置とを備え、論理レコードの固定部と該論理レコードの可変部とを含むレコードを、前記複数の記憶装置に分割して格納するデータ処理装置におけるデータ処理方法において、前記論理レコードの固定部を、少なくとも1以上の固定長のサブレコードに分割して、前記記憶装置に設けられた複数の固定長の物理的な連続領域に格納し、前記論理レコードの可変部を、可変長のサブレコードとして、前記記憶装置に設けられた可変長の物理的な連続領域に格納し、前記固定長のサブレコードの前記記憶装置における格納場所を特定するための格納情報を前記メモリに記憶されたレコード管理テーブルに格納し、検索要求の入力に応じて該検索要求を解析し、該検索要求におけるレコード操作命令で指定されているレコードとレコード管理テーブルから、前記指定されたレコードの特定サブレコードが格納されている前記記憶装置を特定し、前記メモリに記憶されたレコード管理テーブルを参照して前記サブレコードの格納情報を取得して前記特定した記憶装置から前記特定サブレコードを取得し、該取得したサブレコードについて該検索要求に基づき検索処理を行うことを特徴とするデータ処理方法、および、管理情報を格納するためのメモリと複数の記憶装置とを備え、論理レコードの固定部と該論理レコードの可変部とを含むレコードを、前記複数の記憶装置に分割して格納するデータ処理装置において、前記論理レコードの固定部を、少なくとも1以上の固定長のサブレコードに分割して、前記記憶装置に設けられた複数の固定長の物理的な連続領域に格納する手段と、前記論理レコードの可変部を、可変長のサブレコードとして、前記記憶装置に設けられた可変長の物理的な連続領域に格納する手段と、前記固定長のサブレコードの前記記憶装置における格納場所を特定するための格納情報を前記メモリに記憶されたレコード管理テーブルに格納する手段と、検索要求の入力に応じて該検索要求を解析し、該検索要求におけるレコード操作命令で指定されているレコードとレコード管理テーブルから、前記指定されたレコードの特定サブレコードが格納されている前記記憶装置を特定し、前記メモリに記憶されたレコード管理テーブルを参照して前記サブレコードの格納情報を取得して前記特定した記憶装置から前記特定サブレコードを取得し、該取得したサブレコードについて該検索要求に基づき検索処理を行う手段とを有することを特徴とするデータ処理装置によって達成される。
【0006】
本発明に係るデータ処理方法においては、サブレコード単位に分割格納されたレコードの操作において、全サブレコードを並列に入出力することにより、レコード単位のデータ操作は実現できる。一方、要求されたデータ操作に応じて、必要となるサブレコードの数を最小限に限定すると、レコード単位に全サブレコード処理する場合に比べ、データ操作に要する入出力バッファ量や記憶装置への入出力回数を少なくすることができる。
また、本発明に係るデータ処理装置のファイル定義情報登録/参照手段では、レコードを分割した各サブレコードがどのファイルに対応しているかというファイル定義情報を登録簿に持ち、レコード操作命令の延長上で任意に参照できる。これにより、レコード操作命令実行時に全サブレコードの並列入出力も各サブレコードの個別入出力も可能となる。また、各サブレコードをどのファイルに格納するかを任意に選択できるため、例えば、特にアクセス頻度の高いサブレコードは高速入出力が可能な半導体記憶装置を用いる等、各サブレコードのアクセス特性に応じた外部記憶装置を選択することによりシステム全体のパフォーマンスを向上させることができる。
【0007】
更に、提供するレコード操作命令の操作単位が項目単位またはサブレコード単位の場合、サブレコード選択手段はファイル定義情報を基にレコード操作に必要な最小限のサブレコードを自動選択する。これにより、レコード単位に全サブレコードを常に操作する場合に比べ、実際に入出力するファイルの数も必要な入出力バッファ量も少なくできる。
更に、サブレコード単位入出力バッファ管理手段は限られた共通バッファプール領域からサブレコード長単位の入出力バッファを確保/解放できる。これにより、同じ入出力バッファ量で同時に処理できる複数のレコード操作命令を、レコード単位に全サブレコードを常に操作する場合に比べて多くすることができる。また、入出力バッファ中に残る入力済みデータも、サブレコード単位に管理されるため、アクセス頻度の高いサブレコードが入出力バッファ中に残る確率が高まり、所望のデータが入出力バッファ中でリードヒットする確率も高くなる。
更に、サブレコード単位並列入出力手段は、サブレコード単位の入出力バッファを用いて、外部記憶装置との間でサブレコード単位に独立した入出力を行うことができる。これにより、レコード中の全サブレコードまたは複数サブレコードの並列入出力も、特定のサブレコードの個別入出力も可能となり、レコード操作命令に応じた必要最小限の入出力を高速に行う手段が実現できる。
【0008】
【発明の実施の形態】
以下、本発明の実施例を図面に基づいて詳細に説明する。
図1は、本発明の一実施例に係るファイル管理システムの構成図である。レコード操作命令1およびデータ2をファイル管理システム10に与えると、外部記憶装置20に対するデータの検索,更新,削除,格納の各種データ処理を行う。また、ファイル定義パラメタ3をファイル管理システム10に与えると、ファイル定義情報登録簿30にファイル定義情報を登録する。
ファイル管理システム10は、レコード操作命令1の解析および実行を制御するレコード操作命令実行処理部12と、レコード操作命令実行処理部12からの呼出しに応じて、各種レコード操作を行うレコード検索処理部13,レコード更新処理部14,レコード削除処理部15,レコード格納処理部16と、各種レコード操作に実際に必要となるサブレコードを選択するサブレコード選択処理部17と、サブレコードの入出力に必要な入出力バッファを管理するサブレコード単位入出力バッファ管理処理部18と、外部記憶装置20との間でサブレコード単位のデータの入出力を行うサブレコード単位並列入出力処理部19と、ファイル定義パラメタ3を解析,編集してファイル定義情報登録簿30に登録し、レコード操作命令実行処理部12からの呼出しに応じて必要なファイル定義情報を参照できるファイル定義情報登録/参照処理部11とを備えている。
【0009】
レコード検索処理部13は、レコード更新処理部14およびレコード削除処理部15からも共通に呼びだされるサブレコード検索処理13aを含んでいる。また、サブレコード単位入出力バッファ管理処理部18は探索処理,返却処理,確保処理,解放処理の四つの処理に、サブレコード単位並列入出力処理部19は入力処理と出力処理の二つの処理に、ファイル定義情報登録/参照処理部11は参照処理と登録処理の二つの処理に、それぞれ、分かれる。
図2は、本実施例に係るファイル管理システムにおけるデータ格納方法の一例を示す図である。論理レコードデータ50は、サブレコード51,52,53,54に分割されて、並列入出力が可能な外部記憶装置21,22,23,24中の物理的な連続領域71,72,73,74に、それぞれ、格納される。物理的な連続領域71は、物理入出力の単位となる物理レコード80,81から成る。同様に、物理的な連続領域72,73,74は、それぞれ、物理レコード82,83、物理レコード84,85、物理レコード86,87,88から成る。
ここで、物理的な連続領域とは、例えば、磁気ディスク装置の1シリンダに当り、当該領域内の物理レコードの連続した入出力を機械的に高速に行える領域である。また、サブレコード51,52,53は、論理レコードの固定部であり、物理的な連続領域71,72,73は、物理的に同じ長さを持ち、同じ物理アドレスに格納される。
【0010】
サブレコード54は、論理レコードの可変部であり、また、物理的な連続領域74と物理的な連続領域71,72,73とは、物理的に同じ長さ,同じ物理アドレスとは限らない。このため、固定部の最終サブレコード53を格納した物理的な連続領域73の物理レコード85中に、可変部のサブレコード54を格納した物理的な連続領域74の物理レコード86の格納アドレスによるポインタ75を持ち、サブレコード間の対応を付けている。
論理レコードデータ60も同様に、サブレコード61,62,63,64に分割されて、並列入出力が可能な外部記憶装置21,22,23,24の中の物理的な連続領域91,92,93,94に、それぞれ、格納され、格納アドレスによるポインタ95により、固定部と可変部が対応付けられる。
図3は、本実施例に係るファイル管理システムにおけるレコード管理テーブルのデータ形式の一例を示す図である。レコード管理テーブル45は、レコードに関する情報を持つヘッダ部46と、サブレコードに関する情報を持つエントリ部47から成る。エントリ部47は、レコードを構成するサブレコード数分のエントリから成る配列形式である。
【0011】
図4は、本実施例のファイル定義情報登録/参照処理部11の処理手順を示すフローチャートである。
図5は、本実施例のレコード操作命令実行処理部12の処理手順を示すフローチャートである。
図6は、本実施例のレコード検索処理部13の処理手順を示すフローチャートである。
図7は、本実施例のレコード検索処理部13内のサブレコード検索処理の処理手順を示すフローチャートである。
図8は、本実施例のサブレコード選択処理部17の処理手順を示すフローチャートである。
図9〜図11は、本実施例のレコード更新処理部14の処理手順を示すフローチャートである。
図12は、本実施例のレコード削除処理部15の処理手順を示すフローチャートである。
図13および図14は、本実施例のレコード格納処理部16の処理手順を示すフローチャートである。
【0012】
図15は、本実施例のサブレコード単位入出力バッファ管理処理部18の探索処理の手順を示すフローチャートである。
図16,図17は、本実施例のサブレコード単位入出力バッファ管理処理部18の返却処理,確保処理,解放処理の手順を示すフローチャートである。
図18は、本実施例のサブレコード単位並列入出力処理部19の入力処理の手順を示すフローチャートである。
図19は、本実施例のサブレコード単位並列入出力処理部19の出力処理の手順を示すフローチャートである。
次に、図1に示した実施例の各処理部の動作を、図4から図19に示すフローチャートに基づいて、説明する。
まず、図4を用いて、ファイル定義情報登録/参照処理部11の動作を説明する。ファイル定義情報の登録を行う場合(ステップ 100)、ファイル定義パラメタ3として指定された、レコード名,固定長/可変長種別,レコード長/最大レコード長,サブレコード名,サブレコード長,サブレコード格納ファイル名等のファイル定義情報を入力し(ステップ 102)、ファイル定義情報登録簿30に、編集して出力する(ステップ 104)。
【0013】
また、ファイル定義情報の参照を行う場合には(ステップ 106)、ファイル定義情報登録簿30から指定されたレコード名の定義情報を入力して、要求元に返却する(ステップ 108)。それ以外の場合は、エラー処理をして(ステップ 110)、要求元にエラー報告を行う。
次に、図5を用いてレコード操作命令実行処理部12の動作を説明する。レコード操作命令1が入力されると、レコード操作命令実行処理部12は、レコード操作命令の受付けおよび解析を行い(ステップ 200)、エラーがあれば、エラー処理をして(ステップ 202と 230)、要求元にエラー報告を行う。
エラーがなければ、指定されたレコードのレコード管理テーブル45がメモリ中に作成済みかどうかチェックし(ステップ 204)、レコード管理テーブルがメモリ中から見つからなければ(ステップ 206)、ファイル定義情報登録/参照処理部11を参照要求で呼出し(ステップ 208)、ファイル定義情報を入力して、該レコードのレコード管理テーブル45をメモリ中に作成して、全サブレコードエントリの制御フラグを初期化する(ステップ 210)。
【0014】
また、上述のレコード管理テーブル45がメモリ中から見つかった場合には、レコード管理テーブル45の全サブレコードエントリの制御フラグの初期化だけを行う(ステップ 206と 212)。
指定されたレコード操作命令が検索命令の場合は、レコード検索処理部13を呼出し(ステップ 214と 216)、更新命令の場合は、レコード更新処理部14を呼出し(ステップ 218と 220)、削除命令の場合は、レコード削除処理部15を呼出し(ステップ 222と 224)、また、格納命令の場合は、レコード格納処理部16を呼び出す(ステップ 226と 228)。
それ以外の場合は、エラー処理をして(ステップ 230)、要求元にエラー報告を行う。
次に、図6を用いてレコード検索処理部13の動作を説明する。レコード検索処理部13は、指定されたレコード操作命令に検索条件があるかどうかを判定し(ステップ 300)、検索条件がなければ、サブレコード選択処理部17を検索条件指定なしで呼出し(ステップ 302)、また、検索条件があれば、サブレコード選択処理部17を検索条件指定ありで呼出して(ステップ 304)、検索が必要なサブレコードを決定する。
【0015】
検索条件のキー項目または直前に検索済みのレコードとの関連または先頭レコード格納位置により、検索対象レコードの格納アドレスを求める(ステップ 306)。次に、サブレコード検索処理13aを呼び出して(ステップ 308)、サブレコードを検索する。
ここで、検索条件のキー項目による検索対象レコードの格納アドレスの求め方としては、キー項目にインデクスを付加してインデクスレコード部分をバイナリサーチしたり、キー項目とレコード格納アドレスの対応をハッシュ関数により計算する方法等がある。
上述のサブレコード検索処理13aによるサブレコードの検索で、検索条件があれば(ステップ 310)、検索したサブレコードが検索条件をすべて満たすかどうかを判定して(ステップ 312)、検索条件によって検索条件を満たすレコードはないと判断できない場合には(ステップ 318)、サブレコード単位入出力バッファ管理処理部18を返却要求で呼出して(ステップ 320)、一度バッファを返却した後、ステップ 306以降の処理を繰り返す。
【0016】
検索条件が、キー項目の単一条件等により、検索条件を満たすレコードはないと判断できる場合には(ステップ 318)、エラー処理をして(ステップ 322)、サブレコード単位入出力バッファ管理処理部18を返却要求で呼出して(ステップ 326)、バッファを返却した後、要求元にエラー報告を行う。
検索したサブレコードが検索条件をすべて満たす場合には(ステップ 312)、サブレコード選択処理部17を検索条件指定なしで呼出して(ステップ 314)、検索条件の判定に必要でなかったサブレコードも選択し、サブレコード検索処理13aを呼出して(ステップ 316)、検索を行う。
ステップ 310で検索条件がなかった場合およびステップ 312以降で検索条件を満たすレコードが見つかった場合は、レコード検索命令発行元の領域に検索したデータを転送し(ステップ 324)、サブレコード単位入出力バッファ管理処理部18を返却要求で呼出して(ステップ 326)、バッファを返却し、処理を終了する。
次に、図7を用いてサブレコード検索処理13aの動作を説明する。
【0017】
ここでは、まず、前述のレコード管理テーブル45の先頭サブレコードエントリに位置付け(ステップ 330)、操作対象フラグが設定されているかどうかを判定する(ステップ 332)。操作対象フラグが設定されている場合は、該サブレコードを検索するため、検索対象レコードの格納アドレスおよび入力要求フラグを設定し(ステップ 334)、サブレコード単位入出力バッファ管理処理部18を探索要求で呼び出して(ステップ 336)、該サブレコードが既にバッファ上に入力済みか否かを判断する。操作対象フラグが設定されていない場合は、何もしない。
上述のステップ 332からステップ 336までの処理を、レコード管理テーブル45の固定部の全サブレコードエントリについて繰り返す(ステップ 338と 340)。次に、固定部の必要な全サブレコードを読み出すために、サブレコード単位並列入出力処理部19を入力要求で呼び出す(ステップ 342)。そして、レコードの定義上可変部があるか否かを判定し(ステップ 344)、可変部がなければ処理を終了する。
【0018】
一方、可変部がある場合は、レコード管理テーブル45の可変部の先頭サブレコードエントリに位置付けて(ステップ 346)、操作対象フラグが設定されているか判定する(ステップ 348)。操作対象フラグが設定されていない場合は処理を終了し、操作対象フラグが設定されている場合は、固定部の最終サブレコードに可変部の格納アドレスがあるかを判定する(ステップ 350)。
可変部の格納アドレスがない場合は処理を終了し、可変部の格納アドレスがある場合は、該格納アドレスを可変部のサブレコードエントリの格納アドレスに設定し、入力要求フラグを設定する(ステップ 352)。可変部のサブレコードについても、固定部と同様に、サブレコード単位入出力バッファ管理処理部18を探索要求で呼び出し(ステップ 354)、該サブレコードが既にバッファ上に入力済みか否かを判断し、サブレコード単位並列入出力処理部19を入力要求で呼び出して(ステップ 356)、サブレコードを読み出し、処理を終了する。
次に、図8を用いてサブレコード選択処理部17の動作を説明する。
【0019】
ここでは、レコード管理テーブル45の先頭サブレコードエントリに位置付けて(ステップ 400)、以下の処理を該レコード管理テーブル45の全サブレコードエントリについて繰り返す(ステップ 424と 426)。要求が検索条件指定でない場合は(ステップ 402)、レコード操作命令の操作単位が項目単位またはサブレコード単位かどうか判定し(ステップ 406)、項目単位でもサブレコード単位でもない、すなわちレコード単位なら、該サブレコードエントリに操作対象フラグを設定する(ステップ 414)。
レコード操作命令の操作単位が、項目単位またはサブレコード単位である場合には、該サブレコードが操作単位項目を含むサブレコードまたは操作単位のサブレコードかどうかを判定し(ステップ 408)、操作単位項目を含むサブレコードまたは操作単位のサブレコードなら、該サブレコードエントリに操作対象フラグを設定する(ステップ 414)。
【0020】
また、操作単位項目を含むサブレコードでも操作単位のサブレコードでもないなら、該サブレコードが固定部の最終サブレコードかどうか判断し(ステップ 410)、固定部の最終サブレコードで、可変部があり可変部が操作単位項目を含むサブレコードまたは操作単位のサブレコードなら、固定部の最終サブレコードエントリにも操作対象フラグを設定する(ステップ 414)。
次に、要求が検索条件指定の場合は(ステップ 402)、該サブレコードが検索条件項目を含むサブレコードかどうかを判定し(ステップ 416)、検索条件項目を含むサブレコードである場合には、該サブレコードエントリに操作対象フラグを設定する(ステップ 422)。該サブレコードが検索条件項目を含むサブレコードでないなら、固定部の最終サブレコードかどうか判断し(ステップ 418)、固定部の最終サブレコードで、可変部があり可変部が検索条件項目を含むサブレコードである場合には(ステップ 420)、該サブレコードエントリに操作対象フラグを設定する(ステップ 422)。上記処理を該レコードの全サブレコードエントリについて処理したら(ステップ 424)、処理を終了する。
【0021】
次に、図9〜図11を用いてレコード更新処理部14の動作を説明する。
まず、更新対象レコードまたはサブレコードが直前に検索済みか否かを判定し(ステップ 500)、検索済みでない場合には、エラー処理をして(ステップ 502)、要求元にエラー報告を行う。
検索済みの場合は、サブレコード選択処理部17を呼出して更新対象のサブレコードを選択し(ステップ 504)、直前に検索済みのレコードまたはサブレコードの格納アドレスを求めて(ステップ 506)、サブレコード検索処理13aを呼出し(ステップ 508)、更新対象の全サブレコードを検索しておく。
続いて、レコード管理テーブル45の先頭サブレコードエントリに位置付けて(ステップ 510)、固定部の全サブレコードエントリについて、操作対象フラグが設定されている場合は(ステップ 512)、バッファに入力されているサブレコードに更新データを反映し(ステップ 514)、出力要求フラグを設定する(ステップ 516)処理を、固定部の全サブレコードについて繰り返す(ステップ 518と 520)。
【0022】
次に、可変部があるか否かを判定し(ステップ 522)、可変部がある場合には、レコード管理テーブル45の可変部の先頭サブレコードエントリに位置付けて(ステップ 524)、以下の可変部固有の処理を行う。
可変部の該サブレコードに操作対象フラグが設定されていて(ステップ 526)、バッファアドレスがあるなら(ステップ 528)、該バッファに入力されている更新前データより更新データの方が長いかどうか判定し(ステップ 530)、長い場合は更新前データのサブレコード格納アドレスを退避しておく(ステップ 532)。
一方、バッファアドレスが設定されていない場合は(ステップ 528)、サブレコード単位入出力バッファ管理処理部18を確保要求で呼出して(ステップ 534)、更新データの出力バッファを確保する。そして、可変部のサブレコードの新たな格納場所として、可変部のサブレコード格納ファイルの空き領域アドレスを求め(ステップ 536)、サブレコードエントリの格納アドレスおよび固定部の最終サブレコード中の可変部格納アドレスをこの値で更新する(ステップ 538)。
【0023】
なお、更新データが更新前データより短い場合は(ステップ 530)、格納アドレスの更新は不要である。次に、バッファに更新データを反映し(ステップ 540)、出力要求フラグを設定する(ステップ 542)。上記可変部固有の処理完了後および可変部がない場合には(ステップ 522)、サブレコード単位並列入出力処理部19を出力要求で呼出して(ステップ 546)、更新データを出力し、サブレコード単位入出力バッファ管理処理部18を返却要求で呼出して(ステップ 548)、データを入出力バッファ上に残しておく。
次に、ステップ 532で退避した更新前サブレコード格納アドレスがあるかどうか判定し(ステップ 550)、退避されていなければ、処理を終了する。更新前サブレコード格納アドレスが退避されている場合は、レコード管理テーブル45の可変部の先頭サブレコードエントリに位置付けて(ステップ 552)、退避されていた更新前サブレコード格納アドレスをサブレコードエントリの格納アドレスに設定する(ステップ 554)。
【0024】
そして、サブレコード単位入出力バッファ管理処理部18を確保要求で呼出して(ステップ 556)、バッファを確保し、また、空きレコードデータをセットして(ステップ 558)、出力要求フラグを設定し(ステップ 560)、サブレコード単位並列入出力処理部19を出力要求で呼出して(ステップ 562)、更新前のサブレコードが格納されていた領域を空き領域化する。
更に、サブレコード単位入出力バッファ管理処理部18を解放要求で呼出して(ステップ 564)、バッファを解放し、処理を終了する。
次に、図12を用いてレコード削除処理部15の動作を説明する。
まず、削除対象レコードまたはサブレコードが直前に検索済みか否かを判定し(ステップ 600)、検索済みでない場合には、エラー処理をして(ステップ 602)、要求元にエラー報告を行う。検索済みなら、サブレコード選択処理部17を呼出して(ステップ 604)、更新対象のサブレコードを選択し、直前に検索済みのレコードまたはサブレコードの格納アドレスを求めて(ステップ 606)、サブレコード検索処理13aを呼出し(ステップ 608)、削除対象の全サブレコードを検索しておく。
【0025】
次に、レコード管理テーブル45の先頭サブレコードエントリに位置付けて(ステップ 610)、全サブレコードエントリについて、操作対象フラグおよび入力済みフラグが設定されている場合には(ステップ 612)、バッファに入力されているサブレコードに空きレコードデータを反映し(ステップ 614)、出力要求フラグを設定する(ステップ 616)処理を繰り返す(ステップ 618と 620)。次に、サブレコード単位並列入出力処理部19を出力要求で呼出して(ステップ 622)、削除対象の全サブレコードに空きレコードデータを出力してレコードを削除する。
最後に、再度レコード管理テーブル45の先頭サブレコードエントリに位置付け(ステップ 624)、また、全サブレコードエントリについて、サブレコード単位入出力バッファ管理処理部18を解放要求で呼出して(ステップ 626)、バッファを解放する処理を繰り返した後(ステップ 628と 630)、処理を終了する。
次に、図13と図14を用いてレコード格納処理部16の動作を説明する。
【0026】
まず、サブレコード選択処理部17を呼出して(ステップ 700)、全サブレコードを操作対象とし、キー項目または直前に検索済みのレコードとの関連または固定部のサブレコード格納ファイルの空き領域アドレスにより、該レコードの格納アドレスを求める(ステップ 702)。続いて、レコード管理テーブル45の先頭サブレコードエントリに位置付けて、全サブレコードエントリについて、以下の処理を繰り返す(ステップ 714と 716)。
上記サブレコードが固定部なら(ステップ 706)、サブレコード単位入出力バッファ管理処理部18を確保要求で呼出して(ステップ 708)バッファを確保し、格納データをバッファに転送して(ステップ 710)、レコード格納アドレスおよび出力要求フラグを設定する(ステップ 712)。該サブレコードが可変部である場合には(ステップ 706)、格納データがあるか判定し(ステップ 718)、ない場合は何もしない。
【0027】
格納データがある場合は、サブレコード単位入出力バッファ管理処理部18を確保要求で呼出して(ステップ 720)バッファを確保し、可変部のサブレコード格納ファイルの空き領域アドレスを求めて(ステップ 722)、その値でサブレコードエントリの格納アドレスおよび固定部の最終サブレコード中の可変部格納アドレスを更新し(ステップ 724)、バッファに格納データを転送した後(ステップ 726)、出力要求フラグを設定する(ステップ 728)。
最後に、全サブレコードエントリの処理が完了したら(ステップ 714)、サブレコード単位並列入出力処理部19を出力要求で呼出して(ステップ 730)データを格納し、サブレコード単位入出力バッファ管理処理部18を解放要求で呼出して(ステップ 732)バッファを返却した後、処理を終了する。
次に、図15を用いてサブレコード単位入出力バッファ管理処理部18の探索処理の動作を説明する。
【0028】
まず、指定されたレコード管理テーブル45の該サブレコードエントリにバッファアドレスが設定済みか否かを判定し(ステップ 800)、設定済みでない場合、および設定済みだが、そのバッファがバッファプール中の入力済みバッファでない場合(ステップ 812)、または、バッファプール中の入力済みバッファだが、該サブレコードエントリに設定されている格納アドレスのサブレコードを入力していない場合には(ステップ 814)、該サブレコードエントリに設定されている格納アドレスを持つサブレコードを、バッファプールの入力済バッファの中から探す(ステップ 802)。
上述の探索の結果、バッファプールの入力済みバッファの中から見つかれば(ステップ 804)、該入力済みバッファを使用中バッファとし、該サブレコードエントリのバッファアドレスにそのバッファのアドレスをセットして(ステップ 806)、入力済みフラグを設定し(ステップ 808)、処理を終了する。バッファプールの入力済みバッファの中から見つからなければ(ステップ 804)、サブレコード単位入出力バッファ管理処理部18を確保要求で呼出して(ステップ 810)新たなバッファを確保した後、処理を終了する。
【0029】
一方、該サブレコードエントリに指定されているバッファアドレスのバッファがバッファプール中の入力済みバッファで(ステップ 812)、指定された格納アドレスのサブレコードを入力している場合(ステップ 814)は、該入力済みバッファを使用中バッファとし(ステップ 816)、該サブレコードエントリの入力済みフラグを設定し(ステップ 808)、処理を終了する。
次に、図16および図17を用いてサブレコード単位入出力バッファ管理処理部18の返却処理,確保処理,解放処理の動作を説明する。
まず、返却処理の動作を説明する。レコード管理テーブル45の先頭サブレコードエントリに位置付けて(ステップ 820)、該レコード管理テーブル45の全サブレコードエントリについて、バッファアドレスが設定済み(ステップ 822)ならば、該バッファをバッファプールの入力済みバッファに返却する(ステップ 824)処理を繰り返す(ステップ 826と 828)。
次に、確保処理の動作を説明する。
【0030】
レコード管理テーブル45の該サブレコードエントリに設定されたサブレコード長分のバッファを、バッファプールの空きバッファの中から探し(ステップ 830)、空きバッファから見つかれば(ステップ 832)、該バッファを使用中バッファとし、該サブレコードエントリのバッファアドレスにそのアドレスをセットし(ステップ 834)、入力済みフラグおよび出力済みフラグをクリアし(ステップ 836)て、処理を終了する。
空きバッファから見つからなければ(ステップ 832)、該サブレコードエントリに設定されたサブレコード長分のバッファをバッファプールの入力済みバッファの中から探し(ステップ 838)、入力済みバッファから見つかれば(ステップ 840)、バッファアドレスのセット(ステップ 834)とフラグのクリア(ステップ 836)を同様に行い、処理を終了する。
入力済みバッファからも見つからなければ(ステップ 840)、バッファ不足エラーとし(ステップ 842)、処理を終了する。
次に、解放処理の動作を説明する。
【0031】
ここでは、レコード管理テーブル45の該サブレコードエントリのバッファアドレスが指定するバッファを、バッファプールの空きバッファとし(ステップ 850)、該サブレコードエントリのバッファアドレスをクリアして(ステップ 852)、処理を終了する。
次に、図18を用いてサブレコード単位並列入出力手段19の入力処理の動作を説明する。
まず、レコード管理テーブル45の先頭サブレコードエントリに位置付けて(ステップ 900)、該レコード管理テーブルの全サブレコードエントリについて、入力要求フラグが設定されていて入力済みフラグが設定されているかどうかを調べ、設定されていない場合には(ステップ 902)、該サブレコードエントリの格納アドレスを物理アドレスに変換して(ステップ 904)、該サブレコード格納ファイルから設定されているバッファに物理レコードを入力要求する(ステップ 906)処理を繰り返す(ステップ 908と 910)。
全サブレコードエントリの処理が完了したら(ステップ 908)、入力要求した全サブレコードの入力が完了しているかチェックし(ステップ 912)、完了していない入力があればその完了を待つ(ステップ 914)。
【0032】
なお、サブレコード入出力の完了は入出力完了割込みで報告され、完了した入出力要求を調べ(ステップ 918)、該入出力要求プロセスに入出力完了が報告される(ステップ 920)。
入力要求した全サブレコードの入力が完了したら(ステップ 912)、入力要求した全サブレコードのサブレコードエントリに入力済みフラグを設定(ステップ 916)して、処理を終了する。
次に、図19を用いてサブレコード単位並列入出力手段19の出力処理の動作を説明する。
まず、レコード管理テーブル45の先頭サブレコードエントリに位置付けて(ステップ 930)、該レコード管理テーブルの全サブレコードエントリについて、出力要求フラグが設定されていて出力済みフラグが設定されていない場合には(ステップ 932)、該サブレコードエントリの格納アドレスを物理アドレスに変換して(ステップ 934)、該サブレコード格納ファイルに設定されているバッファから物理レコードを出力要求する(ステップ 936)処理(ステップ 938と 940)を繰り返す。
【0033】
全サブレコードエントリの処理が完了したら(ステップ 938)、出力要求した全サブレコードの出力が完了しているかチェックし(ステップ 942)、完了していない出力があればその完了を待つ(ステップ 944)。
サブレコード入出力の完了は、入力要求と同様に入出力完了割込みで報告され、完了した入出力要求を調べ(ステップ 918)、該入出力要求プロセスに入出力完了が報告される(ステップ 920)。出力要求した全サブレコードの出力が完了したら(ステップ 942)、出力要求した全サブレコードのサブレコードエントリに出力済みフラグを設定し(ステップ 946)、処理を終了する。
上記実施例によれば、長大データの多数のデータ処理を、限られた入出力バッファ領域を用いた必要最小限の入出力処理で高速かつ効率良く行うことが可能になるという効果が得られる。
また、大量のデータ読み出しが必要になるデータの条件検索を、レコード内の条件判定に関係のないデータの不必要な入力を行うことなく、限られた入出力バッファを用いた最小限の入力処理により高速に行うことが可能になる。
更に、長大レコード中の一部データの更新を、レコード内の更新に関係のないデータの不必要な入出力を行うことなく、限られた入出力バッファを用いた最小限の入出力処理により高速に行うことが可能になる。
【0034】
更に、レコードを複数ファイルに分割格納した際の、各データの格納位置管理を簡潔にして、複数ファイルのデータ並列入出力および任意のファイルとの部分データ入出力が可能となる。
更に、可変長データ形式のレコードを複数ファイルに分割格納した際の、格納スペース効率を高めることが可能になる。
更に、可変長データ形式のレコードを複数ファイルに分割格納した際の、ファイルのつめかえ処理を高速に行うことが可能になる。
更に、検索条件の付いたレコード検索命令において、キー項目やインデクスによって所望のデータをダイレクトに検索できない場合に、実際に入力するサブレコードを検索条件判定に必要な部分だけに限定して行うため、レコード単位に全サブレコードを常に入力する場合に比べて少ない入出力バッファでも検索命令を実行可能になる。
また、レコード長分の入出力バッファが用意できれば、検索条件判定に必要なサブレコードだけを一括連続入力するための入出力バッファ面数を多くできるため、検索命令を高速化できる。
【0035】
また、外部記憶装置から中央処理装置内に入力するデータ量が全サブレコードを常に入力する場合に比べて少ないため、検索命令が高速になり、入出力チャネルの占有率も減らすことができる。
更に、レコードの更新において、実際に入出力するサブレコードを更新が必要なデータを含むサブレコードだけに限定して行うため、レコード単位に全サブレコードを常に入出力する場合に比べて少ない入出力バッファでも更新命令を実行できる。また、外部記憶装置と中央処理装置間の入出力データ量が、全サブレコードを常に入出力する場合に比べて少ないため、更新命令が高速になり、入出力チャネルの占有率も減らすことができる。
更に、レコードを分割するサブレコード長をすべて同一にして、各サブレコードを独立した入出力が可能な同容量の固定長形式ファイルにすると、レコードの並びやキー項目で決まるレコード格納アドレスを一つのレコード実現値を構成する全サブレコード実現値について同一にすることができる。このため、全サブレコードの並列入出力も各サブレコードの個別入出力も可能となり、各入出力における格納アドレス決定機構を一元化し単純化できる。
【0036】
更に、レコード形式が可変長の場合、レコードを固定長部分と可変長部分に分割し、一定長までのデータは固定長形式部分として同一サブレコード長で分割し、それを超えるデータは可変長部分として可変長形式ファイルにサブレコードとして格納することにより、可変長部分の格納ファイルは可変長部分の実際のデータ量分の容量で済むため、すべて固定長形式で扱った場合に比べて必要とするファイル容量を少なくできる。また、固定長部分の最終サブレコード実現値中に対応する可変長部分のサブレコード実現値が格納されている格納アドレスを持つことにより、レコードを構成する固定長部分と可変長部分のサブレコード間の関連を保つことができる。
更に、レコードの追加、削除によって可変長部分のサブレコードを格納するファイルが満杯になったり、無効な空きスペースが多く発生した場合には、固定長部分の最終サブレコードだけを全件入力して、対応する可変長部分のサブレコードを別のファイルに格納し直すことができる。これにより、全サブレコードを常に入出力する場合に比べ、ファイルのつめかえ処理を高速化できる。
なお、上記実施例は本発明の一例を示したものであり、本発明はこれに限定されるべきものではない。
【0037】
【発明の効果】
以上、詳細に説明した如く、本発明によれば、長大データの検索,更新等の多数のデータ処理を限られた入出力バッファ領域を用いた必要最小限の入出力処理で高速かつ効率良く行えるデータ処理方法を実現できるという顕著な効果を奏するものである。
【0038】
【図面の簡単な説明】
【図1】本発明の一実施例に係るファイル管理システムの構成図である。
【図2】実施例に係るファイル管理システムにおけるデータ格納方法の一例を示す図である。
【図3】実施例に係るファイル管理システムにおけるレコード管理テーブルのデータ形式の一例を示す図である。
【図4】実施例に係るファイル定義情報登録/参照処理部の処理手順を示すフローチャートである。
【図5】実施例に係るレコード操作命令実行処理部の処理手順を示すフローチャートである。
【図6】実施例に係るレコード検索処理部の処理手順を示すフローチャートである。
【図7】実施例に係るサブレコード検索処理の手順を示すフローチャートである。
【図8】実施例に係るサブレコード選択処理部の処理手順を示すフローチャートである。
【図9】実施例に係るレコード更新処理部の処理手順を示すフローチャート(その1)である。
【図10】実施例に係るレコード更新処理部の処理手順を示すフローチャート(その2)である。
【図11】実施例に係るレコード更新処理部の処理手順を示すフローチャート(その3)である。
【図12】実施例に係るレコード削除処理部の処理手順を示すフローチャートである。
【図13】実施例に係るレコード格納処理部の処理手順を示すフローチャート(その1)である。
【図14】実施例に係るレコード格納処理部の処理手順を示すフローチャート(その2)である。
【図15】実施例に係るサブレコード単位入出力バッファ管理処理部の探索処理の手順を示すフローチャートである。
【図16】実施例に係るサブレコード単位入出力バッファ管理処理部の返却処理,解放処理の手順を示すフローチャートである。
【図17】実施例に係るサブレコード単位入出力バッファ管理処理部の確保処理の手順を示すフローチャートである。
【図18】実施例に係るサブレコード単位並列入出力処理部の入力処理の手順を示すフローチャートである。
【図19】実施例に係るサブレコード単位並列入出力処理部の出力処理の手順を示すフローチャートである。
【符号の説明】
1:レコード操作命令、2:データ、3:ファイル定義パラメタ、10:ファイル管理システム、11:ファイル定義情報登録/参照処理部、12:レコード操作命令実行処理部、13:レコード検索処理部、13a:サブレコード検索処理、14:レコード更新処理部、15:レコード削除処理部、16:レコード格納処理部、17:サブレコード選択処理部、18:サブレコード単位入出力バッファ管理処理部、19:サブレコード単位並列入出力処理部、20〜24:外部記憶装置、30:ファイル定義情報登録簿、45:レコード管理テーブル。
[0001]
BACKGROUND OF THE INVENTION
The present invention manages a large file management system that needs to store a large amount of data and particularly a multimedia database, a map information database, and a knowledge database that handle character text, graphics, and image data. De Data processing method And processing equipment It is about.
[0002]
[Prior art]
In a system that handles long data (hereinafter simply referred to as “data”) such as character text, graphics, and image data, the logical record length of the data increases, and an external storage device that stores the data and a central processing unit that processes the data Since the amount of data transferred between the input / output buffers set in the main storage device is enormous, the access performance cannot be obtained due to the limit of the data transfer speed. In addition, by repeatedly updating, adding, and deleting a huge number of records, invalid areas are scattered in the file, and the file space efficiency deteriorates.
For this, for example, as shown in JP-A-1-106217, instead of creating independent files in a plurality of secondary storage devices, divided files that constitute one file as a whole The file information related to the other divided files is stored in one of the plurality of divided files, and each secondary storage indicated by the file information is read by reading the above file information at the time of data storage / reading request. There is a data processing device that stores data in parallel in each divided file in the device and reads data in parallel from each divided file. This technique has an advantage that the data access speed can be increased by parallel processing of data, and the user does not need to be aware of the location management of the divided files.
Separately, as shown in Japanese Patent Publication No. 2-52305, in an image file device that stores a document such as a drawing as an image file, the input document is divided into a predetermined number of image units. There is an image data updating method in which, when a document is changed, only the image unit whose contents have been changed is stored again. This technology does not newly store the entire changed image, so the image storage space of the image file can be used effectively, and the difference between the uncorrected document and the corrected document is automatically recognized. There is an advantage that it is not necessary to instruct which part of the corrected document has been changed, and the load on the operator can be reduced.
[0003]
[Problems to be solved by the invention]
In the above prior art, since all the data processing of each divided file is always performed in parallel, data operation for processing only a part of the data in the divided file, management of necessary input / output buffers, data storage in the divided file The system and variable length data format are not considered, and there are the following problems.
In other words, in the method of storing data divided into a plurality of divided files in anticipation of parallel data transfer, a large number of input / output buffers are prepared in the main storage device in order to obtain the effect of parallel data transfer. There must be. Since multimedia data such as character text, graphics, and images has a record length of several hundred KB to several hundred MB, the main storage capacity required for input / output of one record increases. For this reason, if all record operation requests are made in units of records, when multiple record operation requests are multiplexed, the main storage capacity is limited, and a time loss due to waiting for I / O buffer free space occurs. Throughput decreases.
In the record search instruction, when the search condition determination process is performed by reading data into the input / output buffer in the main storage device, the search condition determination is performed only on a part of the data items. If all the data constituting a record is read, useless data unrelated to the search condition occurs and the input / output buffer is unnecessarily occupied in the case where the condition hit does not occur.
Further, when data is updated in units of records, even if data is divided and stored and input / output in parallel, the portions that have not been updated become useless input / output, and the input / output buffer is also occupied uselessly. Further, in the image file device, in order to recognize and re-store only the image unit that has actually changed among the divided and stored images, it is necessary to input the corrected manuscript and the data before correction and to compare the differences. Thus, useless input of an image unit whose data has not been updated and useless occupation of an input / output buffer occur similarly.
[0004]
On the other hand, in the divided storage of records into a plurality of files, the following problems occur unless the lengths of the divided sub-records are the same.
That is, if the length of each divided sub-record is changed, the capacity of each divided file changes, and the storage address such as the relative byte address in the file or the physical address where each sub-record is stored is also different for each divided file. It will change to. For this reason, random access to any record is possible if each subrecord realization value has the storage address of the corresponding next subrecord realization value and does not associate each subrecord that constitutes one record. become unable. On the other hand, when such association between sub-records is performed, the storage address of the sub-record is not known unless the previous sub-record having the storage address of the sub-record is input except for the sub-record including the item that is the key for storing the record. , It becomes impossible to input each sub-record in parallel.
Further, when the record has a variable length format, there are the following problems.
In other words, when divided storage is performed in a plurality of files with the maximum record length, the record realization value having a short record length may or may not be stored in the rear divided file. For this reason, a sub-record realization value having all invalid areas or many invalid areas is generated, and the space efficiency of the rear divided file is deteriorated.
The present invention has been made in view of the above circumstances, and an object of the present invention is to solve the above-described problems in the prior art, and to process a large number of long data using a limited input / output buffer area. It is an object of the present invention to provide a data processing method and apparatus which can be performed at high speed and efficiently with the minimum necessary input / output processing.
Other objects of the present invention will become apparent from the following description.
[0005]
[Means for Solving the Problems]
An object of the present invention is to provide a record including a memory for storing management information and a plurality of storage devices, and including a fixed portion of a logical record and a variable portion of the logical record. Min Split The case In the data processing method in the data processing apparatus, the fixed portion of the logical record is Divided into at least one fixed-length sub-record, A plurality of fixed lengths provided in the storage device Case in physical continuous area The variable part of the logical record, As a variable length sub-record, Variable length provided in the storage device Physical continuous area Storage information for specifying the storage location of the fixed-length sub-record in the storage device. Said In memory Remembered Record management table Stored in The search request is analyzed in response to the input of the search request, and the record in the search request is analyzed. Co From the record specified in the record operation command and the record management table ,in front The storage device storing the specified sub-record of the specified record is specified and stored in the memory. Remembered The storage information of the sub-record is acquired with reference to a record management table, the specific sub-record is acquired from the specified storage device, and search processing is performed on the acquired sub-record based on the search request A data processing method, a memory for storing management information, and a plurality of storage devices, and a record including a fixed portion of a logical record and a variable portion of the logical record is divided into the plurality of storage devices In the data processing device for storing, the fixed part of the logical record is Divide it into at least one fixed-length sub-record and Multiple fixed lengths provided in the storage device Case in physical continuous area Means for delivering the variable part of the logical record, As a variable length sub-record, Variable length provided in the storage device Physical continuous area And storage information for specifying the storage location of the fixed-length sub-record in the storage device. Said memory Remembered In record management table Store Analyzing the search request in accordance with the input of the search request, from the record specified in the record operation instruction in the search request and the record management table ,in front The storage device storing the specified sub-record of the specified record is specified and stored in the memory. Remembered Means for acquiring storage information of the sub-record with reference to a record management table, acquiring the specific sub-record from the specified storage device, and performing a search process on the acquired sub-record based on the search request This is achieved by a data processing device characterized in that.
[0006]
In the data processing method according to the present invention, record operations can be realized by inputting / outputting all sub-records in parallel in the operation of records divided and stored in sub-record units. On the other hand, if the number of required subrecords is limited to the minimum according to the requested data operation, the amount of input / output buffers required for data operation and storage The number of inputs and outputs can be reduced.
Further, the file definition information registration / reference means of the data processing apparatus according to the present invention has file definition information indicating which file corresponds to each sub-record into which the record is divided in the registration list, and extends the record operation command. Can be referred to arbitrarily. This enables both parallel input / output of all subrecords and individual input / output of each subrecord at the time of executing the record operation instruction. In addition, it is possible to arbitrarily select in which file each subrecord is stored. For example, a semiconductor memory device capable of high-speed input / output is used according to the access characteristics of each subrecord. By selecting an external storage device, the performance of the entire system can be improved.
[0007]
Further, when the operation unit of the record operation instruction to be provided is an item unit or a sub-record unit, the sub-record selection means automatically selects the minimum sub-record necessary for the record operation based on the file definition information. This makes it possible to reduce the number of files that are actually input / output and the amount of necessary input / output buffers, compared to the case where all subrecords are always operated in record units.
Further, the sub-record unit input / output buffer management means can secure / release an input / output buffer in sub-record length units from a limited common buffer pool area. As a result, a plurality of record operation commands that can be processed simultaneously with the same input / output buffer amount can be increased as compared with the case where all sub-records are always operated in units of records. In addition, since the input data remaining in the input / output buffer is also managed in units of sub-records, the probability that a frequently accessed sub-record will remain in the input / output buffer increases, and the desired data is read hit in the input / output buffer. The probability of doing will also increase.
Furthermore, the sub-record unit parallel input / output means can perform independent input / output for each sub-record unit with the external storage device using the sub-record unit input / output buffer. This enables parallel input / output of all subrecords or multiple subrecords in a record, as well as individual input / output of specific subrecords, and provides a means to perform the necessary minimum input / output according to record operation instructions at high speed. it can.
[0008]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 1 is a configuration diagram of a file management system according to an embodiment of the present invention. When the record operation instruction 1 and the data 2 are given to the file management system 10, various data processing such as data retrieval, update, deletion, and storage with respect to the external storage device 20 is performed. When the file definition parameter 3 is given to the file management system 10, the file definition information is registered in the file definition information register 30.
The file management system 10 includes a record operation instruction execution processing unit 12 that controls analysis and execution of the record operation instruction 1, and a record search processing unit 13 that performs various record operations in response to a call from the record operation instruction execution processing unit 12. , Record update processing unit 14, record deletion processing unit 15, record storage processing unit 16, sub-record selection processing unit 17 for selecting sub-records actually required for various record operations, and input / output of sub-records A sub-record unit input / output buffer management processing unit 18 that manages the input / output buffer, a sub-record unit parallel input / output processing unit 19 that inputs / outputs data in sub-record units between the external storage device 20, and a file definition parameter 3 is parsed and edited and registered in the file definition information register 30, and a record operation instruction execution processing unit And a file definition information registration / reference processing unit 11 can refer the file definition information required in accordance with the call from 2.
[0009]
The record search processing unit 13 includes a sub-record search processing 13a that is commonly called by the record update processing unit 14 and the record deletion processing unit 15. The sub-record unit input / output buffer management processing unit 18 performs four processes of search processing, return processing, reservation processing, and release processing, and the sub-record unit parallel input / output processing unit 19 performs two processes of input processing and output processing. The file definition information registration / reference processing unit 11 is divided into two processes, a reference process and a registration process.
FIG. 2 is a diagram illustrating an example of a data storage method in the file management system according to the present embodiment. The logical record data 50 is divided into sub-records 51, 52, 53, 54, and physical continuous areas 71, 72, 73, 74 in the external storage devices 21, 22, 23, 24 capable of parallel input / output. Are stored respectively. The physical continuous area 71 is composed of physical records 80 and 81 which are units of physical input / output. Similarly, the physical continuous areas 72, 73, and 74 are composed of physical records 82 and 83, physical records 84 and 85, and physical records 86, 87, and 88, respectively.
Here, the physical continuous area is, for example, an area which hits one cylinder of the magnetic disk device and can perform continuous input / output of physical records in the area mechanically at high speed. The subrecords 51, 52, and 53 are fixed portions of the logical record, and the physical continuous areas 71, 72, and 73 have the same physical length and are stored at the same physical address.
[0010]
The sub-record 54 is a variable part of the logical record, and the physical continuous area 74 and the physical continuous areas 71, 72, 73 are not necessarily the same physical length and the same physical address. Therefore, the pointer by the storage address of the physical record 86 of the physical continuous area 74 storing the variable sub-record 54 in the physical record 85 of the physical continuous area 73 storing the final sub-record 53 of the fixed part. 75, and a correspondence between sub-records is attached.
Similarly, the logical record data 60 is divided into sub-records 61, 62, 63, and 64, and physical continuous areas 91, 92, and 92 in the external storage devices 21, 22, 23, and 24 capable of parallel input / output. The fixed part and the variable part are associated with each other by the pointer 95 based on the storage address.
FIG. 3 is a diagram illustrating an example of a data format of the record management table in the file management system according to the present embodiment. The record management table 45 includes a header part 46 having information related to records and an entry part 47 having information related to sub-records. The entry unit 47 has an array format composed of entries for the number of sub-records constituting the record.
[0011]
FIG. 4 is a flowchart illustrating a processing procedure of the file definition information registration / reference processing unit 11 according to the present embodiment.
FIG. 5 is a flowchart illustrating a processing procedure of the record operation instruction execution processing unit 12 according to the present embodiment.
FIG. 6 is a flowchart illustrating a processing procedure of the record search processing unit 13 according to the present embodiment.
FIG. 7 is a flowchart showing the processing procedure of the sub-record search processing in the record search processing unit 13 of the present embodiment.
FIG. 8 is a flowchart illustrating the processing procedure of the sub-record selection processing unit 17 of the present embodiment.
9 to 11 are flowcharts showing the processing procedure of the record update processing unit 14 of the present embodiment.
FIG. 12 is a flowchart illustrating a processing procedure of the record deletion processing unit 15 according to the present embodiment.
13 and 14 are flowcharts illustrating the processing procedure of the record storage processing unit 16 of the present embodiment.
[0012]
FIG. 15 is a flowchart illustrating the search processing procedure of the sub-record unit input / output buffer management processing unit 18 according to this embodiment.
FIGS. 16 and 17 are flowcharts showing the procedure of the return process, the securing process, and the releasing process of the sub-record unit input / output buffer management processing unit 18 of this embodiment.
FIG. 18 is a flowchart illustrating the input processing procedure of the sub-record unit parallel input / output processing unit 19 according to the present embodiment.
FIG. 19 is a flowchart showing the procedure of the output process of the sub-record unit parallel input / output processing unit 19 of this embodiment.
Next, the operation of each processing unit of the embodiment shown in FIG. 1 will be described based on the flowcharts shown in FIGS.
First, the operation of the file definition information registration / reference processing unit 11 will be described with reference to FIG. When registering file definition information (step 100), record name, fixed length / variable length type, record length / maximum record length, subrecord name, subrecord length, subrecord storage specified as file definition parameter 3 File definition information such as a file name is input (step 102), edited and output to the file definition information register 30 (step 104).
[0013]
When referring to the file definition information (step 106), the definition information of the record name designated from the file definition information register 30 is input and returned to the request source (step 108). In other cases, error processing is performed (step 110) and an error is reported to the request source.
Next, the operation of the record operation instruction execution processing unit 12 will be described with reference to FIG. When the record operation instruction 1 is input, the record operation instruction execution processing unit 12 accepts and analyzes the record operation instruction (step 200), and if there is an error, processes the error (steps 202 and 230) Report the error to the requester.
If there is no error, it is checked whether the record management table 45 of the specified record has been created in the memory (step 204). If the record management table is not found in the memory (step 206), file definition information registration / reference is made. The processing unit 11 is called with a reference request (step 208), file definition information is input, the record management table 45 of the record is created in the memory, and the control flags of all subrecord entries are initialized (step 210). ).
[0014]
If the record management table 45 is found in the memory, only the control flags of all sub-record entries in the record management table 45 are initialized (steps 206 and 212).
If the specified record operation command is a search command, the record search processing unit 13 is called (steps 214 and 216). If the record command is an update command, the record update processing unit 14 is called (steps 218 and 220). In this case, the record deletion processing unit 15 is called (steps 222 and 224), and in the case of a storage instruction, the record storage processing unit 16 is called (steps 226 and 228).
In other cases, error processing is performed (step 230) and an error is reported to the request source.
Next, the operation of the record search processing unit 13 will be described with reference to FIG. The record search processing unit 13 determines whether or not the specified record operation command has a search condition (step 300). If there is no search condition, the sub-record selection processing unit 17 is called without specifying the search condition (step 302). If there is a search condition, the sub-record selection processing unit 17 is called with the search condition specified (step 304) to determine a sub-record that needs to be searched.
[0015]
The storage address of the search target record is obtained from the key item of the search condition, the relation with the record searched immediately before or the storage position of the first record (step 306). Next, the sub record search process 13a is called (step 308) to search for a sub record.
Here, as a method of obtaining the storage address of the search target record by the key item of the search condition, an index is added to the key item to perform a binary search, or the correspondence between the key item and the record storage address is determined by a hash function. There are methods to calculate.
If there is a search condition in the sub-record search process by the above-described sub-record search process 13a (step 310), it is determined whether or not the searched sub-record satisfies all the search conditions (step 312). If it cannot be determined that there is no record satisfying (step 318), the sub-record unit I / O buffer management processing unit 18 is called with a return request (step 320), and after the buffer is returned once, the processing from step 306 is executed. repeat.
[0016]
If it can be determined that there is no record that satisfies the search condition due to the single condition of the key item (step 318), error processing is performed (step 322), and the sub-record unit I / O buffer management processing unit 18 is called with a return request (step 326), the buffer is returned, and an error is reported to the request source.
If the searched sub-records satisfy all the search conditions (step 312), the sub-record selection processing unit 17 is called without specifying the search conditions (step 314), and the sub-records that are not necessary for determining the search conditions are also selected. Then, the sub-record search process 13a is called (step 316) to perform a search.
If there is no search condition in step 310, and if a record that satisfies the search condition is found in step 312 or later, the searched data is transferred to the area from which the record search command is issued (step 324), and the sub-record unit input / output buffer The management processing unit 18 is called with a return request (step 326), the buffer is returned, and the process ends.
Next, the operation of the sub-record search process 13a will be described with reference to FIG.
[0017]
Here, first, it is positioned at the first sub-record entry of the above-mentioned record management table 45 (step 330), and it is determined whether or not the operation target flag is set (step 332). When the operation target flag is set, in order to search for the sub-record, the storage address of the search target record and the input request flag are set (step 334), and the sub-record unit input / output buffer management processing unit 18 is requested to search. (Step 336) to determine whether the sub-record has already been input on the buffer. If the operation target flag is not set, nothing is done.
The above-described processing from step 332 to step 336 is repeated for all sub-record entries in the fixed part of the record management table 45 (steps 338 and 340). Next, in order to read all necessary sub-records of the fixed part, the sub-record unit parallel input / output processing part 19 is called with an input request (step 342). Then, it is determined whether or not there is a variable part in the definition of the record (step 344). If there is no variable part, the process is terminated.
[0018]
On the other hand, if there is a variable part, it is positioned at the first sub-record entry of the variable part of the record management table 45 (step 346), and it is determined whether the operation target flag is set (step 348). If the operation target flag is not set, the process is terminated. If the operation target flag is set, it is determined whether the storage address of the variable part is in the last subrecord of the fixed part (step 350).
If there is no storage address for the variable part, the process ends. If there is a storage address for the variable part, the storage address is set as the storage address of the sub record entry of the variable part, and the input request flag is set (step 352). ). Similarly to the fixed part, the sub-record unit I / O buffer management processing unit 18 is called with a search request for the variable part sub-record (step 354) to determine whether the sub-record has already been input on the buffer. Then, the sub-record unit parallel input / output processing unit 19 is called with an input request (step 356), the sub-record is read, and the process is terminated.
Next, the operation of the sub-record selection processing unit 17 will be described with reference to FIG.
[0019]
Here, it is positioned at the first subrecord entry of the record management table 45 (step 400), and the following processing is repeated for all subrecord entries of the record management table 45 (steps 424 and 426). If the request is not a search condition specification (step 402), it is determined whether the operation unit of the record operation instruction is an item unit or a sub-record unit (step 406). An operation target flag is set in the sub record entry (step 414).
If the operation unit of the record operation instruction is an item unit or a sub-record unit, it is determined whether the sub-record is a sub-record including an operation unit item or a sub-record of the operation unit (step 408). If it is a sub-record that contains or an operation unit sub-record, an operation target flag is set in the sub-record entry (step 414).
[0020]
If neither the sub-record containing the operation unit item nor the sub-record of the operation unit is determined, it is determined whether or not the sub-record is the final sub-record of the fixed part (step 410). If the variable part is a sub-record including an operation unit item or an operation unit sub-record, the operation target flag is also set in the last sub-record entry of the fixed part (step 414).
Next, when the request is a search condition specification (step 402), it is determined whether the sub-record is a sub-record including a search condition item (step 416). An operation target flag is set in the sub record entry (step 422). If the sub-record is not a sub-record including the search condition item, it is determined whether or not it is the last sub-record of the fixed part (step 418), and the last sub-record of the fixed part includes a variable part and the variable part includes the search condition item. If it is a record (step 420), an operation target flag is set in the sub-record entry (step 422). When the above processing is processed for all the subrecord entries of the record (step 424), the processing ends.
[0021]
Next, the operation of the record update processing unit 14 will be described with reference to FIGS.
First, it is determined whether or not the update target record or sub-record has been searched immediately before (step 500). If it has not been searched, error processing is performed (step 502) and an error is reported to the request source.
If already searched, the sub-record selection processing unit 17 is called to select a sub-record to be updated (step 504), and the storage address of the record or sub-record that has been searched immediately before is obtained (step 506). The retrieval process 13a is called (step 508), and all sub-records to be updated are retrieved.
Subsequently, it is positioned at the first subrecord entry of the record management table 45 (step 510), and if the operation target flag is set for all the subrecord entries of the fixed part (step 512), it is input to the buffer. The update data is reflected on the sub-record (step 514) and the output request flag is set (step 516). The process is repeated for all the sub-records in the fixed part (steps 518 and 520).
[0022]
Next, it is determined whether or not there is a variable part (step 522). If there is a variable part, it is positioned at the first subrecord entry of the variable part of the record management table 45 (step 524). Perform unique processing.
If the operation target flag is set in the sub-record of the variable part (step 526) and there is a buffer address (step 528), it is determined whether the update data is longer than the pre-update data input to the buffer However, if it is long, the sub-record storage address of the pre-update data is saved (step 532).
On the other hand, if the buffer address is not set (step 528), the sub-record unit input / output buffer management processing unit 18 is called with the securing request (step 534), and an output data output buffer is secured. Then, as a new storage location of the variable part sub-record, the free area address of the variable part sub-record storage file is obtained (step 536), the storage address of the sub-record entry and the variable part storage in the last sub-record of the fixed part The address is updated with this value (step 538).
[0023]
If the update data is shorter than the pre-update data (step 530), the storage address need not be updated. Next, the update data is reflected in the buffer (step 540), and an output request flag is set (step 542). After completion of the processing unique to the variable part and when there is no variable part (step 522), the sub-record unit parallel input / output processing unit 19 is called with an output request (step 546), and the update data is output and the sub-record unit The input / output buffer management processing unit 18 is called with a return request (step 548), and the data is left on the input / output buffer.
Next, it is determined whether or not there is a pre-update sub-record storage address saved in step 532 (step 550), and if not saved, the process ends. If the pre-update sub-record storage address is saved, it is positioned at the first sub-record entry of the variable part of the record management table 45 (step 552), and the saved pre-update sub-record storage address is stored in the sub-record entry. Set to address (step 554).
[0024]
Then, the sub-record unit input / output buffer management processing unit 18 is called with a secure request (step 556), a buffer is secured, empty record data is set (step 558), and an output request flag is set (step 556). 560), the sub-record unit parallel input / output processing unit 19 is called with an output request (step 562), and the area in which the sub-record before update is stored is made free.
Further, the sub-record unit input / output buffer management processing unit 18 is called with a release request (step 564), the buffer is released, and the processing is terminated.
Next, the operation of the record deletion processing unit 15 will be described with reference to FIG.
First, it is determined whether or not the record or sub-record to be deleted has been searched immediately before (step 600). If it has not been searched, error processing is performed (step 602) and an error is reported to the request source. If the search has been completed, the sub-record selection processing unit 17 is called (step 604), the sub-record to be updated is selected, and the storage address of the record or sub-record that has been searched immediately before is obtained (step 606). The process 13a is called (step 608), and all sub-records to be deleted are searched.
[0025]
Next, it is positioned at the first subrecord entry of the record management table 45 (step 610), and when the operation target flag and the input completed flag are set for all the subrecord entries (step 612), they are input to the buffer. The empty record data is reflected in the current sub-record (step 614), the output request flag is set (step 616), and the process is repeated (steps 618 and 620). Next, the sub-record unit parallel input / output processing unit 19 is called with an output request (step 622), and empty record data is output to all the sub-records to be deleted to delete the records.
Finally, it is positioned again at the first subrecord entry of the record management table 45 (step 624), and for all subrecord entries, the subrecord unit input / output buffer management processing unit 18 is called with a release request (step 626), and the buffer After repeating the process of releasing (steps 628 and 630), the process ends.
Next, the operation of the record storage processing unit 16 will be described with reference to FIGS.
[0026]
First, the sub-record selection processing unit 17 is called (step 700), and all sub-records are set as operation targets, and are related to the key item or the record searched immediately before or the free area address of the sub-record storage file of the fixed part. The storage address of the record is obtained (step 702). Subsequently, the following processing is repeated for all the subrecord entries, positioned at the first subrecord entry of the record management table 45 (steps 714 and 716).
If the sub-record is a fixed part (step 706), the sub-record unit I / O buffer management processing unit 18 is called with a secure request (step 708), the buffer is secured, and the stored data is transferred to the buffer (step 710). A record storage address and an output request flag are set (step 712). If the sub-record is a variable part (step 706), it is determined whether there is stored data (step 718), and if not, nothing is done.
[0027]
If there is stored data, the sub-record unit I / O buffer management processing unit 18 is called with an allocation request (step 720), the buffer is allocated, and the free area address of the sub-record storage file of the variable unit is obtained (step 722). Then, update the storage address of the subrecord entry and the variable part storage address in the last subrecord of the fixed part with the value (step 724), transfer the stored data to the buffer (step 726), and set the output request flag (Step 728).
Finally, when the processing of all sub-record entries is completed (step 714), the sub-record unit parallel input / output processing unit 19 is called with an output request (step 730) to store the data, and the sub-record unit input / output buffer management processing unit 18 is called with a release request (step 732), the buffer is returned, and the process is terminated.
Next, the search processing operation of the sub-record unit input / output buffer management processing unit 18 will be described with reference to FIG.
[0028]
First, it is determined whether or not a buffer address has been set for the sub-record entry of the designated record management table 45 (step 800). If it has not been set, and has been set, the buffer has already been entered in the buffer pool. If it is not a buffer (step 812), or if it is an input buffer in the buffer pool but a sub-record of the storage address set in the sub-record entry has not been input (step 814), the sub-record entry The sub-record having the storage address set to is searched from the input buffer of the buffer pool (step 802).
As a result of the above search, if it is found from the input buffers in the buffer pool (step 804), the input buffer is set to the in-use buffer, and the buffer address is set to the buffer address of the sub-record entry (step 804). 806), an input completion flag is set (step 808), and the process is terminated. If it is not found from the input buffers in the buffer pool (step 804), the sub-record unit input / output buffer management processing unit 18 is called with a secure request (step 810), a new buffer is secured, and the process ends.
[0029]
On the other hand, if the buffer at the buffer address specified in the sub-record entry is an input buffer in the buffer pool (step 812) and the sub-record at the specified storage address is input (step 814), The input buffer is used as a buffer in use (step 816), the input flag of the sub-record entry is set (step 808), and the process ends.
Next, the operations of the return process, the securing process, and the releasing process of the sub-record unit input / output buffer management processing unit 18 will be described with reference to FIGS. 16 and 17.
First, the operation of the return process will be described. If the buffer address has been set for all sub-record entries in the record management table 45 (step 822) after positioning to the first sub-record entry of the record management table 45 (step 820), the buffer is set to the input buffer of the buffer pool. (Step 824) is repeated (steps 826 and 828).
Next, the operation of the securing process will be described.
[0030]
A buffer for the length of the subrecord set in the subrecord entry of the record management table 45 is searched from the free buffer in the buffer pool (step 830). If the buffer is found from the free buffer (step 832), the buffer is in use. The buffer is set as the buffer address of the sub-record entry (step 834), the input flag and the output flag are cleared (step 836), and the process is terminated.
If it is not found from the free buffer (step 832), a buffer corresponding to the sub-record length set in the sub-record entry is searched from the input buffer of the buffer pool (step 838), and if it is found from the input buffer (step 840). ), Setting the buffer address (step 834) and clearing the flag (step 836) in the same manner, and the process is terminated.
If it is not found in the input buffer (step 840), a buffer shortage error is set (step 842), and the process is terminated.
Next, the operation of the release process will be described.
[0031]
Here, the buffer specified by the buffer address of the sub-record entry in the record management table 45 is set as an empty buffer in the buffer pool (step 850), the buffer address of the sub-record entry is cleared (step 852), and the processing is performed. finish.
Next, the operation of the input process of the sub-record unit parallel input / output means 19 will be described with reference to FIG.
First, it is positioned at the first subrecord entry of the record management table 45 (step 900), and it is checked whether the input request flag is set and the input completed flag is set for all the subrecord entries of the record management table, If it is not set (step 902), the storage address of the sub-record entry is converted into a physical address (step 904), and the physical record is requested to be input from the sub-record storage file to the set buffer (step 904). Step 906) The process is repeated (steps 908 and 910).
When all sub-record entries have been processed (step 908), check whether all requested sub-records have been input (step 912), and wait for completion if any input has not been completed (step 914) .
[0032]
The completion of sub-record input / output is reported by an input / output completion interrupt, the completed input / output request is examined (step 918), and the input / output completion is reported to the input / output request process (step 920).
When the input of all requested subrecords is completed (step 912), the input completion flag is set in the subrecord entries of all the requested subrecords (step 916), and the process is terminated.
Next, the operation of the output process of the sub-record unit parallel input / output means 19 will be described with reference to FIG.
First, it is positioned at the first sub-record entry of the record management table 45 (step 930), and when the output request flag is set for all the sub-record entries of the record management table and the output completed flag is not set ( (Step 932), the storage address of the sub-record entry is converted into a physical address (Step 934), and the physical record is requested to be output from the buffer set in the sub-record storage file (Step 936) (Step 938 and 940) is repeated.
[0033]
When all sub-record entries have been processed (step 938), check whether the output of all requested sub-records has been completed (step 942), and wait for completion if any output has not been completed (step 944). .
Completion of sub-record input / output is reported by an input / output completion interrupt in the same manner as an input request, the completed input / output request is examined (step 918), and input / output completion is reported to the input / output request process (step 920). . When the output of all subrecords requested to be output is completed (step 942), the output completion flag is set in the subrecord entries of all subrecords requested to be output (step 946), and the process is terminated.
According to the above embodiment, it is possible to perform a large number of data processing of long and large data at high speed and efficiently with the minimum necessary input / output processing using a limited input / output buffer area.
In addition, for data retrieval that requires a large amount of data to be read, the minimum input processing using a limited input / output buffer is possible without performing unnecessary input of data that is not related to the condition judgment in the record. Can be performed at high speed.
In addition, it is possible to update a part of data in a long record with a minimum of input / output processing using a limited input / output buffer without performing unnecessary input / output of data not related to the update in the record. It becomes possible to do.
[0034]
Furthermore, when the records are divided and stored in a plurality of files, the storage location management of each data is simplified, and data parallel input / output of a plurality of files and partial data input / output with an arbitrary file are possible.
Furthermore, it is possible to increase the storage space efficiency when records of variable length data format are divided and stored in a plurality of files.
Furthermore, when a variable length data format record is divided and stored in a plurality of files, the file refilling process can be performed at high speed.
Furthermore, in the record search command with the search condition, when the desired data cannot be directly searched by the key item or index, the sub record to be actually input is limited to only the part necessary for the search condition determination. The search command can be executed with a smaller number of input / output buffers than when all sub-records are always input in record units.
Also, if an input / output buffer for the record length can be prepared, the number of input / output buffer planes for inputting only the sub-records necessary for the search condition determination at once can be increased, so that the search command can be speeded up.
[0035]
In addition, since the amount of data input from the external storage device into the central processing unit is smaller than when all sub-records are always input, the search command becomes faster and the input / output channel occupation ratio can be reduced.
Furthermore, when updating records, the number of subrecords that are actually input / output is limited to only those that contain data that needs to be updated, so there is less input / output than when all subrecords are always input / output in record units. Update instructions can also be executed in the buffer. Also, since the amount of input / output data between the external storage device and the central processing unit is smaller than when all sub-records are always input / output, the update command becomes faster and the occupation rate of the input / output channel can be reduced. .
Furthermore, if all subrecord lengths that divide records are the same, and each subrecord is made into a fixed-length format file of the same capacity that can be independently input / output, the record storage address determined by the record sequence and key items is one. It can be made the same about all the subrecord realization values which comprise a record realization value. Therefore, parallel input / output of all subrecords and individual input / output of each subrecord are possible, and the storage address determination mechanism in each input / output can be unified and simplified.
[0036]
Furthermore, when the record format is variable length, the record is divided into a fixed length portion and a variable length portion, data up to a certain length is divided as a fixed length format portion with the same sub-record length, and data exceeding that is variable length portion As a sub-record is stored in the variable-length format file, the storage file for the variable-length portion only needs to have the capacity for the actual data amount of the variable-length portion. File capacity can be reduced. In addition, by having a storage address that stores the corresponding variable-length portion sub-record realization value in the final sub-record realization value of the fixed-length portion, between the fixed-length portion and variable-length portion subrecords that make up the record Can keep the connection.
Furthermore, if the file that stores the variable-length subrecord becomes full due to the addition or deletion of records, or if there are many invalid free spaces, enter only the last subrecord of the fixed-length portion. The corresponding variable length sub-record can be re-stored in another file. This makes it possible to speed up the file refilling process as compared to the case where all the subrecords are always input / output.
In addition, the said Example showed an example of this invention and this invention should not be limited to this.
[0037]
【The invention's effect】
As described above in detail, according to the present invention, a large number of data processing such as retrieval and updating of long data can be performed at high speed and efficiently with the minimum necessary input / output processing using a limited input / output buffer area. There is a remarkable effect that a data processing method can be realized.
[0038]
[Brief description of the drawings]
FIG. 1 is a configuration diagram of a file management system according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating an example of a data storage method in the file management system according to the embodiment.
FIG. 3 is a diagram illustrating an example of a data format of a record management table in the file management system according to the embodiment.
FIG. 4 is a flowchart illustrating a processing procedure of a file definition information registration / reference processing unit according to the embodiment.
FIG. 5 is a flowchart illustrating a processing procedure of a record operation instruction execution processing unit according to the embodiment.
FIG. 6 is a flowchart illustrating a processing procedure of a record search processing unit according to the embodiment.
FIG. 7 is a flowchart illustrating a procedure of sub-record search processing according to the embodiment.
FIG. 8 is a flowchart illustrating a processing procedure of a sub-record selection processing unit according to the embodiment.
FIG. 9 is a flowchart (part 1) illustrating a processing procedure of a record update processing unit according to the embodiment.
FIG. 10 is a flowchart (No. 2) illustrating the processing procedure of the record update processing unit according to the embodiment.
FIG. 11 is a flowchart (No. 3) illustrating the processing procedure of the record update processing unit according to the embodiment.
FIG. 12 is a flowchart illustrating a processing procedure of a record deletion processing unit according to the embodiment.
FIG. 13 is a flowchart (part 1) illustrating a processing procedure of a record storage processing unit according to the embodiment.
FIG. 14 is a flowchart (part 2) illustrating the processing procedure of the record storage processing unit according to the embodiment.
FIG. 15 is a flowchart illustrating a search processing procedure of a sub-record unit input / output buffer management processing unit according to the embodiment;
FIG. 16 is a flowchart illustrating a procedure of return processing and release processing of the sub-record unit input / output buffer management processing unit according to the embodiment.
FIG. 17 is a flowchart illustrating a procedure of a securing process of a sub-record unit input / output buffer management processing unit according to the embodiment.
FIG. 18 is a flowchart illustrating a procedure of input processing of the sub-record unit parallel input / output processing unit according to the embodiment.
FIG. 19 is a flowchart illustrating a procedure of output processing of the sub-record unit parallel input / output processing unit according to the embodiment.
[Explanation of symbols]
1: Record operation command, 2: Data, 3: File definition parameter, 10: File management system, 11: File definition information registration / reference processing unit, 12: Record operation command execution processing unit, 13: Record search processing unit, 13a : Sub-record search processing, 14: record update processing section, 15: record deletion processing section, 16: record storage processing section, 17: sub-record selection processing section, 18: sub-record unit input / output buffer management processing section, 19: sub Record unit parallel input / output processing unit, 20-24: external storage device, 30: file definition information register, 45: record management table.

Claims (2)

管理情報を格納するためのメモリと複数の記憶装置とを備え、論理レコードの固定部と該論理レコードの可変部とを含むレコードを、前記複数の記憶装置に分割して格納するデータ処理装置におけるデータ処理方法において、
前記論理レコードの固定部を、少なくとも1以上の固定長のサブレコードに分割して、前記記憶装置に設けられた複数の固定長の物理的な連続領域に格納し、 前記論理レコードの可変部を、可変長のサブレコードとして、前記記憶装置に設けられた可変長の物理的な連続領域に格納し、
前記固定長のサブレコードの前記記憶装置における格納場所を特定するための格納情報を前記メモリに記憶されたレコード管理テーブルに格納し
検索要求の入力に応じて該検索要求を解析し、該検索要求におけるレコード操作命令で指定されているレコードとレコード管理テーブルから、前記指定されたレコードの特定サブレコードが格納されている前記記憶装置を特定し、前記メモリに記憶されたレコード管理テーブルを参照して前記サブレコードの格納情報を取得して前記特定した記憶装置から前記特定サブレコードを取得し、該取得したサブレコードについて該検索要求に基づき検索処理を行うことを特徴とするデータ処理方法。
And a memory for storing management information and a plurality of storage devices, a record that includes a variable portion of the fixed portion and the logical records of the logical record, the data processing for store and split into the plurality of storage devices In the data processing method in the apparatus,
The fixing portion of the logical record is divided into sub-records of at least one or more fixed length, said to store a plurality of physical continuous area of fixed length which is provided in the storage device, the variable portion of the logical record Is stored as a variable-length sub-record in a variable-length physical continuous area provided in the storage device,
Stores storage information for specifying a storage location in the storage device of the sub-records of the fixed length record management table stored in the memory,
Analyzes the search request in response to input of a search request, the records and the record management table specified by the record code operation instruction in the search request, a particular sub-record of prior SL designated record is stored Specify the storage device, refer to the record management table stored in the memory, acquire the storage information of the sub-record, acquire the specific sub-record from the specified storage device, and about the acquired sub-record A data processing method comprising performing a search process based on the search request.
管理情報を格納するためのメモリと複数の記憶装置とを備え、論理レコードの固定部と該論理レコードの可変部とを含むレコードを、前記複数の記憶装置に分割して格納するデータ処理装置において、
前記論理レコードの固定部を、少なくとも1以上の固定長のサブレコードに分割して、前記記憶装置に設けられた複数の固定長の物理的な連続領域に格納する手段と、
前記論理レコードの可変部を、可変長のサブレコードとして、前記記憶装置に設けられた可変長の物理的な連続領域に格納する手段と、
前記固定長のサブレコードの前記記憶装置における格納場所を特定するための格納情報を前記メモリに記憶されたレコード管理テーブルに格納する手段と、
検索要求の入力に応じて該検索要求を解析し、該検索要求におけるレコード操作命令で指定されているレコードとレコード管理テーブルから、前記指定されたレコードの特定サブレコードが格納されている前記記憶装置を特定し、前記メモリに記憶されたレコード管理テーブルを参照して前記サブレコードの格納情報を取得して前記特定した記憶装置から前記特定サブレコードを取得し、該取得したサブレコードについて該検索要求に基づき検索処理を行う手段とを有することを特徴とするデータ処理装置。
In a data processing device comprising a memory for storing management information and a plurality of storage devices, wherein a record including a fixed portion of a logical record and a variable portion of the logical record is divided and stored in the plurality of storage devices ,
The fixing portion of the logical record, and means for store at least one or more is divided into fixed length sub-records, the physical continuous area of a plurality of fixed length which is provided in front Symbol storage device,
Means for storing the variable part of the logical record as a variable- length sub-record in a variable-length physical continuous area provided in the storage device;
Means for storing the storage information for specifying a storage location in the storage device of the sub-records of the fixed length record management table stored in the memory,
Search analyzes the search request in response to an input request, the search from the record and the record management table specified in the record operating command in the request, prior Symbol the specific sub-record in the designated record is stored stored the device identifies the memory reference to the record management table stored obtains the sub record the specific sub-records stored information from said specified storage device acquisition of the search for the sub-records the acquired A data processing apparatus comprising: a search process based on a request.
JP2001284215A 2001-09-19 2001-09-19 Data processing method and apparatus Expired - Fee Related JP3929269B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001284215A JP3929269B2 (en) 2001-09-19 2001-09-19 Data processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001284215A JP3929269B2 (en) 2001-09-19 2001-09-19 Data processing method and apparatus

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP18195092A Division JP3294326B2 (en) 1992-07-09 1992-07-09 Data processing method and device

Publications (2)

Publication Number Publication Date
JP2002108664A JP2002108664A (en) 2002-04-12
JP3929269B2 true JP3929269B2 (en) 2007-06-13

Family

ID=19107577

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001284215A Expired - Fee Related JP3929269B2 (en) 2001-09-19 2001-09-19 Data processing method and apparatus

Country Status (1)

Country Link
JP (1) JP3929269B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6378497B2 (en) * 2014-02-27 2018-08-22 株式会社電通国際情報サービス Information processing apparatus, information processing method, and program
CN113448998A (en) * 2021-06-29 2021-09-28 未鲲(上海)科技服务有限公司 Service data processing method and device, computer equipment and storage medium

Also Published As

Publication number Publication date
JP2002108664A (en) 2002-04-12

Similar Documents

Publication Publication Date Title
JP3294326B2 (en) Data processing method and device
US8224829B2 (en) Database
US6668263B1 (en) Method and system for efficiently searching for free space in a table of a relational database having a clustering index
JP4866495B2 (en) Method and apparatus for executing combined queries in a database system
US6314418B1 (en) Index managing unit, index updating method, index managing method, computer-readable recording medium retaining an index updating program, and computer-readable recording medium retaining an index managing program
US20070100873A1 (en) Information retrieving system
AU2002222096A1 (en) Method of organising, interrogating and navigating a database
JP4071816B1 (en) Database query processing system using multi-operation processing using synthetic relational operations
JP3929269B2 (en) Data processing method and apparatus
US5717918A (en) Method for concurrently performing a physical sequential scan of a database into a database buffer which is queued until a preceding scan is completed
JPH08255103A (en) Method and device for file management
JP3398672B2 (en) Intermediate data storage device
JPS61160133A (en) Data input control method
JP2833578B2 (en) Currency Information Control System in Cluster System
JP2885625B2 (en) File system with index table
KR20030044498A (en) Data Structure, Block Assignment and Record Retrieval Method of Main Memory DataBase Management System
JP3087701B2 (en) Exclusive control unit
JP2008276336A (en) Database management system, database management method and database management program
JPH05274199A (en) Record storing system in file system
JPH0689209A (en) File management device
JPH11353212A (en) Method and device for managing member in area sharing file
JP2000148549A (en) Data storage management device
JPH0883204A (en) File server
JPH05204735A (en) Data management system
JPH0298752A (en) Secondary storage area managing system by binary tree

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050329

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050530

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20051212

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060227

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20060331

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060822

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061121

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070306

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110316

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees