JPH09231118A - Isamファイル情報処理装置 - Google Patents
Isamファイル情報処理装置Info
- Publication number
- JPH09231118A JPH09231118A JP8033282A JP3328296A JPH09231118A JP H09231118 A JPH09231118 A JP H09231118A JP 8033282 A JP8033282 A JP 8033282A JP 3328296 A JP3328296 A JP 3328296A JP H09231118 A JPH09231118 A JP H09231118A
- Authority
- JP
- Japan
- Prior art keywords
- file
- isam
- data
- external storage
- instruction
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】低速の外部記憶装置を備えたISAMファイル
情報処理装置の処理効率を向上させる。 【解決手段】外部記憶装置102に格納した順編成デー
タファイルをインデックスファイルを用いて高速に検索
するISAMファイル情報処理装置において、ISAM
ファイルに対するレコードの検索読み取り、追加、更
新、削除に対応したファイルアクセス命令を細分化手段
により細分化して、この細分化したファイルアクセス命
令を外部記憶装置102に対して実行し、外部記憶装置
102上の位置であるアドレスを指定した後に目的とす
るデータを書き込み或いは読み込むまでの時間、次のイ
ンデックスファイル、データファイルに対する命令を受
け付け解釈するようにして、比較的低速で駆動される外
部記憶装置による処理効率の低下を防止する。
情報処理装置の処理効率を向上させる。 【解決手段】外部記憶装置102に格納した順編成デー
タファイルをインデックスファイルを用いて高速に検索
するISAMファイル情報処理装置において、ISAM
ファイルに対するレコードの検索読み取り、追加、更
新、削除に対応したファイルアクセス命令を細分化手段
により細分化して、この細分化したファイルアクセス命
令を外部記憶装置102に対して実行し、外部記憶装置
102上の位置であるアドレスを指定した後に目的とす
るデータを書き込み或いは読み込むまでの時間、次のイ
ンデックスファイル、データファイルに対する命令を受
け付け解釈するようにして、比較的低速で駆動される外
部記憶装置による処理効率の低下を防止する。
Description
【0001】
【発明の属する技術分野】本発明は、大容量のデータを
高速に検索することができるISAMファイル情報処理
装置に関するものである。
高速に検索することができるISAMファイル情報処理
装置に関するものである。
【0002】
【従来の技術】従来から、大容量のデータの中から高速
にデータを検索する方法として、索引付順編成ファイル
検索方法(Indexed Sequential Access Method)が知ら
れている。
にデータを検索する方法として、索引付順編成ファイル
検索方法(Indexed Sequential Access Method)が知ら
れている。
【0003】この方法において使用するファイルは、フ
ァイルの先頭から順にデータレコードを格納する順編成
ファイルと、目的のデータがこの順編成ファイルのどこ
の位置に存在するかを高速に検索するための索引である
インデックスファイルを含むISAMファイルとして構
成される。インデックスファイルは、任意のキーに対応
するデータファイル上のレコードの格納位置を高速に検
索するために用いられる。キーとファイルのレコードと
は、通常1:1に対応している。
ァイルの先頭から順にデータレコードを格納する順編成
ファイルと、目的のデータがこの順編成ファイルのどこ
の位置に存在するかを高速に検索するための索引である
インデックスファイルを含むISAMファイルとして構
成される。インデックスファイルは、任意のキーに対応
するデータファイル上のレコードの格納位置を高速に検
索するために用いられる。キーとファイルのレコードと
は、通常1:1に対応している。
【0004】図13は、代表的なインデックスファイル
のデータ構造を示す。アクセスの回数を減らして、目的
のデータの格納位置を高速に検索するために、Bツリー
構造でインデックスファイルを構成することが好まし
い。Bツリー構造は、ノード(節)と呼ばれるキーとレ
コードの格納位置を表すポインタとから成る単位によっ
て構成される。
のデータ構造を示す。アクセスの回数を減らして、目的
のデータの格納位置を高速に検索するために、Bツリー
構造でインデックスファイルを構成することが好まし
い。Bツリー構造は、ノード(節)と呼ばれるキーとレ
コードの格納位置を表すポインタとから成る単位によっ
て構成される。
【0005】検索を開始する最初のノードは、ルート
(根)ノード1と呼ばれ、一般に複数の中間ノード2を
経て最終段のリーフ(葉)ノード3に到達する。各ノー
ドには、キー値4およびポインタ5の組が1つまたは複
数組存在する。リーフノード3以外のノードであるルー
トノード1および中間ノード2には、ある値のキー値4
とポインタ5の組が1つまたは複数組格納されている。
(根)ノード1と呼ばれ、一般に複数の中間ノード2を
経て最終段のリーフ(葉)ノード3に到達する。各ノー
ドには、キー値4およびポインタ5の組が1つまたは複
数組存在する。リーフノード3以外のノードであるルー
トノード1および中間ノード2には、ある値のキー値4
とポインタ5の組が1つまたは複数組格納されている。
【0006】ルートノード1および中間ノード2のポイ
ンタ5および9は、その下位のノードのインデックスフ
ァイル上の格納位置を示す。リーフノード3のキー値6
およびポインタ7の組は、データファイル上の対応する
見出し語などのキーの値と格納位置を示す。
ンタ5および9は、その下位のノードのインデックスフ
ァイル上の格納位置を示す。リーフノード3のキー値6
およびポインタ7の組は、データファイル上の対応する
見出し語などのキーの値と格納位置を示す。
【0007】図14は、図13のルートノード1および
中間ノード2のような、リーフノード3以外のルートノ
ード1および中間ノード2におけるキー値とノードの関
係を示す。たとえば上位層のノード10内では、次の第
1式に示すようにキーが昇順にソートされている場合を
想定する。
中間ノード2のような、リーフノード3以外のルートノ
ード1および中間ノード2におけるキー値とノードの関
係を示す。たとえば上位層のノード10内では、次の第
1式に示すようにキーが昇順にソートされている場合を
想定する。
【0008】 Key1 < Key2 < …< KeyN …(1) 各キー値 Key1,Key2,…,KeyN に組み合わせられるポ
インタを Pointer1,Pointer2,…,PointerN とし、Ke
y1 に関連する Pointer1 が示すノード11Aに含まれ
るキー値を KeyA1, KeyA2, …,KeyAM とすると、次の第
2式の関係が成立する。
インタを Pointer1,Pointer2,…,PointerN とし、Ke
y1 に関連する Pointer1 が示すノード11Aに含まれ
るキー値を KeyA1, KeyA2, …,KeyAM とすると、次の第
2式の関係が成立する。
【0009】 KeyA1 < KeyA2 < …< KeyAM = Key1 …(2) 同様に Key2 に関連する Pointer2 が示すノード11B
に含まれるキー値をKeyB1,KeyB2,…,KeyBL とする
と、次の第3式の関係が成立する。
に含まれるキー値をKeyB1,KeyB2,…,KeyBL とする
と、次の第3式の関係が成立する。
【0010】 Key1 < KeyB1 < KeyB2 < …< KeyBL = Key2 …(3) すなわち、上位層ノード10から下位層ノード11A、
11Bを参照するポインタに対応付けられるキー値は、
下位層ノード11A、11Bが保持する最大のキー値と
等しい。また階層状にリンクされた最後のノードである
リーフノードにも、キー値との組が格納されているけれ
ども、このキー値と順編成されたデータファイル上のレ
コードの格納位置とが直接対応している。
11Bを参照するポインタに対応付けられるキー値は、
下位層ノード11A、11Bが保持する最大のキー値と
等しい。また階層状にリンクされた最後のノードである
リーフノードにも、キー値との組が格納されているけれ
ども、このキー値と順編成されたデータファイル上のレ
コードの格納位置とが直接対応している。
【0011】キーを利用したデータの検索は、ルートノ
ードを起点にして行う。各ノード内のキー値は、たとえ
ば昇順にソートされているので、バイナリサーチなどの
方法によって迅速に検索することが可能である。たとえ
ば、図14の上位層ノード10に含まれるキー値のう
ち、目的とするキー値 Key と、次の第4式の関係が成
立すれば、キー値 Key2 に関連づけられるポインタ Poi
nter2 で示される下位層ノード11Bを次に検索するこ
とになる。
ードを起点にして行う。各ノード内のキー値は、たとえ
ば昇順にソートされているので、バイナリサーチなどの
方法によって迅速に検索することが可能である。たとえ
ば、図14の上位層ノード10に含まれるキー値のう
ち、目的とするキー値 Key と、次の第4式の関係が成
立すれば、キー値 Key2 に関連づけられるポインタ Poi
nter2 で示される下位層ノード11Bを次に検索するこ
とになる。
【0012】そして最後に到達したリーフノードで、KE
Y に等しいキー値が存在すれば、そのキー値に関連づけ
られたポインタを得ることができる。このポインタがデ
ータファイル上の目的のデータレコードの格納位置を示
す。最終的なリーフノードに、KEY に等しいキー値が存
在しなければ、対応するデータレコードが存在しないこ
とを示す。
Y に等しいキー値が存在すれば、そのキー値に関連づけ
られたポインタを得ることができる。このポインタがデ
ータファイル上の目的のデータレコードの格納位置を示
す。最終的なリーフノードに、KEY に等しいキー値が存
在しなければ、対応するデータレコードが存在しないこ
とを示す。
【0013】Key1 < KEY < Key2 …(4)
【0014】図15、16、17は、以上説明してきた
Bツリーにキーを追加する方法を示す。各ノードは、キ
ー値とポインタとの組が格納可能な最大数に対応して確
保されており、最大数未満のキー値およびポインタの組
が格納されている場合は、空き領域として管理される。
図15(1)のようにリーフノード18に空き領域19
が存在し、格納されているキー値 Key1, Key2 の間の大
きさのキー値を追加する場合を想定する。
Bツリーにキーを追加する方法を示す。各ノードは、キ
ー値とポインタとの組が格納可能な最大数に対応して確
保されており、最大数未満のキー値およびポインタの組
が格納されている場合は、空き領域として管理される。
図15(1)のようにリーフノード18に空き領域19
が存在し、格納されているキー値 Key1, Key2 の間の大
きさのキー値を追加する場合を想定する。
【0015】図15(2)のように元の空き領域19を
空き領域20まで減少させ、追加するキー値 KeyA より
も大きいキー値を持つすべてのキー値とポインタとの組
をシフトするためのシフト領域21を生み出す。キー値
とポインタとの組をシフトして空いた追加領域22に、
新たなキー値 KeyA および対応するポインタを追加す
る。このように、リーフノードに空き領域21があれ
ば、該当するリーフノードのみを書き換えるだけでキー
の追加が行われる。
空き領域20まで減少させ、追加するキー値 KeyA より
も大きいキー値を持つすべてのキー値とポインタとの組
をシフトするためのシフト領域21を生み出す。キー値
とポインタとの組をシフトして空いた追加領域22に、
新たなキー値 KeyA および対応するポインタを追加す
る。このように、リーフノードに空き領域21があれ
ば、該当するリーフノードのみを書き換えるだけでキー
の追加が行われる。
【0016】図16にリーフノードが一杯で、隣のノー
ドに空き領域が存在する場合に、キーを追加する方法を
示す。図16(1)に上位層ノード31の下にリーフノ
ード32,33のうち、キーが一杯になっているリーフ
ノード32に新たなキーを追加すると、図16(2)に
示すように、空き領域を有する隣のノード33に対して
キーの追加が行われる。
ドに空き領域が存在する場合に、キーを追加する方法を
示す。図16(1)に上位層ノード31の下にリーフノ
ード32,33のうち、キーが一杯になっているリーフ
ノード32に新たなキーを追加すると、図16(2)に
示すように、空き領域を有する隣のノード33に対して
キーの追加が行われる。
【0017】追加前のリーフノードの状態に新たなキー
KeyA を追加すると、それまでの最大のキー値である K
ey3 が追い出されるので、上位層ノード34も下位層ノ
ード35の保有する最大のキー値 Key2 に対応してキー
値が書き換えられる。隣接するリーフノード36に対し
ては、新たなキー値 Key3 を追加するために、元のキー
値 Key4 のシフトが行われる。
KeyA を追加すると、それまでの最大のキー値である K
ey3 が追い出されるので、上位層ノード34も下位層ノ
ード35の保有する最大のキー値 Key2 に対応してキー
値が書き換えられる。隣接するリーフノード36に対し
ては、新たなキー値 Key3 を追加するために、元のキー
値 Key4 のシフトが行われる。
【0018】図17(1)に示すように、上位層ノード
41の下位のリーフノード42、43が既に一杯であ
り、一方のリーフノード42にさらにキーを追加する場
合は、リーフノード42を分割する。新たな上位層ノー
ド44は、元のリーフノード42を分割したリーフノー
ド45、46と、元のリーフノード43に対応するリー
フノード47とをそれぞれ示すキー値とポインタとの組
を格納する。元のリーフノード42は、リーフノード4
5、46に分割され、元のリーフノード43は、リーフ
ノード47となる。
41の下位のリーフノード42、43が既に一杯であ
り、一方のリーフノード42にさらにキーを追加する場
合は、リーフノード42を分割する。新たな上位層ノー
ド44は、元のリーフノード42を分割したリーフノー
ド45、46と、元のリーフノード43に対応するリー
フノード47とをそれぞれ示すキー値とポインタとの組
を格納する。元のリーフノード42は、リーフノード4
5、46に分割され、元のリーフノード43は、リーフ
ノード47となる。
【0019】キーをノードから削除する場合、対象とな
るキーを検索し、該当するキー値がリーフノードに存在
したら対応するポインタをNullポインタに書き換え
る。この段階では、リーフノードにキー値そのものは残
るけれども、ポインタがNullポインタに書き換えら
れるので、キーが存在しないことを示される。
るキーを検索し、該当するキー値がリーフノードに存在
したら対応するポインタをNullポインタに書き換え
る。この段階では、リーフノードにキー値そのものは残
るけれども、ポインタがNullポインタに書き換えら
れるので、キーが存在しないことを示される。
【0020】図18にBツリーでのファイルの実現方法
を示す。通常、ファイル51は、線形のメモリ空間に配
置され、ファイルを構成する各内容は、空間上の位置を
示すアドレスによって指定される。各内容は、他の内容
とは直接結び付けられないデータ構成である。
を示す。通常、ファイル51は、線形のメモリ空間に配
置され、ファイルを構成する各内容は、空間上の位置を
示すアドレスによって指定される。各内容は、他の内容
とは直接結び付けられないデータ構成である。
【0021】このような線形のファイルでBツリーファ
イル51を表現するには、各ノードを固定長レコード5
2、53として表し、各ノード間のリンク関係を各レコ
ードの位置を表すポインタ54で表現する。ポインタ
は、たとえばノードのレコードの先頭からのオフセット
アドレス55で表すことができる。
イル51を表現するには、各ノードを固定長レコード5
2、53として表し、各ノード間のリンク関係を各レコ
ードの位置を表すポインタ54で表現する。ポインタ
は、たとえばノードのレコードの先頭からのオフセット
アドレス55で表すことができる。
【0022】ISAM方式で構成されたファイルを利用
してデータ処理を行う際には、次の命令がファイルに対
する複数のアクセスを発生させる。
してデータ処理を行う際には、次の命令がファイルに対
する複数のアクセスを発生させる。
【0023】索引付き、データレコードの読み取り 索引付き、データレコードの更新 索引付き、データレコードの追加 索引付き、データレコードの削除
【0024】これらの命令が発生した場合、インデック
スファイルの複数のノードを順に読み取り、リーフノー
ドまで達した後に、キー値に対応するレコードをデータ
ファイルから読みとり、更新し追加し、あるいは書き込
むことになる。
スファイルの複数のノードを順に読み取り、リーフノー
ドまで達した後に、キー値に対応するレコードをデータ
ファイルから読みとり、更新し追加し、あるいは書き込
むことになる。
【0025】インデックスファイルおよびデータファイ
ルは、大規模の記憶領域を必要とするため、一般に低速
な外部記憶装置に存在する。そして、複数回のアクセス
が発生する。また、外部記憶装置上のアクセスすべき位
置であるアドレスを指定した後に、目的とするデータを
書き込むあるいは読み込むまでの時間、中央処理装置
は、次の命令を受け付けず、待機状態のままとなる。
ルは、大規模の記憶領域を必要とするため、一般に低速
な外部記憶装置に存在する。そして、複数回のアクセス
が発生する。また、外部記憶装置上のアクセスすべき位
置であるアドレスを指定した後に、目的とするデータを
書き込むあるいは読み込むまでの時間、中央処理装置
は、次の命令を受け付けず、待機状態のままとなる。
【0026】また、時分割によって、複数のプログラム
を同時に動作させるマルチタスクシステムでは、同じI
SAMファイルアクセス手段を用いる場合、その手段を
資源として扱い、ISAMファイルアクセス手段がある
プロセスによって使用中の場合、他のプロセスがそのI
SAMファイルアクセス手段を使用することはできな
い。
を同時に動作させるマルチタスクシステムでは、同じI
SAMファイルアクセス手段を用いる場合、その手段を
資源として扱い、ISAMファイルアクセス手段がある
プロセスによって使用中の場合、他のプロセスがそのI
SAMファイルアクセス手段を使用することはできな
い。
【0027】従来、先行技術として、例えば、特開平6
−337836号に開示されているものがある。この先
行技術は、ホストコンピュータと周辺装置との間のバス
インターフェイスにおいて、周辺装置である複数の外部
記憶装置に対して、それぞれの記憶装置のどの位置にデ
ータが存在するかを特定せず、外部記憶装置の制御装置
において、ホストコンピュータからのコマンドを実行す
るものであり、その場合のホストコンピュータと周辺装
置との間のバス制御に関するものである。
−337836号に開示されているものがある。この先
行技術は、ホストコンピュータと周辺装置との間のバス
インターフェイスにおいて、周辺装置である複数の外部
記憶装置に対して、それぞれの記憶装置のどの位置にデ
ータが存在するかを特定せず、外部記憶装置の制御装置
において、ホストコンピュータからのコマンドを実行す
るものであり、その場合のホストコンピュータと周辺装
置との間のバス制御に関するものである。
【0028】また、特開平4−191921号に開示さ
れている技術は、記憶媒体の複数の位置にヘッドを介し
て、アクセスする記憶装置でヘッドの位置を考慮して、
データの転送コマンドを所定タイミングで、キューイン
グして、最適順序で処理するものである。
れている技術は、記憶媒体の複数の位置にヘッドを介し
て、アクセスする記憶装置でヘッドの位置を考慮して、
データの転送コマンドを所定タイミングで、キューイン
グして、最適順序で処理するものである。
【0029】特開平2−7129号に開示されている技
術は、複数の命令を同時に実行するための演算装置に関
するものである。
術は、複数の命令を同時に実行するための演算装置に関
するものである。
【0030】
【発明が解決しようとする課題】インデックスファイル
およびデータファイルが存在する一般に低速な外部記憶
装置に対する複数回のアクセス時には、アクセスすべき
外部記憶装置上の位置であるアドレスを指定した後に目
的とするデータを書き込むあるいは読み込むまでの時
間、中央処理装置は、次の命令を受け付けず、待機状態
のままとなり、全体の処理効率を低下させている。
およびデータファイルが存在する一般に低速な外部記憶
装置に対する複数回のアクセス時には、アクセスすべき
外部記憶装置上の位置であるアドレスを指定した後に目
的とするデータを書き込むあるいは読み込むまでの時
間、中央処理装置は、次の命令を受け付けず、待機状態
のままとなり、全体の処理効率を低下させている。
【0031】またマルチタスクシステムでは、ISAM
ファイルアクセスプロセスが動作中の場合、別のプロセ
スがそのISAMファイルアクセス手段を使用すること
はできないため、全体の処理効率を低下させている。
ファイルアクセスプロセスが動作中の場合、別のプロセ
スがそのISAMファイルアクセス手段を使用すること
はできないため、全体の処理効率を低下させている。
【0032】特開平6−337836号は、複数の周辺
装置である外部記憶装置に対するものであり、複数の外
部記憶装置を持たない規模の小さな機器では使用が困難
なものである。
装置である外部記憶装置に対するものであり、複数の外
部記憶装置を持たない規模の小さな機器では使用が困難
なものである。
【0033】特開平4−191921号は、記憶媒体の
データ位置とデータの転送コマンドに関するものであ
り、もともとのデータ転送コマンドを発生させるファイ
ル管理に関するものではない。
データ位置とデータの転送コマンドに関するものであ
り、もともとのデータ転送コマンドを発生させるファイ
ル管理に関するものではない。
【0034】特開平2−7129号では、特別な演算装
置に対するものであり、特別な装置を必要とする。
置に対するものであり、特別な装置を必要とする。
【0035】本発明の目的は、ISAMファイルアクセ
スに対して外部記憶装置のアクセス中に別の命令を先受
けして、システム全体の処理効率を向上させるものであ
る。
スに対して外部記憶装置のアクセス中に別の命令を先受
けして、システム全体の処理効率を向上させるものであ
る。
【0036】<請求項1の課題>ISAMファイルにお
いては、レコードの読み取り、追加、更新、削除の処理
を行う場合、インデックスファイルとデータファイルの
両方のファイルに対する複数アクセスが発生する。この
場合、従来技術では、ファイルアクセスを完了するま
で、次の処理が行われず、処理効率が低下するという問
題があった。
いては、レコードの読み取り、追加、更新、削除の処理
を行う場合、インデックスファイルとデータファイルの
両方のファイルに対する複数アクセスが発生する。この
場合、従来技術では、ファイルアクセスを完了するま
で、次の処理が行われず、処理効率が低下するという問
題があった。
【0037】<請求項2の課題>レコードの追加、削除
の処理では、ISAMファイルシステムの2つの構成要
素であるインデックスファイルとデータファイルの双方
に対して、書き込み処理を実施する。細分化された命令
を実行する場合、最初にデータファイルへの書き込み処
理を正常に実行した後、次にインデックスファイルへの
書き込み処理を実施する。
の処理では、ISAMファイルシステムの2つの構成要
素であるインデックスファイルとデータファイルの双方
に対して、書き込み処理を実施する。細分化された命令
を実行する場合、最初にデータファイルへの書き込み処
理を正常に実行した後、次にインデックスファイルへの
書き込み処理を実施する。
【0038】この場合、このインデックスファイルに対
する書き込み処理が失敗した場合、追加処理ではデータ
レコードは、存在するがインデックスファイルに対応す
るキーが存在しないというデータとインデックスの整合
性に矛盾が発生する。また、削除処理ではデータレコー
ドは、存在しないがインデックスファイルに対応するキ
ーが存在するというデータとインデックスの整合性に矛
盾が発生する。
する書き込み処理が失敗した場合、追加処理ではデータ
レコードは、存在するがインデックスファイルに対応す
るキーが存在しないというデータとインデックスの整合
性に矛盾が発生する。また、削除処理ではデータレコー
ドは、存在しないがインデックスファイルに対応するキ
ーが存在するというデータとインデックスの整合性に矛
盾が発生する。
【0039】<請求項3の課題>マルチタスクシステム
においては、同一情報処理装置内の複数のプロセスから
また、ネットワークシステムではネットワークを介した
他の情報処理装置から、ISAMファイル情報処理装置
に対して、同時に複数のISAMファイル命令の実行の
要求が発生する。この場合、従来技術では、各要求に対
して、外部記憶装置上のファイルをアクセスして処理を
完全に実行した後に、次の要求を受け付けるようにして
おり、低速な外部記憶装置の速度によって、システム全
体の処理効率が決定され、効率が低下するという問題が
あった。
においては、同一情報処理装置内の複数のプロセスから
また、ネットワークシステムではネットワークを介した
他の情報処理装置から、ISAMファイル情報処理装置
に対して、同時に複数のISAMファイル命令の実行の
要求が発生する。この場合、従来技術では、各要求に対
して、外部記憶装置上のファイルをアクセスして処理を
完全に実行した後に、次の要求を受け付けるようにして
おり、低速な外部記憶装置の速度によって、システム全
体の処理効率が決定され、効率が低下するという問題が
あった。
【0040】
【課題を解決するための手段】本発明のISAMファイ
ル情報管理装置は、上記の問題を解決するため先頭から
順次レコードが格納される順編成ファイルを不揮発性の
外部記憶装置に展開し、各レコードに対応するキーと、
各レコードの格納位置を表すデータとを組み合わせたイ
ンデックスファイルを用いて順編成データファイルを高
速に検索するISAMファイル情報処理装置において、
ISAMファイルに対するレコードの検索読み取り、追
加、更新、削除の命令に対して、その命令に対応するフ
ァイルアクセス命令を細分化する細分化手段と、データ
ファイルを管理する第1の管理手段と、インデックスフ
ァイルを管理する第2の管理手段と、ISAMファイル
アクセス命令を受けとり、上記第1及び第2の管理手段
を用いて、ISAMファイルアクセス命令を解釈し、複
数のデータファイル、インデックスファイルに対する実
際の処理に変換し、上記外部記憶装置に対するアクセス
命令を発行する処理手段とを設け、上記外部記憶手段に
対するアクセス命令を上記細分化手段により細分化され
たファイルアクセス命令に従って実行中に、次にデータ
ファイル、インデックスファイルに対する命令を受け付
け、解釈して、ファイル検索の処理効率を向上させるよ
うにしたことを特徴とする。
ル情報管理装置は、上記の問題を解決するため先頭から
順次レコードが格納される順編成ファイルを不揮発性の
外部記憶装置に展開し、各レコードに対応するキーと、
各レコードの格納位置を表すデータとを組み合わせたイ
ンデックスファイルを用いて順編成データファイルを高
速に検索するISAMファイル情報処理装置において、
ISAMファイルに対するレコードの検索読み取り、追
加、更新、削除の命令に対して、その命令に対応するフ
ァイルアクセス命令を細分化する細分化手段と、データ
ファイルを管理する第1の管理手段と、インデックスフ
ァイルを管理する第2の管理手段と、ISAMファイル
アクセス命令を受けとり、上記第1及び第2の管理手段
を用いて、ISAMファイルアクセス命令を解釈し、複
数のデータファイル、インデックスファイルに対する実
際の処理に変換し、上記外部記憶装置に対するアクセス
命令を発行する処理手段とを設け、上記外部記憶手段に
対するアクセス命令を上記細分化手段により細分化され
たファイルアクセス命令に従って実行中に、次にデータ
ファイル、インデックスファイルに対する命令を受け付
け、解釈して、ファイル検索の処理効率を向上させるよ
うにしたことを特徴とする。
【0041】ISAMによって管理されるデータファイ
ル、インデックスファイルを操作する命令は、次のよう
なものになる。
ル、インデックスファイルを操作する命令は、次のよう
なものになる。
【0042】(1)データレコードの追加 (2)データレコードの読み取り (3)データレコードの削除 (4)データレコードの更新
【0043】この各命令においては、実際には外部記憶
装置に対する複数アクセス命令が発生し、これは、細分
化手段により次のような複数のファイルアクセス命令と
して細分化される。
装置に対する複数アクセス命令が発生し、これは、細分
化手段により次のような複数のファイルアクセス命令と
して細分化される。
【0044】 (1)データレコードの追加 インデックスファイル 既に同じキーを持つレコードが登録され ていないかのチェック。 データファイル データレコードの追加。 インデックスファイル キーに対応するインデックスの追加。 (2)データレコードの読み取り インデックスファイル キーに対応するインデックスの検索。 データファイル データレコードの読み取り。 (3)データレコードの削除 インデックスファイル キーに対応するインデックスの検索。 データファイル データレコードの削除。 インデックスファイル キーの削除。 (4)データレコードの更新 インデックスファイル キーに対応するインデックスの検索。 データファイル データレコードの読み取り。 データファイル 更新されたデータレコードの書き込み。
【0045】これらの命令が発生した場合、それぞれの
命令は、複数のファイルへのアクセス命令となってい
る。特にインデックスファイルは、ルートノードから、
リーフノードに向かって複数のノードを外部記憶装置上
の別々の位置から読み出すことになる。
命令は、複数のファイルへのアクセス命令となってい
る。特にインデックスファイルは、ルートノードから、
リーフノードに向かって複数のノードを外部記憶装置上
の別々の位置から読み出すことになる。
【0046】この外部記憶装置へのアクセスを実行時、
外部記憶装置から、処理の結果が返ってくるまで、次の
処理を行うことが可能である。
外部記憶装置から、処理の結果が返ってくるまで、次の
処理を行うことが可能である。
【0047】・次のISAMファイルアクセス命令の読
みだし ・ISAMファイルアクセス命令の解釈 ・ISAMファイルアクセス命令実行のための準備 これらの処理を並行して実行する。
みだし ・ISAMファイルアクセス命令の解釈 ・ISAMファイルアクセス命令実行のための準備 これらの処理を並行して実行する。
【0048】また、本発明のISAMファイル情報処理
装置は、上記のISAMファイル情報処理装置におい
て、上記細分化手段を用いて、複数に分割された命令に
よりISAMファイルに対するレコードの追加、削除を
行うものであって、上記外部記憶装置へのアクセス命令
に対する応答が、外部記憶装置から戻ってくる前に次の
データファイル、インデックスファイルに対する命令を
解釈するとき、一連の処理の途中で異常が発生すると、
一連の処理が実行される直前の状態に戻す復元処理手段
を設け、複数に分割された命令の実行途中における失敗
時の復元を行わせるようにしたことを特徴とする。
装置は、上記のISAMファイル情報処理装置におい
て、上記細分化手段を用いて、複数に分割された命令に
よりISAMファイルに対するレコードの追加、削除を
行うものであって、上記外部記憶装置へのアクセス命令
に対する応答が、外部記憶装置から戻ってくる前に次の
データファイル、インデックスファイルに対する命令を
解釈するとき、一連の処理の途中で異常が発生すると、
一連の処理が実行される直前の状態に戻す復元処理手段
を設け、複数に分割された命令の実行途中における失敗
時の復元を行わせるようにしたことを特徴とする。
【0049】ISAMによって管理されるデータファイ
ル、インデックスファイルを操作する次の命令、 (1)データレコードの追加 (2)データレコードの削除 においては、実際には複数の外部記憶装置上の複数のフ
ァイルに対するアクセス命令が発生し、複数のファイル
に対する書き込み処理を実施する。この命令は、次の組
み合わせとなる。
ル、インデックスファイルを操作する次の命令、 (1)データレコードの追加 (2)データレコードの削除 においては、実際には複数の外部記憶装置上の複数のフ
ァイルに対するアクセス命令が発生し、複数のファイル
に対する書き込み処理を実施する。この命令は、次の組
み合わせとなる。
【0050】 (1)データレコードの追加 インデックスファイル 既に同じキーを持つレコードが登録されていない かのチェック。 データファイル データレコードの追加。 インデックスファイル キーに対応するインデックスの追加。 (2)データレコードの削除 インデックスファイル キーに対応するインデックスの検索。 データファイル データレコードの削除。 インデックスファイル キーの削除。
【0051】これらの命令が発生した場合、それぞれの
命令は、複数のファイルへの書き込み命令となってい
る。この処理の途中で命令の実行に失敗した場合、直前
に実行した処理を取り消すために、 (1)データレコードの追加 データファイル データレコードの削除。 (2)データレコードの削除 データファイル データレコードの追加。 を実施する。
命令は、複数のファイルへの書き込み命令となってい
る。この処理の途中で命令の実行に失敗した場合、直前
に実行した処理を取り消すために、 (1)データレコードの追加 データファイル データレコードの削除。 (2)データレコードの削除 データファイル データレコードの追加。 を実施する。
【0052】このために、データレコードの削除を実施
する場合、元のレコードの内容を保存しておくこととな
る。以上により先に実行されたファイル書き換え処理
は、正常に行われたが、次のファイル書き換え処理に失
敗した場合、前に実行された命令を取り消し、既に外部
記憶装置に対して行われたファイルアクセスの結果を元
の状態に戻すことができ、複数に分割された命令の途中
失敗時の復元処理が可能になる。
する場合、元のレコードの内容を保存しておくこととな
る。以上により先に実行されたファイル書き換え処理
は、正常に行われたが、次のファイル書き換え処理に失
敗した場合、前に実行された命令を取り消し、既に外部
記憶装置に対して行われたファイルアクセスの結果を元
の状態に戻すことができ、複数に分割された命令の途中
失敗時の復元処理が可能になる。
【0053】また、本発明のISAMファイル情報処理
装置は、先頭から順次レコードが格納される順編成デー
タファイルを不揮発性の外部記憶装置に展開し、各レコ
ードに対応するキーと、各レコードの格納位置を表すデ
ータとを組み合わせたインデックスファイルを用いて順
編成データファイルを高速に検索し、マルチタスクシス
テムまたはネットワークシステムあるいは両方を組み合
わせたシステムからのISAMファイルアクセス命令を
同時に処理するISAMファイル情報処理装置におい
て、ISAMファイルアクセス命令を解釈する解釈手段
と、ISAMファイルに対する命令に対して、その命令
に対応するファイルアクセス命令を細分化する細分化手
段と、該細分化手段により細分化した命令に対してマル
チタスクシステムの複数のプロセスの識別子またはネッ
トワークノードの識別子あるいはその両方を付加する識
別子付加手段とを設け、上記解釈手段は、上記細分化手
段から導出する細分化した、ファイルアクセス命令を実
際の物理的な外部記憶装置に対して実行中に、次のファ
イルアクセス命令を受け付け、解釈して、命令全体の処
理時間を短縮するようにしたことを特徴とする。
装置は、先頭から順次レコードが格納される順編成デー
タファイルを不揮発性の外部記憶装置に展開し、各レコ
ードに対応するキーと、各レコードの格納位置を表すデ
ータとを組み合わせたインデックスファイルを用いて順
編成データファイルを高速に検索し、マルチタスクシス
テムまたはネットワークシステムあるいは両方を組み合
わせたシステムからのISAMファイルアクセス命令を
同時に処理するISAMファイル情報処理装置におい
て、ISAMファイルアクセス命令を解釈する解釈手段
と、ISAMファイルに対する命令に対して、その命令
に対応するファイルアクセス命令を細分化する細分化手
段と、該細分化手段により細分化した命令に対してマル
チタスクシステムの複数のプロセスの識別子またはネッ
トワークノードの識別子あるいはその両方を付加する識
別子付加手段とを設け、上記解釈手段は、上記細分化手
段から導出する細分化した、ファイルアクセス命令を実
際の物理的な外部記憶装置に対して実行中に、次のファ
イルアクセス命令を受け付け、解釈して、命令全体の処
理時間を短縮するようにしたことを特徴とする。
【0054】マルチタスクシステムにおける他の複数の
プロセス、あるいは、ネットワーク上に存在する複数の
情報処理装置から同時に複数のISAMファイルアクセ
ス要求がある場合、それぞれ、マルチタスクシステム上
のどのプロセス、あるいは、ネットワーク上のどのプロ
セスかを判別するプロセスを特定するための認識情報で
あるIDの付与が必要になる。
プロセス、あるいは、ネットワーク上に存在する複数の
情報処理装置から同時に複数のISAMファイルアクセ
ス要求がある場合、それぞれ、マルチタスクシステム上
のどのプロセス、あるいは、ネットワーク上のどのプロ
セスかを判別するプロセスを特定するための認識情報で
あるIDの付与が必要になる。
【0055】このIDは、識別子付加手段により、上記
細分化手段で細分化されたISAMファイルアクセス命
令に添付して、ISAMファイルアクセス命令を解釈す
る解釈装置に送る。ISAMファイルアクセス命令の解
釈手段は、発生順に複数の要求を受け取り、保存する。
そして、発生順かつ、処理可能なものから順次、ISA
Mファイルアクセス命令を実行していく。このとき、こ
の外部記憶装置への細分化されたファイルアクセス命令
を実行時、外部記憶装置から、処理の結果が返ってくる
まで、次の処理を並行して行うことができ、命令全体の
処理時間を短縮することが可能となる。
細分化手段で細分化されたISAMファイルアクセス命
令に添付して、ISAMファイルアクセス命令を解釈す
る解釈装置に送る。ISAMファイルアクセス命令の解
釈手段は、発生順に複数の要求を受け取り、保存する。
そして、発生順かつ、処理可能なものから順次、ISA
Mファイルアクセス命令を実行していく。このとき、こ
の外部記憶装置への細分化されたファイルアクセス命令
を実行時、外部記憶装置から、処理の結果が返ってくる
まで、次の処理を並行して行うことができ、命令全体の
処理時間を短縮することが可能となる。
【0056】・次のISAMファイルアクセス命令の読
み出し ・ISAMファイルアクセス命令の解釈 ・ISAMファイルアクセス命令実行のための準備
み出し ・ISAMファイルアクセス命令の解釈 ・ISAMファイルアクセス命令実行のための準備
【0057】
<実施形態1>図1は、本発明を実施するための前提と
なるハードウェア構成を示す。中央処理装置101は、
CPUなどを含み、オペレーティングシステム及びIS
AMファイル管理システムを動作させ、さらに使用者の
必要とするアプリケーションプログラムを実行する。
なるハードウェア構成を示す。中央処理装置101は、
CPUなどを含み、オペレーティングシステム及びIS
AMファイル管理システムを動作させ、さらに使用者の
必要とするアプリケーションプログラムを実行する。
【0058】ISAMファイルは、たとえばPOSにお
ける商品データや顧客データなど、数千〜数万のデータ
を効率的に管理するために利用される。これらの場合の
キーとして、商品コードや名前あるいは電話番号などが
用いられる。中央処理装置101が実行する各プログラ
ムのコードとデータは、磁気ディスク装置や磁気テープ
装置などによって実現される不揮発性の外部記憶装置1
02から与えられる。
ける商品データや顧客データなど、数千〜数万のデータ
を効率的に管理するために利用される。これらの場合の
キーとして、商品コードや名前あるいは電話番号などが
用いられる。中央処理装置101が実行する各プログラ
ムのコードとデータは、磁気ディスク装置や磁気テープ
装置などによって実現される不揮発性の外部記憶装置1
02から与えられる。
【0059】一般に、外部記憶装置102に対するアク
セス速度は遅くなるので、中央処理装置101は主とし
て主記憶装置内103に記憶されているコードおよびデ
ータに基づいて動作する。主記憶装置は、例えば半導体
メモリによって実現されている。
セス速度は遅くなるので、中央処理装置101は主とし
て主記憶装置内103に記憶されているコードおよびデ
ータに基づいて動作する。主記憶装置は、例えば半導体
メモリによって実現されている。
【0060】本構成では、外部記憶装置102を制御す
るための外部記憶制御装置104が設けられている。こ
の外部記憶制御装置104は、外部記憶装置102の指
定位置のデータをアクセスするため、アドレス位置指定
のためのアドレス情報や、データを読み取る、または書
き込むなどのコマンド、さらに読み取ったデータや書き
込むべきデータを外部記憶制御装置104と通信するた
めのデータ/アドレス信号線105と、コマンドとデー
タの区別などを行うための制御信号線106、さらに、
外部記憶制御装置104で状態が変化した場合、それを
伝えるための割り込み信号線107があり、それぞれ外
部記憶装置102と外部記憶制御装置104さらに中央
処理装置101と接続される。
るための外部記憶制御装置104が設けられている。こ
の外部記憶制御装置104は、外部記憶装置102の指
定位置のデータをアクセスするため、アドレス位置指定
のためのアドレス情報や、データを読み取る、または書
き込むなどのコマンド、さらに読み取ったデータや書き
込むべきデータを外部記憶制御装置104と通信するた
めのデータ/アドレス信号線105と、コマンドとデー
タの区別などを行うための制御信号線106、さらに、
外部記憶制御装置104で状態が変化した場合、それを
伝えるための割り込み信号線107があり、それぞれ外
部記憶装置102と外部記憶制御装置104さらに中央
処理装置101と接続される。
【0061】本発明は、これらの信号線105、10
6、107によって外部記憶制御装置102を中央処理
装置101が制御することによって実現される。108
は、外部情報処理装置110との間でネットワーク10
9を介して情報の通信を行う通信装置である。
6、107によって外部記憶制御装置102を中央処理
装置101が制御することによって実現される。108
は、外部情報処理装置110との間でネットワーク10
9を介して情報の通信を行う通信装置である。
【0062】図2は、主記憶装置103内のメモリマッ
プ103を示す。例えば、アプリケーションプロセスの
データ部133、135およびコード部134、13
6、通信制御プロセスのデータ部137、およびコード
部138、ISAMファイルアクセス管理プロセスのデ
ータ部139およびコード部140、オペレーティング
システムのデータ部142およびコード部143、さら
に空き領域141のように、使い分けられる。
プ103を示す。例えば、アプリケーションプロセスの
データ部133、135およびコード部134、13
6、通信制御プロセスのデータ部137、およびコード
部138、ISAMファイルアクセス管理プロセスのデ
ータ部139およびコード部140、オペレーティング
システムのデータ部142およびコード部143、さら
に空き領域141のように、使い分けられる。
【0063】主記憶装置103上には、アプリケーショ
ンプログラム、通信制御プログラム、ISAMファイル
アクセス管理プログラム、オペレーティングシステムの
ように、複数のプログラムが読み出され、時分割などに
よって同時に動作する。この場合、アプリケーションプ
ログラムとISAMファイルアクセス管理プログラム
は、オペレーティングシステム上でマルチタスクとして
同時に動作する。主記憶装置103上に読み出される動
作に必要なコードとデータとの1つの実態単位をプロセ
スと呼ぶこととする。
ンプログラム、通信制御プログラム、ISAMファイル
アクセス管理プログラム、オペレーティングシステムの
ように、複数のプログラムが読み出され、時分割などに
よって同時に動作する。この場合、アプリケーションプ
ログラムとISAMファイルアクセス管理プログラム
は、オペレーティングシステム上でマルチタスクとして
同時に動作する。主記憶装置103上に読み出される動
作に必要なコードとデータとの1つの実態単位をプロセ
スと呼ぶこととする。
【0064】図3は、図2のISAMファイルアクセス
管理プログラムのメモリマップを示す。ISAMファイ
ル管理プロセスは、各アプリケーションからのISAM
ファイルアクセス要求をプロセス間通信手段によって要
求を受け取り、アクセス要求バッファ150に保管す
る。検索、追加、更新、削除などの動作を指定するため
のコマンド領域151と、書き込みデータ領域152、
書き込み位置などの動作に必要な情報を保存するための
データ領域を保存するパラメータ領域153、この要求
が実行中か待機中かを示すフラグ領域154また、各要
求の順序やバッファの空き領域のリンク関係を示すため
のリンク領域155を含む。
管理プログラムのメモリマップを示す。ISAMファイ
ル管理プロセスは、各アプリケーションからのISAM
ファイルアクセス要求をプロセス間通信手段によって要
求を受け取り、アクセス要求バッファ150に保管す
る。検索、追加、更新、削除などの動作を指定するため
のコマンド領域151と、書き込みデータ領域152、
書き込み位置などの動作に必要な情報を保存するための
データ領域を保存するパラメータ領域153、この要求
が実行中か待機中かを示すフラグ領域154また、各要
求の順序やバッファの空き領域のリンク関係を示すため
のリンク領域155を含む。
【0065】またどのプロセスから発生した要求かを示
すプロセスID領域156とアクセス要求から派生した
最初の基本命令を示すための基本命令リンク領域158
が存在する。本発明では複数のアクセス要求バッファが
存在する。
すプロセスID領域156とアクセス要求から派生した
最初の基本命令を示すための基本命令リンク領域158
が存在する。本発明では複数のアクセス要求バッファが
存在する。
【0066】このアクセス要求バッファを管理するため
に、受け付けた最も古い要求を示すFirstポインタ
160、最も新しい要求を示すLastポインタ16
1、空きバッファリンクの先頭を示す空きバッファポイ
ンタ162が存在する。
に、受け付けた最も古い要求を示すFirstポインタ
160、最も新しい要求を示すLastポインタ16
1、空きバッファリンクの先頭を示す空きバッファポイ
ンタ162が存在する。
【0067】また、ISAMファイルアクセス命令を判
別し、インデックスファイル、データファイルに対する
個別の命令である基本ISAMファイルアクセス命令用
の複数バッファ170があり、ISAM命令を解釈し、
個別命令に分解してここに保存する。
別し、インデックスファイル、データファイルに対する
個別の命令である基本ISAMファイルアクセス命令用
の複数バッファ170があり、ISAM命令を解釈し、
個別命令に分解してここに保存する。
【0068】基本ISAMファイルアクセス命令バッフ
ァ170には、書き込み、読み取りを示すコマンド領域
171と、書き込む、あるいは読み取ったデータを保存
するデータ領域172、アクセスするファイルを指定す
るファイルID領域173、ファイル上の位置を示すオ
フセット領域174、どのアクセス要求から派生された
かを示す要求ID175が存在し、この命令が実行中か
待機中かを示すフラグ領域176が存在する。
ァ170には、書き込み、読み取りを示すコマンド領域
171と、書き込む、あるいは読み取ったデータを保存
するデータ領域172、アクセスするファイルを指定す
るファイルID領域173、ファイル上の位置を示すオ
フセット領域174、どのアクセス要求から派生された
かを示す要求ID175が存在し、この命令が実行中か
待機中かを示すフラグ領域176が存在する。
【0069】1つの要求に対して発生する複数の基本命
令の順序を示すためのリンク領域177が存在する。こ
のリンクは、双方向リンクである。実行動作指定領域1
78は、この基本命令が完了した場合の次に実行すべき
処理の位置を示している。
令の順序を示すためのリンク領域177が存在する。こ
のリンクは、双方向リンクである。実行動作指定領域1
78は、この基本命令が完了した場合の次に実行すべき
処理の位置を示している。
【0070】この基本ISAMファイルアクセス命令バ
ッファ170を管理するため、受け付けた最も古い要求
を示すFirstポインタ180、最も新しい要求を示
すLastポインタ181、空きバッファリンクの先頭
を示す空きバッファポインタ182が存在する。
ッファ170を管理するため、受け付けた最も古い要求
を示すFirstポインタ180、最も新しい要求を示
すLastポインタ181、空きバッファリンクの先頭
を示す空きバッファポインタ182が存在する。
【0071】また、コード部190には、プログラム自
体の動作が記述される。コード部190で実現される動
作では、アプリケーションプロセスからのファイルアク
セス命令を受けるためのプロセス間通信手段、命令の種
類を判別する手段、および実際に命令に従ってファイル
をアクセスする手段などを含む。
体の動作が記述される。コード部190で実現される動
作では、アプリケーションプロセスからのファイルアク
セス命令を受けるためのプロセス間通信手段、命令の種
類を判別する手段、および実際に命令に従ってファイル
をアクセスする手段などを含む。
【0072】図4は、実施例の動作を示すフローチャー
トである。ステップa2で、プロセス間通信手段によっ
て、ISAMファイルアクセス要求をアプリケーション
から受け取る。ステップa3でアプリケーションから要
求がない場合、ディスパッチ処理に移る。ステップa4
ではアクセス要求バッファに空き領域が存在するかをチ
ェックする。これには空きポインタ162がNullポ
インタの場合には、空きバッファが存在しないため、要
求を受け付けることができないことが分かる。
トである。ステップa2で、プロセス間通信手段によっ
て、ISAMファイルアクセス要求をアプリケーション
から受け取る。ステップa3でアプリケーションから要
求がない場合、ディスパッチ処理に移る。ステップa4
ではアクセス要求バッファに空き領域が存在するかをチ
ェックする。これには空きポインタ162がNullポ
インタの場合には、空きバッファが存在しないため、要
求を受け付けることができないことが分かる。
【0073】空き領域が存在しない場合は、ディスパッ
チ処理に移る。ステップa5では、要求をアクセス要求
バッファ150に保存する。このとき、新規の空きバッ
ファは、空きポインタ162にリンクされたバッファを
使用することになる。このバッファの数がISAMファ
イルアクセス管理プロセス内で同時に処理可能なISA
Mファイルアクセス要求の上限値となる。
チ処理に移る。ステップa5では、要求をアクセス要求
バッファ150に保存する。このとき、新規の空きバッ
ファは、空きポインタ162にリンクされたバッファを
使用することになる。このバッファの数がISAMファ
イルアクセス管理プロセス内で同時に処理可能なISA
Mファイルアクセス要求の上限値となる。
【0074】アクセス要求バッファ150に保存された
要求は、リンク領域155のポインタ情報によって、要
求の受け付け順に双方向リンクされる。最も最近、受け
付けられた要求は、Lastポインタ161によって、
リンクされる。また、バッファ内に存在する最も古い要
求は、Firstポインタ160によって、リンクされ
ている。
要求は、リンク領域155のポインタ情報によって、要
求の受け付け順に双方向リンクされる。最も最近、受け
付けられた要求は、Lastポインタ161によって、
リンクされる。また、バッファ内に存在する最も古い要
求は、Firstポインタ160によって、リンクされ
ている。
【0075】ステップa6では、要求の種類を判別す
る。各要求について、発生するデータアクセスは、次の
通りである。
る。各要求について、発生するデータアクセスは、次の
通りである。
【0076】(1)読み取り、削除ではインデックスア
クセス1回と、データファイルアクセス1回 (2)更新ではインデックスアクセス1回と、データフ
ァイルアクセス2回 (3)追加ではインデックスアクセス2回と、データフ
ァイルアクセス2回 が発生する。さらに、インデックスファイルのアクセス
では、ルートノードから、リーフノードへの複数のノー
ドのアクセスが発生する。
クセス1回と、データファイルアクセス1回 (2)更新ではインデックスアクセス1回と、データフ
ァイルアクセス2回 (3)追加ではインデックスアクセス2回と、データフ
ァイルアクセス2回 が発生する。さらに、インデックスファイルのアクセス
では、ルートノードから、リーフノードへの複数のノー
ドのアクセスが発生する。
【0077】ステップa7、a8、a9、a10では読
み取り、削除、更新、追加のそれぞれの要求について、
それぞれの処理を実行する細時分割プロセスを生成す
る。その他の要求に付いては、それぞれの要求別の処理
を行うが、本発明の範囲外であるため、ここでは説明を
省略する。
み取り、削除、更新、追加のそれぞれの要求について、
それぞれの処理を実行する細時分割プロセスを生成す
る。その他の要求に付いては、それぞれの要求別の処理
を行うが、本発明の範囲外であるため、ここでは説明を
省略する。
【0078】そして、ステップa11で、ディスパッチ
処理を実行した後で、再びアプリケーションからの要求
の受信へ戻る。
処理を実行した後で、再びアプリケーションからの要求
の受信へ戻る。
【0079】図5は、読み取り処理の場合の細時分割プ
ロセス生成の処理の動作を示すフローチャートである。
読み取り処理の場合、ステップb2で読み取り処理のプ
ロセスを生成する。そしてファイルに対する最初にアク
セスする対象はインデックスファイルである。この時、
ルートノードのアクセスb3、中間ノードのアクセスb
4リーフノードのアクセスb5、データレコードのアク
セスb6の順序に実行する。
ロセス生成の処理の動作を示すフローチャートである。
読み取り処理の場合、ステップb2で読み取り処理のプ
ロセスを生成する。そしてファイルに対する最初にアク
セスする対象はインデックスファイルである。この時、
ルートノードのアクセスb3、中間ノードのアクセスb
4リーフノードのアクセスb5、データレコードのアク
セスb6の順序に実行する。
【0080】この場合、それぞれのステップは、基本I
SAMファイルアクセス命令バッファ170に基本命令
を生成し、保存する。この場合、後半の基本命令を実行
するステップb4、b5、b6は、それぞれ前から順
に、実行を行わないとファイル上のアクセス位置が不明
である。したがって、オフセット領域174は未定であ
ることを示すNull情報が設定される。ファイルID
領域173は、アクセスすべきファイル識別情報が設定
される。
SAMファイルアクセス命令バッファ170に基本命令
を生成し、保存する。この場合、後半の基本命令を実行
するステップb4、b5、b6は、それぞれ前から順
に、実行を行わないとファイル上のアクセス位置が不明
である。したがって、オフセット領域174は未定であ
ることを示すNull情報が設定される。ファイルID
領域173は、アクセスすべきファイル識別情報が設定
される。
【0081】また、各基本命令は同じISAMファイル
アクセス要求で発生したことを示すためにプロセスID
156と同じ要求IDを設定する。また、リンク領域1
77は、基本命令の前後関係を示すための双方向リンク
であり、設定される。実行動作指定領域178は、それ
ぞれの基本命令が完了した場合、次のすべき処理の位置
を表している、また、この細分化された処理の最後に
は、ディスパッチ処理へ制御を移すためのコードが追加
されている。
アクセス要求で発生したことを示すためにプロセスID
156と同じ要求IDを設定する。また、リンク領域1
77は、基本命令の前後関係を示すための双方向リンク
であり、設定される。実行動作指定領域178は、それ
ぞれの基本命令が完了した場合、次のすべき処理の位置
を表している、また、この細分化された処理の最後に
は、ディスパッチ処理へ制御を移すためのコードが追加
されている。
【0082】さらに1つの要求から派生された最後の命
令の場合は、アプリケーションへ実行結果を返すための
コードが追加されている。この領域がNullポインタ
の場合は、要求から派生された基本命令がすべて完了し
たことを示す。図6は、このコードの保存状態を示す。
令の場合は、アプリケーションへ実行結果を返すための
コードが追加されている。この領域がNullポインタ
の場合は、要求から派生された基本命令がすべて完了し
たことを示す。図6は、このコードの保存状態を示す。
【0083】フラグ領域176は、基本命令の処理が済
みか否かを示すために用いる。細時分割プロセス発生時
は、このフラグはすべて未処理を示している。また、実
行順序を明確にするために、リンク領域177によって
基本命令をリンクする。このリンクの先頭は、アクセス
要求バッファ150の対応する要求の基本命令のリンク
領域158にリンクされている。最も最近、受け付けら
れた基本命令は、Lastポインタ181によって、リ
ンクされる。また、バッファ内に存在する最も古い基本
命令は、Firstポインタ180によって、リンクさ
れている。
みか否かを示すために用いる。細時分割プロセス発生時
は、このフラグはすべて未処理を示している。また、実
行順序を明確にするために、リンク領域177によって
基本命令をリンクする。このリンクの先頭は、アクセス
要求バッファ150の対応する要求の基本命令のリンク
領域158にリンクされている。最も最近、受け付けら
れた基本命令は、Lastポインタ181によって、リ
ンクされる。また、バッファ内に存在する最も古い基本
命令は、Firstポインタ180によって、リンクさ
れている。
【0084】削除処理、更新処理、追加処理も同様に、
インデックスファイル、データファイルのアクセス命令
を分解して、基本ISAMファイルアクセス命令バッフ
ァ170へ登録される。
インデックスファイル、データファイルのアクセス命令
を分解して、基本ISAMファイルアクセス命令バッフ
ァ170へ登録される。
【0085】図7にディスパッチ処理の動作を示す。デ
ィスパッチ処理は、アプリケーションからのISAMフ
ァイルアクセス要求がないときや、細時分割プロセスの
生成が完了したとき、ISAMファイル基本命令を実行
するために外部記憶制御装置104にアクセスコマンド
を発行した後、および、外部記憶装置102でファイル
アクセス命令の処理が完了したときの割り込み信号によ
って発生する。
ィスパッチ処理は、アプリケーションからのISAMフ
ァイルアクセス要求がないときや、細時分割プロセスの
生成が完了したとき、ISAMファイル基本命令を実行
するために外部記憶制御装置104にアクセスコマンド
を発行した後、および、外部記憶装置102でファイル
アクセス命令の処理が完了したときの割り込み信号によ
って発生する。
【0086】ステップc1では、ディスパッチが外部記
憶装置102でのファイルアクセス命令の処理が完了し
た場合か否かを判定する。ステップc2で、もし、外部
記憶装置でファイルアクセス命令の処理の完了の場合
は、基本ISAMファイルアクセス命令のFirstポ
インタ180が示すバッファ180に、読み込みの場合
は、データ領域172にデータをセットする。
憶装置102でのファイルアクセス命令の処理が完了し
た場合か否かを判定する。ステップc2で、もし、外部
記憶装置でファイルアクセス命令の処理の完了の場合
は、基本ISAMファイルアクセス命令のFirstポ
インタ180が示すバッファ180に、読み込みの場合
は、データ領域172にデータをセットする。
【0087】そして、実行動作指定領域178にセット
されている次に行うべき処理に制御を移す。次に行うべ
き処理で使用する情報は、リンク領域177で指定され
る次のISAM基本で使用する。フラグ領域176は、
このバッファの命令が完了したことを示す情報が書き込
まれる。
されている次に行うべき処理に制御を移す。次に行うべ
き処理で使用する情報は、リンク領域177で指定され
る次のISAM基本で使用する。フラグ領域176は、
このバッファの命令が完了したことを示す情報が書き込
まれる。
【0088】外部記憶装置102でのファイルアクセス
命令の処理の完了ではない場合、ステップc7でISA
Mファイル管理プロセス以外のアプリケーションプロセ
スにCPU資源を渡すために、マルチタスクOSレベル
でのディスパッチを実行する。
命令の処理の完了ではない場合、ステップc7でISA
Mファイル管理プロセス以外のアプリケーションプロセ
スにCPU資源を渡すために、マルチタスクOSレベル
でのディスパッチを実行する。
【0089】さらに、ステップc3では、元のISAM
ファイル要求から派生された基本命令がすべて処理され
たか否かを判別する。これには、基本命令のリンク領域
177がNullポインタであるか否かを検査する。元
のISAMファイル要求から派生された基本命令がすべ
て処理された場合、ステップc4では、次の処理を行
う。
ファイル要求から派生された基本命令がすべて処理され
たか否かを判別する。これには、基本命令のリンク領域
177がNullポインタであるか否かを検査する。元
のISAMファイル要求から派生された基本命令がすべ
て処理された場合、ステップc4では、次の処理を行
う。
【0090】(1)ISAMファイルアクセス要求を発
行したアプリケーションに対して実行結果をプロセス間
通信手段を用いて通知する。これには、要求より、派生
した基本命令の実行動作指定領域178が指定する処理
の最後に、実行結果を返すための処理を呼び出すルーチ
ンが含まれていることによって実現する。そして、ディ
スパッチ処理に戻る。
行したアプリケーションに対して実行結果をプロセス間
通信手段を用いて通知する。これには、要求より、派生
した基本命令の実行動作指定領域178が指定する処理
の最後に、実行結果を返すための処理を呼び出すルーチ
ンが含まれていることによって実現する。そして、ディ
スパッチ処理に戻る。
【0091】(2)アクセス要求バッファ150で、次
の要求を指定する。これには、現在のFirstポイン
タの位置を完了した要求のリンク領域155をたどるこ
とによって、次に実行すべき要求にリンクする。
の要求を指定する。これには、現在のFirstポイン
タの位置を完了した要求のリンク領域155をたどるこ
とによって、次に実行すべき要求にリンクする。
【0092】(3)要求より派生した基本命令をクリア
する。これには基本ISAMファイルアクセス命令のF
irstポインタ180の位置を、完了した基本命令の
リンク領域177をたどることによって、次に実行すべ
き基本命令にリンクする。更に、バッファを解放するた
めに空きポインタが示す空きバッファリストの先頭に挿
入する。これを派生したすべての基本命令について実行
する。更に、アクセス要求バッファをクリアする。これ
には、完了したバッファを空きポインタ162が示す空
きバッファリストの先頭に挿入する。
する。これには基本ISAMファイルアクセス命令のF
irstポインタ180の位置を、完了した基本命令の
リンク領域177をたどることによって、次に実行すべ
き基本命令にリンクする。更に、バッファを解放するた
めに空きポインタが示す空きバッファリストの先頭に挿
入する。これを派生したすべての基本命令について実行
する。更に、アクセス要求バッファをクリアする。これ
には、完了したバッファを空きポインタ162が示す空
きバッファリストの先頭に挿入する。
【0093】ステップc5では、次に行うべき外部記憶
装置102でのファイルアクセス命令を決定する。ここ
では、アクセス要求バッファ150のFirstポイン
タ160にリンクされているアクセス要求を参照する。
この要求から派生した基本命令を実行することとなる。
装置102でのファイルアクセス命令を決定する。ここ
では、アクセス要求バッファ150のFirstポイン
タ160にリンクされているアクセス要求を参照する。
この要求から派生した基本命令を実行することとなる。
【0094】このアクセス要求から派生した基本命令
は、基本命令リンク領域158をたどることによって判
明し、基本命令の内のリンク領域177を更にたどり、
フラグ領域176が処理待機中のものを探すまで、基本
命令のリンクを検索する。そして、ステップc6で、こ
の命令を実行するために、コマンドを外部記憶制御装置
102に送る。
は、基本命令リンク領域158をたどることによって判
明し、基本命令の内のリンク領域177を更にたどり、
フラグ領域176が処理待機中のものを探すまで、基本
命令のリンクを検索する。そして、ステップc6で、こ
の命令を実行するために、コマンドを外部記憶制御装置
102に送る。
【0095】<実施形態2>実施形態2のハードウェア
構成は、上記実施形態1の場合の図1と同じである。実
施形態2のメモリマップは、実施形態1の場合の図2と
同じである。また、実施形態2のISAMファイルアク
セス管理プログラムのデータ部のメモリマップは、上記
実施形態1の場合の図3と同じである。
構成は、上記実施形態1の場合の図1と同じである。実
施形態2のメモリマップは、実施形態1の場合の図2と
同じである。また、実施形態2のISAMファイルアク
セス管理プログラムのデータ部のメモリマップは、上記
実施形態1の場合の図3と同じである。
【0096】図8は、アプリケーションプログラムから
データレコードの追加処理における細時分割プロセス生
成の処理の動作を示すフローチャートである。ステップ
d1で追加処理のプロセスを生成する。そしてファイル
に対する最初にアクセスする対象はインデックスファイ
ルである。
データレコードの追加処理における細時分割プロセス生
成の処理の動作を示すフローチャートである。ステップ
d1で追加処理のプロセスを生成する。そしてファイル
に対する最初にアクセスする対象はインデックスファイ
ルである。
【0097】この時、ルートノードのアクセスd2、中
間ノードのアクセスd3、リーフノードのアクセスd
4、新規レコードの獲得とデータレコードの書き込みd
5、キーの追加のためのルートノードのアクセスd6、
中間ノードのアクセスd7、リーフノードのアクセスd
8、リーフノードへのキーの追加d9、更に、リーフノ
ードまたは、中間ノード、ルートノードに格納するキー
とポインタの組がノードに格納しきれない場合は、さら
にこれらのノードに対するアクセスが発生し、この順序
で実行する。
間ノードのアクセスd3、リーフノードのアクセスd
4、新規レコードの獲得とデータレコードの書き込みd
5、キーの追加のためのルートノードのアクセスd6、
中間ノードのアクセスd7、リーフノードのアクセスd
8、リーフノードへのキーの追加d9、更に、リーフノ
ードまたは、中間ノード、ルートノードに格納するキー
とポインタの組がノードに格納しきれない場合は、さら
にこれらのノードに対するアクセスが発生し、この順序
で実行する。
【0098】それぞれのステップは、基本ISAMファ
イルアクセス命令バッファ170に基本命令を生成し、
保存する。この場合、後半の基本命令を実行するステッ
プd3以降は、それぞれ前から順に、実行を行わないと
ファイル上のアクセス位置が不明である。
イルアクセス命令バッファ170に基本命令を生成し、
保存する。この場合、後半の基本命令を実行するステッ
プd3以降は、それぞれ前から順に、実行を行わないと
ファイル上のアクセス位置が不明である。
【0099】ファイルID領域173、オフセット領域
174、要求ID領域175、フラグ領域176、リン
ク領域177、実行動作指定領域178は、実施形態1
の場合と同じようにして設定する。また、アクセス要求
バッファ150の対応する要求の基本命令へのリンク領
域158の設定、Lastポインタ181、First
ポインタ180の設定も実施形態1の場合と同じであ
る。
174、要求ID領域175、フラグ領域176、リン
ク領域177、実行動作指定領域178は、実施形態1
の場合と同じようにして設定する。また、アクセス要求
バッファ150の対応する要求の基本命令へのリンク領
域158の設定、Lastポインタ181、First
ポインタ180の設定も実施形態1の場合と同じであ
る。
【0100】1つの要求から複数の基本命令が派生す
る。一連の基本命令の実行の途中で実行に失敗した場
合、元の要求自体が失敗したこととなる。この時は、既
に実行された一連の基本命令のファイルに対する変更を
元に戻す必要がある。
る。一連の基本命令の実行の途中で実行に失敗した場
合、元の要求自体が失敗したこととなる。この時は、既
に実行された一連の基本命令のファイルに対する変更を
元に戻す必要がある。
【0101】基本命令の実行が失敗した場合、たとえ
ば、図8の追加処理のステップd9で発生した場合、そ
れ以前に実行されたファイルへの書き込み処理を無効に
する必要がある。ここでは、ステップd5である。基本
命令は、リンク領域177の双方向リンクによって、実
行順の逆順にたどることができる。ここでステップd5
で発生する基本命令の情報から、データレコードが書き
込まれた位置を特定することができる。これによって、
この位置のデータレコードを削除レコードとすることに
よって、データレコードの追加の影響をファイルから削
除することができる。
ば、図8の追加処理のステップd9で発生した場合、そ
れ以前に実行されたファイルへの書き込み処理を無効に
する必要がある。ここでは、ステップd5である。基本
命令は、リンク領域177の双方向リンクによって、実
行順の逆順にたどることができる。ここでステップd5
で発生する基本命令の情報から、データレコードが書き
込まれた位置を特定することができる。これによって、
この位置のデータレコードを削除レコードとすることに
よって、データレコードの追加の影響をファイルから削
除することができる。
【0102】次に、更新処理について述べる。図9は更
新処理のフローチャートである。ステップe1で更新処
理のプロセスを生成する。そしてファイルに対する最初
にアクセスする対象はインデックスファイルである。こ
の時、ルートノードのアクセスe2、中間ノードのアク
セスe3、リーフノードのアクセスe4、更新すべきデ
ータレコードの読み取りe5、更新を実施したデータレ
コードの書き込みe6は、この順序で実行される。それ
ぞれのステップは、基本ISAMファイルアクセス命令
バッファ170に基本命令を生成し、保存する。基本I
SAMファイルアクセス命令バッファ170内の各領域
の設定は、実施形態1で述べたのと同じである。
新処理のフローチャートである。ステップe1で更新処
理のプロセスを生成する。そしてファイルに対する最初
にアクセスする対象はインデックスファイルである。こ
の時、ルートノードのアクセスe2、中間ノードのアク
セスe3、リーフノードのアクセスe4、更新すべきデ
ータレコードの読み取りe5、更新を実施したデータレ
コードの書き込みe6は、この順序で実行される。それ
ぞれのステップは、基本ISAMファイルアクセス命令
バッファ170に基本命令を生成し、保存する。基本I
SAMファイルアクセス命令バッファ170内の各領域
の設定は、実施形態1で述べたのと同じである。
【0103】基本命令の実行の途中で失敗した場合、例
えば、図9の更新処理のステップe6で発生した場合、
それ以前に実行されたファイルへの書き込み処理を無効
にする必要がある。ここでは、ステップe6である。基
本命令は、リンク領域177の双方向リンクによって、
実行順の逆順にたどることができる。ここでステップe
6の一つ前の基本命令e5で読み込まれた更新前のデー
タレコードが存在する。このデータレコードを書き込む
ことによって、データレコードの更新の影響をファイル
から削除することができる。
えば、図9の更新処理のステップe6で発生した場合、
それ以前に実行されたファイルへの書き込み処理を無効
にする必要がある。ここでは、ステップe6である。基
本命令は、リンク領域177の双方向リンクによって、
実行順の逆順にたどることができる。ここでステップe
6の一つ前の基本命令e5で読み込まれた更新前のデー
タレコードが存在する。このデータレコードを書き込む
ことによって、データレコードの更新の影響をファイル
から削除することができる。
【0104】次に、削除処理について述べる。図10
は、削除処理のフローチャートである。ステップf1で
削除処理のプロセスを生成する。そしてファイルに対す
る最初にアクセスする対象はインデックスファイルであ
る。この時、ルートノードのアクセスf2、中間ノード
のアクセスf3、リーフノードのアクセスf4、削除す
べきデータレコードの読み取りf5、削除情報を加えて
データレコードの書き込みf6、キーの削除のための、
リーフノードからのキーの削除f7の各ステップが発生
する。そしてそれぞれのステップを基本ISAMファイ
ルアクセス命令バッファ170に基本命令を生成し、保
存する。基本ISAMファイルアクセス命令バッファ1
70内の各領域の設定は、実施形態1で述べたのと同じ
である。
は、削除処理のフローチャートである。ステップf1で
削除処理のプロセスを生成する。そしてファイルに対す
る最初にアクセスする対象はインデックスファイルであ
る。この時、ルートノードのアクセスf2、中間ノード
のアクセスf3、リーフノードのアクセスf4、削除す
べきデータレコードの読み取りf5、削除情報を加えて
データレコードの書き込みf6、キーの削除のための、
リーフノードからのキーの削除f7の各ステップが発生
する。そしてそれぞれのステップを基本ISAMファイ
ルアクセス命令バッファ170に基本命令を生成し、保
存する。基本ISAMファイルアクセス命令バッファ1
70内の各領域の設定は、実施形態1で述べたのと同じ
である。
【0105】基本命令の実行の途中で失敗した場合、例
えば、図10の削除処理のステップf7で発生した場
合、それ以前に実行されたファイルへの書き込み処理を
無効にする必要がある。ここでは、ステップf6であ
る。基本命令は、リンク領域177の双方向リンクによ
って、実行順の逆順にたどることができる。ここでステ
ッップf6の一つ前の基本命令f5で読み込まれた更新
前のデータレコードが存在する。このデータレコードを
書き込むことによって、データレコードのx削除の影響
をファイルから削除することができる。
えば、図10の削除処理のステップf7で発生した場
合、それ以前に実行されたファイルへの書き込み処理を
無効にする必要がある。ここでは、ステップf6であ
る。基本命令は、リンク領域177の双方向リンクによ
って、実行順の逆順にたどることができる。ここでステ
ッップf6の一つ前の基本命令f5で読み込まれた更新
前のデータレコードが存在する。このデータレコードを
書き込むことによって、データレコードのx削除の影響
をファイルから削除することができる。
【0106】<実施形態3>実施形態3のハードウェア
構成は、図1に示す通りである。これは実施形態1に、
他の情報処理装置との間で通信をするための、通信装置
108が付加され、この通信装置108に接続されたネ
ットワーク109上に本ISAMファイル制御情報処理
装置と通信可能な情報処理装置110が接続されてい
る。実施形態3のメモリマップは、図2に示す。通信装
置を制御するための通信制御プロセスのコード部137
とデータ部138が設けられている。
構成は、図1に示す通りである。これは実施形態1に、
他の情報処理装置との間で通信をするための、通信装置
108が付加され、この通信装置108に接続されたネ
ットワーク109上に本ISAMファイル制御情報処理
装置と通信可能な情報処理装置110が接続されてい
る。実施形態3のメモリマップは、図2に示す。通信装
置を制御するための通信制御プロセスのコード部137
とデータ部138が設けられている。
【0107】実施形態3のISAMファイルアクセス管
理プログラムのデータ部のメモリマップは、図3に示
す。このデータは、どのアプリケーションプロセスから
のISAMファイルアクセス命令かを判別するため、即
ち各プロセス、および、ネットワーク上のどの情報処理
装置からのISAMファイルアクセス命令かを判別する
ためにそれぞれ、固有の識別情報を保存する。この目的
のためプロセスID156とノードID157の領域が
存在する。その他は上記実施形態1で説明した図3と同
じである。
理プログラムのデータ部のメモリマップは、図3に示
す。このデータは、どのアプリケーションプロセスから
のISAMファイルアクセス命令かを判別するため、即
ち各プロセス、および、ネットワーク上のどの情報処理
装置からのISAMファイルアクセス命令かを判別する
ためにそれぞれ、固有の識別情報を保存する。この目的
のためプロセスID156とノードID157の領域が
存在する。その他は上記実施形態1で説明した図3と同
じである。
【0108】図11は、実施形態1の動作を示すフロー
チャートである。ステップg2で、プロセス間通信手段
によって、ISAMファイルアクセス要求をアプリケー
ションから受け取る。このプロセス間通信手段は、ネッ
トワーク上に接続された外部の情報処理装置110上の
プロセスも含まれる。ステップg3でアプリケーション
から要求がない場合、ディスパッチ処理に移る。ステッ
プg4ではアクセス要求バッファ150に空き領域が存
在するかをチェックする。
チャートである。ステップg2で、プロセス間通信手段
によって、ISAMファイルアクセス要求をアプリケー
ションから受け取る。このプロセス間通信手段は、ネッ
トワーク上に接続された外部の情報処理装置110上の
プロセスも含まれる。ステップg3でアプリケーション
から要求がない場合、ディスパッチ処理に移る。ステッ
プg4ではアクセス要求バッファ150に空き領域が存
在するかをチェックする。
【0109】これには空きポインタ162がNullポ
インタの場合には、空きバッファが存在しないため、要
求を受け付けることができないことが分かる。空き領域
が存在しない場合は、ディスパッチ処理に移る。ステッ
プg5では、要求をアクセス要求バッファ150に保存
する。このとき、どのネットワーク上の外部情報処理装
置110のどのプロセスからの要求かを確定させるため
に、プロセスID領域156、ノードID領域157に
識別情報を書き込む。他の領域やアクセス要求バッファ
150の各ポインタの設定は、実施形態1の場合と同じ
である。
インタの場合には、空きバッファが存在しないため、要
求を受け付けることができないことが分かる。空き領域
が存在しない場合は、ディスパッチ処理に移る。ステッ
プg5では、要求をアクセス要求バッファ150に保存
する。このとき、どのネットワーク上の外部情報処理装
置110のどのプロセスからの要求かを確定させるため
に、プロセスID領域156、ノードID領域157に
識別情報を書き込む。他の領域やアクセス要求バッファ
150の各ポインタの設定は、実施形態1の場合と同じ
である。
【0110】ISAMファイルアクセス要求からの基本
ISAMファイルアクセス命令の生成手順及び細時分割
プロセスの生成手順は、実施形態1の場合と同じであ
る。また、ディスパッチ処理の全体の動作は、実施形態
1の場合と同じである。このディスパッチ処理の内、元
のISAMファイル要求から派生された基本命令がすべ
て処理された状態となった場合、次の処理を行う。
ISAMファイルアクセス命令の生成手順及び細時分割
プロセスの生成手順は、実施形態1の場合と同じであ
る。また、ディスパッチ処理の全体の動作は、実施形態
1の場合と同じである。このディスパッチ処理の内、元
のISAMファイル要求から派生された基本命令がすべ
て処理された状態となった場合、次の処理を行う。
【0111】(1)ISAMファイルアクセス要求を発
行したアプリケーションに対して実行結果をプロセス間
通信手段を用いて通知する。これには、要求より、派生
した基本命令の実行動作指定領域178が指定する処理
の最後に、実行結果を返すための処理を呼び出すルーチ
ンが含まれていることによって実現する。そして、ディ
スパッチ処理に戻る。
行したアプリケーションに対して実行結果をプロセス間
通信手段を用いて通知する。これには、要求より、派生
した基本命令の実行動作指定領域178が指定する処理
の最後に、実行結果を返すための処理を呼び出すルーチ
ンが含まれていることによって実現する。そして、ディ
スパッチ処理に戻る。
【0112】(2)アクセス要求バッファ150から、
該当要求を削除する。これには、現在のFirstポイ
ンタの位置を完了した要求のリンク領域155をたどる
ことによって、次に実行すべき要求にリンクする。
該当要求を削除する。これには、現在のFirstポイ
ンタの位置を完了した要求のリンク領域155をたどる
ことによって、次に実行すべき要求にリンクする。
【0113】(3)アクセス要求バッファ150をクリ
アする。これには、完了したバッファを空きポインタ1
62が示す空きバッファリストの先頭に挿入する。
アする。これには、完了したバッファを空きポインタ1
62が示す空きバッファリストの先頭に挿入する。
【0114】図12は、上記(1)の実行結果をプロセ
ス間通信手段を用いて、ISAMファイルアクセス要求
を発行したプロセスに返す動作について示す。ステップ
h2では、実行結果を返すべき、プロセスを特定するた
めに、アクセス要求バッファ150のプロセスID領域
156とノードID領域157の情報を取得する。
ス間通信手段を用いて、ISAMファイルアクセス要求
を発行したプロセスに返す動作について示す。ステップ
h2では、実行結果を返すべき、プロセスを特定するた
めに、アクセス要求バッファ150のプロセスID領域
156とノードID領域157の情報を取得する。
【0115】ステップh3では、プロセスが自ノード内
のプロセスか、ネットワーク上の他ノードのプロセスか
を判定する。ステップh4では、自ノードの場合で、そ
のまま実行結果をプロセス間通信手段によって引き渡
す。
のプロセスか、ネットワーク上の他ノードのプロセスか
を判定する。ステップh4では、自ノードの場合で、そ
のまま実行結果をプロセス間通信手段によって引き渡
す。
【0116】ステップh5は、他ノードの場合で、プロ
セスID156に基づき、実行結果を送付する情報処理
装置を特定し、プロセスID156を実行結果に付加し
て通信制御装置を介して送る。送られた情報処理装置で
は、プロセスIDによってどのプロセスからの要求に対
する結果であるかを特定することが可能である。ステッ
プh6では、再びディスパッチ処理へ戻る。
セスID156に基づき、実行結果を送付する情報処理
装置を特定し、プロセスID156を実行結果に付加し
て通信制御装置を介して送る。送られた情報処理装置で
は、プロセスIDによってどのプロセスからの要求に対
する結果であるかを特定することが可能である。ステッ
プh6では、再びディスパッチ処理へ戻る。
【0117】
【発明の効果】本発明は上記の構成であるので、ISA
Mファイルに対するレコードの検索読み取り、追加、更
新、削除の命令に対応したファイルアクセス命令を細分
化し、細分化したアクセス命令に従って低速な外部記憶
装置へのアクセスを実行中に、中央処理装置は次の命令
を受け付け解釈して、ファイル検索の処理を並行して行
うことができ、インデックスファイルおよびデータファ
イルが存在する大容量であるが低速の外部記憶措置を備
えたISAMファイルの情報検索の処理効率を向上させ
ることができる。
Mファイルに対するレコードの検索読み取り、追加、更
新、削除の命令に対応したファイルアクセス命令を細分
化し、細分化したアクセス命令に従って低速な外部記憶
装置へのアクセスを実行中に、中央処理装置は次の命令
を受け付け解釈して、ファイル検索の処理を並行して行
うことができ、インデックスファイルおよびデータファ
イルが存在する大容量であるが低速の外部記憶措置を備
えたISAMファイルの情報検索の処理効率を向上させ
ることができる。
【0118】また、本発明は、レコードの追加、削除処
理を行う場合、ISAMファイルのインデックスファイ
ルとデータファイルの双方に対して、細分化された命令
を実行して、最初にデータファイルへの書き込み処理を
正常に行った後、次にインデックスファイルへの書き込
み処理を実施するが、一連の処理の途中で異常が発生し
た場合、復元処理により、上記一連の処理が実行される
直前の状態にまで戻すので、複数に分割された命令の実
行途中における失敗が復元でき、データとインデックス
の整合性に矛盾が発生するのを防止することができる。
理を行う場合、ISAMファイルのインデックスファイ
ルとデータファイルの双方に対して、細分化された命令
を実行して、最初にデータファイルへの書き込み処理を
正常に行った後、次にインデックスファイルへの書き込
み処理を実施するが、一連の処理の途中で異常が発生し
た場合、復元処理により、上記一連の処理が実行される
直前の状態にまで戻すので、複数に分割された命令の実
行途中における失敗が復元でき、データとインデックス
の整合性に矛盾が発生するのを防止することができる。
【0119】また、本発明は、マルチタスクシステム或
いはネットワークシステムに適用する場合、マルチタス
クシステムでは、同一情報処理装置内の複数のプロセス
から、またネットワークシステムでは、ネットワークを
介した他の情報処理装置から、ISAMファイル情報処
理装置に対して、同時に、複数のISAMファイル命令
の実行の要求が発生するが、細分化したファイルアクセ
ス命令に対して、プロセス或いはネットワークノードの
識別子を付与し、細分化したファイルアクセス命令を低
速の外部記憶装置に対して実行中に、次のファイルアク
セス命令を受け付け、解釈して、並行した処理を実行す
るので、低速の外部記憶装置へのファイルアクセスを各
要求に対して、処理を完全に実行するまで次の要求の受
け付けを待機する必要がなく、低速な外部記憶装置を備
えた装置におけるシステム全体の処理効率を向上させる
ことができる。
いはネットワークシステムに適用する場合、マルチタス
クシステムでは、同一情報処理装置内の複数のプロセス
から、またネットワークシステムでは、ネットワークを
介した他の情報処理装置から、ISAMファイル情報処
理装置に対して、同時に、複数のISAMファイル命令
の実行の要求が発生するが、細分化したファイルアクセ
ス命令に対して、プロセス或いはネットワークノードの
識別子を付与し、細分化したファイルアクセス命令を低
速の外部記憶装置に対して実行中に、次のファイルアク
セス命令を受け付け、解釈して、並行した処理を実行す
るので、低速の外部記憶装置へのファイルアクセスを各
要求に対して、処理を完全に実行するまで次の要求の受
け付けを待機する必要がなく、低速な外部記憶装置を備
えた装置におけるシステム全体の処理効率を向上させる
ことができる。
【図1】 本発明の実施形態のシステム構成のブロック
図である。
図である。
【図2】 本発明の実施形態に用いるISAMファイル
アクセス管理システムのメモリマップである。
アクセス管理システムのメモリマップである。
【図3】 図2に示すメモリマップ内のデータ部の詳細
な構成図である。
な構成図である。
【図4】 本発明の第1の実施形態における要求の種類
判別処理の動作フローである。
判別処理の動作フローである。
【図5】 本発明の第1の実施形態におけるデータレコ
ード検索処理の動作フローである。
ード検索処理の動作フローである。
【図6】 本発明の第1の実施形態におけるコード部の
メモリマップである。
メモリマップである。
【図7】 本発明の第1の実施形態におけるディスパッ
チ処理の動作フローである。
チ処理の動作フローである。
【図8】 本発明の第2の実施形態における追加処理の
動作フローである。
動作フローである。
【図9】 本発明の第2の実施形態における更新処理の
動作フローである。
動作フローである。
【図10】 本発明の第2の実施形態における削除処理
の動作フローである。
の動作フローである。
【図11】 本発明の第3の実施形態におけるISAM
ファイルアクセス要求受け付け時の動作フローである。
ファイルアクセス要求受け付け時の動作フローである。
【図12】 本発明の第3の実施形態における要求に対
する実行結果の戻し処理の動作フローである。
する実行結果の戻し処理の動作フローである。
【図13】 従来例のBツリー構造のインデックスファ
イルの概念図である。
イルの概念図である。
【図14】 従来例のBツリー構造のキー値とポインタ
の関係図である。
の関係図である。
【図15】 従来例のBツリー構造への空き領域がある
場合におけるキー追加の説明図である。
場合におけるキー追加の説明図である。
【図16】 従来例のBツリー構造への空き領域がない
場合におけるキー追加の説明図である。
場合におけるキー追加の説明図である。
【図17】 従来例のBツリー構造へのノードの生成を
含むキーの追加の説明図である。
含むキーの追加の説明図である。
【図18】 従来例のBツリー構造におけるファイルで
の実現方法の説明図である。
の実現方法の説明図である。
101 中央処理装置 102 外部記憶装置 103 主記憶措置 104 外部記憶制御装置 105 データ/アドレス信号線 106 制御信号線 107 割り込み信号線 108 通信装置 109 ネットワーク 110 外部の情報処理装置 133 アプリケーションプロセスAデータ部 134 アプリケーションプロセスAコード部 135 アプリケーションプロセスBデータ部 136 アプリケーションプロセスBコード部 137 通信制御プロセスデータ部 138 通信制御プロセスコード部 139 ISAMファイルアクセス管理プロセスデータ
部 140 ISAMファイルアクセス管理プロセスコード
部 141 空き領域 142 オペレーティングシステムデータ部 143 オペレーティングシステムコード部 150 アクセス要求バッファ 151 コマンド領域 152 データ領域 153 パラメータ領域 154 フラグ領域 155 リンク領域 156 プロセスID 157 ノードID 158 基本命令へのリンク 160 アクセス要求バッファFirstポインタ 161 アクセス要求バッファLastポインタ 162 アクセス要求バッファ空きポインタ 170 基本ISAMファイルアクセス命令バッファ 171 コマンド領域 172 データ領域 173 ファイルID 174 オフセット領域 175 要求ID 176 フラグ領域 177 リンク領域 178 実行動作指定 180 基本ISAMファイルアクセス命令バッファF
irstポインタ 181 基本ISAMファイルアクセス命令バッファL
astポインタ 182 基本ISAMファイルアクセス命令バッファ空
きポインタ 190 コード部
部 140 ISAMファイルアクセス管理プロセスコード
部 141 空き領域 142 オペレーティングシステムデータ部 143 オペレーティングシステムコード部 150 アクセス要求バッファ 151 コマンド領域 152 データ領域 153 パラメータ領域 154 フラグ領域 155 リンク領域 156 プロセスID 157 ノードID 158 基本命令へのリンク 160 アクセス要求バッファFirstポインタ 161 アクセス要求バッファLastポインタ 162 アクセス要求バッファ空きポインタ 170 基本ISAMファイルアクセス命令バッファ 171 コマンド領域 172 データ領域 173 ファイルID 174 オフセット領域 175 要求ID 176 フラグ領域 177 リンク領域 178 実行動作指定 180 基本ISAMファイルアクセス命令バッファF
irstポインタ 181 基本ISAMファイルアクセス命令バッファL
astポインタ 182 基本ISAMファイルアクセス命令バッファ空
きポインタ 190 コード部
Claims (3)
- 【請求項1】先頭から順次レコードが格納される順編成
データファイルを不揮発性の外部記憶装置に展開し、各
レコードに対応するキーと、各レコードの格納位置を表
すデータとを組み合わせたインデックスファイルを用い
て順編成データファイルを高速に検索するISAMファ
イル情報処理装置において、ISAMファイルに対する
レコードの検索読み取り、追加、更新、削除の命令に対
して、その命令に対応するファイルアクセス命令を細分
化する細分化手段と、データファイルを管理する第1の
管理手段と、インデックスファイルを管理する第2の管
理手段と、ISAMファイルアクセス命令を受けとり、
上記第1及び第2の管理手段を用いて、ISAMファイ
ルアクセス命令を解釈し、複数のデータファイル、イン
デックスファイルに対する実際の処理に変換し、上記外
部記憶装置に対するアクセス命令を発行する処理手段と
を設け、上記外部記憶手段に対するアクセス命令を上記
細分化手段により細分化されたファイルアクセス命令に
従って実行中に、次のデータファイル、、インデックス
ファイルに対する命令を受け付け、解釈して、ファイル
検索の処理効率を向上させるようにしたことを特徴とす
るISAMファイル情報処理装置。 - 【請求項2】上記細分化手段を用いて、複数に分割され
た命令によりISAMファイルに対するレコードの追
加、削除を行うものにおいて、上記外部記憶装置へのア
クセス命令に対する応答が、外部記憶装置から戻ってく
る前に次のデータファイル、インデックスファイルに対
する命令を解釈するとき、一連の処理の途中で異常が発
生すると、一連の処理が実行される直前の状態に戻す復
元処理手段を設け、複数に分割された命令の実行途中に
おける失敗時の復元を行わせるようにしたことを特徴と
する請求項1記載のISAMファイル情報処理装置。 - 【請求項3】先頭から順次レコードが格納される順編成
データファイルを不揮発性の外部記憶装置に展開し、各
レコードに対応するキーと、各レコードの格納位置を表
すデータとを組み合わせたインデックスファイルを用い
て順編成データファイルを高速に検索し、マルチタスク
システムまたはネットワークシステムあるいは両方を組
み合わせたシステムからのISAMファイルアクセス命
令を同時に処理するISAMファイル情報処理装置にお
いて、ISAMファイルアクセス命令を解釈する解釈手
段と、ISAMファイルに対する命令に対して、その命
令に対応するファイルアクセス命令を細分化する細分化
手段と、該細分化手段により細分化した命令に対してマ
ルチタスクシステムの複数のプロセスの識別子またはネ
ットワークノードの識別子あるいはその両方を付加する
識別子付加手段とを設け、上記解釈手段は、上記細分化
手段から導出する細分化したファイルアクセス命令を実
際の物理的な外部記憶装置に対して実行中に、次のファ
イルアクセス命令を受け付け、解釈して命令全体の処理
時間を短縮するようにしたことを特徴とするISAMフ
ァイル情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8033282A JPH09231118A (ja) | 1996-02-21 | 1996-02-21 | Isamファイル情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8033282A JPH09231118A (ja) | 1996-02-21 | 1996-02-21 | Isamファイル情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH09231118A true JPH09231118A (ja) | 1997-09-05 |
Family
ID=12382186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8033282A Pending JPH09231118A (ja) | 1996-02-21 | 1996-02-21 | Isamファイル情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH09231118A (ja) |
-
1996
- 1996-02-21 JP JP8033282A patent/JPH09231118A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4255373B2 (ja) | ネットワークファイルシステムのための管理および同期化アプリケーション | |
US5758356A (en) | High concurrency and recoverable B-tree index management method and system | |
KR100398753B1 (ko) | 효과적인 파일 갱신 처리 및 복구 처리를 이용하는트랜잭션 처리 시스템 | |
JPH10508967A (ja) | オンライン、実時間、データ移送の技術分野のためのシステム及び方法 | |
JPH09507109A (ja) | コンピュータデータベースに関するトランザクションの処理を促進させるための装置 | |
US7240172B2 (en) | Snapshot by deferred propagation | |
JP2004530216A (ja) | 異なるブロックサイズのテーブルスペースの統合 | |
JP2006202337A (ja) | データ処理の方法及び装置 | |
JPH07105064A (ja) | ファイル名検出方式 | |
US6606631B1 (en) | IMS on-line reorganization utility | |
US7693883B2 (en) | Online data volume deletion | |
US7949632B2 (en) | Database-rearranging program, database-rearranging method, and database-rearranging apparatus | |
JPH04360246A (ja) | ファイル圧縮装置 | |
JPH09231118A (ja) | Isamファイル情報処理装置 | |
JPH01245344A (ja) | 分散データベースコミットメント処理装置 | |
JPH08314780A (ja) | ファイル管理方式 | |
JP3772105B2 (ja) | データベース管理装置、方法、プログラム及び記録媒体 | |
JPH0456344B2 (ja) | ||
JP2828354B2 (ja) | データベース管理装置 | |
JP3497053B2 (ja) | オンラインデータベース管理システムにおける処理方法及びオンラインデータベース管理システム | |
JP3599055B2 (ja) | 記憶装置管理方法およびシステム | |
JPH11175376A (ja) | データベースの更新方法、更新装置及び更新方法が書き込まれた記録媒体 | |
JP2980610B2 (ja) | トランザクション管理装置 | |
JPS6336375A (ja) | デ−タフアイル装置におけるフアイル管理方法 | |
JPH08328929A (ja) | データベース分割管理システム |