JP3042427B2 - データファイル管理装置及びデータファイル管理方法 - Google Patents

データファイル管理装置及びデータファイル管理方法

Info

Publication number
JP3042427B2
JP3042427B2 JP8315275A JP31527596A JP3042427B2 JP 3042427 B2 JP3042427 B2 JP 3042427B2 JP 8315275 A JP8315275 A JP 8315275A JP 31527596 A JP31527596 A JP 31527596A JP 3042427 B2 JP3042427 B2 JP 3042427B2
Authority
JP
Japan
Prior art keywords
record
data file
transaction
record position
file management
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 - Lifetime
Application number
JP8315275A
Other languages
English (en)
Other versions
JPH10161918A (ja
Inventor
一郎 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP8315275A priority Critical patent/JP3042427B2/ja
Publication of JPH10161918A publication Critical patent/JPH10161918A/ja
Application granted granted Critical
Publication of JP3042427B2 publication Critical patent/JP3042427B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一のデータファイ
ルを複数のプログラムが同時に使用する電子計算機シス
テムにおいて、そのレコード操作の排他制御を行うため
のデータファイル管理装置及びデータファイル管理方法
に関する。
【0002】
【従来の技術】複数のプログラムが一つのデータファイ
ルを同時に使用する場合には、それぞれのプログラムが
勝手にファイル内のレコード操作を行うと、データファ
イル内のレコードが破壊されてしまう可能性がある。そ
こで、レコードが簡単に破壊されないよう堅牢性をもた
せ、ファイルを操作するプログラムの間で一つのプログ
ラムがレコードを操作しているときは、他のプログラム
からはそのレコードを操作出来ないような排他制御をす
る必要がある。
【0003】従来、この種の技術として、特開平1−2
41639号公報に示すものが知られており、同公報に
おいては、データファイル内の各レコードに対してレコ
ード識別子を割り振るとともに、使用中レコードのレコ
ード識別子を記憶し、このレコード識別子にもとづいて
レコードに対するアクセスの排他制御を行っている。
【0004】
【発明が解決しようとする課題】上述した従来のデータ
ファイル管理装置においては、次のような課題があっ
た。データファイル中にレコード識別子という制御用の
情報が混入することになり、かかるレコード識別子を用
いないシステムとの間ではデータファイルの互換性が皆
無であるし、また、レコード識別子を用いるシステム間
においてもレコード識別子の生成アーキテクチャーなど
の制御体系を統一しなければデータファイルの互換性は
図れない。
【0005】本発明は、上記課題をかんがみてなされた
もので、堅牢性を維持し、かつシステム間でのデータフ
ァイルの互換性を低下させることなく、所定のレコード
に対して同時に複数のトランザクションが発生しない限
り、複数のトランザクションが独立してレコード操作す
ることが可能なデータファイル管理装置及びデータファ
イル管理方法の提供を目的とする。
【0006】
【課題を解決するための手段】上記目的を達成するた
め、請求項1にかかる発明は、特別な識別子を持たない
複数のレコードからなるデータファイルを複数のプログ
ラムで共通に使用するためのファイル管理装置であっ
て、上記データファイル中の所定レコードに対するト
ランザクション発生時に、この所定のレコードのレコー
ド位置情報を保持するとともに、上記データファイル中
のレコード位置が変更されたときのレコード位置変更情
報を保持するレコード位置記憶手段と、上記データファ
イルに対する複数のトランザクションのうち、上記レコ
ード位置情報とレコード位置変更情報とを用いて、上記
所定のデータが格納されることとなった上記データファ
イル上の実際のレコード格納位置を算出するレコード位
置算出手段を具備し、このレコード位置算出手段の算出
結果にもとづいて、上記データファイルに対する複数の
トランザクションのうち、上記物理的に同一のレコード
に対するトランザクションを検出し、各々のトランザク
ションについて排他制御する排他制御手段とを備えた構
成としてある。
【0007】すなわち、特別な識別子を持たない複数の
レコードからなるデータファイル中の所定レコードに対
してトランザクションが発生すると、上記修正レコード
記憶手段は、同レコードのレコード位置情報を保持す
る。ここにおけるレコード位置情報とは、上記トランザ
クション発生時のデータファイル上におけるレコードの
絶対的な位置を表すものであり、例えば、先頭レコード
から数えて何番目に相当するレコードであるかというこ
とを表す。
【0008】この後、レコードの削除、挿入によりレコ
ード位置に変更があると、同修正レコード記憶手段は、
その変更内容を表すレコード位置変更情報を保持する。
これについては、例えば、レコードの削除が行われたと
き、先頭から数えて何番目のレコードが削除されたか、
あるいはレコードの挿入が行われたとき、先頭から数え
て何番目の位置に挿入されたかということに関する情報
を保持する。
【0009】 上記排他制御手段は、データファイルに対
する複数のトランザクションのうち、物理的に同一のレ
コードに対するトランザクションを上記レコード位置情
報とレコード位置変更情報にもとづいて検出し、各々の
トランザクションについて排他制御する。
【0010】 ここにいう物理的に同一のレコードとは、
次のようなことを意味する。例えば、図1(a)に示す
ように第一のトランザクションがデータファイル中の先
頭レコードから数えて「10」番目のレコード(REC
10)を更新するものであり、この第一のトランザクシ
ョンが非常に長く、図1(b)に示すように、この間に
第二のトランザクションが発生して先頭レコードから
「2」番目のレコード(REC2)を削除した後、図1
(c)に示すように、第三のトランザクションが先頭レ
コードから「9」番目のレコード(REC9)にアクセ
スする場合を考える。
【0011】 この場合、第三のトランザクションにより
アクセスされるレコードは、先頭レコードから数えて
「9」番目であるが、第二のトランザクションが先頭レ
コードから「2」番目のレコードを削除しているため、
第一のトランザクションが発生した時点でのレコード位
置に換算すると「10」番目のレコードに相当する。従
って、表記上は異なるレコードであっても、第一のトラ
ンザクションによりアクセスされるレコードは、第三の
トランザクションにアクセスされるレコードと実質的に
同一となり、この意味で物理的に同一のレコードとい
う。
【0012】 ところで、この例の如く、物理的に同一の
レコードに対して同時に複数のトランザクションを受け
付けてしまうと、レコードの破壊等の弊害が生じるた
め、一のレコードについて同時に複数のトランザクショ
ンを受け付けないように排他制御する必要がある。
【0013】 ここにいう排他制御とは、必ずしも一のレ
コードに対して同時に存在する複数のトランザクション
のうち、最先のトランザクションのみを受け付けること
を意味するものではない。例えば、トランザクションに
優先度という制御情報を付与するとともに、トランザク
ションを一定期間だけ所定記憶領域にプールして、優先
度の高いトランザクションから処理するようにすれば、
必ずしも最先のトランザクションを受け付けるとは限ら
ない。
【0014】 また、上述した例では、第三のトランザク
ションによりアクセスされるレコードの位置を、同トラ
ンザクションに対応する上記レコード位置情報と第二の
トランザクションによるレコード位置変更情報とを用い
て第一のトランザクション発生時のレコード位置に換算
し、換算後のレコード位置にもとづいて物理的に同一の
レコードか否かという判断をしている。しかしながら、
物理的に同一のレコードか否かの判断をするという意味
では、必ずしもこの構成にとらわれることはなく、むし
ろ、上述した例とは逆で、第一のトランザクションに対
応するレコード位置を、第二のトランザクション終了時
におけるデータファイル上のレコード位置に換算した方
が都合が良い。
【0015】 なぜなら、前者においては、システム開始
時からの全てのレコード位置変更情報を用いてレコード
位置の換算処理を行わなければならず、レコードの削除
や挿入が頻繁に行われるシステムには適さない。 これに
対して、 後者においては、レコード位置に変更があった
時点でレコード位置の換算処理がおこなわれるため、当
該換算処理が終了した後は、もはやレコード位置変更情
報を保持しておく必要はなく、同換算処理の負担も軽減
される。
【0016】 具体的には、 上記レコード位置算出手段
は、第一のトランザクション発生時のレコード位置情報
である先頭から「10」番目のレコードということと、
第二のトランザクションにより先頭から「2」番目のレ
コードが削除されたというレコード位置変更情報とを用
いて、第三のトランザクション発生時には先頭から
「9」番目のレコードに位置するという真のレコード位
置を算出する。そして、このレコード位置にもとづいて
第三のトランザクションが第一のトランザクションと物
理的に同一のレコードに対するトランザクションである
ことを検出し、第三のトランザクションを受け付けない
ように排他制御を行う。
【0017】 一方、レコード位置変更情報を保持する具
体的構成としては、ハードディスク上の所定領域に保持
することも可能であるし、メモリ上の所定領域に保持す
ることも可能であり、少なくとも一定期間かかる情報を
保持できるものであれば、あらゆる記憶媒体を適用可能
である。
【0018】 また、記憶媒体を用いてレコード位置変更
情報を保持するにしても、種々の保持態様が考えられ
る。例えば、トランザクションを受け付ける前に、予め
所定容量の記憶領域を準備しておいても良いし、トラン
ザクションが発生する度に所定容量の記憶領域を確保す
るようにしても良い。しかしながら、記憶媒体について
は、アクセススピードを考えるとハードディスクよりも
メモリの方が断然有利であり、情報の保持態様として
は、トランザクションが発生する度に所定の記憶領域を
確保するようにした方がリソースを無駄に使うことがな
いため効率が良い。
【0019】 そこで、請求項2にかかる発明は、上記請
求項1に記載のデータファイル管理装置において、上記
レコード位置記憶手段は、一のトランザクションの発生
毎に所定のメモリ空間を確保して各トランザクションに
よるレコード位置変更情報を記憶せしめるレコード位置
変更情報記憶手段を備えた構成としてある。すなわち、
トランザクションの発生毎に所定のメモリ空間を確保
し、対応するトランザクションによるレコード変更情報
が同メモリ空間に記憶される。もちろん、レコード位置
が変更されるのは、レコードの削除、あるいは挿入が行
われるときであり、これ以外のレコードの更新等ではレ
コード位置は変更されず、レコード位置変更情報も存在
しないことはいうまでもない。
【0020】さらに、請求項にかかる発明は、特別な
識別子を持たない複数のレコードからなるデータファイ
ルを複数のプログラムで共通に使用するにあたり、上記
データファイル中の所定レコードに対するトランザクシ
ョン発生時に同レコードのレコード位置情報を保持する
とともに、同データファイル中のレコード位置が変更さ
れたときのレコード位置変更情報を保持し、上記レコー
ド位置情報とレコード位置変更情報とを用いて、上記所
定のデータが格納されることとなった上記データファイ
ル上の実際のレコード格納位置を算出し、この算出結果
にもとづいて上記データファイルに対する複数のトラン
ザクションのうち、上記物理的に同一のレコードに対す
るトランザクションを検出し、各々のトランザクション
について排他制御する構成としてある。すなわち、必ず
しも実体のある装置に限らず、その方法としても有効で
あることに相違はない。
【0021】
【発明の実施の形態】以下、図面にもとづいて本発明の
実施形態を説明する。図2は、本発明の一実施形態にか
かるデータファイル管理装置を適用したいわゆるクラ
イアント−サーバ型のシステムをブロック図により示し
ている。同図において、クライアント10〜12とサー
バ20との間には、所定のネットワークが構築されてお
り、クライアント10〜12は、それぞれサーバ20の
ハードディスク30に格納された特別な識別子を有さな
い複数のレコードからなるデータファイル40内のレコ
ードを、同ネットワーク経由で操作するプログラム10
a〜12aを有している。これらのプログラム10a〜
12aは、あくまでもレコード操作をメッセージとして
送出してその結果を受信するものであり、各々は完全に
独立して動作し、たとえ同時にレコード操作を行ってい
るとしても、互いに何れのレコードを操作しているかに
ついては全く関知しない。
【0022】ここにいうレコード操作メッセージとは、
サーバ20がこれを受信して操作対象レコードのデータ
ファイル40におけるレコード位置情報と、同レコード
に対してどのような操作を行うかというレコード操作内
容と、当該レコード操作メッセージの送信元に関する情
報を取得することができれば、メッセージフォーマット
等は特に限定されるものではない。ただし、本実施形態
においては、同レコード位置情報は、先頭レコードから
数えて何番目のレコードに位置するかということを表
し、同レコード操作内容は、「R」(レコードの参
照)、「U」(レコードの更新)、「I」(レコードの
挿入)、「D」(レコードの削除)の四文字で表し、同
レコード操作メッセージの送信元に関する情報は、送信
元クライアントのネットワークアドレスを表すこととす
る。
【0023】ここにおいて、同レコード操作内容が、
「I」もしくは「D」の場合、データファイル40内の
レコード位置が変更されることになる。例えば、先頭レ
コードから「100」番目の位置にレコードを挿入すれ
ば、それ以降のレコードについてレコード位置は「1」
ずつ加算されるし、先頭レコードから「100」番目の
レコードを削除すれば、それ以降のレコードについてレ
コード位置は「1」ずつ減算される。この意味で、レコ
ード操作メッセージが上記レコード位置変更情報に相当
する。
【0024】一方、サーバ20は、完全なマルチタスク
環境を備えており、一のプログラム(モジュール)で同
時に複数のタスクをハンドルすることが可能な構成とし
てある。そして、サーバ起動時に複数のモジュール群か
ら構成されるデータファイル管理プログラム50がCP
U60のもとでRAM70にロードされて所定のモジュ
ールが常駐し、後述するようにしてトランザクションの
排他制御を行う。この意味で、データファイル管理プロ
グラム50と、CPU60と、RAM70とがデータフ
ァイル管理装置80を構成する。
【0025】本実施形態においては、データファイル管
理装置80をサーバ20のハードウェア及びソフトウェ
アとして一体化しているが、もちろん、別体として設け
ることも可能である。また、必ずしもクライアント−サ
ーバ型のシステムにとらわれることはなく、あらゆる電
子計算機システムに適用可能であることはいうまでもな
い。図3は、RAM70にロードされたデータファイル
管理プログラム50の入出力を示すブロック図である。
なお、同図において、プログラムインタフェース51
と、使用レコード判定モジュール54と、レコード位置
修正モジュール55がメモリ常駐モジュールである。
【0026】プログラムインタフェース51は、不定期
に入力されるプログラム10a〜12aからのレコード
操作メッセージを受信して図示しないメッセージバッフ
ァにキューイングし、いわゆるFIFO(First
In First Out)方式で、最先のレコード操
作メッセージから順に一つずつ取り出すとともに、複数
のメッセージから所定のメッセージを識別可能なメッセ
ージIDを当該レコード操作メッセージに付して新たな
レコード操作メッセージを生成し、まず、後述する使用
レコード判定モジュール54へ出力する。
【0027】ここでいうメッセージIDとは、「1」か
ら始まる正の整数を意味し、取り出したレコード操作メ
ッセージに対してシーケンシャルに付与される。むろ
ん、必ずしもこの構成にとらわれることはなく、少なく
とも所定のレコード操作メッセージを一意に識別可能で
あれば適宜変更可能である。この後、後述するように使
用レコード判定モジュール54にてレコード操作の可否
が判定され、その判定結果がプログラムインタフェース
51に返される。
【0028】ここにおいて、プログラムインタフェース
51がレコード操作可能である旨の判定結果を受け取っ
たときは、上記メッセージIDを付したレコード操作メ
ッセージを後述するレコード操作モジュール52に出力
して次のレコード操作メッセージを上記メッセージバッ
ファから取り出す。一方、プログラムインタフェース5
1がレコード操作不可能である旨の判定結果を受け取っ
たときは、このことをメッセージ送信元のクライアント
に通知して次のレコード操作メッセージを取り出す。
【0029】本実施形態においては、プログラムインタ
フェース51は、レコード操作メッセージをキューイン
グし、最先のメッセージから取り出す構成としてある
が、必ずしもかかる構成にとらわれることはない。例え
ば、レコード操作メッセージに処理優先度という制御情
報を付与するとともに、受信したレコード操作メッセー
ジを所定記憶領域にプールし、処理優先度の高いレコー
ド操作メッセージから取り出すようにしてもかまわな
い。
【0030】上記レコード位置記憶手段は、レコード操
作モジュール52と、使用レコード記憶領域53とから
構成される。レコード操作モジュール52は、上記レコ
ード操作メッセージを受け取ると、所定のメモリ空間に
トランザクションを発生させる。ここにおけるトランザ
クションとは、レコード操作開始から終了までの間、所
定のメモリ空間を確保してデータファイル40内のレコ
ード操作を行うタスクと考えればよく、具体的には、レ
コード操作メッセージを同メモリ空間に保持しつつ、同
レコード操作メッセージ内のレコード位置情報から操作
対象レコードのセクタアドレスを取得し、以降、このセ
クタアドレスを用いてレコード操作内容に応じたレコー
ド操作を行う。つまり、レコード操作モジュール52
は、所定のメモリ空間にレコード位置変更情報を保持す
ることになり、この意味で、レコード操作モジュール5
2が上記レコード位置変更情報記憶手段を構成する。
【0031】そして、レコード操作が終了すると、上記
トランザクションは、レコード操作メッセージの送信元
クライアントに対してレコード操作が終了した旨を通知
するとともに、保持したレコード操作メッセージを後述
するレコード位置修正モジュール55へと出力し、この
後、確保したメモリ空間を開放する。なお、上述した通
りサーバ20は、完全なマルチタスク環境を備えている
ため、同時に複数のトランザクションが存在し得るし、
各トランザクションは独立してレコード操作可能である
ことはいうまでもない。また、同時に存在する複数のト
ランザクションのうち、先に発生したトランザクション
が先に終了するとも限らず、後に発生したトランザクシ
ョンが先に終了することもある。
【0032】このような場合、第一のトランザクション
の継続中に、そのメモリ空間におけるレコード位置情報
と、データファイル40での実際のレコード位置との間
に差異が生じてしまうことも考えられる。しかしなが
ら、各トランザクションは、レコード操作開始時に操作
対象レコードのセクタアドレスを取得し、このセクタア
ドレスにもとづいてレコード操作を行うため、このよう
な差異が生じたとしても、レコード操作上、何ら支障を
きたすものではない。
【0033】使用レコード記憶領域53は、データファ
イル管理プログラム50のメモリロード時に確保される
所定容量のメモリ空間のことであり、後述する使用レコ
ード判定モジュール54により使用中のレコードについ
てのレコード位置情報等が記憶される。
【0034】上記排他制御手段は、使用レコード判定モ
ジュール54と、レコード位置修正モジュール55とか
ら構成される。使用レコード判定モジュール54は、プ
ログラムインタフェース51からレコード操作メッセー
ジが入力されると、同レコードメッセージからレコード
位置情報と、メッセージIDとを取得し、同レコード位
置情報を用いて使用レコード記憶領域53を検索する。
ここにおいて、該当するエントリがなければ、レコード
操作可能と判定してその旨をプログラムインタフェース
51に通知するとともに、使用レコード記憶領域53に
上記レコード位置情報と、これに対応するメッセージI
Dとを対応づけて一つの情報としてエントリする。一
方、該当するエントリが存在するときは、レコード操作
不可能としてその旨をプログラムインタフェース51に
通知する。
【0035】レコード位置修正モジュール55は、レコ
ード操作の終了したトランザクションからレコード操作
メッセージを受け取ると、同レコード操作メッセージか
らメッセージIDを取得し、使用レコード記憶領域53
からこのメッセージIDに該当するエントリを削除す
る。この後、同レコード操作メッセージからレコード操
作内容を取得し、この内容が「I」もしくは「D」のと
き、データファイル40のレコード位置が変更されたこ
とになり、対応するレコード位置情報を取得してどのよ
うにレコード位置が変更されたかを検知する。そして、
使用レコード記憶領域53内の全てのエントリを検索
し、レコード位置に変更があるエントリのレコード位置
情報のみを変更する。
【0036】これについては、例えば、あるトランザク
ションが先頭レコードから「100」番目のレコードを
削除し、このとき使用レコード記憶領域53に、先頭レ
コードから「110」番目及び「90」番目のレコード
のエントリがあるものとする。この場合、レコード位置
修正モジュール55は、これらのエントリにおける先頭
レコードから「110」番目のレコードは、実際のデー
タファイル40においては、先頭レコードから「10
9」番目に位置することを検知し、この「110」とい
う情報を「109」という情報に書き替える。一方、
「90」番目のレコードについては、レコード位置は変
更されないため書き替えられることはない。
【0037】このようにすることにより、レコード位置
に変更があったときでも、使用中のレコードに対するト
ランザクションを確実に排他制御することが可能とな
る。次に、本実施形態の動作を具体的な例をあげて説明
する。いま、プログラム10aがデータファイル40に
おける「110」番目のレコードを更新中に、プログラ
ム11aが「100」番目のレコードを削除した後、プ
ログラム12aが「109」番目のレコードを操作しよ
うとする。ただし、初期状態においては、進行中のトラ
ンザクションは存在せず、使用レコード記憶モジュール
には一切のエントリがないものとする。
【0038】プログラムインタフェース51は、プログ
ラム10aからレコード操作メッセージを受け取ると、
これにメッセージIDを付与して新たなレコード操作メ
ッセージを生成し、使用レコード判定モジュール54へ
出力する。使用レコード判定モジュール54は、受け取
ったレコード操作メッセージを解析して得られたレコー
ド位置情報(「110」)を用いて使用レコード記憶領
域53を検索して該当するエントリがあるか否かを判定
する。この場合、該当するエントリはないので使用レコ
ード記憶領域53には同レコード位置情報と上記メッセ
ージIDとが対応づけられてエントリされる。この後、
使用レコード判定モジュール54は、プログラムインタ
フェース51に対してレコード操作可能である旨を通知
する。
【0039】これを検知したプログラムインタフェース
51は、上記メッセージIDを付与したレコード操作メ
ッセージをレコード操作モジュール52に出力する。レ
コード操作モジュール52は、同レコード操作メッセー
ジを受け取ると、データファイル40に対するトランザ
クションを所定のメモリ空間に発生せしめる。このトラ
ンザクションは、同メモリ空間に同レコード操作メッセ
ージを保持しつつ、この内容にもとづいてトランザクシ
ョン発生時に、操作対象レコードのハードディスク30
におけるセクタアドレスを取得し、このセクタアドレス
にもとづいてレコード操作を行う。
【0040】このとき、プログラムインタフェース51
が、プログラム11aからレコード操作メッセージを受
け取る。プログラムインタフェース51は、プログラム
10aからのレコード操作メッセージを受け取ったとき
と同様にして、プログラム11aからのレコード操作メ
ッセージに対してメッセージIDを付与して新たなレコ
ード操作メッセージを生成し、使用レコード判定モジュ
ール54へ出力する。
【0041】使用レコード判定モジュール54は、同レ
コード操作メッセージにおけるレコード位置情報(「1
00」)を用いて使用レコード記憶領域53を検索して
該当するエントリがないことを確認し、同レコード位置
情報とこれに対応するメッセージIDとを対応づけてエ
ントリした後、レコード操作可能である旨をプログラム
インタフェース51に通知する。これに応じてプログラ
ムインタフェース51は、レコード操作モジュール52
に上記レコード操作メッセージを出力し、上述したよう
にしてトランザクションが発生し、「100」番目のレ
コードが削除されるとともに、レコード操作が終了した
旨をメッセージ送信元のプログラム11aに通知する。
【0042】「100」番目のレコード削除が終了する
と、トランザクションのメモリ空間に保持されたレコー
ド操作メッセージがレコード位置修正モジュール55に
出力され、同メモリ空間が開放される。レコード位置修
正モジュール55は、同レコード操作メッセージを解析
してメッセージIDを取得し、このメッセージIDに該
当するエントリを使用レコード記憶領域53から削除す
る。そして、同レコード操作メッセージにおけるレコー
ド操作内容「D」を検出してレコード位置に変更があっ
たことを検知すると、使用レコード記憶領域53に記憶
されるレコード位置情報「110」を「109」に書き
替える。
【0043】この後、プログラムインタフェース51
は、プログラム12aからレコード操作メッセージを受
け取る。プログラムインタフェース51は、プログラム
10a及びプログラム11aからのレコード操作メッセ
ージを受け取ったときと同様にして、プログラム12a
からのレコード操作メッセージに対してメッセージID
を付与して新たなレコード操作メッセージを生成し、使
用レコード判定モジュール54へ出力する。
【0044】使用レコード判定モジュール54は、同レ
コード操作メッセージにおけるレコード位置情報「10
9」を用いて使用レコード記憶領域53を検索して該当
するエントリが存在することを確認し、レコード操作不
可能であると判定すると、このことをプログラムインタ
フェース51に通知する。プログラムインタフェース5
1は、これを検知するとレコード操作不可能である旨を
プログラム12aに対して通知する。
【0045】このように、データファイル40を複数の
プログラム10a〜12aで使用するにあたり、操作中
のレコードのレコード位置情報を使用レコード記憶領域
53にて記憶しつつ、同レコード位置情報にもとづいて
物理的に同一のレコードに対するトランザクションを使
用レコード判定モジュール54にて排他制御するととも
に、データファイル40のレコード位置に変更があった
場合に、レコード位置修正モジュール55にて使用レコ
ード記憶領域53に記憶されるレコード位置を変更せし
めるようにしたため、システム間でのデータファイル4
0の互換性を低下させることなく、所定のレコードに対
して同時に複数のトランザクションが発生しない限り、
複数のトランザクションが独立してレコード操作するこ
とが可能なデータファイル管理装置及びデータファイル
管理方法を提供することができる。
【0046】
【発明の効果】以上説明したように本発明は、堅牢性を
維持しつつ、システム間でのデータファイルの互換性を
低下させることなく、所定のレコードに対して同時に複
数のトランザクションが発生しない限り、複数のトラン
ザクションが独立してレコード操作することが可能なデ
ータファイル管理装置を提供することができる。また、
レコード位置に変更があったときの、レコード位置換算
処理における計算量を軽減することができる。
【0047】また、請求項2にかかる発明によれば、レ
コード位置変更情報をアクセススピードの高いメモリに
記憶せしめることにより、処理能力の向上を図りつつ、
使用するメモリ空間を節約して快適な動作環境を提供す
ることができる。
【0048】 さらに、請求項にかかる発明によれば、
システム間でのデータファイルの互換性を低下させるこ
となく、所定のレコードに対して同時に複数のトランザ
クションが発生しない限り、複数のトランザクションが
独立してレコード操作することが可能なデータファイル
管理方法を提供することができる。
【図面の簡単な説明】
【図1】(a)〜(c)は、第一のトランザクション発
生時から第三のトランザクション発生時までのデータフ
ァイル内のレコード位置の変化を示す模式図である。
【図2】本発明の一実施形態にかかるデータファイル管
理装置を適用したクライアント−サーバシステムのブロ
ック図である。
【図3】データファイル管理プログラムの入出力を示す
ブロック図である。
【符号の説明】
10〜12 クライアント 10a〜12a プログラム 20 サーバ 30 ハードディスク 40 データファイル 50 データファイル管理プログラム 51 プログラムインタフェース 52 レコード操作モジュール 53 使用レコード記憶領域 54 使用レコード判定モジュール 55 レコード位置修正モジュール 60 CPU 70 RAM 80 データファイル管理装置
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 12/00

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 特別な識別子を持たない複数のレコード
    からなるデータファイルを複数のプログラムで共通に使
    用するためのファイル管理装置であって、 上記データファイル中の所定レコードに対するトラン
    ザクション発生時に、この所定のレコードのレコード位
    置情報を保持するとともに、上記データファイル中のレ
    コード位置が変更されたときのレコード位置変更情報を
    保持するレコード位置記憶手段と、 上記データファイルに対する複数のトランザクションの
    うち、上記レコード位置情報とレコード位置変更情報と
    を用いて、上記所定のデータが格納されることとなった
    上記データファイル上の実際のレコード格納位置を算出
    するレコード位置算出手段を具備し、 このレコード位置算出手段の算出結果にもとづいて、上
    記データファイルに対する複数のトランザクションのう
    ち、上記物理的に同一のレコードに対するトランザクシ
    ョンを検出し、 各々のトランザクションについて排他制
    御する排他制御手段とを具備することを特徴とするデー
    タファイル管理装置。
  2. 【請求項2】 上記請求項1に記載のデータファイル管
    理装置において、 上記レコード位置記憶手段は、一のトランザクションの
    発生毎に所定のメモリ空間を確保して各トランザクショ
    ンによるレコード位置変更情報を記憶させるレコード位
    置変更情報記憶手段を具備するデータファイル管理装
    置。
  3. 【請求項3】 特別な識別子を持たない複数のレコード
    からなるデータファイルを複数のプログラムで共通に使
    用するにあたり、 上記データファイル中の所定レコードに対するトランザ
    クション発生時に同レコードのレコード位置情報を保持
    するとともに、同データファイル中のレコード位置が変
    更されたときのレコード位置変更情報を保持し、上記レコード位置情報とレコード位置変更情報とを用い
    て、上記所定のデータが格納されることとなった上記デ
    ータファイル上の実際のレコード格納位置を算 出し、 この算出結果にもとづいて上記データファイルに対する
    複数のトランザクションのうち、上記物理的に同一のレ
    コードに対するトランザクションを検出し、 各々のトラ
    ンザクションについて排他制御することを特徴とするデ
    ータファイル管理方法。
JP8315275A 1996-11-26 1996-11-26 データファイル管理装置及びデータファイル管理方法 Expired - Lifetime JP3042427B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8315275A JP3042427B2 (ja) 1996-11-26 1996-11-26 データファイル管理装置及びデータファイル管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8315275A JP3042427B2 (ja) 1996-11-26 1996-11-26 データファイル管理装置及びデータファイル管理方法

Publications (2)

Publication Number Publication Date
JPH10161918A JPH10161918A (ja) 1998-06-19
JP3042427B2 true JP3042427B2 (ja) 2000-05-15

Family

ID=18063458

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8315275A Expired - Lifetime JP3042427B2 (ja) 1996-11-26 1996-11-26 データファイル管理装置及びデータファイル管理方法

Country Status (1)

Country Link
JP (1) JP3042427B2 (ja)

Also Published As

Publication number Publication date
JPH10161918A (ja) 1998-06-19

Similar Documents

Publication Publication Date Title
US6449696B2 (en) Device and method for input/output control of a computer system for efficient prefetching of data based on lists of data read requests for different computers and time between access requests
JP4249267B2 (ja) ファイル・システムにおけるディスク・スペースの解放
JP4395153B2 (ja) リモート・ストレージに対してファイル・システムにネーティブな支援を与えるファイル・システム・プリミティブ
US5721916A (en) Method and system for shadowing file system structures from multiple types of networks
US7047355B2 (en) Updated data write method using journal log
US8041674B2 (en) Method and system for data processing with data replication for the same
US6658596B1 (en) Automated queue recovery using element- based journaling
EP0623877A2 (en) System and method for storing persistent and non-persistent queued data
US20040078658A1 (en) Journaling and recovery method of shared disk file system
JP2004062869A (ja) コンピュータ・システムでのトランザクションの選択的キャッシングの方法および装置
US7089564B2 (en) High-performance memory queue
US20020178176A1 (en) File prefetch contorol method for computer system
US7155492B2 (en) Method and system for caching network data
US6029229A (en) Digital data storage subsystem including directory for efficiently providing formatting information for stored records
JP3042600B2 (ja) 分散ファイルの同期方式
US5920875A (en) Tail compression of a sparse log stream of a computer system
JP3042427B2 (ja) データファイル管理装置及びデータファイル管理方法
US20040107278A1 (en) Management system, management computer, managed computer, management method and program
CN112395296B (zh) 一种大数据归档方法、装置、设备及存储介质
CN114063931A (zh) 一种基于大数据的数据存储方法
EP0096199A2 (en) Method and apparatus for logging journal data in a computing apparatus
US20030033440A1 (en) Method of logging message activity
JP2000322298A (ja) バックアップファイルの世代管理システムおよびバックアップファイルの世代管理用プログラムを記録した記録媒体
JP2641399B2 (ja) フアイル管理装置
JP2004310357A (ja) ファイル管理方法及びシステム、並びにファイル管理プログラム及びファイル管理プログラムを記録した媒体