JPH07253894A - 共有記憶装置 - Google Patents
共有記憶装置Info
- Publication number
- JPH07253894A JPH07253894A JP6044456A JP4445694A JPH07253894A JP H07253894 A JPH07253894 A JP H07253894A JP 6044456 A JP6044456 A JP 6044456A JP 4445694 A JP4445694 A JP 4445694A JP H07253894 A JPH07253894 A JP H07253894A
- Authority
- JP
- Japan
- Prior art keywords
- file
- access
- data
- requester
- history
- 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)【要約】
【目的】 一つのファイルに対し複数の非同期のアクセ
ス要求を受け付けても、内容の一貫性を保つことが可能
な共有記憶装置を提供することを目的とする。 【構成】 本発明に係る共有記憶装置は、一固りのデー
タであるファイルを格納するファイル格納手段10,2
0と、このファイル格納手段に格納された同一のファイ
ルに対するアクセス要求を非同期に複数受付ける要求管
理手段12と、この要求管理手段が受付けた前記アクセ
ス要求の履歴を記憶する第1の記憶手段14と、前記ア
クセス要求の履歴に従って前記ファイルに対して施した
変更の内容を示すデータの履歴を記憶する第2の記憶手
段13と、前記第1の記憶手段に記憶された履歴および
前記第2の記憶手段に記憶された履歴に基づいて、前記
ファイル格納手段に格納された前記ファイルを書き換え
るファイル書換手段11とを備えたことを特徴とする。
ス要求を受け付けても、内容の一貫性を保つことが可能
な共有記憶装置を提供することを目的とする。 【構成】 本発明に係る共有記憶装置は、一固りのデー
タであるファイルを格納するファイル格納手段10,2
0と、このファイル格納手段に格納された同一のファイ
ルに対するアクセス要求を非同期に複数受付ける要求管
理手段12と、この要求管理手段が受付けた前記アクセ
ス要求の履歴を記憶する第1の記憶手段14と、前記ア
クセス要求の履歴に従って前記ファイルに対して施した
変更の内容を示すデータの履歴を記憶する第2の記憶手
段13と、前記第1の記憶手段に記憶された履歴および
前記第2の記憶手段に記憶された履歴に基づいて、前記
ファイル格納手段に格納された前記ファイルを書き換え
るファイル書換手段11とを備えたことを特徴とする。
Description
【0001】
【産業上の利用分野】本発明は共有記憶装置に係わり、
特に計算機の共有ファイル・システムやデータベース・
システムにおいて共有ファイル/データに対する複数の
非同期アクセスとそのファイル/データの更新を管理す
る共有記憶装置に関する。
特に計算機の共有ファイル・システムやデータベース・
システムにおいて共有ファイル/データに対する複数の
非同期アクセスとそのファイル/データの更新を管理す
る共有記憶装置に関する。
【0002】
【従来の技術】従来、計算機に使用されるファイル・シ
ステムでは、複数のユーザからの非同期の編集をサポー
トしていなかった。ここで、「非同期」とは共有のデー
タ(同一のデータ)に対し複数の人が全くランダムにア
クセスし、それぞれ任意の時刻にデータの更新を行うこ
とを言い、「非同期の編集」とは上記のような状況にお
いてもデータの一貫性を損なわない編集のことを言うも
のとする。
ステムでは、複数のユーザからの非同期の編集をサポー
トしていなかった。ここで、「非同期」とは共有のデー
タ(同一のデータ)に対し複数の人が全くランダムにア
クセスし、それぞれ任意の時刻にデータの更新を行うこ
とを言い、「非同期の編集」とは上記のような状況にお
いてもデータの一貫性を損なわない編集のことを言うも
のとする。
【0003】非同期の編集をサポートしていないのは、
一般に全く非同期に行われるファイル・アクセスはデー
タの破壊やデータ構造の矛盾の原因となるからであり、
通常複数のユーザからの非同期アクセスに対しては、排
他制御を行ってデータの一貫性を保っている。
一般に全く非同期に行われるファイル・アクセスはデー
タの破壊やデータ構造の矛盾の原因となるからであり、
通常複数のユーザからの非同期アクセスに対しては、排
他制御を行ってデータの一貫性を保っている。
【0004】図16には、従来の一般的な共有記憶装置
の基本構成を示す。この共有記憶装置は、複数のアクセ
ス要求者221が記憶装置220に格納する共通のデー
タをアクセスするためのものである。共通のデータをア
クセスするのに、記憶装置220を直接読み書きするの
は不便なので、データはいくつかの意味のあるまとまり
として管理し、ファイル210という形で見える。な
お、ファイル210から記憶装置220へ到るデータ管
理方法については、良く知られているので説明は省略す
る。
の基本構成を示す。この共有記憶装置は、複数のアクセ
ス要求者221が記憶装置220に格納する共通のデー
タをアクセスするためのものである。共通のデータをア
クセスするのに、記憶装置220を直接読み書きするの
は不便なので、データはいくつかの意味のあるまとまり
として管理し、ファイル210という形で見える。な
お、ファイル210から記憶装置220へ到るデータ管
理方法については、良く知られているので説明は省略す
る。
【0005】アクセス要求者221はファイル・アクセ
ス手段211に対し、ファイル・アクセス要求206を
出す。この要求は、通常のオペレーティング・システム
ではファイルのオープンを要求する“open”、ファ
イルのクローズを要求する“close”、ファイルの
読み出しを要求する“read”、ファイルへの書き込
みを要求する“write”といったシステム・コール
の形で実現されるのが普通である。
ス手段211に対し、ファイル・アクセス要求206を
出す。この要求は、通常のオペレーティング・システム
ではファイルのオープンを要求する“open”、ファ
イルのクローズを要求する“close”、ファイルの
読み出しを要求する“read”、ファイルへの書き込
みを要求する“write”といったシステム・コール
の形で実現されるのが普通である。
【0006】ここで、アクセス要求者221とは、アク
セスするオペレータ(の操作する端末)だけではなく、
システム・コールを発するプロセスのことや、プロセス
の中で複数生成されるファイル記述子のことなど、あら
ゆるアクセス主体を含む。また、記憶装置220はハー
ドディスク、メモリ、ICカードなど、一時的なもの、
取り外し可能なものなどを全てを含む。
セスするオペレータ(の操作する端末)だけではなく、
システム・コールを発するプロセスのことや、プロセス
の中で複数生成されるファイル記述子のことなど、あら
ゆるアクセス主体を含む。また、記憶装置220はハー
ドディスク、メモリ、ICカードなど、一時的なもの、
取り外し可能なものなどを全てを含む。
【0007】このような従来の共有記憶装置において複
数のアクセス要求者221からの非同期アクセスを許可
することを想定した場合の動作は次のようになる。ま
ず、1番目のアクセス要求者221(以下、アクセス要
求者Aと言う)がファイルの最後尾にデータを追加する
ためにファイルをオープンし、このファイルをクローズ
する前に、2番目のアクセス要求者221(以下、アク
セス要求者Bと言う)が同様に、同一ファイルの最後尾
にデータを追加するためにファイルをオープンしたもの
とする。このとき、要求者Aおよび要求者Bの持つファ
イルのイメージは図17(a)のようになっている。た
だし、これは仮想的なイメージであって、実際のデータ
は要求者Aおよび要求者Bが持っているのではなく、フ
ァイル210が管理している。データを追加するために
ファイルをオープンしたので、次のデータを格納する先
を示すアクセス・ポインタ232はいずれもデータの最
後尾を指している。
数のアクセス要求者221からの非同期アクセスを許可
することを想定した場合の動作は次のようになる。ま
ず、1番目のアクセス要求者221(以下、アクセス要
求者Aと言う)がファイルの最後尾にデータを追加する
ためにファイルをオープンし、このファイルをクローズ
する前に、2番目のアクセス要求者221(以下、アク
セス要求者Bと言う)が同様に、同一ファイルの最後尾
にデータを追加するためにファイルをオープンしたもの
とする。このとき、要求者Aおよび要求者Bの持つファ
イルのイメージは図17(a)のようになっている。た
だし、これは仮想的なイメージであって、実際のデータ
は要求者Aおよび要求者Bが持っているのではなく、フ
ァイル210が管理している。データを追加するために
ファイルをオープンしたので、次のデータを格納する先
を示すアクセス・ポインタ232はいずれもデータの最
後尾を指している。
【0008】その後、図17(b)のように要求者Aは
追加データ233を書き込むため、“write”のフ
ァイル・アクセス要求206を発する。ファイル・アク
セス手段211はこれを受け取り、実際にファイル21
0の該当位置に書き込む。さらに、要求者Aは“clo
se”のファイル・アクセス要求206を発し、ファイ
ル・アクセス手段211は要求者Aによるファイル・ア
クセスが終了したことを知る。一方、要求者Bはまだ何
も書き込みを行っていないが、ファイル210のデータ
はすでに要求者Aにより変更が施されている。
追加データ233を書き込むため、“write”のフ
ァイル・アクセス要求206を発する。ファイル・アク
セス手段211はこれを受け取り、実際にファイル21
0の該当位置に書き込む。さらに、要求者Aは“clo
se”のファイル・アクセス要求206を発し、ファイ
ル・アクセス手段211は要求者Aによるファイル・ア
クセスが終了したことを知る。一方、要求者Bはまだ何
も書き込みを行っていないが、ファイル210のデータ
はすでに要求者Aにより変更が施されている。
【0009】次に、同様な手順で要求者Bが追加データ
234を書き込むと、図17(c)のようにファイル2
10のデータが変更される。要求者Aがいかなる変更を
しようとも、要求者Bの発したファイル・アクセス要求
206はすべて処理が行われる。
234を書き込むと、図17(c)のようにファイル2
10のデータが変更される。要求者Aがいかなる変更を
しようとも、要求者Bの発したファイル・アクセス要求
206はすべて処理が行われる。
【0010】したがって、この時点で要求者Aの発した
ファイル・アクセス要求は、要求者Bの発したファイル
・アクセス要求によって破壊され、ファイルに正しく反
映されない。すなわち、要求者Aおよび要求者Bのいず
れについても、期待したファイルの変更内容が正しく残
らないことになる。
ファイル・アクセス要求は、要求者Bの発したファイル
・アクセス要求によって破壊され、ファイルに正しく反
映されない。すなわち、要求者Aおよび要求者Bのいず
れについても、期待したファイルの変更内容が正しく残
らないことになる。
【0011】このように、従来の共有記憶装置で同一フ
ァイルに対する非同期アクセスを受付けると、データの
一貫性の破綻が起こるという問題点があった。そこで、
データの一貫性を保つために、従来の共有記憶装置で
は、ファイルのアクセス時にロックを掛け、他の要求者
はロック解除後までファイルにアクセスできないように
する機構を設けて、排他制御を行うのが通常である。し
かしながら、他の要求者は、ファイル・アクセスするた
めには、ロックを掛けている先の要求者のアクセスが終
了するまで待たなければならず、要求者がオペレータ
(の操作する端末)である場合は非常に作業効率を悪く
するとともに、オペレータに余計な負担を強いることに
なり、また、要求者がシステム・コールを発するプロセ
スなどである場合は実行的に処理速度を損なうことにな
るという不具合があった。
ァイルに対する非同期アクセスを受付けると、データの
一貫性の破綻が起こるという問題点があった。そこで、
データの一貫性を保つために、従来の共有記憶装置で
は、ファイルのアクセス時にロックを掛け、他の要求者
はロック解除後までファイルにアクセスできないように
する機構を設けて、排他制御を行うのが通常である。し
かしながら、他の要求者は、ファイル・アクセスするた
めには、ロックを掛けている先の要求者のアクセスが終
了するまで待たなければならず、要求者がオペレータ
(の操作する端末)である場合は非常に作業効率を悪く
するとともに、オペレータに余計な負担を強いることに
なり、また、要求者がシステム・コールを発するプロセ
スなどである場合は実行的に処理速度を損なうことにな
るという不具合があった。
【0012】
【発明が解決しようとする課題】以上述べてきたよう
に、従来の共有記憶装置においては、複数のアクセス要
求者からのアクセスがあると、ロック機構を設ける場合
は最先の一のアクセス要求者以外はロックの解除まで待
たなければならなず処理効率を悪くする欠点があり、複
数の非同期アクセスを受付ける場合はデータの一貫性の
破綻が起こるという問題点があった。
に、従来の共有記憶装置においては、複数のアクセス要
求者からのアクセスがあると、ロック機構を設ける場合
は最先の一のアクセス要求者以外はロックの解除まで待
たなければならなず処理効率を悪くする欠点があり、複
数の非同期アクセスを受付ける場合はデータの一貫性の
破綻が起こるという問題点があった。
【0013】本発明は、上記問題点を考慮してなされた
ものであり、一つの共有ファイルに対し複数の非同期の
アクセス要求を受け付けても、内容の一貫性を保つこと
が可能な共有記憶装置を提供することを目的とする。
ものであり、一つの共有ファイルに対し複数の非同期の
アクセス要求を受け付けても、内容の一貫性を保つこと
が可能な共有記憶装置を提供することを目的とする。
【0014】
【課題を解決するための手段】本発明(請求項1)に係
る共有記憶装置は、一固りのデータであるファイルを格
納するファイル格納手段と、このファイル格納手段に格
納された同一のファイルに対するアクセス要求を非同期
に複数受付ける要求管理手段と、この要求管理手段が受
付けた前記アクセス要求の履歴を記憶する第1の記憶手
段と、前記アクセス要求の履歴に従って前記ファイルに
対して施した変更の内容を示すデータの履歴を記憶する
第2の記憶手段と、前記第1の記憶手段に記憶された履
歴および前記第2の記憶手段に記憶された履歴に基づい
て、前記ファイル格納手段に格納された前記ファイルを
書き換えるファイル書換手段とを備えたことを特徴とす
る。
る共有記憶装置は、一固りのデータであるファイルを格
納するファイル格納手段と、このファイル格納手段に格
納された同一のファイルに対するアクセス要求を非同期
に複数受付ける要求管理手段と、この要求管理手段が受
付けた前記アクセス要求の履歴を記憶する第1の記憶手
段と、前記アクセス要求の履歴に従って前記ファイルに
対して施した変更の内容を示すデータの履歴を記憶する
第2の記憶手段と、前記第1の記憶手段に記憶された履
歴および前記第2の記憶手段に記憶された履歴に基づい
て、前記ファイル格納手段に格納された前記ファイルを
書き換えるファイル書換手段とを備えたことを特徴とす
る。
【0015】好ましくは、前記要求管理手段は、オペレ
ーティング・システム上で実行されるプログラムを利用
して所定の処理を行う、前記アクセス要求の内容に対応
して設けられた複数の処理部を有し、前記オペレーティ
ング・システムによって提供されるシステム・コール・
テーブルに前記複数の処理部の夫々を起動するためのア
ドレス情報を設定し、前記アクセス要求は、前記システ
ム・コール・テーブルを利用して所望の前記処理部を起
動する形で与えられることを特徴とする。
ーティング・システム上で実行されるプログラムを利用
して所定の処理を行う、前記アクセス要求の内容に対応
して設けられた複数の処理部を有し、前記オペレーティ
ング・システムによって提供されるシステム・コール・
テーブルに前記複数の処理部の夫々を起動するためのア
ドレス情報を設定し、前記アクセス要求は、前記システ
ム・コール・テーブルを利用して所望の前記処理部を起
動する形で与えられることを特徴とする。
【0016】
【作用】本発明(請求項1)に係る共有記憶装置では、
まず、ファイル格納手段に格納された1つの共有ファイ
ルに対するアクセス要求が非同期に複数発生した場合で
あっても、要求管理手段はそれらアクセス要求を受付け
る。
まず、ファイル格納手段に格納された1つの共有ファイ
ルに対するアクセス要求が非同期に複数発生した場合で
あっても、要求管理手段はそれらアクセス要求を受付け
る。
【0017】そして、要求管理手段は受付けたアクセス
要求の履歴を第1の記憶手段に格納する。これは、アク
セス要求を発した各アクセス要求者が、ファイル格納手
段中のファイルの内容を直接する変更する代わりに、第
1の記憶手段中のファイルの内容を変更することを意味
する。
要求の履歴を第1の記憶手段に格納する。これは、アク
セス要求を発した各アクセス要求者が、ファイル格納手
段中のファイルの内容を直接する変更する代わりに、第
1の記憶手段中のファイルの内容を変更することを意味
する。
【0018】上記アクセス要求者がファイルに対して施
した変更の内容を示すデータの履歴は、アクセス要求の
履歴に従って第2の記憶手段に記憶される。すなわち、
この変更の内容を示すデータの履歴を参照すれば、非同
期に行われたファイルの内容の変更結果が、任意のアク
セス要求があった時点において再現できる。
した変更の内容を示すデータの履歴は、アクセス要求の
履歴に従って第2の記憶手段に記憶される。すなわち、
この変更の内容を示すデータの履歴を参照すれば、非同
期に行われたファイルの内容の変更結果が、任意のアク
セス要求があった時点において再現できる。
【0019】ファイル書換手段は、アクセス要求の履歴
および変更の内容を示すデータの履歴に基づいて、ファ
イル格納手段に格納された前記ファイルを書き換える。
従って、一つの共有ファイルに対し複数のアクセス要求
が非同期に発生しても、排他制御を行うことなくすべて
を受け付け、データの一貫性を損なわずにデータの読み
書き/データの更新を行うことができる。
および変更の内容を示すデータの履歴に基づいて、ファ
イル格納手段に格納された前記ファイルを書き換える。
従って、一つの共有ファイルに対し複数のアクセス要求
が非同期に発生しても、排他制御を行うことなくすべて
を受け付け、データの一貫性を損なわずにデータの読み
書き/データの更新を行うことができる。
【0020】また、それぞれのアクセス要求者は、他の
アクセス要求者とこの共有記憶装置を共有していること
を考慮せずに、ファイル・アクセスを行うことができ
る。これは、アクセス要求者として既存のアプリケーシ
ョン・プログラム等をほとんどあるいは全く修正せずに
利用できることを意味する。
アクセス要求者とこの共有記憶装置を共有していること
を考慮せずに、ファイル・アクセスを行うことができ
る。これは、アクセス要求者として既存のアプリケーシ
ョン・プログラム等をほとんどあるいは全く修正せずに
利用できることを意味する。
【0021】また、請求項2のようにアクセス要求を発
するのにオペレーティング・システムを利用する構成に
した場合は、オペレーティング・システムによって提供
されるコールテーブル中に設定された、ファイル書換手
段へ直接行う“open”,“close”,“rea
d”,“write”といったシステム・コールへのア
ドレス・ポインタの値を、要求管理手段に“ope
n”,“close”,“read”,“write”
のといった各アクセス要求を渡すためのアドレス・ポイ
ンタの値、すなわち要求管理手段中に設けられた“op
en”,“close”,“read”,“writ
e”の各アクセス要求に対応する処理部を起動するため
のアドレス・ポインタの値に書き替えるだけで、既存の
アプリケーション・ソフトウェア等のプログラム自体は
全く変更せずに、アクセス要求者として利用することが
できる。
するのにオペレーティング・システムを利用する構成に
した場合は、オペレーティング・システムによって提供
されるコールテーブル中に設定された、ファイル書換手
段へ直接行う“open”,“close”,“rea
d”,“write”といったシステム・コールへのア
ドレス・ポインタの値を、要求管理手段に“ope
n”,“close”,“read”,“write”
のといった各アクセス要求を渡すためのアドレス・ポイ
ンタの値、すなわち要求管理手段中に設けられた“op
en”,“close”,“read”,“writ
e”の各アクセス要求に対応する処理部を起動するため
のアドレス・ポインタの値に書き替えるだけで、既存の
アプリケーション・ソフトウェア等のプログラム自体は
全く変更せずに、アクセス要求者として利用することが
できる。
【0022】
【実施例】以下、図面を参照しながら本発明の実施例に
ついて説明する。 (第1の実施例)まず、本発明の第1の実施例に係る共
有記憶装置について説明する。図1には、本実施例の共
有記憶装置の要部構成を示す。この共有記憶装置は、複
数のアクセス要求者21が記憶装置20に格納する共通
のデータを非同期でアクセスできる環境を提供するため
の装置であり、アクセス監視部12、アクセス状態記憶
部14、履歴管理部13、ファイル・アクセス部11、
ファイル管理部10、記憶装置20を備えている。
ついて説明する。 (第1の実施例)まず、本発明の第1の実施例に係る共
有記憶装置について説明する。図1には、本実施例の共
有記憶装置の要部構成を示す。この共有記憶装置は、複
数のアクセス要求者21が記憶装置20に格納する共通
のデータを非同期でアクセスできる環境を提供するため
の装置であり、アクセス監視部12、アクセス状態記憶
部14、履歴管理部13、ファイル・アクセス部11、
ファイル管理部10、記憶装置20を備えている。
【0023】アクセス監視部12には、複数のアクセス
要求者21が接続される。ここで、アクセス要求者と
は、アクセスするオペレータ(の操作する端末等)だけ
ではなく、システム・コールを発するプロセスのこと
や、プロセスの中で複数生成されるファイル記述子のこ
となど、あらゆるアクセス主体を含む。
要求者21が接続される。ここで、アクセス要求者と
は、アクセスするオペレータ(の操作する端末等)だけ
ではなく、システム・コールを発するプロセスのこと
や、プロセスの中で複数生成されるファイル記述子のこ
となど、あらゆるアクセス主体を含む。
【0024】実際には、記憶装置20に格納されている
データは、ファイル管理部10によって意味のある一固
りのデータであるファイルとして管理されており、アク
セス要求者21はファイル管理部10によって提供され
るファイルを編集することで、間接的に記憶装置20に
格納されているデータを編集する。この記憶装置20へ
のアクセスを仮想的に行うために設けられたファイル管
理部10は、公知のものを利用するものとし、ファイル
管理部10から記憶装置20へ到るデータ管理方法につ
いては、説明を省略する。なお、記憶装置20には、ハ
ードディスク、メモリ、ICカードなど、一時的なも
の、取り外し可能なものなど、どのような形式のものを
用いても構わない。
データは、ファイル管理部10によって意味のある一固
りのデータであるファイルとして管理されており、アク
セス要求者21はファイル管理部10によって提供され
るファイルを編集することで、間接的に記憶装置20に
格納されているデータを編集する。この記憶装置20へ
のアクセスを仮想的に行うために設けられたファイル管
理部10は、公知のものを利用するものとし、ファイル
管理部10から記憶装置20へ到るデータ管理方法につ
いては、説明を省略する。なお、記憶装置20には、ハ
ードディスク、メモリ、ICカードなど、一時的なも
の、取り外し可能なものなど、どのような形式のものを
用いても構わない。
【0025】アクセス要求者21は、アクセス監視部1
2に対し、共有ファイル・アクセス要求105を出す。
ここで、共有ファイル・アクセス要求とは、従来の排他
的に許可されるファイル・アクセス要求に対して、共有
のファイルに対して非同期の編集を行うためのアクセス
要求のことを言うものとする。一方、本実施例では、ア
クセス監視部12がファイル管理部10によって提供さ
れるファイルを読み書きするためにファイル・アクセス
部11に発する要求をファイル・アクセス要求という。
2に対し、共有ファイル・アクセス要求105を出す。
ここで、共有ファイル・アクセス要求とは、従来の排他
的に許可されるファイル・アクセス要求に対して、共有
のファイルに対して非同期の編集を行うためのアクセス
要求のことを言うものとする。一方、本実施例では、ア
クセス監視部12がファイル管理部10によって提供さ
れるファイルを読み書きするためにファイル・アクセス
部11に発する要求をファイル・アクセス要求という。
【0026】また、共有ファイル・アクセス要求には、
アクセス対象のファイル名またはファイル記述子、この
ファイルを開くための“open”要求,ファイルの内
容を読むための“read”要求,ファイルにデータの
追加/削除を行うための“write”要求,ファイル
を閉じるための“close”要求のいずれかの要求、
および“write”要求の場合における追加/削除す
るデータ等を含んでいるものとする。
アクセス対象のファイル名またはファイル記述子、この
ファイルを開くための“open”要求,ファイルの内
容を読むための“read”要求,ファイルにデータの
追加/削除を行うための“write”要求,ファイル
を閉じるための“close”要求のいずれかの要求、
および“write”要求の場合における追加/削除す
るデータ等を含んでいるものとする。
【0027】なお、この共有ファイル・アクセス要求
は、例えば通常提供されている一般的なオペレーティン
グ・システムで、“open”、“close”、“r
ead”、“write”といったシステム・コールの
形で実現しても良い。
は、例えば通常提供されている一般的なオペレーティン
グ・システムで、“open”、“close”、“r
ead”、“write”といったシステム・コールの
形で実現しても良い。
【0028】共有ファイル・アクセス要求105を受け
たアクセス監視部12は、共有ファイル・アクセス要求
105を受け取った記録をアクセス状態記憶部14に格
納する。それと同時にアクセス監視部12は、後述する
ように“open”の共有ファイル・アクセス要求、
“close”の共有ファイル・アクセス要求、“re
ad”の共有ファイル・アクセス要求、“write”
の共有ファイル・アクセス要求に応じた処理を行う。ま
た、それぞれの処理の内容は、アクセス状態記憶部14
に格納したデータの内容に従って行われ、ファイル・ア
クセス部11に対してファイル・アクセス要求101を
出す場合と、ファイル・アクセス要求101を出さない
場合がある。
たアクセス監視部12は、共有ファイル・アクセス要求
105を受け取った記録をアクセス状態記憶部14に格
納する。それと同時にアクセス監視部12は、後述する
ように“open”の共有ファイル・アクセス要求、
“close”の共有ファイル・アクセス要求、“re
ad”の共有ファイル・アクセス要求、“write”
の共有ファイル・アクセス要求に応じた処理を行う。ま
た、それぞれの処理の内容は、アクセス状態記憶部14
に格納したデータの内容に従って行われ、ファイル・ア
クセス部11に対してファイル・アクセス要求101を
出す場合と、ファイル・アクセス要求101を出さない
場合がある。
【0029】ファイル・アクセス部11は、受け取った
ファイル・アクセス要求を処理し、実際のデータの変更
をファイル管理部10に対して行う。ファイル管理部1
0に対して書き込まれたデータは、通常、記憶装置への
アクセス機構であるデバイス・ドライバ(図示せず)を
通じて、実際に記憶装置20に対して書き込みが行われ
る。
ファイル・アクセス要求を処理し、実際のデータの変更
をファイル管理部10に対して行う。ファイル管理部1
0に対して書き込まれたデータは、通常、記憶装置への
アクセス機構であるデバイス・ドライバ(図示せず)を
通じて、実際に記憶装置20に対して書き込みが行われ
る。
【0030】以下、ファイル・アクセス部11は、アク
セス監視部12からのファイル・アクセス要求だけを受
け付けるものとして本実施例を説明する。ただし、従来
のように、アクセス要求者21がファイル・アクセス要
求を直接ファイル・アクセス部11に対して与えること
もできるようにしても構わない。
セス監視部12からのファイル・アクセス要求だけを受
け付けるものとして本実施例を説明する。ただし、従来
のように、アクセス要求者21がファイル・アクセス要
求を直接ファイル・アクセス部11に対して与えること
もできるようにしても構わない。
【0031】履歴管理部13は、最初のアクセス要求者
21から最後のアクセス要求者21に至るまでの非同期
編集において、共有ファイルの編集内容に関する履歴を
管理する。
21から最後のアクセス要求者21に至るまでの非同期
編集において、共有ファイルの編集内容に関する履歴を
管理する。
【0032】次に、上記のごとき構成を有する共有記憶
装置において、非同期編集を行う具体例を処理の実行手
順に従って詳述する。初期状態として、ファイル管理部
10に対するアクセスは何も行われていないものとす
る。このとき、アクセス状態記憶部14は有効なデータ
を何も持っていない状態である。
装置において、非同期編集を行う具体例を処理の実行手
順に従って詳述する。初期状態として、ファイル管理部
10に対するアクセスは何も行われていないものとす
る。このとき、アクセス状態記憶部14は有効なデータ
を何も持っていない状態である。
【0033】最初に、第1番目のアクセス要求者21
(以下、要求者Aと呼ぶ)がファイルを読み出すため
に、アクセス監視部12に対して読み出し専用の“op
en”を指示する共有ファイル・アクセス要求105を
発する。このとき、アクセス監視部12は、アクセス履
歴リスト31を作成してアクセス状態記憶部14に格納
する。この状態におけるアクセス履歴リスト31の内容
を示したのが図2である。
(以下、要求者Aと呼ぶ)がファイルを読み出すため
に、アクセス監視部12に対して読み出し専用の“op
en”を指示する共有ファイル・アクセス要求105を
発する。このとき、アクセス監視部12は、アクセス履
歴リスト31を作成してアクセス状態記憶部14に格納
する。この状態におけるアクセス履歴リスト31の内容
を示したのが図2である。
【0034】アクセス履歴リスト31は、ファイル管理
部10の該当するファイルにアクセスするために、現時
点で存在する、該当するファイルへのアクセス要求を記
憶したリストである。具体的には、アクセス要求者21
がアクセス監視部12に対し、ファイルのopen要求
(読み出しまたは書き込み処理の開始の要求)として発
した共有ファイル・アクセス要求105と同数のリスト
である。
部10の該当するファイルにアクセスするために、現時
点で存在する、該当するファイルへのアクセス要求を記
憶したリストである。具体的には、アクセス要求者21
がアクセス監視部12に対し、ファイルのopen要求
(読み出しまたは書き込み処理の開始の要求)として発
した共有ファイル・アクセス要求105と同数のリスト
である。
【0035】このアクセス履歴リスト31に登録されて
いるデータは、非同期編集に必要な情報だけで十分あ
る。すなわち、全てのアクセス要求を恒久的に記録する
必要はなく、不要になった時点で消去することが可能で
ある。なお、不要となった時点の判断については後述す
る。
いるデータは、非同期編集に必要な情報だけで十分あ
る。すなわち、全てのアクセス要求を恒久的に記録する
必要はなく、不要になった時点で消去することが可能で
ある。なお、不要となった時点の判断については後述す
る。
【0036】この時点において、アクセス要求者21は
要求者Aだけなので、アクセス履歴リスト31の持つデ
ータはアクセス履歴120だけである。このアクセス履
歴リスト31には、IDコード110、モード111、
オープン時刻112、クローズ時刻113、カレント1
14、ステート115、バッファ116の7つのフィー
ルドがある。
要求者Aだけなので、アクセス履歴リスト31の持つデ
ータはアクセス履歴120だけである。このアクセス履
歴リスト31には、IDコード110、モード111、
オープン時刻112、クローズ時刻113、カレント1
14、ステート115、バッファ116の7つのフィー
ルドがある。
【0037】IDコード110は、アクセス要求者21
からアクセス監視部12に対して与えられた“ope
n”の共有ファイル・アクセス要求ごとに固有に割り当
てられる識別子である。“open”要求以後は、アク
セス要求者21からの共有ファイル・アクセス要求は、
IDコード110を用いて管理される。
からアクセス監視部12に対して与えられた“ope
n”の共有ファイル・アクセス要求ごとに固有に割り当
てられる識別子である。“open”要求以後は、アク
セス要求者21からの共有ファイル・アクセス要求は、
IDコード110を用いて管理される。
【0038】このIDコードは、アクセス監視部12が
“open”の共有ファイル・アクセス要求を受け付け
た度に、アクセス要求者21に対して発給し、以後アク
セス要求者21は、このIDコードを伴って共有ファイ
ル・アクセス要求を発するようにしても良い。また、I
Dコード発給手段を別途設けても良い。あるいはまた、
アクセス要求者21がオペレーティング・システムなど
の環境を利用して“open”の共有ファイル・アクセ
ス要求を発する場合は、この共有ファイル・アクセス要
求時に得られるファイル記述子を、以後IDコードとし
て利用するか、その代りにこのファイル記述子と一意に
対応付けた情報をIDコードとして利用しても良い。さ
らには、後述するオープン時刻、バージョン番号で代用
し、フィールドを1つ削除しても良い。
“open”の共有ファイル・アクセス要求を受け付け
た度に、アクセス要求者21に対して発給し、以後アク
セス要求者21は、このIDコードを伴って共有ファイ
ル・アクセス要求を発するようにしても良い。また、I
Dコード発給手段を別途設けても良い。あるいはまた、
アクセス要求者21がオペレーティング・システムなど
の環境を利用して“open”の共有ファイル・アクセ
ス要求を発する場合は、この共有ファイル・アクセス要
求時に得られるファイル記述子を、以後IDコードとし
て利用するか、その代りにこのファイル記述子と一意に
対応付けた情報をIDコードとして利用しても良い。さ
らには、後述するオープン時刻、バージョン番号で代用
し、フィールドを1つ削除しても良い。
【0039】モード111は、このファイルへのope
n要求のモードを示したもので、ここに書かれている
“r”は読み出し専用であることを意味している。ま
た、ここに“w”と書かれていれば、書き込み専用また
は読み書き両方のモードであることを意味している。
n要求のモードを示したもので、ここに書かれている
“r”は読み出し専用であることを意味している。ま
た、ここに“w”と書かれていれば、書き込み専用また
は読み書き両方のモードであることを意味している。
【0040】オープン時刻112は、このファイルへの
open要求が発せられた時刻を示している。この例で
は、時刻t1にオープンされたことを意味している。ま
た、クローズ時刻113は、このファイルへのclos
e要求が発せられた時刻を示している。この例では、ク
ローズ時刻113は書かれていないので、現在オープン
中であるということがわかる。
open要求が発せられた時刻を示している。この例で
は、時刻t1にオープンされたことを意味している。ま
た、クローズ時刻113は、このファイルへのclos
e要求が発せられた時刻を示している。この例では、ク
ローズ時刻113は書かれていないので、現在オープン
中であるということがわかる。
【0041】ここで、上記の時刻は、各事象の発生した
時刻の前後関係を示すためのものであり、例えば計算機
の持つ内部的な時刻でも良いし、またはファイル管理に
バージョン番号を付けてそれを時刻として用いても良
い。また、この時刻はアクセス監視部12だけで用いる
ものであるから、必ずしも他の部分(例えばアクセス要
求者21)から直接にこの時刻が参照できなくても良
い。
時刻の前後関係を示すためのものであり、例えば計算機
の持つ内部的な時刻でも良いし、またはファイル管理に
バージョン番号を付けてそれを時刻として用いても良
い。また、この時刻はアクセス監視部12だけで用いる
ものであるから、必ずしも他の部分(例えばアクセス要
求者21)から直接にこの時刻が参照できなくても良
い。
【0042】カレント114は、現在アクセスしている
アクセス要求に関して、ファイル管理部10の該当する
ファイル中で、現在アクセスしている位置を示す値(シ
ーク・ポインタ)である。このシーク・ポインタは、次
に来る“read”の共有ファイル・アクセス要求に対
して、読み出す位置(ファイル内の相対位置)を示すも
のであり、読み出し専用の“open”の場合、デフォ
ルトとして初期値が0となっている。
アクセス要求に関して、ファイル管理部10の該当する
ファイル中で、現在アクセスしている位置を示す値(シ
ーク・ポインタ)である。このシーク・ポインタは、次
に来る“read”の共有ファイル・アクセス要求に対
して、読み出す位置(ファイル内の相対位置)を示すも
のであり、読み出し専用の“open”の場合、デフォ
ルトとして初期値が0となっている。
【0043】ステート115は、このアクセス要求者に
関して、実際のアクセス・データが現在どこに格納され
ているかを示している。ステートには、“remot
e”、“local”、“copying”、“cop
ied”、“modified”の5つのモードがあ
る。
関して、実際のアクセス・データが現在どこに格納され
ているかを示している。ステートには、“remot
e”、“local”、“copying”、“cop
ied”、“modified”の5つのモードがあ
る。
【0044】“remote”は、ファイルの内容はオ
リジナルのファイル管理部10にのみ存在することを意
味している。“local”は、ファイルの内容は履歴
管理部13のデータを参照することによって得られるこ
とを意味している。
リジナルのファイル管理部10にのみ存在することを意
味している。“local”は、ファイルの内容は履歴
管理部13のデータを参照することによって得られるこ
とを意味している。
【0045】“copying”は、現在、ファイルの
内容をバッファにコピー中であることを示し、“cop
ied”はバッファへのコピーが終了していることを示
している。“modified”はさらにコピーされた
データに1度でも変更が加えられたことを意味してい
る。
内容をバッファにコピー中であることを示し、“cop
ied”はバッファへのコピーが終了していることを示
している。“modified”はさらにコピーされた
データに1度でも変更が加えられたことを意味してい
る。
【0046】図2では、要求者Aのステート115は
“remote”であり、ファイルの内容はファイル管
理部10にのみ存在している。すなわち、実際にファイ
ルの読み出しを行うにはファイル・アクセス部11に対
しファイル・アクセス要求を発しなければならない。
“remote”であり、ファイルの内容はファイル管
理部10にのみ存在している。すなわち、実際にファイ
ルの読み出しを行うにはファイル・アクセス部11に対
しファイル・アクセス要求を発しなければならない。
【0047】バッファ116は、アクセス要求ごとに持
つファイル内容である。これはデータそのものでも良い
が、本実施例においては、データ本体へのポインタとし
て記述する。現在、要求者Aに関してはバッファは持た
ないので、このデータの内容は未定義である。バッファ
のデータを持つのは、書き込みモードで“open”さ
れた時だけである。
つファイル内容である。これはデータそのものでも良い
が、本実施例においては、データ本体へのポインタとし
て記述する。現在、要求者Aに関してはバッファは持た
ないので、このデータの内容は未定義である。バッファ
のデータを持つのは、書き込みモードで“open”さ
れた時だけである。
【0048】次に、第2のアクセス要求者21(以下、
要求者Bと呼ぶ)がファイルに書き込み(上書き)を行
うために、アクセス監視部12に対して時刻t2に書き
込みの“open”を指示する共有ファイル・アクセス
要求105を発したものとする。
要求者Bと呼ぶ)がファイルに書き込み(上書き)を行
うために、アクセス監視部12に対して時刻t2に書き
込みの“open”を指示する共有ファイル・アクセス
要求105を発したものとする。
【0049】このように、書き込みのできる“ope
n”が指示された場合は、先の要求者Aによる読み出し
専用の“open”の場合とは異なり、アクセス監視部
12は、ファイル・アクセス部11を用いてファイル管
理部10を作動させ、一旦ファイル全体を読み出して、
内容をアクセス状態記憶部14および履歴管理部13に
データを書き込む。
n”が指示された場合は、先の要求者Aによる読み出し
専用の“open”の場合とは異なり、アクセス監視部
12は、ファイル・アクセス部11を用いてファイル管
理部10を作動させ、一旦ファイル全体を読み出して、
内容をアクセス状態記憶部14および履歴管理部13に
データを書き込む。
【0050】具体的には、ファイル・アクセス部11に
対しファイル・アクセス要求を出し、読み出し専用の
“open”をした後に“read”を行い、ファイル
全体を読み出して“close”する。そして読み出し
た内容を、アクセス状態記憶部14のバッファ201と
履歴管理部13に書き込む。なお、ここでは、要求者B
の共有ファイル・アクセス要求は書き込みモードである
が、ファイル・アクセス部11に与えるファイル・アク
セス要求は読み出し専用モードを用いる。
対しファイル・アクセス要求を出し、読み出し専用の
“open”をした後に“read”を行い、ファイル
全体を読み出して“close”する。そして読み出し
た内容を、アクセス状態記憶部14のバッファ201と
履歴管理部13に書き込む。なお、ここでは、要求者B
の共有ファイル・アクセス要求は書き込みモードである
が、ファイル・アクセス部11に与えるファイル・アク
セス要求は読み出し専用モードを用いる。
【0051】まず、ステート115に“copyin
g”を設定し、コピーを開始する。この時点で、要求者
Bからアクセス監視部12への“open”をする共有
ファイル・アクセス要求は正当に終了する。システム・
コールの場合には、正常に終了したことを意味するステ
ータスを要求者Bに返す。このようにするれば、コピー
している時間、要求者Bのプログラム処理の実行が中断
することを防ぐことができる。コピーが終了したら、ス
テート115を“copied”とする。
g”を設定し、コピーを開始する。この時点で、要求者
Bからアクセス監視部12への“open”をする共有
ファイル・アクセス要求は正当に終了する。システム・
コールの場合には、正常に終了したことを意味するステ
ータスを要求者Bに返す。このようにするれば、コピー
している時間、要求者Bのプログラム処理の実行が中断
することを防ぐことができる。コピーが終了したら、ス
テート115を“copied”とする。
【0052】この際、要求者Bの発した書き込みope
n要求が、元のファイル管理部10のデータとは関係な
く(つまり元のデータは消去して)書き込むモードであ
った場合には、バッファ201へのデータのコピーは省
略することができる。
n要求が、元のファイル管理部10のデータとは関係な
く(つまり元のデータは消去して)書き込むモードであ
った場合には、バッファ201へのデータのコピーは省
略することができる。
【0053】この処理の終了後のアクセス状態記憶部1
4および履歴管理部13のデータは、それぞれ図3
(a)および図3(b)のようになる。アクセス履歴1
21のステート115は“copied”となっている
ので、要求者Bの読み書きするデータは一旦バッファ2
01で行うことを意味している。
4および履歴管理部13のデータは、それぞれ図3
(a)および図3(b)のようになる。アクセス履歴1
21のステート115は“copied”となっている
ので、要求者Bの読み書きするデータは一旦バッファ2
01で行うことを意味している。
【0054】ここで、アクセス履歴121のステート1
15が“copying”である間は、要求者Bからの
write要求は一時ペンディングされるので、非常に
大きなサイズのファイルを扱う場合にはこのペンディン
グ時間が無視できなくなる。そこで、バッファをいくつ
かに分割し、それぞれにステート情報を付ける手法を用
いると、ペンディング時間を縮小できるので効果的であ
る。なお、この手法は、従来からある共有ファイルのロ
ック時間を短くする一般的な手法と同様であるので、本
実施例においては説明を省略する。
15が“copying”である間は、要求者Bからの
write要求は一時ペンディングされるので、非常に
大きなサイズのファイルを扱う場合にはこのペンディン
グ時間が無視できなくなる。そこで、バッファをいくつ
かに分割し、それぞれにステート情報を付ける手法を用
いると、ペンディング時間を縮小できるので効果的であ
る。なお、この手法は、従来からある共有ファイルのロ
ック時間を短くする一般的な手法と同様であるので、本
実施例においては説明を省略する。
【0055】また、要求者Aからのopen情報である
アクセス履歴120のステート115は、“remot
e”から“local”に変わる。つまり、要求者Aか
らread要求があると、アクセス監視部12は、デー
タをファイル・アクセス部11へのファイル・アクセス
要求によって得るのではなく、履歴管理部13のデータ
から得ることを意味している。こうすることにより、余
分なファイル・アクセスを省略し、高速化することがで
きる。
アクセス履歴120のステート115は、“remot
e”から“local”に変わる。つまり、要求者Aか
らread要求があると、アクセス監視部12は、デー
タをファイル・アクセス部11へのファイル・アクセス
要求によって得るのではなく、履歴管理部13のデータ
から得ることを意味している。こうすることにより、余
分なファイル・アクセスを省略し、高速化することがで
きる。
【0056】履歴管理部13には、コピーしたデータ・
ブロック134および作成時刻131、消去時刻13
2、データ・ブロック134のサイズ133が記録され
る。作成時刻は、このブロックのデータが有効になった
時刻で、この場合は最初に要求者Aによってopenさ
れたt1となっている。また、削除時刻132は、ブロ
ックのデータが無効になった時刻であり、この場合は未
定義である。
ブロック134および作成時刻131、消去時刻13
2、データ・ブロック134のサイズ133が記録され
る。作成時刻は、このブロックのデータが有効になった
時刻で、この場合は最初に要求者Aによってopenさ
れたt1となっている。また、削除時刻132は、ブロ
ックのデータが無効になった時刻であり、この場合は未
定義である。
【0057】なお、削除時刻132が必要であること
は、このブロックのデータが消去されても、非同期編集
が終了するまでは上記履歴を残しておくことを意味す
る。次に、第3番目のアクセス要求者21(以下、要求
者Cと呼ぶ)が要求者Aと同様に、ファイルを読み出す
ためにアクセス監視部12に対して読み出し専用の“o
pen”を指示する共有ファイル・アクセス要求105
を時刻t3に出し、次のアクセス要求者21(以下、要
求者Dと呼ぶ)が要求者Bと同様に書き込みの“ope
n”を指示する共有ファイル・アクセス要求105を時
刻t4に発したものとする。
は、このブロックのデータが消去されても、非同期編集
が終了するまでは上記履歴を残しておくことを意味す
る。次に、第3番目のアクセス要求者21(以下、要求
者Cと呼ぶ)が要求者Aと同様に、ファイルを読み出す
ためにアクセス監視部12に対して読み出し専用の“o
pen”を指示する共有ファイル・アクセス要求105
を時刻t3に出し、次のアクセス要求者21(以下、要
求者Dと呼ぶ)が要求者Bと同様に書き込みの“ope
n”を指示する共有ファイル・アクセス要求105を時
刻t4に発したものとする。
【0058】このとき、アクセス状態記憶部14の内容
は図4のようになっている。この際、要求者Dからの共
有ファイル・アクセス要求によって、アクセス監視部1
2がバッファ202を作成する場合は要求者Bの場合と
は動作が異なる。すなわち、要求者Bの場合にはファイ
ル・アクセス部11に対し、ファイルを読み出すための
アクセス要求を出す必要があったが、要求者Dの場合に
は同一のデータが履歴管理部13に存在するので、それ
をコピーすれば済むわけである。コピーの方法として
は、履歴管理部13のデータ・ブロック134のうち、
消去時刻132に消去された時刻の記録されていないも
のの全てを順次コピーすれば良い。
は図4のようになっている。この際、要求者Dからの共
有ファイル・アクセス要求によって、アクセス監視部1
2がバッファ202を作成する場合は要求者Bの場合と
は動作が異なる。すなわち、要求者Bの場合にはファイ
ル・アクセス部11に対し、ファイルを読み出すための
アクセス要求を出す必要があったが、要求者Dの場合に
は同一のデータが履歴管理部13に存在するので、それ
をコピーすれば済むわけである。コピーの方法として
は、履歴管理部13のデータ・ブロック134のうち、
消去時刻132に消去された時刻の記録されていないも
のの全てを順次コピーすれば良い。
【0059】なお、要求者Dのアクセス要求に応じた動
作は、先の要求者Bの場合と同様であるので、説明は省
略する。さて、現在、4人の要求者はそれぞれ独立にr
ead/writeを行っている。すなわち、要求者A
と要求者Cはファイル管理部10によって提供された該
当するファイルに対して、要求者Bと要求者Dはそれぞ
れバッファ201およびバッファ202に対して従来と
同様の方法でread/writeを行っている。この
時点での編集中のアクセス状態記憶部14のデータは、
図5のようになっているものとする。すなわち、要求者
Bからはファイルの途中を変更(上書き)されており、
要求者Dからはファイルの最後にデータが追加されてい
る。それぞれアクセス履歴121および123のカレン
ト114とステート115が書き変わっている。
作は、先の要求者Bの場合と同様であるので、説明は省
略する。さて、現在、4人の要求者はそれぞれ独立にr
ead/writeを行っている。すなわち、要求者A
と要求者Cはファイル管理部10によって提供された該
当するファイルに対して、要求者Bと要求者Dはそれぞ
れバッファ201およびバッファ202に対して従来と
同様の方法でread/writeを行っている。この
時点での編集中のアクセス状態記憶部14のデータは、
図5のようになっているものとする。すなわち、要求者
Bからはファイルの途中を変更(上書き)されており、
要求者Dからはファイルの最後にデータが追加されてい
る。それぞれアクセス履歴121および123のカレン
ト114とステート115が書き変わっている。
【0060】次に、要求者Bが時刻t5に、アクセス監
視部12に対しファイルの“close”を行う共有フ
ァイル・アクセス要求105を発したものとする。この
とき、アクセス履歴121のステート115が“cop
ied”であれば、何も書き込まれていないので、以下
の処理は行われない。一方、何らかの書き込みが行われ
て、ステート115が“modified”になった場
合は、以下のような処理が行われる。
視部12に対しファイルの“close”を行う共有フ
ァイル・アクセス要求105を発したものとする。この
とき、アクセス履歴121のステート115が“cop
ied”であれば、何も書き込まれていないので、以下
の処理は行われない。一方、何らかの書き込みが行われ
て、ステート115が“modified”になった場
合は、以下のような処理が行われる。
【0061】まず、アクセス監視部12は、履歴管理部
13のデータを基に、要求者Bのオープン時点でのファ
イル内容を取り出す。それには、アクセス履歴121の
オープン時刻112からt2を取り出す。次に、履歴管
理部13のデータブロック134のうち、作成時刻13
1がt2と同じかまたは小さい(それ以前)であり、か
つ、消去時刻132が未定義かまたはt2より大きい
(それ以降)ものを順次取り出す。
13のデータを基に、要求者Bのオープン時点でのファ
イル内容を取り出す。それには、アクセス履歴121の
オープン時刻112からt2を取り出す。次に、履歴管
理部13のデータブロック134のうち、作成時刻13
1がt2と同じかまたは小さい(それ以前)であり、か
つ、消去時刻132が未定義かまたはt2より大きい
(それ以降)ものを順次取り出す。
【0062】取りだしたオープン時点の内容と現在のバ
ッファ201の内容とを比較し、内容の違いの検出(d
iff処理)を行う。内容の違いを検出するには、例え
ば公知のdiffアルゴリズムを使えば良い。また、d
iff処理の単位は任意であり、例えば電子掲示板や共
同著作のような文書であれば文字単位で行えば良いし、
行単位で行っても良いし、データ・ベースならばデータ
・レコード単位に行っても良い。どのような方法を採用
しても、基本的なアルゴリズムは同じであれる。
ッファ201の内容とを比較し、内容の違いの検出(d
iff処理)を行う。内容の違いを検出するには、例え
ば公知のdiffアルゴリズムを使えば良い。また、d
iff処理の単位は任意であり、例えば電子掲示板や共
同著作のような文書であれば文字単位で行えば良いし、
行単位で行っても良いし、データ・ベースならばデータ
・レコード単位に行っても良い。どのような方法を採用
しても、基本的なアルゴリズムは同じであれる。
【0063】diff処理の結果としては、削除、挿
入、入替が得られるが、入替は削除と挿入との組み合わ
せとして取扱い、削除された部分および挿入された部分
に分ける。この結果を図形的に示したものが図6であ
る。これを数値的に、 (delete,#30,#20) (insert,#30,#20) と表すものとする。それぞれ、オープン時点での先頭か
ら#30の位置からサイズ#20だけ削除したこと、お
よびオープン時点での先頭から#30の位置にサイズ#
20のデータを挿入したことを意味している。この結果
を、履歴管理部13のデータに反映させる。
入、入替が得られるが、入替は削除と挿入との組み合わ
せとして取扱い、削除された部分および挿入された部分
に分ける。この結果を図形的に示したものが図6であ
る。これを数値的に、 (delete,#30,#20) (insert,#30,#20) と表すものとする。それぞれ、オープン時点での先頭か
ら#30の位置からサイズ#20だけ削除したこと、お
よびオープン時点での先頭から#30の位置にサイズ#
20のデータを挿入したことを意味している。この結果
を、履歴管理部13のデータに反映させる。
【0064】上記結果を反映させるための処理は、ロッ
クを掛け、他のclose処理と同時には行わないよう
に排他制御を行う。ただし、この排他制御による待ち時
間は、極めて短いものと考えられる。
クを掛け、他のclose処理と同時には行わないよう
に排他制御を行う。ただし、この排他制御による待ち時
間は、極めて短いものと考えられる。
【0065】上記結果を反映させるための処理では、ま
ず、データを削除/挿入する位置の検出を行う。それに
は、履歴管理部13のデータを先頭からスキャンし、指
定された位置まで数えて行く。データを数える際には、
オープン時点(t2)において存在したブロックだけを
数え、それ以外はカウントしない。オープン時点に存在
したか否かは、作成時刻131と消去時刻132とを用
い、読み出し時と同様に判断する。
ず、データを削除/挿入する位置の検出を行う。それに
は、履歴管理部13のデータを先頭からスキャンし、指
定された位置まで数えて行く。データを数える際には、
オープン時点(t2)において存在したブロックだけを
数え、それ以外はカウントしない。オープン時点に存在
したか否かは、作成時刻131と消去時刻132とを用
い、読み出し時と同様に判断する。
【0066】指定された位置を検出したら、該当する位
置がデータ・ブロック134の途中部分であればそこで
分割し、変更以前の情報が失われないようにしながらd
iff処理の結果をマージする。その結果、履歴管理部
13のデータは図7のようになる。異なるアクセス要求
者21が同一の箇所に挿入を行った場合には、両者の挿
入データが残り、同一の箇所を削除した場合には単純に
それを削除する。なお、これら手順の詳細は後述する。
置がデータ・ブロック134の途中部分であればそこで
分割し、変更以前の情報が失われないようにしながらd
iff処理の結果をマージする。その結果、履歴管理部
13のデータは図7のようになる。異なるアクセス要求
者21が同一の箇所に挿入を行った場合には、両者の挿
入データが残り、同一の箇所を削除した場合には単純に
それを削除する。なお、これら手順の詳細は後述する。
【0067】図7に示すようなデータ構造を用いれば、
前述した方法により、時刻t5時点のファイル内容だけ
ではなく、任意の時刻におけるファイル内容を得ること
ができる。
前述した方法により、時刻t5時点のファイル内容だけ
ではなく、任意の時刻におけるファイル内容を得ること
ができる。
【0068】この時点で、時刻t5時点のファイル内容
を元のファイル管理部10の該当するファイルに保存し
て信頼性を向上させても良いが、本実施例ではこの時点
で保存は行わず、処理の効率化を図るために後述するよ
うにすべてのアクセス要求者21がクローズした時点で
保存する。
を元のファイル管理部10の該当するファイルに保存し
て信頼性を向上させても良いが、本実施例ではこの時点
で保存は行わず、処理の効率化を図るために後述するよ
うにすべてのアクセス要求者21がクローズした時点で
保存する。
【0069】一方、アクセス履歴121の内容は、クロ
ーズ時刻t5が書き込まれ、カレント114、ステート
115およびバッファ116は未定義となる。また、バ
ッファ201は不要となり消去される。なお、この時点
以降の処理において、このデータは参照されないので、
消去は最後にまとめて行っても良い。
ーズ時刻t5が書き込まれ、カレント114、ステート
115およびバッファ116は未定義となる。また、バ
ッファ201は不要となり消去される。なお、この時点
以降の処理において、このデータは参照されないので、
消去は最後にまとめて行っても良い。
【0070】これら詳述したclose操作の際には、
履歴管理部13の持つデータのうち、不要となったもの
があればそれを消去することができる。不要となったデ
ータとは、アクセス履歴リスト31に記載されたアクセ
ス履歴のうち、既にクローズされたもの以外のもののオ
ープン時刻の最も小さい(最も時刻の早い)ものよりも
消去時刻132の小さいか等しい(消去時刻132が未
定義のものは除く)データ・ブロック134およびそれ
に付随する作成時刻131、消去時刻132およびサイ
ズ133である。言い替えると、オープン中のアクセス
よりも以前に消去されたデータの履歴は不要になるとい
うことである。ただし、この例では、不要となる(消去
すべき)データは無い。
履歴管理部13の持つデータのうち、不要となったもの
があればそれを消去することができる。不要となったデ
ータとは、アクセス履歴リスト31に記載されたアクセ
ス履歴のうち、既にクローズされたもの以外のもののオ
ープン時刻の最も小さい(最も時刻の早い)ものよりも
消去時刻132の小さいか等しい(消去時刻132が未
定義のものは除く)データ・ブロック134およびそれ
に付随する作成時刻131、消去時刻132およびサイ
ズ133である。言い替えると、オープン中のアクセス
よりも以前に消去されたデータの履歴は不要になるとい
うことである。ただし、この例では、不要となる(消去
すべき)データは無い。
【0071】一方、上記したような処理の間に、要求者
Aはデータの“read”を行い、アクセス履歴120
のカレントが#70まで進んでおり。要求者Cもデータ
の“read”を行い、アクセス履歴122のカレント
114は#30まで進んでいるものとする。このよう
に、各アクセス要求者21の処理は他の処理と並行して
実行することができる。
Aはデータの“read”を行い、アクセス履歴120
のカレントが#70まで進んでおり。要求者Cもデータ
の“read”を行い、アクセス履歴122のカレント
114は#30まで進んでいるものとする。このよう
に、各アクセス要求者21の処理は他の処理と並行して
実行することができる。
【0072】このような手順により、クローズ後のアク
セス状態記憶部14の内容は、図8のようになる。次
に、要求者Cが時刻t6に“close”の共有ファイ
ル・アクセス要求を出し、クローズしたものとする。こ
こで必要となる処理は、アクセス履歴リスト31のアク
セス履歴122にクローズ時刻を書き込み、カレント1
14、ステート115のフィールドを未定義にするだけ
である。
セス状態記憶部14の内容は、図8のようになる。次
に、要求者Cが時刻t6に“close”の共有ファイ
ル・アクセス要求を出し、クローズしたものとする。こ
こで必要となる処理は、アクセス履歴リスト31のアク
セス履歴122にクローズ時刻を書き込み、カレント1
14、ステート115のフィールドを未定義にするだけ
である。
【0073】さらに、要求者Bの場合と同様、履歴管理
部13の持つデータのうち、不要となったものがあれば
消去する。ただし、この場合には不要となったものは無
い。次に、要求者Dが時刻t7に“close”の共有
ファイル・アクセス要求を出し、クローズしたものとす
る。この場合は、要求者Bの場合と同様に、まず要求者
Dのオープン時刻(t4)におけるファイルの内容を履
歴管理部13から同様の手順で読み出し、バッファ20
2のデータとの違いを検出する。その結果、 (insert,#100,#20) が得られる。すなわち、先頭から#100の位置(ファ
イルの最後尾に相当する位置)にサイズ#20のデータ
を挿入したという意味である。この変更を要求者Bの場
合と同様に履歴管理部13のデータに反映させ、アクセ
ス履歴リスト31のアクセス履歴123のクローズ時刻
113を書き込み、カレントll4とステート115と
バッファ116を無効にし、バッファ202のデータを
消去する。
部13の持つデータのうち、不要となったものがあれば
消去する。ただし、この場合には不要となったものは無
い。次に、要求者Dが時刻t7に“close”の共有
ファイル・アクセス要求を出し、クローズしたものとす
る。この場合は、要求者Bの場合と同様に、まず要求者
Dのオープン時刻(t4)におけるファイルの内容を履
歴管理部13から同様の手順で読み出し、バッファ20
2のデータとの違いを検出する。その結果、 (insert,#100,#20) が得られる。すなわち、先頭から#100の位置(ファ
イルの最後尾に相当する位置)にサイズ#20のデータ
を挿入したという意味である。この変更を要求者Bの場
合と同様に履歴管理部13のデータに反映させ、アクセ
ス履歴リスト31のアクセス履歴123のクローズ時刻
113を書き込み、カレントll4とステート115と
バッファ116を無効にし、バッファ202のデータを
消去する。
【0074】これらの操作を行った後のアクセス状態記
憶部14および履歴管理部13の内容をそれぞれ示した
のが図9(a)および図9(b)である。最後に、要求
者Aが“close”の共有ファイル・アクセス要求を
出し、クローズしたものとする。この時点で、オープン
中の要求者は一人もいなくなり、アクセス履歴リスト3
1に記述された全てのアクセス履歴を消去する。
憶部14および履歴管理部13の内容をそれぞれ示した
のが図9(a)および図9(b)である。最後に、要求
者Aが“close”の共有ファイル・アクセス要求を
出し、クローズしたものとする。この時点で、オープン
中の要求者は一人もいなくなり、アクセス履歴リスト3
1に記述された全てのアクセス履歴を消去する。
【0075】そして、書き込みモードでのファイルの
“open”を行うファイル・アクセス要求をファイル
・アクセス部11に出し、履歴管理部13から最新の
(現在の)ファイルの内容を全て読み出し、そのデータ
のwrite要求およびclose要求をファイル・ア
クセス部11に出し、ファイル管理部10のデータの更
新が完了する。履歴管理部13のデータも不要になるの
で消去する。
“open”を行うファイル・アクセス要求をファイル
・アクセス部11に出し、履歴管理部13から最新の
(現在の)ファイルの内容を全て読み出し、そのデータ
のwrite要求およびclose要求をファイル・ア
クセス部11に出し、ファイル管理部10のデータの更
新が完了する。履歴管理部13のデータも不要になるの
で消去する。
【0076】以上によって、例として取り上げたアクセ
ス要求者A〜Dによる、非同期編集のすべての処理が終
了する。ここで、書き込みモードでのファイルの“op
en”を行ったファイルをクローズする際に、変更部分
(diff)を履歴管理部13に反映させる手順の詳細
説明を行う。
ス要求者A〜Dによる、非同期編集のすべての処理が終
了する。ここで、書き込みモードでのファイルの“op
en”を行ったファイルをクローズする際に、変更部分
(diff)を履歴管理部13に反映させる手順の詳細
説明を行う。
【0077】この手順を、フローチャートを用いて具体
的に記述したのが図10,11および図12,13であ
る。図10,11は挿入処理の手順を示したものであ
る。fromは“open”した時点のデータで見た挿
入位置、“size”は挿入するデータのサイズであ
る。“cp”は現在スキャンしている履歴管理部13の
データの先頭からのバイアスである。“t0”はこの処
理を行う要求者21のオープンした時刻である。“t”
はclose処理を行った(現在の)時刻である。“s
izeof”はその変数の格納されている領域のサイズ
を意味している。
的に記述したのが図10,11および図12,13であ
る。図10,11は挿入処理の手順を示したものであ
る。fromは“open”した時点のデータで見た挿
入位置、“size”は挿入するデータのサイズであ
る。“cp”は現在スキャンしている履歴管理部13の
データの先頭からのバイアスである。“t0”はこの処
理を行う要求者21のオープンした時刻である。“t”
はclose処理を行った(現在の)時刻である。“s
izeof”はその変数の格納されている領域のサイズ
を意味している。
【0078】図12,13は消去処理の手順を示したも
のである。変数の意味は図10,11の場合と同様であ
る。ただし、“from”はオープンした時点のデータ
で見た削除開始位置である。
のである。変数の意味は図10,11の場合と同様であ
る。ただし、“from”はオープンした時点のデータ
で見た削除開始位置である。
【0079】以上のような手順により、要求者A,B,
C,Dからの4つの別々のアクセスを非同期に実行する
ことができ、しかもそれらのデータの読み出しおよび書
き込みを矛盾なく実行し、ファイルの内容に反映させる
ことができる。
C,Dからの4つの別々のアクセスを非同期に実行する
ことができ、しかもそれらのデータの読み出しおよび書
き込みを矛盾なく実行し、ファイルの内容に反映させる
ことができる。
【0080】以上説明したように、本実施例に係る共有
記憶装置では、1つの共有ファイルに対して非同期に複
数発生したアクセス要求の履歴と、アクセス要求によっ
て該当するファイルに対して施された変更の内容を示す
データの履歴とを記憶するとともに、この2つの履歴に
基づいてファイル管理部によって提供されるファイルす
なわち(記憶装置20中のデータ)を書き換えるように
構成した。従って、一つの共有ファイルに対し複数のア
クセス要求が非同期に発生しても、排他制御を行うこと
なくすべてを受け付け、データの一貫性を損なわずにデ
ータの読み書き/データの更新を行うことができる。
記憶装置では、1つの共有ファイルに対して非同期に複
数発生したアクセス要求の履歴と、アクセス要求によっ
て該当するファイルに対して施された変更の内容を示す
データの履歴とを記憶するとともに、この2つの履歴に
基づいてファイル管理部によって提供されるファイルす
なわち(記憶装置20中のデータ)を書き換えるように
構成した。従って、一つの共有ファイルに対し複数のア
クセス要求が非同期に発生しても、排他制御を行うこと
なくすべてを受け付け、データの一貫性を損なわずにデ
ータの読み書き/データの更新を行うことができる。
【0081】また、それぞれのアクセス要求者は、他の
アクセス要求者とこの共有記憶装置を共有していること
を考慮せずに、ファイル・アクセスを行うことができ
る。これは、アクセス要求者として既存のアプリケーシ
ョン・プログラム等をほとんどあるいは全く修正せずに
利用できることを意味する。
アクセス要求者とこの共有記憶装置を共有していること
を考慮せずに、ファイル・アクセスを行うことができ
る。これは、アクセス要求者として既存のアプリケーシ
ョン・プログラム等をほとんどあるいは全く修正せずに
利用できることを意味する。
【0082】(第2の実施例)次に、本発明の第2の実
施例について説明する。本実施例は、第1の実施例の応
用として、同実施例の共有記憶装置を既存のアプリケー
ション・プログラムから活用することを可能にしたもの
である。また、本実施例では、少なくともアクセス監視
部12は、オペレーティング・システム上で実行される
プログラムを利用して所定の処理を行う部分を有すると
ともに、各共有アクセス要求は、オペレーティング・シ
ステムによって提供されるシステム・コールを利用して
行われることを前提としている。
施例について説明する。本実施例は、第1の実施例の応
用として、同実施例の共有記憶装置を既存のアプリケー
ション・プログラムから活用することを可能にしたもの
である。また、本実施例では、少なくともアクセス監視
部12は、オペレーティング・システム上で実行される
プログラムを利用して所定の処理を行う部分を有すると
ともに、各共有アクセス要求は、オペレーティング・シ
ステムによって提供されるシステム・コールを利用して
行われることを前提としている。
【0083】まず、従来の共有記憶装置について図14
を参照しながら説明する。一般に、オペレーティング・
システムにおいて、ファイル管理部10にて提供される
ファイルに対するopen/close/read/w
riteといった処理は、システム・コールという形で
提供され、それをアクセス要求者(図示せず)がアクセ
ス要求する際に利用するようになっている。図14の従
来の共有記憶装置では、これらシステム・コールはファ
イル・アクセス部11に対しopen/close/r
ead/writeのファイル・アクセス要求を出し、
このファイル・アクセス要求を受け付けたファイル・ア
クセス部11が要求内容に応じてファイル管理部10に
よって提供されるファイルの読み書きを実行する。
を参照しながら説明する。一般に、オペレーティング・
システムにおいて、ファイル管理部10にて提供される
ファイルに対するopen/close/read/w
riteといった処理は、システム・コールという形で
提供され、それをアクセス要求者(図示せず)がアクセ
ス要求する際に利用するようになっている。図14の従
来の共有記憶装置では、これらシステム・コールはファ
イル・アクセス部11に対しopen/close/r
ead/writeのファイル・アクセス要求を出し、
このファイル・アクセス要求を受け付けたファイル・ア
クセス部11が要求内容に応じてファイル管理部10に
よって提供されるファイルの読み書きを実行する。
【0084】具体的には、アクセス要求者が、図14の
ように各システム・コールの関数を参照するシステム・
コール・テーブル41から、実際のシステム・コール関
数140を参照して呼び出し実行する。各システム・コ
ール関数140は直接、デバイス・ドライバ42に指示
を与えてファイル管理部10のファイルに対して読み書
きを実行する。
ように各システム・コールの関数を参照するシステム・
コール・テーブル41から、実際のシステム・コール関
数140を参照して呼び出し実行する。各システム・コ
ール関数140は直接、デバイス・ドライバ42に指示
を与えてファイル管理部10のファイルに対して読み書
きを実行する。
【0085】なお、ここで説明しているシステム・コー
ル・テーブル41の構造は、ダイナミック・リンキング
(dynamic linking)と呼ばれる公知の
オペレーティング・システムの機構の概略であり、一般
にはより複雑な構造を有するが、良く知られているので
詳細な説明は省略する。
ル・テーブル41の構造は、ダイナミック・リンキング
(dynamic linking)と呼ばれる公知の
オペレーティング・システムの機構の概略であり、一般
にはより複雑な構造を有するが、良く知られているので
詳細な説明は省略する。
【0086】上記構成を有するような従来の共有記憶装
置では、前述したように非同期編集を行うことができな
かった。これに対し、図15に示す本実施例の共有記憶
装置では、第1の実施例の構成を利用して非同期編集を
可能にするとともに、上記のようなオペレーティング・
システムにおいて、システム・コールの関数を参照する
システム・コール・テーブル41のデータを書き換え、
アクセス監視部12に対して共有ファイル・アクセス要
求を発する関数に置き換えるように構成して、既存のア
プリケーション・プログラムを修正せずにアクセス要求
者21として共有記憶装置に接続できるようにしてい
る。
置では、前述したように非同期編集を行うことができな
かった。これに対し、図15に示す本実施例の共有記憶
装置では、第1の実施例の構成を利用して非同期編集を
可能にするとともに、上記のようなオペレーティング・
システムにおいて、システム・コールの関数を参照する
システム・コール・テーブル41のデータを書き換え、
アクセス監視部12に対して共有ファイル・アクセス要
求を発する関数に置き換えるように構成して、既存のア
プリケーション・プログラムを修正せずにアクセス要求
者21として共有記憶装置に接続できるようにしてい
る。
【0087】図15に示すように、本実施例の構成は基
本的には前述した第1の実施例と同様であり、アクセス
要求者21がアクセス監視部12に与える共有ファイル
・アクセス要求の受け渡しの機構に特徴を持たせたもの
である。よって、図1に対応する部分には同一番号を付
してその詳細な説明は省略し、主に本実施例の特徴であ
る共有アクセス要求を説明する。
本的には前述した第1の実施例と同様であり、アクセス
要求者21がアクセス監視部12に与える共有ファイル
・アクセス要求の受け渡しの機構に特徴を持たせたもの
である。よって、図1に対応する部分には同一番号を付
してその詳細な説明は省略し、主に本実施例の特徴であ
る共有アクセス要求を説明する。
【0088】本実施例において、アクセス要求者21
は、システム・コール・テーブル41の持つシステム・
コールに対応する関数を参照した上で、open/cl
ose/read/writeの関数を実行する。オペ
レーティング・システムにおけるシステム・コールの関
数を参照するシステム・コール・テーブル41のデータ
は、オペレーティング・システムによって提供されるo
pen関数/close関数/read関数/writ
e関数140への接続データ(アドレス・ポインタ)か
ら、アクセス監視部12によって提供される共有ope
n関数/共有close関数/共有read関数/共有
write関数141への接続データ(アドレス・ポイ
ンタ)に書き換えられている。
は、システム・コール・テーブル41の持つシステム・
コールに対応する関数を参照した上で、open/cl
ose/read/writeの関数を実行する。オペ
レーティング・システムにおけるシステム・コールの関
数を参照するシステム・コール・テーブル41のデータ
は、オペレーティング・システムによって提供されるo
pen関数/close関数/read関数/writ
e関数140への接続データ(アドレス・ポインタ)か
ら、アクセス監視部12によって提供される共有ope
n関数/共有close関数/共有read関数/共有
write関数141への接続データ(アドレス・ポイ
ンタ)に書き換えられている。
【0089】従って、既存のアプリケーション・プログ
ラムからなるアクセス要求者21が、open関数/c
lose関数/read関数/write関数を実行し
た結果、実際は共有open関数/共有close関数
/共有read関数/共有write関数141が実行
されることになる。
ラムからなるアクセス要求者21が、open関数/c
lose関数/read関数/write関数を実行し
た結果、実際は共有open関数/共有close関数
/共有read関数/共有write関数141が実行
されることになる。
【0090】ここで、共有open関数/共有clos
e関数/共有read関数/共有write関数は、そ
れぞれ第1の実施例で説明した“open”をする共有
ファイル・アクセス要求に応じた処理/“close”
をする共有ファイル・アクセス要求に応じた処理/“r
ead”をする共有ファイル・アクセス要求に応じた処
理/“write”をする共有ファイル・アクセス要求
に応じた処理に該当する。なお、図15では、共有op
en関数/共有close関数/共有read関数/共
有write関数141はそれぞれ独立した形で構成さ
れているが、各関数141に共通する処理に対応する部
分は1つの処理実体として構成して4つの関数141で
共有化しても良い。
e関数/共有read関数/共有write関数は、そ
れぞれ第1の実施例で説明した“open”をする共有
ファイル・アクセス要求に応じた処理/“close”
をする共有ファイル・アクセス要求に応じた処理/“r
ead”をする共有ファイル・アクセス要求に応じた処
理/“write”をする共有ファイル・アクセス要求
に応じた処理に該当する。なお、図15では、共有op
en関数/共有close関数/共有read関数/共
有write関数141はそれぞれ独立した形で構成さ
れているが、各関数141に共通する処理に対応する部
分は1つの処理実体として構成して4つの関数141で
共有化しても良い。
【0091】一方、ファイル管理部10に対する実際の
open関数/close関数/read関数/wri
te関数は、ファイル・アクセス部11内からコールさ
れる。このopen関数/close関数/read関
数/write関数は、それぞれ第1の実施例で説明し
たファイル・アクセス部11が実際のデータの変更をフ
ァイル管理部10に対して行うopen/close/
read/writeのファイル・アクセス要求に該当
する。
open関数/close関数/read関数/wri
te関数は、ファイル・アクセス部11内からコールさ
れる。このopen関数/close関数/read関
数/write関数は、それぞれ第1の実施例で説明し
たファイル・アクセス部11が実際のデータの変更をフ
ァイル管理部10に対して行うopen/close/
read/writeのファイル・アクセス要求に該当
する。
【0092】アクセス監視部12は、第1の実施例にお
いて詳述した通り、アクセス要求者21からの非同期ア
クセスを管理し、アクセス情報記憶部14の内容に従
い、必要に応じてファイル・アクセス部11に対しファ
イル・アクセス要求を出して、ファイル管理部10の該
当するファイルの読み書きを実行する。
いて詳述した通り、アクセス要求者21からの非同期ア
クセスを管理し、アクセス情報記憶部14の内容に従
い、必要に応じてファイル・アクセス部11に対しファ
イル・アクセス要求を出して、ファイル管理部10の該
当するファイルの読み書きを実行する。
【0093】このように本実施例によれば、第1の実施
例で述べたように一つの共有ファイルに対し複数のアク
セス要求が非同期に発生しても、排他制御を行うことな
くすべてを受け付け、データの一貫性を損なわずにデー
タの読み書き/データの更新を行うことができる。
例で述べたように一つの共有ファイルに対し複数のアク
セス要求が非同期に発生しても、排他制御を行うことな
くすべてを受け付け、データの一貫性を損なわずにデー
タの読み書き/データの更新を行うことができる。
【0094】さらに本実施例では、オペレーティング・
システムによって提供されるコールテーブル41中に設
定された、ファイル・アクセス手段11へ直接行う“o
pen”,“close”,“read”,“writ
e”といったシステム・コールへのアドレス・ポインタ
の値(図14参照)を、アクセス監視手段12に“op
en”,“close”,“read”,“writ
e”のといった各アクセス要求を渡すためのアドレス・
ポインタの値、すなわちアクセス監視手段12中に設け
られた“open”,“close”,“read”,
“write”の各アクセス要求に対応する関数141
を起動するためのアドレス・ポインタの値(図15参
照)に書き替えるだけで、既存のアプリケーション・ソ
フトウェア等のプログラム自体は全く変更せずに、アク
セス要求者として利用して、非同期編集を行うことが可
能となる。また、本発明は上述した各実施例に限定され
るものではなく、その要旨を逸脱しない範囲で、種々変
形して実施することができる。
システムによって提供されるコールテーブル41中に設
定された、ファイル・アクセス手段11へ直接行う“o
pen”,“close”,“read”,“writ
e”といったシステム・コールへのアドレス・ポインタ
の値(図14参照)を、アクセス監視手段12に“op
en”,“close”,“read”,“writ
e”のといった各アクセス要求を渡すためのアドレス・
ポインタの値、すなわちアクセス監視手段12中に設け
られた“open”,“close”,“read”,
“write”の各アクセス要求に対応する関数141
を起動するためのアドレス・ポインタの値(図15参
照)に書き替えるだけで、既存のアプリケーション・ソ
フトウェア等のプログラム自体は全く変更せずに、アク
セス要求者として利用して、非同期編集を行うことが可
能となる。また、本発明は上述した各実施例に限定され
るものではなく、その要旨を逸脱しない範囲で、種々変
形して実施することができる。
【0095】
【発明の効果】以上詳述したように、本発明に係る共有
記憶装置では、1つの共有ファイルに対して非同期に複
数発生したアクセス要求の履歴と、アクセス要求によっ
て該当するファイルに対して施された変更の内容を示す
データの履歴とを記憶するとともに、この2つの履歴に
基づいてファイル格納手段に格納されたファイルを書き
換えるように構成した。
記憶装置では、1つの共有ファイルに対して非同期に複
数発生したアクセス要求の履歴と、アクセス要求によっ
て該当するファイルに対して施された変更の内容を示す
データの履歴とを記憶するとともに、この2つの履歴に
基づいてファイル格納手段に格納されたファイルを書き
換えるように構成した。
【0096】従って、一つの共有ファイルに対し複数の
アクセス要求が非同期に発生しても、すべてのアクセス
要求によるファイルの内容の変更を反映することができ
るので、排他制御を行うことなく、データの一貫性を損
なわずに、非同期編集を行うことができる。
アクセス要求が非同期に発生しても、すべてのアクセス
要求によるファイルの内容の変更を反映することができ
るので、排他制御を行うことなく、データの一貫性を損
なわずに、非同期編集を行うことができる。
【図1】本発明の第1の実施例に係る共有記憶装置の要
部構成を示すブロック図
部構成を示すブロック図
【図2】要求者Aのオープン後のアクセス状態記憶部1
4の内容を示す図
4の内容を示す図
【図3】要求者Bのオープン後のアクセス状態記憶部1
4および履歴管理部13の内容を示す図
4および履歴管理部13の内容を示す図
【図4】要求者Dのオープン後のアクセス状態憶部14
の内容を示す図
の内容を示す図
【図5】編集中のアクセス状態記憶部14の内容を示す
図
図
【図6】変更部分の表現のイメージを示す図
【図7】要求者Bのクローズ後の履歴管理部13の内容
を示す図
を示す図
【図8】要求者Bのクローズ後のアクセス状態記憶部1
4の内容を示す図
4の内容を示す図
【図9】要求者Dのクローズ後のアクセス状態記憶部1
4および履歴管理部13の内容を示す図
4および履歴管理部13の内容を示す図
【図10】履歴管理部13への挿入処理の手順を示すフ
ロー・チャート
ロー・チャート
【図11】同挿入処理の手順を示すフロー・チャート
【図12】履歴管理部13への削除処理の手順を示すフ
ロー・チャート
ロー・チャート
【図13】同削除処理の手順を示すフロー・チャート
【図14】従来の共有記憶装置におけるシステム・コー
ル構成の一例を示す図
ル構成の一例を示す図
【図15】本発明の第2の実施例に係る共有記憶装置の
要部構成を示すブロック図
要部構成を示すブロック図
【図16】従来の共有記憶装置の構成図
【図17】従来の共有記憶装置におけるファイル操作を
説明するための図
説明するための図
10…ファイル管理部、11…ファイル・アクセス部、
12…アクセス監視部、13…履歴管理部、14…アク
セス状態記憶部、20…記憶装置、21…アクセス要求
者、31…アクセス履歴リスト、41…システム・コー
ル・テーブル、42…デバイス・ドライバ、131…作
成時刻、132…消去時刻、133…サイズ、134…
データ・ブロック
12…アクセス監視部、13…履歴管理部、14…アク
セス状態記憶部、20…記憶装置、21…アクセス要求
者、31…アクセス履歴リスト、41…システム・コー
ル・テーブル、42…デバイス・ドライバ、131…作
成時刻、132…消去時刻、133…サイズ、134…
データ・ブロック
Claims (2)
- 【請求項1】一固りのデータであるファイルを格納する
ファイル格納手段と、 このファイル格納手段に格納された同一のファイルに対
するアクセス要求を非同期に複数受付ける要求管理手段
と、 この要求管理手段が受付けた前記アクセス要求の履歴を
記憶する第1の記憶手段と、 前記アクセス要求の履歴に従って前記ファイルに対して
施した変更の内容を示すデータの履歴を記憶する第2の
記憶手段と、 前記第1の記憶手段に記憶された履歴および前記第2の
記憶手段に記憶された履歴に基づいて、前記ファイル格
納手段に格納された前記ファイルを書き換えるファイル
書換手段とを備えたことを特徴とする共有記憶装置。 - 【請求項2】前記要求管理手段は、オペレーティング・
システム上で実行されるプログラムを利用して所定の処
理を行う、前記アクセス要求の内容に対応して設けられ
た複数の処理部を有し、 前記オペレーティング・システムによって提供されるシ
ステム・コール・テーブルに前記複数の処理部の夫々を
起動するためのアドレス情報を設定し、 前記アクセス要求は、前記システム・コール・テーブル
を利用して所望の前記処理部を起動する形で与えられる
ことを特徴とする請求項1に記載の共有記憶装置。
Priority Applications (8)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6044456A JPH07253894A (ja) | 1994-03-15 | 1994-03-15 | 共有記憶装置 |
| DE69529635T DE69529635T2 (de) | 1994-03-15 | 1995-03-15 | Gemeinsame Benutzung eines Dateiedierungssystems mit geheimem Dateiinhalt, Versionsverwaltung und asynchroner Edierung |
| EP02017683A EP1265122A3 (en) | 1994-03-15 | 1995-03-15 | Shared file editing system with file content secrecy, version management and asynchronous editing |
| EP95103758A EP0674253B1 (en) | 1994-03-15 | 1995-03-15 | Shared file editing system with file content secrecy, version management and asynchronous editing |
| US08/404,871 US5835601A (en) | 1994-03-15 | 1995-03-15 | File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing |
| US09/140,671 US6760840B1 (en) | 1994-03-15 | 1998-08-26 | File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing |
| US10/838,313 US20040205340A1 (en) | 1994-03-15 | 2004-05-05 | File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing |
| US10/838,314 US7631185B2 (en) | 1994-03-15 | 2004-05-05 | File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6044456A JPH07253894A (ja) | 1994-03-15 | 1994-03-15 | 共有記憶装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07253894A true JPH07253894A (ja) | 1995-10-03 |
Family
ID=12691998
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6044456A Pending JPH07253894A (ja) | 1994-03-15 | 1994-03-15 | 共有記憶装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07253894A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010129065A (ja) * | 2008-12-01 | 2010-06-10 | Ntt Data Corp | ワークフロー管理システム、ワークフロー管理方法 |
| CN103858127A (zh) * | 2011-10-12 | 2014-06-11 | 国际商业机器公司 | 用于删除信息以维持安全级别的方法、系统、中介服务器、客户端和计算机程序 |
| EP3402170A1 (en) * | 2009-08-21 | 2018-11-14 | Samsung Electronics Co., Ltd. | Method and system for image upload and image sharing via a communincations network |
| US10339329B2 (en) | 2014-09-25 | 2019-07-02 | International Business Machines Corporation | Controlling access to data in a database |
-
1994
- 1994-03-15 JP JP6044456A patent/JPH07253894A/ja active Pending
Cited By (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010129065A (ja) * | 2008-12-01 | 2010-06-10 | Ntt Data Corp | ワークフロー管理システム、ワークフロー管理方法 |
| EP3402170A1 (en) * | 2009-08-21 | 2018-11-14 | Samsung Electronics Co., Ltd. | Method and system for image upload and image sharing via a communincations network |
| US10200373B2 (en) | 2009-08-21 | 2019-02-05 | Samsung Electronics Co., Ltd. | Method and apparatus for providing and receiving contents via network, method and apparatus for backing up data via network, backup data providing device, and backup system |
| US10291618B2 (en) | 2009-08-21 | 2019-05-14 | Samsung Electronics Co., Ltd. | Method and apparatus for providing and receiving contents via network, method and apparatus for backing up data via network, backup data providing device, and backup system |
| US10389720B2 (en) | 2009-08-21 | 2019-08-20 | Samsung Electronics Co., Ltd. | Method and apparatus for providing and receiving contents via network, method and apparatus for backing up data via network, backup data providing device, and backup system |
| CN103858127A (zh) * | 2011-10-12 | 2014-06-11 | 国际商业机器公司 | 用于删除信息以维持安全级别的方法、系统、中介服务器、客户端和计算机程序 |
| US9460295B2 (en) | 2011-10-12 | 2016-10-04 | International Business Machines Corporation | Deleting information to maintain security level |
| CN103858127B (zh) * | 2011-10-12 | 2017-01-25 | 国际商业机器公司 | 用于删除信息以维持安全级别的方法、系统和中介服务器 |
| US9910998B2 (en) | 2011-10-12 | 2018-03-06 | International Business Machines Corporation | Deleting information to maintain security level |
| US10339329B2 (en) | 2014-09-25 | 2019-07-02 | International Business Machines Corporation | Controlling access to data in a database |
| US11036878B2 (en) | 2014-09-25 | 2021-06-15 | International Business Machines Corporation | Controlling access to data in a database |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5029125A (en) | Method of reading and writing files on nonerasable storage media | |
| US5832493A (en) | Flash file management system | |
| US20020166022A1 (en) | Access control method, access control apparatus, and computer-readable memory storing access control program | |
| JPS63244243A (ja) | フアイルをオープンする方法 | |
| US20050270930A1 (en) | Disk drive, control method thereof and disk-falsification detection method | |
| US20060085487A1 (en) | Computer for storage device and method of control for storage device | |
| JPS6369066A (ja) | 再書き込み不可媒体上のデ−タ修正方式 | |
| JPH07253894A (ja) | 共有記憶装置 | |
| JPH02257340A (ja) | 仮想コピーファイル方式 | |
| US20060090042A1 (en) | Storage system | |
| US8909875B1 (en) | Methods and apparatus for storing a new version of an object on a content addressable storage system | |
| US6816958B2 (en) | Information processing system | |
| JPH0322046A (ja) | 追記型記憶媒体を用いたファイルの管理方法 | |
| JP3818130B2 (ja) | データ管理方法及び装置及びデータ管理プログラム及びデータ管理プログラムを格納した記憶媒体 | |
| JPH05113920A (ja) | フアイル管理方法及びその装置 | |
| JP2004341840A (ja) | バックアップ方法及びそのシステム並びに復元方法 | |
| JP2008090378A (ja) | ハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体 | |
| US20060143423A1 (en) | Storage device, data processing method thereof, data processing program thereof, and data processing system | |
| JP2007128448A (ja) | ファイルシステム及びファイル情報処理方法 | |
| JP2735400B2 (ja) | 非同期入出力制御方式 | |
| US8010741B1 (en) | Methods and apparatus for controlling migration of content | |
| JP3376316B2 (ja) | ディスクアレイ装置及びそれに用いる高速通信方法並びにその制御プログラムを記録した記録媒体 | |
| JPH0357037A (ja) | フアイル管理装置 | |
| JP2000181696A (ja) | プログラム制御装置及びプログラム制御方法 | |
| JPH0235537A (ja) | 多重化ボリューム更新制御方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040608 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040809 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040831 |