JPH08185273A - Isamファイル情報処理装置 - Google Patents

Isamファイル情報処理装置

Info

Publication number
JPH08185273A
JPH08185273A JP6340090A JP34009094A JPH08185273A JP H08185273 A JPH08185273 A JP H08185273A JP 6340090 A JP6340090 A JP 6340090A JP 34009094 A JP34009094 A JP 34009094A JP H08185273 A JPH08185273 A JP H08185273A
Authority
JP
Japan
Prior art keywords
file
record
isam
recovery
node
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
Application number
JP6340090A
Other languages
English (en)
Inventor
Tetsuo Mizuta
哲生 水田
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.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP6340090A priority Critical patent/JPH08185273A/ja
Publication of JPH08185273A publication Critical patent/JPH08185273A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 ISAMファイル処理中の障害発生に対し
て、簡易な構成で保護を可能にする。 【構成】 外部記憶装置102は不揮発性であり、IS
AMファイルのデータファイルおよびインデックスファ
イルが記憶される。このファイルを利用して情報処理を
行う中央処理装置101は、必要なファイルを主記憶装
置103に読込んで迅速な処理を行う。インデックスフ
ァイルはBツリー構造を有し、中央処理装置101の情
報処理動作中にノードの新たな生成やキーの追加や削除
などの変更が生じる。処理中に障害が発生すると、イン
デックスファイルの内容とデータファイルの内容とが不
一致になるおそれがあるけれども、不揮発性記憶装置1
04に変更前の必要な情報を保存し、障害復旧処理を可
能とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、大容量のデータを高速
に検索可能で、停電などの障害発生に対する復旧機能を
備えるISAMファイル情報処理装置に関する。
【0002】
【従来の技術】従来から、大量のデータの中から高速に
データを検索する方法として、索引付順編成ファイル検
索方法(Indexed Sequential Access Method)が知られ
ている。この方法において使用するファイルは、ファイ
ルの先頭から順にデータレコードを格納する順編成デー
タファイルと、目的のデータがこの順編成ファイルのど
の位置にあるかを高速に検索するための索引であるイン
デックスファイルを含むISAMファイルとして構成さ
れる。インデックスファイルは、任意のキーに対応する
データファイル上のレコードの格納位置を高速に検索す
るために用いられる。キーとデータファイルのレコード
とは、通常1:1に対応している。
【0003】図26は、代表的なインデックスファイル
のデータ構造を示す。アクセスの回数を減らして、目的
のデータの格納位置を高速に検索するため、Bツリー構
造でインデックスファイルを構成することが好ましい。
Bツリー構造は、ノード(節)と呼ばれるキーとレコー
ドの格納位置を表すポインタとから成る単位によって構
成される。検索を開始する最初のノードは、ルート
(根)ノード1と呼ばれ、一般に複数段の中間ノード2
を経て最終段のリーフ(枝)ノード3に到達する。各ノ
ードには、キー値4およびポインタ5の組が1または複
数組存在する。リーフノード3以外のノードには、或る
値のキー値4とポインタ5との組が1または複数組格納
されている。ルートノード1および中間ノード2のポイ
ンタ5は、その下位のノードの格納位置を示す。リーフ
ノード3のキー値6およびポインタ7の組は、データフ
ァイル上のデータレコードに対応する見出し語などのキ
ーの値と格納位置とを示す。
【0004】図27は、図26のルートノード1および
中間ノード2のようなリーフノード3以外のノードにお
けるキー値とノードとの関係を示す。たとえば上位層の
ノード8内で、次の第1式に示すようにキーが昇順にソ
ートされている場合を想定する。
【0005】 key1 < key2 < … < keyN …(1) 各キー値key1,key2,…,keyNに組合わさ
れるポインタをpointer1,pointer2,
…,pointerNとし、key1に関連するpoi
nter1が示すノード9Aに含まれるキー値をkey
A1,keyA2,…,keyAMとすると、次の第2
式の関係が成立する。
【0006】 keyA1 < keyA2 < … < keyAM=key1 …(2) 同様にkey2に関連するpointer2が示すノー
ド9Bに含まれるキー値については、次の第3式の関係
が成立する。
【0007】 key1 < keyB1 < keyB2< … < keyBL = key2 …(3) すなわち、上位層ノード8から下位層ノード9A,9B
を参照するポインタに対応付けられるキー値は、下位層
ノード9A,9Bが保持する最大のキー値と等しい。ま
た階層状にリンクされた最後のノードであるリーフノー
ドにも、キー値とポインタとの組が格納されているけれ
ども、このキー値と順編成されたデータファイル上のレ
コードの格納位置とが直接対応している。
【0008】キーを利用したデータの検索は、ルートノ
ードを起点にして行う。各ノード内のキー値はたとえば
昇順にソートされているので、バイナリサーチなどの方
法によって迅速に検索することが可能である。たとえば
図27の上位層ノード8に含まれるキー値のうち、目的
とするキー値KEYと、次の第4式の関係が成立すれ
ば、キー値key2に関連づけられるポインタpoin
ter2で示される下位層ノード9Bを次に検索するこ
とになる。そして最後に到達したリーフノードで、KE
Yに等しいキー値が存在すれば、そのキー値に関連づけ
られたポインタを得ることができる。このポインタがデ
ータファイル上の目的のデータレコードの格納位置を示
す。最終的なリーフノードに、KEYに等しいキー値が
存在しなければ、対応するデータレコードが存在しない
ことを示す。
【0009】 key1 < KEY < key2 …(4) 図26および図27に示すような基本的なBツリーの構
造では、同じ階層で他のノードの検索が必要になるとき
に、ルートノードまでさかのぼってから検索を行わなけ
ればならない。この場合、多数のノードをアクスする必
要があるため検索に時間を要する。この改善のために、
図28に示すようにBツリーを拡張する。すなわち、同
じ階層の隣接するノードに対して、直接リンクするポイ
ンタを設ける。たとえば、上位層ノード11の次の下位
層ノード12には、先ノードポインタ13および次ノー
ドポインタ14を設け、同じ階層内でキーの値が隣合う
ノードを双方向リンクで結びつける。下位層ノード12
と同じ階層に同位層ノード15,16が存在している
と、各ノード12,15,16をA,B,Cとし、ノー
ドA,B,Cに含まれるキーを第5式のように表す。
【0010】 keyA ∈ NodeA(key) keyB ∈ NodeB(key) keyC ∈ NodeC(key) …(5) このとき、次の第6式および第7式の関係が成立し、す
べてのキーを昇順に検索する場合に、検索するキーが次
の第8式で表される関係であれば、ノードA,B,Cの
順に検索することになる。
【0011】 ∀keyA ∈ NodeA(key) ∀keyB ∈ NodeB(key) ∀keyC ∈ NodeC(key) …(6) keyA < keyB < keyC …(7) ∃key ∈ NodeA(key) …(8) また検索するキーが次の第9式のような関係にあれば、
ノードC,B,Aの順に検索することになる。
【0012】 ∃key ∈ NodeC(key) …(9) このような検索をノードA,B,C間で可能とするに
は、ノードAの次ノードポインタではノードBを示し、
ノードBの先ノードポインタではノードAを示すよう
に、相互に連結する。またノードBの次ノードポインタ
ではノードCを示し、ノードCの先ノードポインタでは
ノードBを示すように結合する。両端のノードAおよび
Cの先ノードポインタおよび次ノードポインタは、それ
ぞれ何も示さないNullポインタにセットしておく。
【0013】図29、図30および図31は、以上説明
したようなBツリーにキーを追加する方法を示す。各ノ
ードは、キー値とポインタとの組が格納可能な最大数に
対応して確保されており、最大数未満のキー値およびポ
インタの組が格納されている場合は空き領域として管理
される。図29(1)のように、リーフノード20に空
き領域21が存在し、格納されているキー値key1,
key2の間の大きさのキー値を追加する場合を想定す
る。図29(2)に示すように、元の空き領域21を空
き領域22まで減少させ、追加するキー値keyAより
も大きいキー値を持つすべてのキー値とポインタとの組
をシフトするためのシフト領域23を生み出す。キー値
とポインタとの組をシフトして空いた追加領域24に、
新たなキー値keyAおよび対応するポインタを追加す
る。このように、リーフノードに空き領域21があれ
ば、該当するリーフノード20のみを書換えるだけでキ
ーの追加が行われる。
【0014】図30は、リーフノードが一杯で、隣のノ
ードに空き領域が存在する場合に、キーを追加する方法
を示す。図30(1)に示すように、上位層ノード31
の下位のリーフノード32,33のうち、キーが一杯に
なっているリーフノード32に新たなキーを追加する
と、図30(2)に示すように、空き領域を有する隣の
ノード33に対してもキーの追加が行われる。図30
(1)の追加前のリーフノード32の状態に新たなキー
keyAを追加すると、それまでの最大のキー値である
key3が追出されるので、上位層ノード34も下位層
ノード35の保有する最大のキー値key2に対応して
キー値が書換えられる。隣接するリーフノード36に対
しては、新たなキー値key3を追加するために、元の
キー値key4のシフトが行われる。
【0015】図31(1)に示すように、上位層ノード
41の下位のリーフノード42,43が既に一杯であ
り、一方のリーフノード42にさらにキーを追加する場
合は、図31(2)に示すようにリーフノード42を分
割する。新たな上位層ノード44は、元のリーフノード
42を分割したリーフノード45,46と、元のリーフ
ノード43に対応するリーフノード47とをそれぞれ示
すキー値とポインタとの組を格納する。元のリーフノー
ド42はリーフノード45および46に分割され、元の
リーフノード43はリーフノード47となる。分割され
た前半のリーフノード45の次ノードポインタは、分割
された後半のリーフノード46を示す。後半のリーフノ
ード46の先ノードポインタは、前半のリーフノード4
5を示す。後半のリーフノード46の次ノードポインタ
はリーフノード47を示す。リーフノード47の前ノー
ドポインタはリーフノード46を示す。上位層ノード4
4には、リーフノードの増加に対応してキー値とポイン
タとの組が追加され、空き領域がない場合はリーフノー
ドと同様に分割される。
【0016】キーをノードから削除する場合は、対象と
なるキーを検索し、該当するキー値がリーフノードに存
在したら対応するポインタをNullポインタに書換え
る。この段階では、リーフノードにキー値そのものは残
るけれども、ポインタがNullポインタに書換えられ
るので、キーが存在しないことが示される。
【0017】図32は、Bツリーのファイル上での実現
方法を示す。通常、ファイルは線形のメモリ空間に配置
され、ファイルを構成する各内容は空間上の位置を示す
アドレスによって指定される。各内容は、他の内容とは
直接結付けられないデータ構造である。
【0018】このような線形のファイルでBツリーファ
イル51を表現するには、各ノード52,53を固定長
レコードとして表し、各ノード52,53間のリンク関
係を各レコードの位置を表すポインタ54で表現する。
ポインタ54は、たとえばノード53のレコードの入る
先頭からのオフセットアドレス55で表すことができ
る。
【0019】ISAM方式で構成されたファイルを利用
してデータ処理を行う際には、次の命令が書込みに関連
する命令となる。
【0020】 データファイルの新規生成 インデックスファイルの新規生成 データレコードの新規獲得 データレコードの書込み キーの追加 キーの削除 これらの書込み命令の処理中に、停電などの障害が発生
すると、正常なISAM方式のファイル構造が保たれ
ず、インデックスファイルやデータファイルの内容の破
壊や消失のおそれが生じる。大量のデータを集積したフ
ァイルが損なわれると、ファイルの集積に要した時間、
労力および費用が無駄になり、大きな損失を招く。この
ため、従来からも、図33および図34に示すような対
策が採用されている。
【0021】図33は、停電などによる不意のシステム
停止の対策として、無停電電源装置による停電保護を行
う構成を示す。通常は商用電源61から電源スイッチ6
2を介し、主電源63に交流電力が供給され、主電源6
3で直流に変換され、主電源投入スイッチ64を介して
情報処理装置65に電源供給が行われる。情報処理装置
65内には、半導体メモリなどの揮発性記憶装置66が
設けられ、電源供給が停止すると、記憶内容が消失す
る。商用電源61の停電対策として、補助電源スイッチ
67を介して補助電源68に交流電力が供給される。補
助電源68には、バッテリ69が含まれ、供給された交
流電力を直流に変換して充電する。商用電源61に停電
が発生すると、主電源63に設ける検出回路によって停
電検出が行われ、情報処理装置65の割込み処理によっ
て、補助電源68および補助電源投入スイッチ70によ
る電源制御が行われる。停電検出出力は、ブザー71に
よって情報処理装置65の使用者に知らせることもでき
る。情報処理装置65には、大容量の外部記憶装置72
が接続され、通常、外部記憶装置72は磁気テープや磁
気ディスクなど、不揮発性の記憶装置で構成されるの
で、商用電源61が停電しても記憶内容は失われない。
【0022】商用電源61に停電が発生すると、直ちに
主電源63から補助電源68に切換えられ、情報処理装
置65の処理の継続が可能となる。補助電源68が電源
供給を行っている期間中に、自動的にファイルやデータ
の保全処理が行われる。あるいはブザー71などによっ
て停電発生が知らされた使用者が、手動で保全処理を行
う。保全処理の内容としては、揮発性記憶装置66上に
存在するデータなどを外部記憶装置に移行させることが
主である。長時間の停電保護には大容量のバッテリ69
が必要である。
【0023】典型的な先行技術は、たとえば特開平3−
248220号公報に開示されている。この先行技術で
は、磁気ディスク装置に書込む直前に、書込みに関する
情報、データ、ディスク上の書込み位置などを、別の不
揮発性記憶装置に保存し、停電発生後の復旧処理時にそ
の保存された情報を再度磁気ディスク装置に書込む方法
が示されている。また、特開平1−315835号公報
には、自動障害復旧機構として、不揮発性記憶装置に保
持された障害復旧制御情報を、再起動時に中央処理装置
が参照しながら自動的に復旧処理を行う技術が開示され
ている。特開平4−98545号公報には、ファイル保
護の対策として、ファイルの大きさ、アドレス、空き領
域情報などのファイル管理情報を、ファイル更新前に不
揮発性記憶装置に退避しておき、更新中に停電などによ
る処理の中断が生じたときに、そのファイル管理情報を
用いて更新前の状態に戻す方法が開示されている。
【0024】図34は、データに対する処理の履歴を示
すログを用いて障害発生前の状態に復旧させる方法を示
す。元のデータが記憶されるオリジナルファイル装置7
5に対して内容の更新を行うに際し、バックアップファ
イル装置76に内容の複写を行う。オリジナルファイル
装置75のデータに対する更新処理は、その履歴をログ
ファイル装置77に記憶する。障害発生後の復旧処理で
は、バックアップ複写されていたバックアップファイル
装置76の記憶内容に基づき、ログファイル装置77の
内容を再度反映させて、更新内容の再実行を行う。
【0025】また、データベース管理システムでは、デ
ータベースへのデータの追加、更新、削除などを行う場
合に、データベースの更新するファイルへの一連の処理
の単位をトランザクションとし、コミット命令によって
一括して処理を実行する機能を備える場合がある。この
場合、コミット命令が発行される前の状態に戻すロール
バック機能が備えられていることが多い。
【0026】
【発明が解決しようとする課題】図33に示すように、
無停電電源装置などの補助電源を使用する構成では、装
置が高価になり、設置のためのスペースが大きくなるな
どの問題がある。特開平3−248220号公報の先行
技術による磁気ディスク装置の復旧処理では、ディスク
の書込み単位でのデータの保護は可能であるけれども、
ISAMファイルのインデックスファイルのようなBツ
リーなどの複雑なデータ構造を持つファイルについての
保護は充分に行えない。特開平1−315835号公報
の先行技術では、実際にどのような復旧障害制御情報に
よって、どのような復旧処理を行うのかが明示されてお
らず、ISAMファイルのインデックスファイルのよう
な複雑なデータ構造を持つファイルについて効率的に復
旧させることはできない。特開平4−9854号公報の
先行技術は、ファイルを管理するオペレーティングシス
テムのレベルから見たファイル保護を対象とし、ISA
Mファイルのインデックスファイルのような複雑なデー
タ構造のファイル内部のデータ保護については不充分で
ある。
【0027】インデックスファイル全体を不揮発性記憶
装置に保存しながらデータ処理を進めれば、停電後の復
旧は不要となるけれども、一般に高速で大容量の不揮発
性記憶装置は高価であり、データファイルの復旧の必要
は残る。さらに、ソフトウェアやハードウェアの異常に
よる障害の対策も必要である。
【0028】また図34に示すような、バックアップさ
れていたファイルに対し、ログの内容を再度反映させる
技術では、バックアップのために対象となるオリジナル
ファイル装置75とほぼ同容量のバックアップファイル
装置76が必要となり、また外部にログファイル装置7
7も必要となる。外部に新たな記憶装置が必要となるば
かりでなく、これらの外部記憶装置をアクセスするため
にデータ処理速度が低下し、ログファイル装置77の記
憶容量を越えてファイルの更新処理などが行われた場合
や、大量のログファイル装置77の内容に基づく復旧処
理に時間がかかるなどの問題がある。
【0029】さらに、トランザクションのロールバック
機能を備えるデータベース管理システムでは、トランザ
クションを一時に一括して処理するコミット命令の実行
に時間を要する問題がある。また簡易な情報処理装置で
は、ISAMファイルを利用する情報処理を効率的に行
うことが困難である。
【0030】本発明の目的は、ISAMファイルを利用
した情報処理中に障害が発生しても、容易に復旧させる
ことができ、構成が簡単なISAMファイル情報処理装
置を提供することである。
【0031】
【課題を解決するための手段】本発明は、先頭から順次
レコードが格納される順編成データファイルを不揮発性
の外部記憶装置に展開し、各レコードに対応するキー
と、各レコードの格納位置を表すデータとを組合わせた
インデックスファイルを用いて順編成データファイルを
高速に検索することができるISAMファイル情報処理
装置において、インデックスファイルをBツリー構造と
して管理する管理手段と、管理手段によってインデック
スファイルが変更されるとき、変更前のBツリー構造の
管理状態を保存する保存手段と、管理手段によるインデ
ックスファイルの変更処理中に中断が生じたとき、保存
手段の保存内容を用いてインデックスファイルを変更前
の管理状態に復旧する復旧手段とを含むことを特徴とす
るISAMファイル情報処理装置である。また本発明
は、先頭から順次レコードが格納される順編成データフ
ァイルを不揮発性の外部記憶装置に展開し、各レコード
に対応するキーと、各レコードの格納位置を表すデータ
とを組合わせたインデックスファイルを用いて順編成デ
ータファイルを高速に検索することができるISAMフ
ァイル情報処理装置において、障害発生後の復旧処理で
使用する復旧用管理情報を保存するための保存手段と、
ファイルを使用可能とするオープン命令の実行後に、フ
ァイル中のレコードへの書込み命令が最初に発行された
ときにのみ、保存手段に復旧用管理情報を保存させ、障
害発生後には保存された復旧用管理情報を使用して復旧
処理を行う復旧手段とを含むことを特徴とするISAM
ファイル情報処理装置である。また本発明は、先頭から
順次レコードが格納される順編成データファイルを不揮
発性の外部記憶装置に展開し、各レコードに対応するキ
ーと、各レコードの格納位置を表すデータとを組合わせ
たインデックスファイルを用いて順編成データファイル
を高速に検索することができるISAMファイル情報装
置において、ファイルを新規に生成する際に、障害発生
後の復旧処理で必要なISAMファイル管理情報を生成
する生成手段と、ファイルを新規に生成する場合に、生
成したファイルを一旦クローズして、ISAMファイル
管理情報およびオペレーティングシステムで管理される
ファイル情報を外部記憶装置に強制的に書込んだ後で、
ファイルをオープンし、障害発生時には外部記憶装置に
書込んだISAMファイル情報およびオペレーティング
システムで管理されるファイル情報を使用して復旧処理
を行う復旧手段とを含むことを特徴とするISAMファ
イル情報処理装置である。また本発明は、先頭から順次
レコードが格納される順編成データファイルを不揮発性
の外部記憶装置に展開し、各レコードに対応するキー
と、各レコードの格納位置を表すデータとを組合わせた
インデックスファイルを用いて順編成データファイルを
高速に検索することができるISAMファイル情報処理
装置において、ファイルに対するアクセス命令を時系列
的に保存する保存手段と、障害発生後に保存手段の保存
内容を読出し、保存内容中にクローズ命令が存在すると
きクローズ命令の対象となるファイルに対するクローズ
命令以前に出現した命令を無効とし、残余の保存内容に
基づいてファイルの障害復旧を行う復旧手段とを含むこ
とを特徴とするISAMファイル情報処理装置である。
また本発明は、先頭から順次レコードが格納される順編
成データファイルを外部記憶装置に展開し、各レコード
に対応するキーと、各レコードの格納位置を表すデータ
とを組合わせたインデックスファイルを用いて順編成デ
ータファイルを高速に検索することができるISAMフ
ァイル情報処理装置において、ISAMファイルに対す
る処理情報のうち、障害発生後の復旧処理に必要な復旧
用管理情報を保存するための保存手段と、保存手段への
復旧用管理情報の保存時に、保存未完了を表す情報を付
して処理を開始し、保存完了時に保存未完了を表す情報
を保存完了を表す情報に変更する管理手段と、障害発生
後に、保存手段に保存され、保存完了を表す情報が付さ
れた復旧用管理情報を使用して復旧処理を行う復旧手段
とを含むことを特徴とするISAMファイル情報処理装
置である。また本発明は、先頭から順次レコードが格納
される順編成データファイルを外部記憶装置に展開し、
各レコードに対応するキーと、各レコードの格納位置を
表すデータとを組合わせたインデックスファイルを用い
て順編成データファイルを高速に検索することができる
ISAMファイル情報処理装置において、データファイ
ルに新規のレコードを取得してアクセスする前に、次に
取得予定のレコード番号を読出す管理手段と、管理手段
の読出したレコード番号を保存する保存手段と、障害発
生後に、保存手段に保存されたレコード番号を使用して
復旧処理を行う復旧手段とを含むことを特徴とするIS
AMファイル情報処理装置である。また本発明は、先頭
から順次レコードが格納される順編成データファイルを
外部記憶装置に展開し、各レコードに対応するキーと、
各レコードの格納位置を表すデータとを組合わせたイン
デックスファイルを用いて順編成データファイルを高速
に検索することができるISAMファイル情報処理装置
において、ISAMファイルに対する処理情報のうち、
障害発生後の復旧処理に必要な復旧用管理情報を保存す
るための保存手段と、復旧用管理情報を、正常な動作中
の予め定める時点毎に保存手段に保存する管理手段と、
障害発生後、保存手段に保存された復旧用管理情報を使
用して復旧処理を行う復旧手段とを含むことを特徴とす
るISAMファイル情報処理装置である。さらに本発明
の前記管理手段は、ISAMファイルでのデータファイ
ルとインデックスファイルとの区別をつけるための情報
を前記保存手段に追加して保存し、前記復旧手段は、I
SAMファイルでのデータファイルとインデックスファ
イルとを区別して復旧処理を行うことを特徴とする。さ
らにまた本発明の前記管理手段は、ファイルが存在する
記憶媒体が揮発性または取外し可能であるとき、復旧処
理の対象から除外することを特徴とする。また本発明
は、先頭から順次レコードが格納される順編成データフ
ァイルを不揮発性の外部記憶装置に展開し、各レコード
に対応するキーと、各レコードの格納位置を表すデータ
とを組合わせたインデックスファイルを用いて順編成デ
ータファイルを高速に検索することができるISAMフ
ァイル情報処理装置において、データファイルに新規な
レコードを追加する際、データの書込み前であることを
表す情報を付してレコードを確保する確保手段と、確保
手段によって確保されたレコードに、データの書込み前
であることを表す情報が付されているとき、データの書
込みを行う管理手段とを含むことを特徴とするISAM
ファイル情報処理装置である。
【0032】
【作用】本発明に従えば、インデックスファイルは管理
手段によってBツリー構造として管理されているので、
インデックスファイルの変更はキーの追加と削除とによ
って行われる。キーの変更の影響は、リーフノードのみ
に止まる場合と、他のノードに影響する場合があり得
る。変更前の管理状態としては、変更の対象となるノー
ドのイメージ、およびファイル上での位置を表すポイン
タが含まれる。さらにISAMファイルのインデックス
ファイルには、キーの登録件数、ノードの数、論理的な
サイズなどの管理情報が付加されているので、キーの変
更前の状態を保存しておく。復旧処理時には、先に保存
したノードのイメージを保存されたファイル上の位置に
上書する。ISAMファイル管理情報をも同様に上書す
ることによって、キー変更前の状態に復旧させることが
できる。変更の過程で新規に確保されたノードは、論理
的なリンクがなくなるので、データ処理上は存在しない
こととなる。変更の対象となるノードに関連する管理状
態を保存するだけで復旧を行うことができるので、迅速
な処理を簡単な構成で実現することができる。
【0033】また本発明に従えば、ファイルを使用可能
とするオープン命令の実行後には、ファイル管理情報が
情報処理装置内の揮発性記憶領域に読出される。ファイ
ルの読出しを行うだけの場合は、ファイルの内容には変
更がないので、揮発性領域内に読出された管理情報は外
部記憶装置上の管理情報から変化しない。揮発性記憶領
域上の管理情報を利用してISAMファイルを利用する
ので、迅速な情報処理を行うことができる。ファイル中
のレコードへの書込み命令が発行されたときに、復旧に
必要な復旧用管理情報を保存手段に保存するので、復旧
手段による障害発生後の復旧処理によって確実にファイ
ルの復旧を行うことができる。
【0034】また本発明に従えば、一般に、ファイルを
新規に生成する場合には、オペレーティングシステムに
おけるファイルの管理情報がオペレーティングシステム
の内部バッファなどに存在し、外部記憶装置には反映さ
れず、またISAMファイルの管理情報も、内部バッフ
ァに存在して外部記憶装置には反映されないけれども、
ファイルを一旦クローズすると、ISAMファイル管理
情報が内部バッファから外部記憶装置に書込まれ、オペ
レーティングシステムの内部バッファの管理情報も外部
記憶装置に書込まれる。このような強制的な書込みが終
了した後でファイルをオープンすると、外部記憶装置に
オペレーティングシステムおよびISAMシステムのそ
れぞれの管理情報を反映させることができ、復旧処理に
利用することができる。
【0035】また本発明に従えば、保存手段にはファイ
ルに対するアクセス命令が時系列的に保存される。復旧
手段は、障害発生後に保存手段の保存内容を読出し、保
存内容中にクローズ命令が存在するときにはクローズ命
令の対象となるファイルに対するクローズ命令以前に出
現した命令を無効とする。クローズ命令が実行される
と、ISAMファイルを構成するのに必要な情報は外部
記憶装置に記憶されるので、復旧の対象とする必要がな
い。このような対象とする必要のない命令を無効として
復旧処理を行うので、迅速な障害発生後の復旧を行うこ
とができる。
【0036】また本発明に従えば、ISAMファイルに
対する処理情報のうち、障害発生後の復旧処理に必要な
復旧用管理情報は、たとえば書込み命令の履歴やノード
イメージであり、情報処理装置の処理単位であるワード
以上の長さを有する。したがって転送の途中で障害によ
って処理が中断すると、情報は不正確になってしまう。
これらの復旧用管理情報を不揮発性記憶装置に転送する
場合に、それらの情報に付随してあるいは一部として保
存未完了を表す情報を付加する。復旧用管理情報の保存
が終了すると、管理手段は保存未完了を表す情報を保存
完了を表す情報に変更する。復旧手段は保存完了を表す
情報が付された復旧用管理情報を使用して復旧処理を行
うので、確実な復旧用管理情報に基づいてファイルの復
旧を行うことができる。
【0037】また本発明に従えば、管理手段がデータフ
ァイルに新規のレコードを取得してアクセスする前に、
次に取得予定のレコード番号が読出される。次に取得予
定のレコード番号は、データファイルの内部に使用され
ていないデータレコードが存在しない場合は、現在のデ
ータファイルのサイズを拡大して、新規のレコードの記
憶領域が確保され、現在の最大レコード番号の次のレコ
ード番号が与えられる。データファイルの内部に使用さ
れていないデータレコードが保存する場合は、そのデー
タレコードを示す番号が与えられる。このような使用さ
れていないレコードは、一旦生成された後、削除命令に
よって削除されたレコードであり、削除レコードはその
位置を示すポインタのリンクによって容易に取得するこ
とができる。事前にレコード番号を得ることができるの
で、命令の実行中に実際のファイルに対して書込みが発
生しても、どのレコードが対象となるかが明瞭であり、
新規レコードへの書込み処理中に障害が発生した場合
に、復旧処理でどのレコードに対して復旧処理を行うか
を明確にすることができる。
【0038】また本発明に従えば、管理手段は、復旧用
管理情報を、正常な動作中の予め定める時点毎に保存手
段に保存する。復旧手段は、障害発生後に保存手段に保
存された復旧用管理情報を使用して復旧処理を行う。復
旧用管理情報を定期的に不揮発性記憶装置に転送するの
で、障害発生からの復旧処理時には、最新の管理情報を
利用して効率的に復旧処理を行うことができる。
【0039】さらに本発明に従えば、管理手段は、IS
AMファイルのデータファイルとインデックスファイル
との区別を付けるための情報を保存手段に追加して保存
する。復旧手段は、データファイルとインデックスファ
イルとを区別して復旧処理を行うので、ISAMファイ
ルとしての正常な復旧処理を容易に行うことができる。
【0040】さらにまた本発明に従えば、管理手段はフ
ァイルが存在する記憶媒体が揮発性または取外し可能で
あるときには、復旧処理の対象から除外する。揮発性記
憶装置の内容は、停電などの障害発生と同時に失われて
もよいものとして取扱われる。揮発性記憶装置に停電発
生以前の内容の一部が残っていると、かえって不具合を
発生させることもある。また取外し可能な媒体にファイ
ルが存在するときには、障害復帰後に取除かれている可
能性がある。取外されている媒体に存在するファイルに
対する復旧処理を行うと、別のファイルに対する処理に
対して不所望な処理が行われてしまうおそれがある。こ
れらの場合にファイルに対する復旧処理を除外すれば、
必要な復旧処理のみを迅速に行うことができる。
【0041】さらにまた本発明に従えば、データファイ
ルに新規なレコードを追加する際には、データの書込み
の前であることを表す情報を付してレコードを確保す
る。一般に、ISAMファイルの登録レコード件数など
の管理情報は、不揮発性の外部記憶装置上のファイル、
情報処理装置の揮発性の主記憶領域に存在するISAM
ファイルアクセス手段の内部、および不揮発性の保存手
段上の復旧情報として、3カ所に存在する。外部記憶装
置上のファイル管理情報は、基本的にはファイルのクロ
ーズ時またはアクセス命令の実行時に書換えられる。さ
らに主記憶領域上のISAMファイル管理手段の内部、
および保存手段には、そのファイルが最後に取得した新
規のレコードのレコード番号が保存される。このレコー
ド番号は、新規レコードの確保が行われる毎に更新され
る。管理手段は、確保されたレコードに、データの書込
み前であることを表す情報が付されているときデータの
書込みを行う。これによって、確実にかつ効率的に新規
レコードの確保を行うことができる。
【0042】
【実施例】図1は、本発明を実施するための前提となる
ハードウエア構成を示す。中央処理装置101は、CP
Uなどを含み、オペレーティングシステムおよびISA
Mファイル管理システムを動作させ、さらに使用者の必
要とするアプリケーションプログラムを実行する。IS
AMファイルは、たとえばPOSにおける商品データや
顧客データなど、数千〜数万のデータを効率的に管理す
るために利用される。これらの場合のキーとしては、商
品コードや名前あるいは電話番号などが用いられる。中
央処理装置101が実行する各プログラムのコードとデ
ータとは、磁気ディスク装置や磁気テープ装置などによ
って実現される不揮発性の外部記憶装置102から与え
られる。一般に、外部記憶装置102に対するアクセス
速度は遅くなるので、中央処理装置101は主として主
記憶装置103内に記憶されているコードおよびデータ
に基づいて動作する。主記憶装置103は、たとえば半
導体メモリによって実現され、電源電圧の供給が停止さ
れると記憶内容が消失する揮発性記憶装置を構成する。
【0043】本構成では、停電などの障害発生時に復旧
を円滑に行うために、不揮発性記憶装置104が設けら
れている。不揮発性記憶装置104は、たとえば電池な
どによってバックアップされる半導体メモリで実現さ
れ、その記憶容量を主記憶装置103程度に大きくする
とコストが上昇するので、一般には比較的小容量であ
る。中央処理装置101には、停電やソフトウエアある
いはハードウエアの動作異常を検出する障害検出装置1
05が付加され、障害を検出すると割込み信号などを発
生する。中央処理装置101は、通常の動作中に、割込
み信号として障害検出信号が与えられると、外部記憶装
置102および保存手段である不揮発性記憶装置104
に対して、復旧に必要となる情報を記憶し、障害の回復
を待つ。障害が回復すると、中央処理装置101は、外
部記憶装置102および不揮発性記憶装置104に記憶
されている復旧用情報に基づいて、ファイルの復旧作業
を行う。
【0044】図2は、図1の主記憶装置103内および
不揮発性記憶装置104内のメモリマップを示す。たと
えば、アプリケーションプロセスのデータ部133およ
びコード部134、ISAMファイルアクセス管理プロ
セスのデータ部135およびコード部136、空き領域
137、オペレーティングシステムのデータ部138お
よびコード部139のように、主記憶装置103内は使
い分けられている。図1の不揮発性記憶装置104内の
メモリマップでは、N個のISAMファイル管理情報1
40と、M個までの履歴を表す書込み命令のログ141
と、K個までのノードのイメージ142と、K個までの
ノード管理情報143が記憶されて保存される。
【0045】主記憶装置103上には、アプリケーショ
ンプログラム、ISAMファイルアクセス管理プログラ
ム、オペレーティングシステムのように、複数のプログ
ラムが読出され、時分割などによって同時に動作する。
この場合、アプリケーションプログラムとISAMファ
イルアクセス管理プログラムは、オペレーティングシス
テムの上でマルチタスクとして同時に動作する。主記憶
装置103上に読出される動作に必要なコードとデータ
とを1つの実体単位として、プロセスと呼ぶこととす
る。
【0046】図3は、図2のISAMファイルアクセス
管理プロセスのデータ部135内のメモリマップを示
す。ISAMファイルアクセス管理プロセス内部で使用
するデータ部151には、ヘッダ領域151と、N個の
ISAMファイル管理情報152と、K個のノードのイ
メージ153と、K個のノード管理情報154と、デー
タレコードバッフア155が含まれる。ノードのイメー
ジ153とノード管理情報154とが記憶される領域
は、ノードバッファとなる。ISAMファイルアクセス
管理プロセスのデータ部135の他に、コード部136
が存在し、プログラム自体の動作が記述される。
【0047】ISAMファイル管理情報152内には、
インデックスファイルについてはファイル識別コード、
ファイル名称、ファイルのサイズ、キーのサイズおよび
種類、ノードのサイズ、登録キー数、登録ノード数、ル
ートノードへのポインタ、ファイルの種類、ファイル書
込みフラグおよび媒体種類などの情報が含まれる。デー
タファイルについては、ファイル識別コード、ファイル
名称、ファイルのサイズ、レコードサイズ、登録レコー
ド件数、最近取得したレコード番号、新規レコード書込
みフラグ、削除レコードへのリンクポインタ、ファイル
の種類、ファイル書込みフラグおよび媒体種類などの情
報が含まれる。ノード管理情報154には、ファイル識
別コードおよび対応するノードのファイル上でのオフセ
ット位置などが含まれる。主記憶装置103上のISA
Mファイル管理プロセスのデータ部135のうち、IS
AMファイル管理情報152、ノードのイメージ153
およびノード管理情報154は、不揮発性記憶装置10
4上にもISAMファイル管理情報140、ノードのイ
メージ142およびノード管理情報143としてそれぞ
れ所定のタイミングで保存される。
【0048】ISAMファイルアクセス管理プロセスの
コード部136によって実現される動作では、アプリケ
ーションプロセスからのファイルアクセスの命令を受け
るためのプロセス間通信手段、命令の種類を判別する手
段、ISAMファイル管理情報をファイルから新規に取
得する手段、ISAMファイル管理情報を不揮発性記憶
装置104に複写する手段、書込みフラグをオンにする
手段、書込みフラグをチェックする手段、および実際に
命令に従ってファイルをアクセスする手段などを含む。
【0049】図4および図5は、第1実施例によるノー
ドへのキー追加処理におけるインデックスファイルのイ
メージおよび外部記憶装置102のファイル上での配置
状態を示す。たとえば、図4(1)では、ルートノード
161の次に、中間のノードA162およびノードB1
63が存在し、さらにその下位にリーフノードであるノ
ードC164、ノードD165、ノードE166、ノー
ドF167、ノードG168、およびノードH169が
存在する。図4(2)では、外部記憶装置102には、
ISAMファイル管理情報170に続いて、ルートノー
ド171、ノードC172、ノードD173、ノードA
174、ノードE175、ノードF176、ノードB1
77、ノードG178およびノードH179のように記
憶されている。図5(1)に示すように、キーの追加処
理に伴って、新たなリーフノードがノードJ180とし
て生成され、新たにルートノード181、中間のノード
I182、ノードB183、リーフノードであるノード
H189が変更される。この変化では、新たなキーが追
加されたノードJ180が新たに生成されたために、ノ
ードH189を前ノードポインタが示すように設定され
る。ノードJ180は同階層では最も大きなキー値を有
するノードであるので、次ノードポインタはNullポイン
タが設定される。図4(1)では最も大きなキー値を有
するリーフノードであったノードH189の次ノードポ
インタには、ノードJ180を示すポインタが設定され
る。ノードJ189を新たに生成したために、中間のノ
ードにおいても新たにノードI182を生成する必要が
生じる。ノードI182の前ノードポインタにはノード
B183を示す値が代入され、ノードB183の次ノー
ドポインタにはノードI182を示す値が設定される。
ノードI182の次ノードポインタの値は、Nullであ
る。ルートノード181のポインタも、新たにノードI
182を示すポインタが追加される。これらの変更され
るノードには、「*」を付して示す。図5(2)には、
ISAMファイル管理情報190とルートノード191
以下のノードを示し、特にノードJ192およびノード
I193が図4(2)の状態から追加される。以上のよ
うに、キーを追加する際には、Bツリー構造では1つの
ノードに格納することができるキー値とポインタとの組
の数が制限されているので、制限を越えるとノードを分
割する必要が生じる。ノードの分割が生じると、1つの
階層内では分割されるノード1個とその隣のノードが変
更され、新規にノードが1個追加される。また上の階層
においても同様である。
【0050】ノードへのキーの追加処理は、まず図3に
示すノードのイメージ153として、外部記憶装置10
2からノードのイメージを読込み、同時にノード管理情
報154も書換える。この主記憶装置103上のノード
のイメージ153に対して、キー値とポインタとの組を
変更したり、先ノードポインタおよび次ノードポインタ
の書換えを行う。キー値とノードポインタとの書換えは
次のように行う。
【0051】ノード内に新規のキーを追加するための
空き領域が存在する場合は、追加するキー値をKEYと
したとき、次の第10式の関係があるものとする。
【0052】 Key1<Key2<…<Keyi<KEY<Keyj<…<KeyN …(10) この場合は、KEYのキー値が大きいKeyj,…,K
eyNおよびそれに対応するポインタの組をノード内で
シフトし空き領域を作る。その空き領域にKEYとそれ
に対応するポインタとを書込む。
【0053】ノード内に新規のキーを追加するための
空き領域が存在しない場合は、新規にノードを生成し、
ノード内のキーとポインタとの組を分割する。ノードの
分割の1つの方法としては、キーを2分割する方法があ
る。この方法では、ノードに含まれるキーの数をN個と
した場合、次の第11式および第12式で示されるよう
にキーを分割する。
【0054】 Key1 < … < Key(N/2) …(11) Key(N/2+1) < … < KeyN …(12) そして新規に生成したノードにKey(N/2+1),
…,KeyNを移し、元のノードに空き領域を作る。そ
してこの2つのノードのうち、KEY<Key(N/2
+1)ならば元のノードに、Key(N/2+1)<K
EYならば新規に生成したノードにキーを追加する。ノ
ードに対するキーの追加の方法は、と同様である。
【0055】上述のような書換えを行うには、このIS
AMファイルアクセス管理プロセスのデータ部135に
ノードイメージを読込み、その後書換えを行う必要があ
る。しかしながら、書換えられたノードイメージは、そ
の直後には外部記憶装置102内のファイルには反映さ
れない。ノードの検索を高速化するため、中央処理装置
101は、通常はこのデータ部135内のノードイメー
ジに対して処理を行う。ノードが実際の外部記憶装置1
02内のファイルに反映されるのは、たとえばノードバ
ッファ内に新たにノードを読込むために、バッファの空
き領域が必要になった場合、既に存在するノードイメー
ジをファイルに書出して開放する時点である。この書換
え処理を行う直前に、該当するノードイメージとそのノ
ード管理情報とを不揮発性記憶装置104に転送し、保
存する。またキーの追加が行われた場合には、ファイル
管理情報のうち、ファイルサイズ、登録キー数、ノード
の個数なども書換えられることがある。このファイル管
理情報も変更前の情報を不揮発性記憶装置104に保存
する。復旧処理においては、保存しておいたノードイメ
ージをノード管理情報が示すファイルの位置に上書きす
る。またファイル管理情報も同様に書換える。
【0056】次に図6に従って、本発明の第1実施例と
してISAMファイルアクセス管理プロセスにおけるキ
ー追加処理の実行のための動作を説明する。ステップa
1から動作を開始し、ステップa2ではアプリケーショ
ンプログラムからの命令を受信する。プロセス間の通信
は、オペレーティングシステムが仲介する。ステップa
3では受信された命令を判別し、ステップa4でステッ
プa3の判別結果に従い、キー追加命令の他の命令であ
るときにはステップa5に移り、その命令の実行処理を
行いステップa6で処理を終了する。
【0057】ステップa4でキー追加命令であると判別
されるときには、ステップa7に移り、キー追加命令を
図2の書込み命令のログ141に保存し、ステップa8
でISAMファイル管理情報140を不揮発性記憶装置
104に保存する。次にステップa9で、キーを追加す
るノードを探すために、キーの検索が実行される。この
キーの検索の際に、検索経路にあるノードがISAMフ
ァイル管理プロセスのノードバッファにノードのイメー
ジ153として読込まれる。キーの検索を行うには、ル
ートノードからノードを順番に読込み、ノード内の情報
によって次に読込むノードを決めながらリーフノードに
向かって進めていく。目的のリーフノードに到達した
ら、ノードの内容が変化する前に、そのノードのイメー
ジと管理情報とを不揮発性記憶装置104に転送して保
存してから、ステップa11でノードに対するキーの追
加を行う。場合によっては上位の階層のノードの書換え
も発生するけれども、この場合もノード書換え前のイメ
ージを保存してから書換えを行う。すべてのノードの書
換えが終了した後、ノードイメージバッファ内の該当フ
ァイルに関するノードイメージ153を、外部記憶装置
102のファイルに実際に書込むためのフラッシュアウ
ト処理をステップa12で行い、ステップa6に移って
動作を終了する。
【0058】図7は、図5に示すキー追加処理実行中に
停電発生した場合の復旧処理の動作を示す。ステップb
1から動作を開始し、ステップb2では不揮発性記憶装
置104から書込み命令のログ141を順番に読出す。
ステップb3では、キーの追加命令が存在するか否かを
判断する。存在しないときにはステップb4に移り、そ
の他の命令についての復旧処理を行う。ステップb3で
キー追加命令が存在すると判断されるときには、ステッ
プb5に移り、キーを追加した該当ファイルのISAM
ファイル管理情報を読出して、ステップb6で該当ファ
イルをオープンする。該当ファイルがオープンしたら、
ステップb7およびステップb8で、ISAMファイル
管理情報140およびノードのイメージ142をそれぞ
れ書込む。次にステップb9でキー追加命令の再実行を
行い、ステップb10でファイルのクローズを行い、ス
テップb4に移る。ステップb4でその他の復旧処理が
終了すると、ステップb11で動作を終了する。
【0059】図8は、本発明の第2実施例に基づいて、
図4に示すインデックスファイルの状態からキーを削除
した場合の状態を示す。図8(1)はインデックスファ
イルの構造を示し、図8(2)はインデックスファイル
のイメージを示す。図8はルートノード161、中間の
ノードA162およびノードB163、リーフノードで
あるノードC164、ノードD165、ノードE16
6、ノードF167、ノードG200およびノードH1
69のうち、ノードG200からキーを削除した状態を
示す。キーを削除すると、そのキー値に対応するポイン
タにはNullを設定する。このようにノードのうちの1つ
のキーを削除すると、書込みの発生するノードはそのノ
ードに限られ、インデックスファイルのノードのイメー
ジでもISAMファイル管理情報170とルートノード
171以下のノードG201が書換えられる。削除され
るキーがノードに登録されている最大のキーであれば、
上位のノードを書換える場合も発生する。
【0060】このようなノードからのキー削除を行う処
理は、図3のISAMファイルアクセス管理プロセスの
データ部135内のノードイメージバッファにノードを
読込んで変更処理を行う。また同時にノード管理情報1
54も書換える。キー値とノードポインタとの書換えは
次のように行う。
【0061】削除するキーがリーフノード内で最大の
キーではない場合は、削除するキーをKEYとしたと
き、リーフノード内のキーに対して第13式で示す関係
が成立する。
【0062】 Key1 < … < KEY < …< KeyN …(13) この場合は、KEYに対応するポインタにNullを設
定すればよい。
【0063】削除するキーがリーフノード内の最大キ
ーである場合は、次の第14式の関係が成立する。
【0064】 Key1 < … < Key(N−1) < KEY …(14) この場合は、KEYに対応するポインタにNullを設定
し、このリーフノードの最大キーをKey(N−1)と
する。そしてこのリーフノードの上位階層のノード中の
このリーフノードにリンクしているポインタに対応する
キー値をKey(N−1)に変更する。この書換えとそ
の復旧のための保存動作は、キーの追加の場合と同様に
行う。
【0065】図9は、第2実施例におけるISAMファ
イルアクセス管理プロセスの動作を示す。ステップc1
からステップc3までは、第1実施例のステップa1か
らステップa3までにそれぞれ対応し、同様な動作を行
う。ステップc4では、判別した命令に従って分岐す
る。キー削除命令のときはステップc5でその命令を不
揮発性記憶装置104の書込み命令のログ141に保存
する。ステップc6では、キー削除命令の対象となるフ
ァイルのISAMファイル管理情報152を不揮発性記
憶装置104に保存する。
【0066】次のステップc7では、キーを削除するノ
ードを探すためにキーの検索を行う。ルートノードか
ら、ノードを順番に読込み、読込んだノード内の情報を
参照しながら次に読込むノードを決める。リーフノード
までの検索経路を形成するノードは、ノードのイメージ
142としてバッファに読込まれる。目的のリーフノー
ドに到達したら、そのノードのイメージ142とノード
管理情報とを不揮発性記憶装置104に転送して保存
し、ステップc9で主記憶装置103内のノードのイメ
ージ142およびノード管理情報143に対してキーの
削除を行う。必要に応じて、上位の階層のノードの書き
換えの必要も発生する。そのような場合も、書き換え前
のイメージを保存しておく。ステップc10では該当フ
ァイルに対するノードバッファ内のノードイメージを、
実際にファイルに書き込むフラッシュアウトを実行す
る。
【0067】ステップc4で、キー削除の他の命令であ
ると判断されるときは、ステップc11でその命令を実
行する。最後にステップc12で動作を終了する。
【0068】 Record_No = (Info_Length + R_Length * R_Num) / R_Length + 1 …(15) ステップk7で削除レコードポインタがNullでないとき
は、ステップk8で削除レコードポインタで示される先
頭レコードのレコード番号である。
【0069】図10は、ノードからのキー削除処理実行
中に停電が発生し、その復旧のための処理を示す。ステ
ップd1から動作を開始し、ステップd2では不揮発性
記憶装置104から書込み命令のログ141を読出す。
ステップd3ではキー削除の命令が存在するか否かを判
断する。存在すると判断されるときには、ステップd4
で、該当するファイルのISAMファイル管理情報14
0を読出し、ステップd5で該当ファイルをオープン
し、ステップd6でISAMファイル管理情報を書込
む。次にステップd7で不揮発性記憶装置104からの
ノードイメージ142をオープンしたファイルに書込
み、ステップd8でキー削除を再実行する。ステップd
9でファイルをクローズし、ステップd10でその他の
復旧処理を行い、ステップd11で処理は終了する。
【0070】図11は、本発明の第3実施例として、I
SAMファイルアクセス管理プロセスの動作を示す。ス
テップe1からステップe3までは、第1実施例のステ
ップa1からステップa3までにそれぞれ対応し、同様
な動作を行う。ステップe4では、判別した命令に従っ
て分岐する。データファイルオープン命令、またはレコ
ードの追加・更新・削除命令ではない、その他の命令の
ときはステップe5でその命令を実行する。
【0071】ステップe4で、データファイルオープン
命令のときは、ステップe6でファイルをオープンし、
ステップe7でISAMファイル管理情報152をIS
AMファイルアクセス管理プロセスのデータ部135上
に外部記憶装置102から読込み、取得と設定を行う。
【0072】ステップe4で,レコードの追加・更新・
削除命令のときは、ステップe8で書込みフラグをチェ
ックする。フラグがオフであれば、ステップe9で書込
みフラグをオンに設定し、ステップe10で主記憶装置
102上のISAMファイル管理情報152を不揮発性
記憶装置104に転送して複写する。ステップe8でフ
ラグがオンであるとき、またはステップe10が終了す
ると、ステップe11でレコードの追加・更新・削除命
令の実行を行う。ステップe5、e7、またはe11が
終了すると、ステップe12で動作を終了する。
【0073】図12は、本発明の第4実施例として、I
SAMファイルアクセス管理プロセスの動作を示す。ス
テップf1からステップf3までは、第1実施例のステ
ップa1からステップa3までにそれぞれ対応して同様
の動作を行う。ステップf4でファイルの新規作成命令
と判断されるときには、ステップf5でISAMファイ
ル管理情報152をISAMファイルアクセス管理プロ
セスのデータ部135上に生成して設定する。この管理
情報に基づいて、ステップf6では外部記憶装置102
上に新規なファイルを生成する。ステップf7では、I
SAMファイル管理情報152を外部記憶装置102に
書込み、ステップf8で一度ファイルをクローズする。
ファイルをクローズすることによって、オペレーティン
グシステムは、その内部に存在する該当ファイルに対す
る管理情報を、実際にファイルに書き込む(writ
e)。次にステップf9に移り、ステップf8でクロー
ズしたファイルを再度オープンし、ステップf10でオ
ープンされたファイルからISAMファイル管理情報を
取得して主記憶装置103上に設定する。
【0074】ステップf4でその他の命令であるとき
は、ステップf11でその命令を実行する。ステップf
10またはステップf11が終了すると、ステップf1
2で動作を終了する。
【0075】図13は、本発明の第5実施例として、I
SAMファイルアクセス管理プロセスの動作を示す。ス
テップg1からステップg3までは、第1実施例のステ
ップa1からステップa3までにそれぞれ対応して同様
の動作を行う。ステップg4でファイル内容の書込み命
令や、オープンまたはクローズ命令と判断されるときに
は、ステップg5で不揮発性記憶装置105に書込み命
令のログ141として、その付属情報とともに書き込ん
で登録してから、ステップg6で命令を実行する。ステ
ップg4でその他の命令と判断されるときには、ステッ
プg7でその実行を行う。ステップg6またはステップ
g7の実行が終了すると、ステップg8で動作を終了す
る。
【0076】図14は、本発明の第6実施例として、復
旧処理の前処理の動作を示す。ステップh1から動作を
開始し、ステップh2では不揮発性記憶装置104上の
書込み命令のログ141を読取るための読取りポインタ
を、書込み命令のログ141の次の命令に進める。ステ
ップh7では、まだ書込み命令のログ141が存在して
いるか否かを判断する。存在しなければ、ステップh8
で動作を終了する。ステップh7で書込み命令のログ1
41がまだ存在するときは、ステップh3に戻る。
【0077】ステップh5で、命令がクローズ命令であ
るときは、ステップh9に移る。ステップh9では、書
込み命令のログ141を示す現在のポインタを不揮発記
憶装置104に保存する。ステップh10では、書込み
命令のログ141の先頭から読出す。ステップh11で
は、付属情報の中のファイルの識別コードを取得する。
ステップh12では、クローズ命令のファイル識別コー
ドが取得されたファイル識別コードと一致するか否かを
判断する。ステップh13で、ステップh11の判断が
一致するなら、ステップh14で該当する書込み命令の
ログ141で命令コードを無効な命令コードに置き換え
る。ステップh13で一致しないと判断されるとき、ま
たはステップh14が終了したときは、ステップh15
に移る。
【0078】ステップh15では読取り用のポインタを
一つ進める。ステップh16で、クローズ命令に到達し
ていなければ、ステップh10に戻る。クローズ命令に
到達すれば、ステップh9で保存したポインタを読出
し、ステップh6に戻る。このようにして、書込み命令
のログ141に登録されている全ての命令に対する処理
が終ると、ステップh8で動作を終了する。
【0079】図15は、本発明の第6実施例として、I
SAMファイルアクセス管理プロセスの動作を示す。ス
テップi1から動作を開始し、ステップi2では不揮発
性記憶装置104に転送すべき情報の準備を行う。その
ような情報として、ISAMファイルアクセス管理プロ
セスのデータ部135から、ノードのイメージ153、
ノード管理情報154、ISAMファイル管理情報15
2などの情報を転送可能な形式にする。ステップi3で
は、それらの情報に付随して、あるいは一部として、仮
登録であることを表すフラグを付加する。このフラグ
は、データ書込みの最小単位であるように、実行するマ
シン語の長さに一致させる。
【0080】ステップi4では、準備した情報とフラグ
とを不揮発性記憶装置104に転送する。転送が完了す
ると、ステップi5で、フラグを本登録を表すように変
更する。ステップi6では、変更したフラグを不揮発性
記憶装置102に転送し、ステップi7で動作を終了す
る。
【0081】図16は、第6実施例での復旧処理時の動
作を示す。ステップj1から動作を開始し、ステップj
2では不揮発性記憶装置104に保存されていた情報を
読取る。ステップj3では、情報の中から仮登録または
本登録を表すフラグを取得する。ステップj4では、フ
ラグの内容をチェックして判定する。ステップj5で、
フラグの内容が本登録であるときは、ステップj6で読
出された情報は有効であり、正しいものとして扱うよう
にする。ステップj5でフラグの内容が本登録以外と判
断されるときは、ステップj7で情報は不確実なので破
棄する。ステップj6またはステップj7が終了する
と、ステップj8で動作を終了する。
【0082】図17は、本発明の第7実施例として、I
SAMファイルアクセス管理プロセスの動作を示す。ス
テップk1からステップk3までは、第1実施例のステ
ップa1からステップa3までにそれぞれ対応して同様
の動作を行う。ステップk4で、命令がデータファイル
に対する新規レコードの取得命令と判断されるときに
は、ステップk5で該当ファイルのISAMファイル管
理情報を読込んで取得し、ステップk6で削除レコード
ポインタの判別を行う。削除ポインタがNullのときは、
現在のデータファイルのサイズを拡大して新規のレコー
ドを確保する。すなわち、ステップk8で現在使用最終
レコードの次のレコード番号Record_Noが、ファイル管
理情報の長さをInfo_Length、データレコードサイズ長
をR_Length、現在のレコード登録件数をR_Numとして、
次の第15式のようにして求められる。
【0083】 Record_No = (Info_Length + R_Length * R_Num) / R_Length + 1 …(15) ステップk7で削除レコードポインタがNullでないとき
は、ステップk8で削除レコードポインタで示される先
頭レコードのレコード番号である。
【0084】図18は、一旦生成されてから削除され、
ファイル内にリストとして存在する削除レコードへの管
理状態を示す。図18(1)では、ISAMファイル管
理情報211内の削除レコードポインタ212が実線で
示すレコードのリストの先頭のレコードA213が新規
レコードとして取得可能である。レコードA213内に
は、次のレコードB214へのポインタが格納されてお
り、その値を削除レコードポインタ212に設定する
と、破線で示すように、削除レコードの先頭はレコード
214となる。各レコードA213およびレコードB2
14には削除フラグが設けられ、特定の値、たとえば2
桁16進数でFFのような値に設定される。
【0085】図18(2)では、新たなレコードX21
5が削除ファイルの先頭に追加される状態を示す。追加
までは実線で示すようにレコードA213を示していた
削除レコードポインタ212は、破線で示すように、レ
コードX215を示すように変更になる。レコードA2
13は、レコードX215内のリンク用ポインタで示さ
れる。
【0086】図17に戻って、ステップk8,k9でレ
コード番号を取得すると、ステップk10でISAMフ
ァイル管理情報152内の最近取得したレコード番号と
して設定し、不揮発性記憶装置104内にもISAMフ
ァイル管理情報140の一部として保存する。ステップ
k11では、実際に新規レコード取得命令を実行する。
ステップk4でその他の命令と判断されるときは、ステ
ップk12でそのまま実行し、最後にステップk13で
動作を終了する。
【0087】図19は、本発明の第8実施例として、I
SAMファイルアクセス管理プロセスの動作を示す。ス
テップl1からステップl3までは、第1実施例のステ
ップa1からステップa3までにそれぞれ対応して同様
の動作を行う。ステップl4でデータの書込み命令と判
断されるときには、ステップl5で命令を不揮発性記憶
装置104の書込み命令のログ141に保存してから、
ステップl6で命令を実行する。
【0088】ステップl7では、書込み命令のログ14
1のための領域は有限の大きさであるので、さらに書込
み命令のログ141が残っているか否かを判断する。領
域が一杯になっているときには、ステップl8でISA
Mファイル管理情報152内のファイル書込みフラグを
チェックする。ステップl9では、フラグがオンになっ
ていて実際に書込みが行われたファイルを選別する。ス
テップl10では、選別されたファイルを一旦クローズ
してから再度オープンし、現在のデータレコードバッフ
ァ155のファイルへの書き出しを行う。*印を付した
ステップl8からステップl10までの動作は、現在オ
ープン中の全データファイルに対して実施する。
【0089】また、ステップl4でキーの追加あるいは
削除命令と判断されるときは、ステップl11に移る。
ステップl11で命令を不揮発性記憶装置104内の書
込み命令のログ141に保存し、ステップl12で実際
に命令を実行し、ステップl13でファイルのクローズ
とを行う。ステップl4でその他の命令と判断されると
きには、ステップl14で命令を実行する。最後にステ
ップl15で動作を終了する。
【0090】図20は、本発明の第9実施例として、I
SAMファイルアクセス管理プロセスの動作を示す。ス
テップm1からステップm3までは、第1実施例のステ
ップa1からステップa3までにそれぞれ対応して同様
の動作を行う。ステップm4で新規データファイル生成
命令と判断されるときには、ステップm5でISAMフ
ァイルアクセス管理プロセスのデータ部135内にIS
AMファイル管理情報152を生成する。次にステップ
m6で実際にデータファイルを生成し、ステップm7で
ISAMファイル管理情報152内のファイルの種別を
データファイルにセットする。ステップm8でISAM
ファイル管理情報152を不揮発性記憶装置104およ
びファイルに書込み、ステップm9でファイルをクロー
ズし、ステップm10で再度ファイルをオープンする。
ステップm11では、ISAMファイルアクセス管理プ
ロセスが使用する目的で、再度、ISAMファイル管理
情報をファイルから読出して取得する。
【0091】すなわち、データファイルとインデックス
ファイルとの区別を行うため、生成するファイルが使用
される前に、ISAMファイル管理情報152に区別の
ための情報を付加し、ISAMファイル管理情報ととも
に不揮発性記憶装置104に転送する。このような区別
は、上述の各実施例、特に第6〜第8実施例でも有効で
ある。
【0092】ステップm4で新規インデックスファイル
生成命令と判断されるときは、ステップm12からステ
ップm18まで、新規インデックスファイルを、ステッ
プm5からステップm11までの新規データファイルと
同様にして生成する。ステップm4でその他の命令と判
断されるときは、ステップm19で命令を実行する。最
後にステップm20で動作を終了する。
【0093】図21は、本発明の第10実施例として、
ISAMファイルアクセス管理プロセスの動作を示す。
ステップn1からステップn3までは、第1実施例のス
テップa1からステップa3までにそれぞれ対応して同
様の動作を行う。ステップn4でファイルの生成命令と
判断されるときには、ステップn5でISAMファイル
アクセス管理プロセスのデータ部135内にISAMフ
ァイル管理情報152を生成して取得する。次にステッ
プn6で実際にファイルを生成し、ステップn7でIS
AMファイル管理情報152内の媒体種類を設定する。
【0094】外部記憶装置102は、磁気ディスク装置
など不揮発性で固定の場合もあるけれども、記憶媒体は
不揮発性でも取外し可能な磁気ディスク装置、光磁気デ
ィスク装置、あるいは磁気テープ装置などの場合もあ
る。さらに通常揮発性の記憶装置を用いてデータ処理を
行い、不揮発性の記憶装置にアクセスすることを極力減
らして処理速度を向上させる場合もある。揮発性記憶装
置または取外し可能な記憶媒体に対しても固定の不揮発
性記憶媒体と同様な復旧処理を行うのは無駄な動作であ
り、全体の処理効率を低下させる。
【0095】揮発性記憶装置または取外し可能記憶媒体
に対する復旧処理の除外には、次のような2つの方法が
ある。第1は、揮発性記憶装置上または取外し可能な記
憶媒体上のファイルに対する復旧のための情報は、不揮
発性記憶装置104には保存しない方法である。第2
は、復旧処理の前に、揮発性記憶装置上または取外し可
能な記憶媒体上のファイルに対する復旧に必要な情報
を、不揮発性記憶装置上の保存情報から取除き、復旧の
対象とはしない方法である。
【0096】ステップn8では、ISAMファイル管理
情報152を不揮発性記憶装置104およびファイルに
書込み、ステップn9でファイルをクローズし、ステッ
プn10で再度ファイルをオープンする。ステップn1
1では、ISAMファイルアクセス管理プロセスが使用
する目的で、再度、ISAMファイル管理情報をファイ
ルから読出して取得する。
【0097】ステップn4でファイル書込み命令と判断
されるときは、ステップn12に移り、命令が対象とす
るファイルのISAMファイル管理情報を取得し、ステ
ップn13で媒体種別の判別を行う。ステップn14で
媒体が揮発性でも取外し可能でもない不揮発性であると
判断されるときは、ステップn15書込み命令のログ1
41に保存する。上述の第1の方法に従って、揮発性ま
たは取外し可能な場合は、命令を復旧に必要な情報は保
存しないで、ステップn16で命令を実行する。ステッ
プn4でその他の命令と判断されるときは、ステップn
17で実行を行う。最後に、ステップn18で動作を終
了する。
【0098】図22は、上述の第2の方法に従う復旧処
理の動作を示す。ステップo1から動作を開始し、ステ
ップo2では書込み命令のログ141に対する読取りポ
インタを先頭にセットする。ステップo3では、書込み
命令のログ141の読出しを行う。ステップo4では書
込み命令のログ141から書込みの対象となるファイル
の識別コードを取得する。ステップo5では識別コード
に対応するISAMファイル管理情報を取得し、ステッ
プo6で媒体種類を判別する。ステップo7で、記憶媒
体が揮発性でも取外し可能でもなく、不揮発性であると
判断されるときのみ、ステップo8で書込み命令のログ
141に保存された命令の再実行を行う。次のステップ
o9では、読取りポインタを1つ進める。ステップo1
0では、さらに書込み命令のログ141が存在するか否
かを判断する。存在するときは、ステップo3に戻り、
存在しないときはステップo11で処理を終了する。
【0099】本実施例のような記憶媒体に関連する区別
は、上述の各実施例でも有効であり、特に第6〜第9実
施例で併用することが好ましい。
【0100】図23は、本発明の第11実施例として、
ISAMファイルアクセス管理プロセスの動作を示す。
ステップp1からステップp3までは、第1実施例のス
テップa1からステップa3までにそれぞれ対応して同
様の動作を行う。ステップp4で新規レコードの取得命
令と判断されるときには、ステップp5で取得するレコ
ード番号を事前に取得する。この方法は第7実施例と同
様である。ステップp6では、ISAMファイルアクセ
ス管理プロセスのデータ部135内のISAMファイル
管理情報152について、最近取得したレコード番号を
更新する。ステップp7では、ISAMファイル管理情
報152を不揮発性記憶装置104に保存する。また、
新規レコード取得命令もステップp8で書込み命令のロ
グ141に保存する。最後にステップp9で実際に新規
レコード取得命令を実行する。
【0101】ステップp4でその他の命令と判断される
ときは、ステップp10でその命令を実行する。ステッ
プp9またはステップp10の実行が終了すると、ステ
ップp11で動作を終了する。
【0102】図24は、第11実施例に従う復旧処理の
動作を示す。ステップq1から動作を開始し、ステップ
q2で不揮発性記憶装置104からISAMファイル管
理情報140を取得する。この中から、ステップq3で
最近取得したレコード番号を取得する。ステップq4で
は、レコード番号の有無を確認し、有る場合はステップ
q5でISAMファイル管理情報内の新規レコードフラ
グをONにセットする。ステップq6では、このISA
Mファイル管理情報内のファイル識別コードを取得す
る。
【0103】次にステップq7で、書込み命令のログ1
41に対する読取りポインタを先頭にセットし、ステッ
プq8で書込み命令のログ141を読み、ステップq9
で書込み命令であるか否かを判断する。書込み命令であ
れば、ステップq10で識別コードが一致するか否かを
判断する。一致すれば、ステップq11でレコード番号
が一致するか否かを判断する。ステップq9からステッ
プq11までの条件が満足されれば、ステップq12で
新規レコード取得フラグをリセットする。
【0104】ステップq4でレコード番号が存在しない
と確認されたとき、ステップq9からステップq11ま
での条件が満たされないとき、またはステップq12が
終了したとき、ステップq13で書込み命令のログ14
1に保存された命令を再実行する。ステップq14で
は、書込み命令のログ141の読取りポインタを1つ進
める。ステップq15では、書込み命令のログ141が
なお存在しているか否かを判断し、存在していればステ
ップq8に戻る。
【0105】ステップq15でログが存在しないと判断
されるときは、ステップq16に移り、新規レコード取
得フラグをチェックする。このフラグがONであれば、
ステップq17で取得レコードの削除処理を行う。最後
にステップq18で処理を終了する。
【0106】図25は、本発明の第12実施例として、
ISAMファイルアクセス管理プロセスの動作を示す。
ステップr1からステップr3までは、第1実施例のス
テップa1からステップa3までにそれぞれ対応して同
様の動作を行う。ステップr4で新規レコードの取得命
令と判断されるときには、ステップr5でISAMファ
イル管理情報内の新規レコード書込みフラグをチェック
し、OFFであればステップr6で新規レコード書込み
フラグをONにセットする。次に新規に取得されるレコ
ード番号を事前に取得して不揮発性記憶装置104に保
存する。その後、ステップr8で新規レコードを実際に
取得する。
【0107】ステップr5で新規レコード書込みフラグ
がONであるときには、新規レコードを取得した後で、
データの書込みを行わずに新たに新規レコードの取得命
令が発生したことになる。このためステップr9では、
エラーをアプリケーションプログラムに返し、ステップ
r10でエラー終了となる。
【0108】ステップr4で、データ書込み命令と判断
されるときは、ステップr11で対象となるファイルの
ISAMファイル管理情報の取得を行う。ステップr1
2では、そのファイルの新規取得レコード番号と命令の
書込みレコード番号とが一致するか否かを判断する。一
致するときは、ステップr13でデータ書込みフラグを
リセットする。不一致のとき、あるいはステップr13
が終了したとき、ステップr14でデータ書込み命令を
実行する。
【0109】ステップr4でその他の命令と判断される
ときは、ステップr15でその命令を実行する。最後
に、ステップr16で動作を終了する。
【0110】第11実施例または第12実施例によれば
新規に取得されたレコードに対して、データの書込みが
行われているもののみを確実に復旧することができる。
【0111】
【発明の効果】以上のように本発明によれば、外部記憶
装置に展開されるISAMのインデックスファイルのよ
うな複雑な木構造を持つデータに対するキーの変更は木
構造の変化をも伴って実行される。その処理の途中で障
害が発生すると、インデックスファイルが破壊され、デ
ータファイルを有効に利用することができなくなるけれ
ども、変更処理を行う前の管理状態が保存手段に保存さ
れているので、復旧手段は保存された管理状態を用いて
変更前の状態に復旧させることができる。これによって
インデックスファイルに対する追加や削除の処理の途中
で障害が発生しても、処理前の状態に容易に復旧するこ
とができ、しかも保存する情報は少なくてよいので、保
存手段の記憶容量を小さくすることができ、保存のため
の処理や復旧のための処理に要する時間も短くすること
ができる。
【0112】また本発明によれば、オープンしたISA
Mファイル全体に対する復旧用管理情報を保存手段に保
存する必要はなく、書込み命令が実行されたファイルに
対する復旧用管理情報のみを最初の書込み情報の実行時
に保存すればよい。これによって保存手段の記憶容量を
減らすことができ、バッテリバックアップなどが必要で
コストを上昇させる保存手段の容量を減少させてコスト
低減を図ることができる。
【0113】また本発明によれば、新規にファイル生成
を行った場合に、ファイルが存在すべき外部記憶装置に
オペレーティングシステムやISAMファイルの管理情
報をクローズ命令の実行前に強制的に書込むことができ
る。これによって、クローズ命令が実行される前に障害
が生じたとしても、復旧手段によって容易にファイルの
内容を復旧して、データの消失を防ぐことができる。
【0114】また本発明によれば、ファイルに対するア
クセス命令を時系列的に保存し、クローズ命令が存在す
れば、対象となるファイルに対する以前のアクセス命令
を削除する。クローズ命令が実行されると、データやフ
ァイル管理情報は不揮発性の外部記憶装置に実際に書込
まれる。したがってクローズ命令の対象となったファイ
ルに対する事前のアクセス命令は、再度実行する必要は
ない。低速な外部記憶装置に不必要なアクセス命令を繰
返す必要がないので、復旧処理に要する時間が短縮され
る。
【0115】また、ファイルの識別コードは、一旦ファ
イルをクローズすれば異なるファイルに対して再び使用
することができる。しかしながら、復旧処理で、異なる
ファイルに対するアクセス命令を再度実行すると、障害
発生時点でオープンされていたファイルが復旧の対象と
なるので、異なるファイルに対してアクセス命令が再度
実行され、不所望なファイルの変更が行われるおそれが
ある。一旦クローズ命令が実行されたファイルに関連す
るアクセス命令を除去して復旧処理を行えば、異なるフ
ァイルに対して復旧処理を行ってしまうことを防ぐこと
ができる。
【0116】また本発明によれば、復旧用管理情報を保
存手段へ保存している処理の最中に障害が発生しても、
復旧用管理情報が保存完了して有効か、保存未完了で無
効かを容易に判別することができる。保存完了を表す情
報が付された正常な復旧用管理情報を使用して復旧処理
を行うので、障害を起こすことなく復旧を行うことがで
きる。
【0117】また本発明によれば、新規のレコードを取
得する命令が実施され、命令の実施中に発生するファイ
ルへの書込みに対して、どのレコード番号が対象となる
かを事前に知ることができる。これによって新規レコー
ドの取得中に障害が発生して、処理が停止しても、対象
となる新規レコード番号が明らかになっているので、容
易に復旧処理を実行し、ISAMファイルの円滑な利用
を行うことができる。
【0118】また本発明によれば、復旧用管理情報が、
正常な動作中に予め定める時間間隔で定期的に保存手段
に保存される。障害発生後は、保存された復旧用管理情
報を用いて復旧処理を行うので、障害発生時点に近い状
態に復旧させることができ、ISAMファイルの円滑な
利用を図ることができる。
【0119】さらに本発明によれば、障害発生後の復旧
処理で、データファイルかインデックスファイルかを区
別するので、構造の異なる2種類のファイルを有効に復
旧することができる。
【0120】さらにまた本発明によれば、揮発性または
取外し可能な記憶媒体に存在したファイルについては、
障害発生後の復旧処理を行わないので、他の部分の復旧
処理に悪影響を与えることなく迅速に復旧処理を行うこ
とができる。これによってISAMファイルの利用を円
滑に行うことができる。
【0121】また本発明によれば、新規レコードの確保
とデータ書込みの間で障害が発生しても、障害発生後の
復旧処理で、データ書込みを完了していないレコードに
のみデータ書込みが行われる。確保されたレコードのみ
復旧が行われるので、障害発生後にファイルの管理情報
が不一致になることを防ぐことができる。
【図面の簡単な説明】
【図1】本発明の一実施例によるシステム構成を示すブ
ロック図である。
【図2】図1の主記憶装置103および不揮発性記憶装
置104のメモリマップである。
【図3】図2のISAMファイルアクセス管理プロセス
のデータ部135内のメモリマップである。
【図4】本発明の実施例の処理の対象となるインデック
スファイルの構造およびイメージを示す模式図である。
【図5】図4のインデックスファイルにキーの追加処理
を行った後で、インデックスファイルの構造およびイメ
ージを示す模式図である。
【図6】本発明の第1実施例に基づくインデックスファ
イルのノードにキーを追加する処理を行う動作を示すフ
ローチャートである。
【図7】図6のキー追加処理実行中に停電が発生した場
合の復旧処理のフローチャートである。
【図8】図4のインデックスファイルに対してキーの削
除を行った後で、インデックスファイルの構造およびイ
メージを示す模式図である。
【図9】本発明の第2実施例に基づく図8のキー削除処
理の動作を示すフローチャートである。
【図10】図9のキー削除処理中の停電発生時の復旧処
理を示すフローチャートである。
【図11】本発明の第3実施例の動作を示すフローチャ
ートである。
【図12】本発明の第4実施例の動作を示すフローチャ
ートである。
【図13】本発明の第5実施例における通常動作中のフ
ローチャートである。
【図14】本発明の第5実施例の動作中に障害が生じた
ときの復旧処理を示すフローチャートである。
【図15】本発明の第6実施例の通常動作を示すフロー
チャートである。
【図16】本発明の第6実施例の動作中に障害が発生し
た場合の復旧処理を示すフローチャートである。
【図17】本発明の第7実施例の動作を示すフローチャ
ートである。
【図18】本発明の第7実施例における削除レコードの
管理方法を示す模式図である。
【図19】本発明の第8実施例の動作を示すフローチャ
ートである。
【図20】本発明の第9実施例の動作を示すフローチャ
ートである。
【図21】本発明の第10実施例におけるファイル生成
時の動作を示すフローチャートである。
【図22】本発明の第10実施例の復旧処理時の動作を
示すフローチャートである。
【図23】本発明の第11実施例の動作を示すフローチ
ャートである。
【図24】本発明の第11実施例の復旧処理時の動作を
示すフローチャートである。
【図25】本発明の第12実施例の動作を示すフローチ
ャートである。
【図26】従来からのBツリー構造のインデックスファ
イルを示す模式図である。
【図27】図26のBツリー構造におけるキー値とノー
ドとの関係を示す模式図である。
【図28】Bツリーを拡張した構造のインデックスファ
イルを示す模式図である。
【図29】リーフノードに空き領域がある場合にキーを
追加する方法を示す模式図である。
【図30】リーフノードに空き領域がない場合に隣のノ
ードにキーを追加する方法を示す模式図である。
【図31】リーフノードに空き領域がない場合にノード
を分割して新規のノードを作る方法を示す模式図であ
る。
【図32】ファイル上におけるBツリーの実現方法を示
す模式図である。
【図33】従来からの無停電電源装置による停電保護の
ための電気的構成を示すブロック図である。
【図34】従来からのログを用いた復旧処理のための構
成を簡略化して示す模式図である。
【符号の説明】
101 中央処理装置 102 外部記憶装置 103 主記憶装置 104 不揮発性記憶装置 105 障害検出装置 135 ISAMファイルアクセス管理プロセスのデー
タ部 136 ISAMファイルアクセス管理プロセスのコー
ド部 140 ISAMファイル管理情報 141 書込み命令のログ 142 ノードのイメージ 143 ノード管理情報 161,181 ルートノード 162,163,182,183 中間ノード 164〜169,180〜189,200 リーフノー

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 先頭から順次レコードが格納される順編
    成データファイルを不揮発性の外部記憶装置に展開し、
    各レコードに対応するキーと、各レコードの格納位置を
    表すデータとを組合わせたインデックスファイルを用い
    て順編成データファイルを高速に検索することができる
    ISAMファイル情報処理装置において、 インデックスファイルをBツリー構造として管理する管
    理手段と、 管理手段によってインデックスファイルが変更されると
    き、変更前のBツリー構造の管理状態を保存する保存手
    段と、 管理手段によるインデックスファイルの変更処理中に中
    断が生じたとき、保存手段の保存内容を用いてインデッ
    クスファイルを変更前の管理状態に復旧する復旧手段と
    を含むことを特徴とするISAMファイル情報処理装
    置。
  2. 【請求項2】 先頭から順次レコードが格納される順編
    成データファイルを不揮発性の外部記憶装置に展開し、
    各レコードに対応するキーと、各レコードの格納位置を
    表すデータとを組合わせたインデックスファイルを用い
    て順編成データファイルを高速に検索することができる
    ISAMファイル情報処理装置において、 障害発生後の復旧処理で使用する復旧用管理情報を保存
    するための保存手段と、 ファイルを使用可能とするオープン命令の実行後に、フ
    ァイル中のレコードへの書込み命令が最初に発行された
    ときにのみ、保存手段に復旧用管理情報を保存させ、障
    害発生後には保存された復旧用管理情報を使用して復旧
    処理を行う復旧手段とを含むことを特徴とするISAM
    ファイル情報処理装置。
  3. 【請求項3】 先頭から順次レコードが格納される順編
    成データファイルを不揮発性の外部記憶装置に展開し、
    各レコードに対応するキーと、各レコードの格納位置を
    表すデータとを組合わせたインデックスファイルを用い
    て順編成データファイルを高速に検索することができる
    ISAMファイル情報処理装置において、 ファイルを新規に生成する際に、障害発生後の復旧処理
    で必要なISAMファイル管理情報を生成する生成手段
    と、 ファイルを新規に生成する場合に、生成したファイルを
    一旦クローズして、ISAMファイル管理情報およびオ
    ペレーティングシステムで管理されるファイル情報を外
    部記憶装置に強制的に書込んだ後で、ファイルをオープ
    ンし、障害発生時には外部記憶装置に書込んだISAM
    ファイル情報およびオペレーティングシステムで管理さ
    れるファイル情報を使用して復旧処理を行う復旧手段と
    を含むことを特徴とするISAMファイル情報処理装
    置。
  4. 【請求項4】 先頭から順次レコードが格納される順編
    成データファイルを不揮発性の外部記憶装置に展開し、
    各レコードに対応するキーと、各レコードの格納位置を
    表すデータとを組合わせたインデックスファイルを用い
    て順編成データファイルを高速に検索することができる
    ISAMファイル情報処理装置において、 ファイルに対するアクセス命令を時系列的に保存する保
    存手段と、 障害発生後に保存手段の保存内容を読出し、保存内容中
    にクローズ命令が存在するときクローズ命令の対象とな
    るファイルに対するクローズ命令以前に出現した命令を
    無効とし、残余の保存内容に基づいてファイルの障害復
    旧を行う復旧手段とを含むことを特徴とするISAMフ
    ァイル情報処理装置。
  5. 【請求項5】 先頭から順次レコードが格納される順編
    成データファイルを外部記憶装置に展開し、各レコード
    に対応するキーと、各レコードの格納位置を表すデータ
    とを組合わせたインデックスファイルを用いて順編成デ
    ータファイルを高速に検索することができるISAMフ
    ァイル情報処理装置において、 ISAMファイルに対する処理情報のうち、障害発生後
    の復旧処理に必要な復旧用管理情報を保存するための保
    存手段と、 保存手段への復旧用管理情報の保存時に、保存未完了を
    表す情報を付して処理を開始し、保存完了時に保存未完
    了を表す情報を保存完了を表す情報に変更する管理手段
    と、 障害発生後に、保存手段に保存され、保存完了を表す情
    報が付された復旧用管理情報を使用して復旧処理を行う
    復旧手段とを含むことを特徴とするISAMファイル情
    報処理装置。
  6. 【請求項6】 先頭から順次レコードが格納される順編
    成データファイルを外部記憶装置に展開し、各レコード
    に対応するキーと、各レコードの格納位置を表すデータ
    とを組合わせたインデックスファイルを用いて順編成デ
    ータファイルを高速に検索することができるISAMフ
    ァイル情報処理装置において、 データファイルに新規のレコードを取得してアクセスす
    る前に、次に取得予定のレコード番号を読出す管理手段
    と、 管理手段の読出したレコード番号を保存する保存手段
    と、 障害発生後に、保存手段に保存されたレコード番号を使
    用して復旧処理を行う復旧手段とを含むことを特徴とす
    るISAMファイル情報処理装置。
  7. 【請求項7】 先頭から順次レコードが格納される順編
    成データファイルを外部記憶装置に展開し、各レコード
    に対応するキーと、各レコードの格納位置を表すデータ
    とを組合わせたインデックスファイルを用いて順編成デ
    ータファイルを高速に検索することができるISAMフ
    ァイル情報処理装置において、 ISAMファイルに対する処理情報のうち、障害発生後
    の復旧処理に必要な復旧用管理情報を保存するための保
    存手段と、 復旧用管理情報を、正常な動作中の予め定める時点毎に
    保存手段に保存する管理手段と、 障害発生後、保存手段に保存された復旧用管理情報を使
    用して復旧処理を行う復旧手段とを含むことを特徴とす
    るISAMファイル情報処理装置。
  8. 【請求項8】 前記管理手段は、ISAMファイルでの
    データファイルとインデックスファイルとの区別をつけ
    るための情報を前記保存手段に追加して保存し、 前記復旧手段は、ISAMファイルでのデータファイル
    とインデックスファイルとを区別して復旧処理を行うこ
    とを特徴とする請求項5〜7のいずれかに記載のISA
    Mファイル情報処理装置。
  9. 【請求項9】 前記管理手段は、ファイルが存在する記
    憶媒体が揮発性または取外し可能であるとき、復旧処理
    の対象から除外することを特徴とする請求項5〜8のい
    ずれかに記載のISAMファイル情報処理装置。
  10. 【請求項10】 先頭から順次レコードが格納される順
    編成データファイルを不揮発性の外部記憶装置に展開
    し、各レコードに対応するキーと、各レコードの格納位
    置を表すデータとを組合わせたインデックスファイルを
    用いて順編成データファイルを高速に検索することがで
    きるISAMファイル情報処理装置において、データフ
    ァイルに新規なレコードを追加する際、データの書込み
    前であることを表す情報を付してレコードを確保する確
    保手段と、 確保手段によって確保されたレコードに、データの書込
    み前であることを表す情報が付されているとき、データ
    の書込みを行う管理手段とを含むことを特徴とするIS
    AMファイル情報処理装置。
JP6340090A 1994-12-29 1994-12-29 Isamファイル情報処理装置 Pending JPH08185273A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6340090A JPH08185273A (ja) 1994-12-29 1994-12-29 Isamファイル情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6340090A JPH08185273A (ja) 1994-12-29 1994-12-29 Isamファイル情報処理装置

Publications (1)

Publication Number Publication Date
JPH08185273A true JPH08185273A (ja) 1996-07-16

Family

ID=18333624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6340090A Pending JPH08185273A (ja) 1994-12-29 1994-12-29 Isamファイル情報処理装置

Country Status (1)

Country Link
JP (1) JPH08185273A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001327742A (ja) * 2000-05-25 2001-11-27 Sansei R & D:Kk 遊技機
JP2011165000A (ja) * 2010-02-10 2011-08-25 Nippon Telegr & Teleph Corp <Ntt> データ蓄積装置及び方法及びプログラム及びデータ検索装置及び方法及びプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62192826A (ja) * 1986-02-20 1987-08-24 Nec Corp ファイル書込み方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62192826A (ja) * 1986-02-20 1987-08-24 Nec Corp ファイル書込み方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001327742A (ja) * 2000-05-25 2001-11-27 Sansei R & D:Kk 遊技機
JP2011165000A (ja) * 2010-02-10 2011-08-25 Nippon Telegr & Teleph Corp <Ntt> データ蓄積装置及び方法及びプログラム及びデータ検索装置及び方法及びプログラム

Similar Documents

Publication Publication Date Title
Verhofstad Recovery techniques for database systems
US6898688B2 (en) Data management appliance
EP1461700B1 (en) Appliance for management of data replication
US7340645B1 (en) Data management with virtual recovery mapping and backward moves
US5724581A (en) Data base management system for recovering from an abnormal condition
US10642696B2 (en) Copying compressed pages without uncompressing the compressed pages
US7107294B2 (en) Method and apparatus for interrupting updates to a database to provide read-only access
JPH04248623A (ja) ソースデータのためのバージョン管理方法および装置
US20030131253A1 (en) Data management appliance
US20190095286A1 (en) Method of Detecting Source Change for File Level Incremental Backup
US20050262033A1 (en) Data recording apparatus, data recording method, program for implementing the method, and program recording medium
JPH08185273A (ja) Isamファイル情報処理装置
JP3957464B2 (ja) データ更新装置
JPH08314784A (ja) ファイル管理装置
JP2822869B2 (ja) ライブラリファイル管理装置
JPH07160563A (ja) オンラインバックアップ方式
JP2658265B2 (ja) 障害回復方法
JPH0991182A (ja) データベース管理方法及び装置
JP3178671B2 (ja) ファイルシステム及びそのファイル復旧方法
JP2004013228A (ja) データベースシステム及びその整合制御方法
JP2906787B2 (ja) ファイル圧縮方法およびファイル復旧方法
KR100302899B1 (ko) 운용중인 데이터베이스에서 릴레이션 데이터를 온라인으로 로딩하는 방법
JPH0447428A (ja) ファイル更新装置
JPS6336375A (ja) デ−タフアイル装置におけるフアイル管理方法
JPS63311451A (ja) 再書き込み不可な低速アクセス媒体のアクセス方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040330