JPH09160829A - データ処理方式 - Google Patents
データ処理方式Info
- Publication number
- JPH09160829A JPH09160829A JP7325359A JP32535995A JPH09160829A JP H09160829 A JPH09160829 A JP H09160829A JP 7325359 A JP7325359 A JP 7325359A JP 32535995 A JP32535995 A JP 32535995A JP H09160829 A JPH09160829 A JP H09160829A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- file
- temporary
- management table
- 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 Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Communication Control (AREA)
Abstract
(57)【要約】
【課題】 キャッシュ方式を採用する情報処理システム
において、キャッシュ方式の利点を有効に活用したデー
タ処理を行うことができるようにする。 【解決手段】 キャッシュされるデータを記憶したサー
バマシン1と、自装置にキャッシュしたデータ(キャッ
シュデータ)に基づくプロセスを実行する前にキャッシ
ュデータがサーバマシン1で事後的に更新されているか
否かを確認するクライアントマシン2a〜2cとを備え
た情報報処理システムにおいて、各クライアントマシン
2a〜2cに、改良されたキャッシュ利用手段を設け
る。このキャッシュ利用手段は、上記確認中に現在のキ
ャッシュデータに基づく仮プロセスを実行しておき、確
認の結果、キャッシュデータが更新されていない場合は
仮プロセスの実行結果を有効化させて後続プロセスの実
行をそのまま継続する。一方、キャッシュデータが更新
されていた場合は仮プロセスの実行結果を削除する。
において、キャッシュ方式の利点を有効に活用したデー
タ処理を行うことができるようにする。 【解決手段】 キャッシュされるデータを記憶したサー
バマシン1と、自装置にキャッシュしたデータ(キャッ
シュデータ)に基づくプロセスを実行する前にキャッシ
ュデータがサーバマシン1で事後的に更新されているか
否かを確認するクライアントマシン2a〜2cとを備え
た情報報処理システムにおいて、各クライアントマシン
2a〜2cに、改良されたキャッシュ利用手段を設け
る。このキャッシュ利用手段は、上記確認中に現在のキ
ャッシュデータに基づく仮プロセスを実行しておき、確
認の結果、キャッシュデータが更新されていない場合は
仮プロセスの実行結果を有効化させて後続プロセスの実
行をそのまま継続する。一方、キャッシュデータが更新
されていた場合は仮プロセスの実行結果を削除する。
Description
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えば、低速でし
かアクセス(データの書込または読出、以下同じ)でき
ない装置に記憶されている情報であって頻繁にアクセス
対象となるものを、高速にアクセス可能な他の装置内に
保持しておくことによりレスポンス速度の向上を図る、
いわゆるキャッシュ方式を用いたデータ処理方式に関す
る。
かアクセス(データの書込または読出、以下同じ)でき
ない装置に記憶されている情報であって頻繁にアクセス
対象となるものを、高速にアクセス可能な他の装置内に
保持しておくことによりレスポンス速度の向上を図る、
いわゆるキャッシュ方式を用いたデータ処理方式に関す
る。
【0002】
【従来の技術】磁気ディスクや光磁気ディスク等の外部
記憶装置は、一般に大容量のデータを記憶可能である
が、アクセス速度が遅い。この場合、半導体メモリによ
って高速な内部記憶装置を構成し、この内部記憶装置に
上記外部記憶装置の記憶データのうち頻繁にアクセスさ
れる部分と同じ内容を複写してキャッシュすることによ
り、当該データに対する高速アクセスが可能になる。こ
のような方式は、一般にキャッシュ方式と呼ばれる。キ
ャッシュ方式は、例えば、遠隔地にあるサーバマシンと
クライアントマシンとをネットワークを介して接続した
情報処理システムにおいても適用することができる。
記憶装置は、一般に大容量のデータを記憶可能である
が、アクセス速度が遅い。この場合、半導体メモリによ
って高速な内部記憶装置を構成し、この内部記憶装置に
上記外部記憶装置の記憶データのうち頻繁にアクセスさ
れる部分と同じ内容を複写してキャッシュすることによ
り、当該データに対する高速アクセスが可能になる。こ
のような方式は、一般にキャッシュ方式と呼ばれる。キ
ャッシュ方式は、例えば、遠隔地にあるサーバマシンと
クライアントマシンとをネットワークを介して接続した
情報処理システムにおいても適用することができる。
【0003】すなわち、サーバマシンに保持されている
データと同じ内容をクライアントマシンでキャッシュす
ることにより、低速なネットワークを経由せずに、クラ
イアントマシンに於いてそのデータを利用することが可
能になる。この方式は、サーバマシンとクライアントマ
シンとの間のデータ通信に時間がかかる大規模なネット
ワークでは、特に有効な性能改善手段となる。
データと同じ内容をクライアントマシンでキャッシュす
ることにより、低速なネットワークを経由せずに、クラ
イアントマシンに於いてそのデータを利用することが可
能になる。この方式は、サーバマシンとクライアントマ
シンとの間のデータ通信に時間がかかる大規模なネット
ワークでは、特に有効な性能改善手段となる。
【0004】
【発明が解決しようとする課題】ところで、上記キャッ
シュ方式では、キャッシュされたデータ(キャッシュデ
ータ)の元データ(キャッシュ対象データ)が更新され
た場合、キャッシュした側でのデータは既に古いものと
なり、それに基づくプロセス(データ処理、以下同じ)
の実行結果が矛盾する場合がある。これを防ぐために
は、常に最新のキャッシュデータを利用する必要があ
る。そのため、従来は、キャッシュ対象データを保持し
ている装置に対して、キャッシュデータを使用する装置
の側から常に自装置のキャッシュデータが最新か否かを
問い合わせていた。そして、キャッシュデータが最新の
ものでない場合、キャッシュ対象データを保持している
装置は、要求に応じてキャッシュデータを使用する装置
に対し、最新のデータを送っていた。
シュ方式では、キャッシュされたデータ(キャッシュデ
ータ)の元データ(キャッシュ対象データ)が更新され
た場合、キャッシュした側でのデータは既に古いものと
なり、それに基づくプロセス(データ処理、以下同じ)
の実行結果が矛盾する場合がある。これを防ぐために
は、常に最新のキャッシュデータを利用する必要があ
る。そのため、従来は、キャッシュ対象データを保持し
ている装置に対して、キャッシュデータを使用する装置
の側から常に自装置のキャッシュデータが最新か否かを
問い合わせていた。そして、キャッシュデータが最新の
ものでない場合、キャッシュ対象データを保持している
装置は、要求に応じてキャッシュデータを使用する装置
に対し、最新のデータを送っていた。
【0005】しかし、このような方式では、キャッシュ
データが最新か否かを問い合わせるための時間と、その
結果を得るまでにかなりの時間を要する。例えば、上述
のクライアント・サーバ型の情報処理システムの場合、
クライアントマシンからサーバマシンに対する問い合わ
せと、その結果を送るために、ネットワークを往復する
時間が必要となる。この間、クライアントマシンは停止
することになる。これではキャッシュの効果が著しく低
減する。このような事態を防止する技術として、キャッ
シュデータの最新状態を問い合わせるかどうかをクライ
アントマシンのユーザに選択させたり、あるいはキャッ
シュデータのうち、サーバマシンで一定期間経過したも
のについてのみ最新のものかどうかの問い合わせを行う
などの手法が考えられる。しかしながら、何れの手法
も、レスポンスの低下がないまま、最新のキャッシュデ
ータを利用することが困難であった。
データが最新か否かを問い合わせるための時間と、その
結果を得るまでにかなりの時間を要する。例えば、上述
のクライアント・サーバ型の情報処理システムの場合、
クライアントマシンからサーバマシンに対する問い合わ
せと、その結果を送るために、ネットワークを往復する
時間が必要となる。この間、クライアントマシンは停止
することになる。これではキャッシュの効果が著しく低
減する。このような事態を防止する技術として、キャッ
シュデータの最新状態を問い合わせるかどうかをクライ
アントマシンのユーザに選択させたり、あるいはキャッ
シュデータのうち、サーバマシンで一定期間経過したも
のについてのみ最新のものかどうかの問い合わせを行う
などの手法が考えられる。しかしながら、何れの手法
も、レスポンスの低下がないまま、最新のキャッシュデ
ータを利用することが困難であった。
【0006】そこで、本発明の課題は、キャッシュ方式
を採用する場合に、キャッシュの利点を有効に活用した
データ処理を行う改良された方式を提供することにあ
る。
を採用する場合に、キャッシュの利点を有効に活用した
データ処理を行う改良された方式を提供することにあ
る。
【0007】
【課題を解決するための手段】上記課題を解決するた
め、本発明は、キャッシュ対象データを記憶した第1の
装置と、この第1の装置に記憶されているキャッシュ対
象データの一部又は全部をキャッシュする第2の装置と
を備え、該第2の装置が、自装置にキャッシュしたキャ
ッシュデータに基づくプロセスを実行する前に該キャッ
シュデータが第1の装置で事後的に更新されているか否
かを確認できるように構成されている情報処理システム
のデータ処理方式において、前記第2の装置に、前記確
認に際して現在のキャッシュデータに基づく仮プロセス
を実行しておき、確認の結果、該キャッシュデータが更
新されていない場合は前記仮プロセスの実行結果を実プ
ロセスとして確定させて後続プロセスの実行を継続する
とともに、前記キャッシュデータが更新されていた場合
は前記仮プロセスの実行結果を削除する手段を設けたこ
とを特徴とする。
め、本発明は、キャッシュ対象データを記憶した第1の
装置と、この第1の装置に記憶されているキャッシュ対
象データの一部又は全部をキャッシュする第2の装置と
を備え、該第2の装置が、自装置にキャッシュしたキャ
ッシュデータに基づくプロセスを実行する前に該キャッ
シュデータが第1の装置で事後的に更新されているか否
かを確認できるように構成されている情報処理システム
のデータ処理方式において、前記第2の装置に、前記確
認に際して現在のキャッシュデータに基づく仮プロセス
を実行しておき、確認の結果、該キャッシュデータが更
新されていない場合は前記仮プロセスの実行結果を実プ
ロセスとして確定させて後続プロセスの実行を継続する
とともに、前記キャッシュデータが更新されていた場合
は前記仮プロセスの実行結果を削除する手段を設けたこ
とを特徴とする。
【0008】上記データ処理方式におけるより好ましい
態様として、前記第2の装置は、自装置におけるキャッ
シュデータの取得時刻ないし更新時刻と前記第1の装置
におけるキャッシュ対象データの取得時刻ないし更新時
刻とを照合してその時刻差を検出する時刻差検出手段を
有し、該検出した時刻差が予め定めた基準時間を超える
場合にのみ前記確認を行うように構成されていることを
特徴とする。
態様として、前記第2の装置は、自装置におけるキャッ
シュデータの取得時刻ないし更新時刻と前記第1の装置
におけるキャッシュ対象データの取得時刻ないし更新時
刻とを照合してその時刻差を検出する時刻差検出手段を
有し、該検出した時刻差が予め定めた基準時間を超える
場合にのみ前記確認を行うように構成されていることを
特徴とする。
【0009】前記第2の装置は、さらに、下記要素のい
ずれかを含む。 (1)少なくとも自装置のプロセスが使用するキャッシ
ュデータの識別情報と該キャッシュデータに基づくプロ
セスの状態情報とを対応付けたプロセス管理テーブルを
個々のプロセス毎に有し、このプロセス管理テーブルに
より前記仮プロセスの実行結果が指標される構成。 (2)少なくとも自装置におけるキャッシュデータの元
位置情報、そのキャッシュデータの取得ないし更新の時
刻情報、及びそのキャッシュデータを使用しているプロ
セスの識別情報を各々対応付けたキャッシュ管理テーブ
ルを個々のキャッシュデータ毎に有し、このキャッシュ
管理テーブルにより前記仮プロセスの実行結果が指標さ
れる構成。 (3)自装置のプロセスの実行に伴って変化する変化デ
ータを記憶するファイル、及び少なくとも個々のファイ
ルと当該ファイルが依存するキャッシュデータの識別情
報とを対応付けたファイル管理テーブルを有し、このフ
ァイル管理テーブルにより前記仮プロセスの実行結果が
指標される構成。
ずれかを含む。 (1)少なくとも自装置のプロセスが使用するキャッシ
ュデータの識別情報と該キャッシュデータに基づくプロ
セスの状態情報とを対応付けたプロセス管理テーブルを
個々のプロセス毎に有し、このプロセス管理テーブルに
より前記仮プロセスの実行結果が指標される構成。 (2)少なくとも自装置におけるキャッシュデータの元
位置情報、そのキャッシュデータの取得ないし更新の時
刻情報、及びそのキャッシュデータを使用しているプロ
セスの識別情報を各々対応付けたキャッシュ管理テーブ
ルを個々のキャッシュデータ毎に有し、このキャッシュ
管理テーブルにより前記仮プロセスの実行結果が指標さ
れる構成。 (3)自装置のプロセスの実行に伴って変化する変化デ
ータを記憶するファイル、及び少なくとも個々のファイ
ルと当該ファイルが依存するキャッシュデータの識別情
報とを対応付けたファイル管理テーブルを有し、このフ
ァイル管理テーブルにより前記仮プロセスの実行結果が
指標される構成。
【0010】上記データ処理方式を用いた情報処理シス
テムの動作は以下のようになる。第2の装置側で最新の
キャッシュデータを利用したい場合、まず、自装置内の
キャッシュデータの有無を調べる。もし、キャッシュデ
ータが保持されていない場合には、第1の装置からキャ
ッシュデータを取得する。一方、第2の装置にキャッシ
ュデータが保持されている場合、第2の装置は、第1の
装置に対し、現在のキャッシュデータが最新かどうかの
問い合わせを行う。そして、第1の装置からのレスポン
スを待たずに、キャッシュデータに基づいて仮プロセス
の実行を継続する。古いかもしれない現在のキャッシュ
データに基づいて行うプロセスという意味で、ここでは
仮プロセスと称している。第1の装置からのレスポンス
が返った時点で、もし、この仮プロセスが最新のキャッ
シュデータに基づくものであることが判明した場合、第
2の装置は、正しいキャッシュデータに基づいてプロセ
スを実行していたことになるため、仮プロセスを実プロ
セス、すなわちその実行結果を採用する実際のプロセス
として確定し、そのまま後続プロセスの実行を継続す
る。このようにすれば、キャッシュデータが最新のもの
である場合は、第1の装置への問い合わせのために要し
ていた時間ロスを回復することができ、レスポンスの低
下を防止しつつ、最新のキャッシュデータを利用するこ
とが可能になる。
テムの動作は以下のようになる。第2の装置側で最新の
キャッシュデータを利用したい場合、まず、自装置内の
キャッシュデータの有無を調べる。もし、キャッシュデ
ータが保持されていない場合には、第1の装置からキャ
ッシュデータを取得する。一方、第2の装置にキャッシ
ュデータが保持されている場合、第2の装置は、第1の
装置に対し、現在のキャッシュデータが最新かどうかの
問い合わせを行う。そして、第1の装置からのレスポン
スを待たずに、キャッシュデータに基づいて仮プロセス
の実行を継続する。古いかもしれない現在のキャッシュ
データに基づいて行うプロセスという意味で、ここでは
仮プロセスと称している。第1の装置からのレスポンス
が返った時点で、もし、この仮プロセスが最新のキャッ
シュデータに基づくものであることが判明した場合、第
2の装置は、正しいキャッシュデータに基づいてプロセ
スを実行していたことになるため、仮プロセスを実プロ
セス、すなわちその実行結果を採用する実際のプロセス
として確定し、そのまま後続プロセスの実行を継続す
る。このようにすれば、キャッシュデータが最新のもの
である場合は、第1の装置への問い合わせのために要し
ていた時間ロスを回復することができ、レスポンスの低
下を防止しつつ、最新のキャッシュデータを利用するこ
とが可能になる。
【0011】これに対し、問い合わせの結果、第1の装
置側でキャッシュ対象データが更新されており、現在利
用しているキャッシュデータが既に古くなっていること
が判明した場合、第2の装置は、仮プロセスの実行結果
を削除し、当該プロセスを第1の装置へ問い合わた時点
の状態まで戻す。これにより、プロセスの実行結果の矛
盾を未然に防止することができる。
置側でキャッシュ対象データが更新されており、現在利
用しているキャッシュデータが既に古くなっていること
が判明した場合、第2の装置は、仮プロセスの実行結果
を削除し、当該プロセスを第1の装置へ問い合わた時点
の状態まで戻す。これにより、プロセスの実行結果の矛
盾を未然に防止することができる。
【0012】仮プロセスの実行結果を削除する手法につ
いては、例えばトランザクションプロセッシングにおけ
るロールバックの手法と同一の手法を採ることができ
る。すなわち、第1の装置へ問い合わせを行った時点を
チェックポイントとして、その時点での仮プロセスの状
態を保持しておき、チェックポイント以降に発生したデ
ータ変化等を別レコード化しておくことにより、チェッ
クポイント時点の第2の装置側のプロセス状態を再現す
るようにする。
いては、例えばトランザクションプロセッシングにおけ
るロールバックの手法と同一の手法を採ることができ
る。すなわち、第1の装置へ問い合わせを行った時点を
チェックポイントとして、その時点での仮プロセスの状
態を保持しておき、チェックポイント以降に発生したデ
ータ変化等を別レコード化しておくことにより、チェッ
クポイント時点の第2の装置側のプロセス状態を再現す
るようにする。
【0013】
【発明の実施の形態】次に、図面を参照して本発明の実
施の形態を具体的に説明する。図1は、本発明のデータ
処理方式をクライアント・サーバ型の情報処理システム
に適用する場合の実施形態を示す要部構成図である。図
1に示す構成の情報処理システムは、1台のサーバマシ
ン1に対し、3台のクライアントマシン2a〜2cが通
信回線を介して接続されている。本発明の構成要素との
関係では、第1の装置がサーバマシン1、第2の装置が
クライアントマシン2a,2b,2cとして機能する。
各クライアントマシン2a〜2cは、各々本発明を実施
する上で必要となる同一構成要素を含んでいるので、便
宜上、第1クライアントマシン2aの構成のみを図示し
ている。
施の形態を具体的に説明する。図1は、本発明のデータ
処理方式をクライアント・サーバ型の情報処理システム
に適用する場合の実施形態を示す要部構成図である。図
1に示す構成の情報処理システムは、1台のサーバマシ
ン1に対し、3台のクライアントマシン2a〜2cが通
信回線を介して接続されている。本発明の構成要素との
関係では、第1の装置がサーバマシン1、第2の装置が
クライアントマシン2a,2b,2cとして機能する。
各クライアントマシン2a〜2cは、各々本発明を実施
する上で必要となる同一構成要素を含んでいるので、便
宜上、第1クライアントマシン2aの構成のみを図示し
ている。
【0014】サーバマシン1は、所定のプログラムにし
たがって自装置の各部の動作を統制する中央処理部(図
示省略、以下、CPU)のほか、キャッシュ対象データ
及びその最終更新時刻を格納するデータ保存部10と、
各クライアントマシン2a〜2cとの間でメッセージや
データ等を交換するための通信制御を行う通信制御部1
1と、を有している。
たがって自装置の各部の動作を統制する中央処理部(図
示省略、以下、CPU)のほか、キャッシュ対象データ
及びその最終更新時刻を格納するデータ保存部10と、
各クライアントマシン2a〜2cとの間でメッセージや
データ等を交換するための通信制御を行う通信制御部1
1と、を有している。
【0015】一方、クライアントマシン2aは、所定の
プログラムにしたがって複数のプロセスの実行やロール
バック等を行うCPU(図示省略)のほか、サーバマシ
ン1との間でメッセージやデータ等を交換するための通
信制御を行う通信制御部21、サーバマシン1に格納さ
れているキャッシュ対象データや取得したキャッシュデ
ータの管理を行うキャッシュ管理部22、自装置の複数
のプロセスを管理するプロセス管理部23、及びプロセ
スの実行に伴って変化する自装置内の共有データ等を管
理するファイル管理部24を備えている。なお、図示し
ていないが、CPUの内部メモリ等には、予め定めた基
準時間情報、すなわち現在のキャッシュデータが最新の
ものか否かを判定するために用いる時間情報が設定され
ている。この基準時間情報は、用途に応じて任意に設定
変更が可能であり、サーバマシン1におけるデータ更新
の頻度が比較的低い場合は約24時間、頻度が高い場合
は1時間、・・・のように設定する。
プログラムにしたがって複数のプロセスの実行やロール
バック等を行うCPU(図示省略)のほか、サーバマシ
ン1との間でメッセージやデータ等を交換するための通
信制御を行う通信制御部21、サーバマシン1に格納さ
れているキャッシュ対象データや取得したキャッシュデ
ータの管理を行うキャッシュ管理部22、自装置の複数
のプロセスを管理するプロセス管理部23、及びプロセ
スの実行に伴って変化する自装置内の共有データ等を管
理するファイル管理部24を備えている。なお、図示し
ていないが、CPUの内部メモリ等には、予め定めた基
準時間情報、すなわち現在のキャッシュデータが最新の
ものか否かを判定するために用いる時間情報が設定され
ている。この基準時間情報は、用途に応じて任意に設定
変更が可能であり、サーバマシン1におけるデータ更新
の頻度が比較的低い場合は約24時間、頻度が高い場合
は1時間、・・・のように設定する。
【0016】上記通信制御部21、キャッシュ管理部2
2、プロセス管理部23、及びファイル管理部24は、
各々自装置のCPUにより制御ないし統制され、各々密
接に関わって本発明のデータ処理方式を実現するので、
以下の説明では、各部の特徴的な部分のみを挙げる。
2、プロセス管理部23、及びファイル管理部24は、
各々自装置のCPUにより制御ないし統制され、各々密
接に関わって本発明のデータ処理方式を実現するので、
以下の説明では、各部の特徴的な部分のみを挙げる。
【0017】図2は、クライアントマシン2aによるプ
ロセス、ファイル、キャッシュの管理形態の一例を示す
図である。図2において、プロセステーブル100、フ
ァイルテーブル200、キャッシュテーブル300は、
各クライアントマシン2a〜2cに1つづつ存在するグ
ローバルなテーブルであり、各々自装置内のプロセス、
ファイル、キャッシュデータの識別情報が格納されるよ
うになっている。プロセス管理部23は、上記プロセス
テーブル100と、プロセス管理テーブル110と、少
なくとも一つのプロセス状態テーブル(図示の例では二
つ130,150)とを含んで構成される。
ロセス、ファイル、キャッシュの管理形態の一例を示す
図である。図2において、プロセステーブル100、フ
ァイルテーブル200、キャッシュテーブル300は、
各クライアントマシン2a〜2cに1つづつ存在するグ
ローバルなテーブルであり、各々自装置内のプロセス、
ファイル、キャッシュデータの識別情報が格納されるよ
うになっている。プロセス管理部23は、上記プロセス
テーブル100と、プロセス管理テーブル110と、少
なくとも一つのプロセス状態テーブル(図示の例では二
つ130,150)とを含んで構成される。
【0018】プロセス管理テーブル110は、プロセス
テーブル100上の個々のプロセス#1,#2・・・と
1対1に対応付けられている。各プロセスの一般的な管
理情報、例えばプロセス優先順位などは、このプロセス
管理テーブル110のプロセス管理情報フィールドに格
納される。自装置のCPUが実行するコードメモリ12
0のアドレスは、プロセス管理テーブル110の実行コ
ードフィールドに格納されて管理される。
テーブル100上の個々のプロセス#1,#2・・・と
1対1に対応付けられている。各プロセスの一般的な管
理情報、例えばプロセス優先順位などは、このプロセス
管理テーブル110のプロセス管理情報フィールドに格
納される。自装置のCPUが実行するコードメモリ12
0のアドレスは、プロセス管理テーブル110の実行コ
ードフィールドに格納されて管理される。
【0019】CPUによるプロセスの実行状態、つま
り、CPUレジスタの値やプロセス固有のデータ、ある
いは、スタックであるとかプロセスローカルヒーブなど
を格納するプロセスデータメモリ140,160は、各
々対応するプロセス状態テーブル130,150により
管理され、それがプロセス管理テーブル110の基本プ
ロセス状態フィールドにより指し示される。プロセス状
態テーブル130,150には、自装置のCPUのレジ
スタの値を退避しておくためのCPUレジスタ値フィー
ルドと、スタックやローカルヒープなどが格納されたプ
ロセスデータメモリ140,160を指し示すプロセス
固有データフィールドが設けられている。
り、CPUレジスタの値やプロセス固有のデータ、ある
いは、スタックであるとかプロセスローカルヒーブなど
を格納するプロセスデータメモリ140,160は、各
々対応するプロセス状態テーブル130,150により
管理され、それがプロセス管理テーブル110の基本プ
ロセス状態フィールドにより指し示される。プロセス状
態テーブル130,150には、自装置のCPUのレジ
スタの値を退避しておくためのCPUレジスタ値フィー
ルドと、スタックやローカルヒープなどが格納されたプ
ロセスデータメモリ140,160を指し示すプロセス
固有データフィールドが設けられている。
【0020】通常のプロセスの動作のためには、上述の
データ構造が用いられるが、本実施形態の特徴の一つで
ある、プロセス実行のやり直しをサポートするために、
プロセス管理テーブル110には、複数の依存キャッシ
ュフィールドと仮プロセス状態フィールドが設けられて
いる。依存キャッシュフィールドは、仮プロセスを実行
していく場合に依存するキャッシュデータ(依存キャッ
シュ)を指し示すフィールドである。そして、その場合
のプロセス状態テーブル130,150が、プロセス管
理テーブル110の仮プロセス状態フィールドの情報に
よって指し示されるようになっている。これら依存キャ
ッシュフィールド及び仮プロセス状態フィールドは、互
いに対応付けられたテーブル形式になっており、複数の
仮キャッシュフィールドに格納されたキャッシュデータ
に基づいてプロセスが実行されるようになっている。
データ構造が用いられるが、本実施形態の特徴の一つで
ある、プロセス実行のやり直しをサポートするために、
プロセス管理テーブル110には、複数の依存キャッシ
ュフィールドと仮プロセス状態フィールドが設けられて
いる。依存キャッシュフィールドは、仮プロセスを実行
していく場合に依存するキャッシュデータ(依存キャッ
シュ)を指し示すフィールドである。そして、その場合
のプロセス状態テーブル130,150が、プロセス管
理テーブル110の仮プロセス状態フィールドの情報に
よって指し示されるようになっている。これら依存キャ
ッシュフィールド及び仮プロセス状態フィールドは、互
いに対応付けられたテーブル形式になっており、複数の
仮キャッシュフィールドに格納されたキャッシュデータ
に基づいてプロセスが実行されるようになっている。
【0021】ファイル管理部24は、ファイルテーブル
200と、ファイル管理テーブル210とを含んで構成
される。ファイル管理テーブル210は、ファイルテー
ブル200上の個々のファイル#1,#2・・・と1対
1に対応付けられている。ここでいうファイルとは、プ
ロセス間で用いる共有データ、あるいはプロセスによっ
て変化させられ、プロセス終了後も残る共有データの記
憶媒体という意味で使用しており、必ずしもハードディ
スク等のストレージ手段に格納された一般的なファイル
だけを意味しているものではない。
200と、ファイル管理テーブル210とを含んで構成
される。ファイル管理テーブル210は、ファイルテー
ブル200上の個々のファイル#1,#2・・・と1対
1に対応付けられている。ここでいうファイルとは、プ
ロセス間で用いる共有データ、あるいはプロセスによっ
て変化させられ、プロセス終了後も残る共有データの記
憶媒体という意味で使用しており、必ずしもハードディ
スク等のストレージ手段に格納された一般的なファイル
だけを意味しているものではない。
【0022】ファイル管理テーブル210には、当該フ
ァイルを管理するための基本状態を格納するファイル管
理情報フィールドと、実際のデータが格納されるファイ
ルメモリ220を指し示すための基本ファイルフィール
ドが設けられている。また、プロセス実行のやり直しを
サポートするために、依存キャッシュフィールドと、対
応する仮ファイルフィールドの2つのフィールドがテー
ブル形式で設けられている。これらフィールドは、当該
ファイルに対して行われた更新が仮プロセスによる場合
に、その元データを保持するために存在するもので、前
述の依存キャッシュ#1,#2・・・により指し示され
る。また、それにより仮の操作(アクセス等)を受けた
ファイルメモリ220が、仮ファイル#1,#2・・・
として指し示されるようになっている。
ァイルを管理するための基本状態を格納するファイル管
理情報フィールドと、実際のデータが格納されるファイ
ルメモリ220を指し示すための基本ファイルフィール
ドが設けられている。また、プロセス実行のやり直しを
サポートするために、依存キャッシュフィールドと、対
応する仮ファイルフィールドの2つのフィールドがテー
ブル形式で設けられている。これらフィールドは、当該
ファイルに対して行われた更新が仮プロセスによる場合
に、その元データを保持するために存在するもので、前
述の依存キャッシュ#1,#2・・・により指し示され
る。また、それにより仮の操作(アクセス等)を受けた
ファイルメモリ220が、仮ファイル#1,#2・・・
として指し示されるようになっている。
【0023】キャッシュ管理部21は、キャッシュテー
ブル300と、このキャッシュテーブル300上の個々
のキャッシュ#1,#2・・・と1対1に対応付けられ
たキャッシュ管理テーブル310とを含んで構成され
る。キャッシュ管理テーブル310には、キャッシュ状
態フィールドが設けられており、「通常状態」、「取得
中」、「問い合わせ中」の3状態が区別されるようにな
っている。キャッシュデータの元々の格納位置、例え
ば、サーバマシン名とそのサーバマシン上でのファイル
名等は、キャッシュ元位置フィールドに格納されるよう
になっている。キャッシュデータフィールドには、実際
に使用されるキャッシュデータを指し示すように設定さ
れる。また、そのキャッシュデータの、サーバマシン上
での世代を示す更新時刻が更新時刻フィールドに格納さ
れ、また、自装置にキャッシュデータを取得した時刻が
取得時刻フィールドに格納されるようになっている。
ブル300と、このキャッシュテーブル300上の個々
のキャッシュ#1,#2・・・と1対1に対応付けられ
たキャッシュ管理テーブル310とを含んで構成され
る。キャッシュ管理テーブル310には、キャッシュ状
態フィールドが設けられており、「通常状態」、「取得
中」、「問い合わせ中」の3状態が区別されるようにな
っている。キャッシュデータの元々の格納位置、例え
ば、サーバマシン名とそのサーバマシン上でのファイル
名等は、キャッシュ元位置フィールドに格納されるよう
になっている。キャッシュデータフィールドには、実際
に使用されるキャッシュデータを指し示すように設定さ
れる。また、そのキャッシュデータの、サーバマシン上
での世代を示す更新時刻が更新時刻フィールドに格納さ
れ、また、自装置にキャッシュデータを取得した時刻が
取得時刻フィールドに格納されるようになっている。
【0024】あるキャッシュデータが仮データとして使
われ、サーバマシン1に、このキャッシュデータが最新
かどうか問い合わせているときには、仮プロセスに対応
するプロセス管理テーブル110の依存キャッシュフィ
ールドは、当該キャッシュデータを指し示すようになる
が、キャッシュ管理テーブル310の被依存ファイル・
プロセスフィールドからは、逆にそのプロセス管理テー
ブル310を指し示して双方向リンクが張られるように
なっている。ファイルが依存している場合も同様に、フ
ァイル管理テーブル210を指し示して双方向リンクが
張られるようになっている。
われ、サーバマシン1に、このキャッシュデータが最新
かどうか問い合わせているときには、仮プロセスに対応
するプロセス管理テーブル110の依存キャッシュフィ
ールドは、当該キャッシュデータを指し示すようになる
が、キャッシュ管理テーブル310の被依存ファイル・
プロセスフィールドからは、逆にそのプロセス管理テー
ブル310を指し示して双方向リンクが張られるように
なっている。ファイルが依存している場合も同様に、フ
ァイル管理テーブル210を指し示して双方向リンクが
張られるようになっている。
【0025】次に、上記情報処理システムにおけるクラ
イアントマシン2aの具体的な動作を図3〜図12を参
照して説明する。図3は、通常状態におけるプロセスと
ファイルの状態説明図である。通常状態の場合は、図3
上段に示されるように、プロセス管理テーブル110内
のプロセス管理情報フィールドにより、プロセスを実行
するCPUコード(コードメモリ120内のコード)と
そのプロセスの固有データ(プロセスデータメモリ14
0内のデータ)が管理される。このとき、プロセス管理
テーブル110内の依存キャッシュフィールド及び仮プ
ロセス状態フィールドは空である。
イアントマシン2aの具体的な動作を図3〜図12を参
照して説明する。図3は、通常状態におけるプロセスと
ファイルの状態説明図である。通常状態の場合は、図3
上段に示されるように、プロセス管理テーブル110内
のプロセス管理情報フィールドにより、プロセスを実行
するCPUコード(コードメモリ120内のコード)と
そのプロセスの固有データ(プロセスデータメモリ14
0内のデータ)が管理される。このとき、プロセス管理
テーブル110内の依存キャッシュフィールド及び仮プ
ロセス状態フィールドは空である。
【0026】また、図3下段に示されるように、ファイ
ル管理テーブル210の基本ファイルフィールドによ
り、共有データ(ファイルメモリ220内のデータ)が
管理される。この場合の、ファイル管理テーブル210
内の依存キャッシュフィールド及び仮ファイルフィール
ドは空であり、実際のファイルメモリ230は、ファイ
ル管理テーブル210の基本ファイルフィールドにより
指し示される。自装置におけるキャッシュデータは、キ
ャッシュテーブル310のキャッシュデータフィールド
に格納されるようになるが、初期状態では空である。
ル管理テーブル210の基本ファイルフィールドによ
り、共有データ(ファイルメモリ220内のデータ)が
管理される。この場合の、ファイル管理テーブル210
内の依存キャッシュフィールド及び仮ファイルフィール
ドは空であり、実際のファイルメモリ230は、ファイ
ル管理テーブル210の基本ファイルフィールドにより
指し示される。自装置におけるキャッシュデータは、キ
ャッシュテーブル310のキャッシュデータフィールド
に格納されるようになるが、初期状態では空である。
【0027】ここで、例えば、クライアントマシン2a
における、あるプロセスAが、サーバマシン1内のある
データ「foo:/data/specl」をアクセス
する場合の状態を、図4を参照して説明する。
における、あるプロセスAが、サーバマシン1内のある
データ「foo:/data/specl」をアクセス
する場合の状態を、図4を参照して説明する。
【0028】この場合、クライアントマシン2aは、ま
ずキャッシュテーブル300を検索し、当該データ「f
oo:/data/specl」がキャッシュされてい
るか否かを調べる。キャッシュされていない場合は、通
信制御部21を介してサーバマシン1へそのデータ取得
のためのメッセージを送出する。このとき、キャッシュ
管理テーブル310が新規作成され、そのキャッシュ状
態フィールドは「取得中」に設定される。また、キャッ
シュ元位置フィールドは、「foo:/data/sp
ecl」に、被依存ファイル・プロセスフィールドは、
「プロセスA」に設定される。ここで作成されたキャッ
シュデータをキャッシュAとする。プロセスAに関する
プロセス管理テーブル110内の基本プロセス状態フィ
ールドは「ブロック中」となる。
ずキャッシュテーブル300を検索し、当該データ「f
oo:/data/specl」がキャッシュされてい
るか否かを調べる。キャッシュされていない場合は、通
信制御部21を介してサーバマシン1へそのデータ取得
のためのメッセージを送出する。このとき、キャッシュ
管理テーブル310が新規作成され、そのキャッシュ状
態フィールドは「取得中」に設定される。また、キャッ
シュ元位置フィールドは、「foo:/data/sp
ecl」に、被依存ファイル・プロセスフィールドは、
「プロセスA」に設定される。ここで作成されたキャッ
シュデータをキャッシュAとする。プロセスAに関する
プロセス管理テーブル110内の基本プロセス状態フィ
ールドは「ブロック中」となる。
【0029】サーバマシン1は、クライアントマシン2
aからの、データ取得のためのメッセージを受信した
ら、そのデータ「foo:/data/specl」
と、そのデータの更新時刻、また、どの取得要求に対す
るメッセージかを区別するために元データをクライアン
トマシン2aへと送り返す。
aからの、データ取得のためのメッセージを受信した
ら、そのデータ「foo:/data/specl」
と、そのデータの更新時刻、また、どの取得要求に対す
るメッセージかを区別するために元データをクライアン
トマシン2aへと送り返す。
【0030】サーバマシン1からデータ等を受信したク
ライアントマシン2aは、まず、キャッシュテーブル3
00を検索し、そのデータがどのキャッシュに対する取
得データなのかを判断する。そして、図5に示すよう
に、見つかったキャッシュAに対応するキャッシュ管理
テーブル310のキャッシュ状態フィールドを「通常状
態」に設定するとともに、キャッシュデータフィールド
がその取得データを指し示すように設定する。また、更
新時刻フィールドに更新時刻を設定する。そして、被依
存ファイル・プロセスフィールドに格納されている、ブ
ロック中のプロセスを叩き起こして、プロセスAを続行
させる。
ライアントマシン2aは、まず、キャッシュテーブル3
00を検索し、そのデータがどのキャッシュに対する取
得データなのかを判断する。そして、図5に示すよう
に、見つかったキャッシュAに対応するキャッシュ管理
テーブル310のキャッシュ状態フィールドを「通常状
態」に設定するとともに、キャッシュデータフィールド
がその取得データを指し示すように設定する。また、更
新時刻フィールドに更新時刻を設定する。そして、被依
存ファイル・プロセスフィールドに格納されている、ブ
ロック中のプロセスを叩き起こして、プロセスAを続行
させる。
【0031】もし、プロセスAが停止している状態のと
きに、ほかのプロセスが同じデータ「foo:/dat
a/specl」をアクセスした場合には、キャッシュ
Aに対応するキャッシュ管理テーブル310の被依存フ
ァイル・プロセスフィールドにそのプロセスが追加され
る。そして、サーバマシン1からキャッシュデータを受
信したときにそのプロセスが一緒に叩き起こされる。
きに、ほかのプロセスが同じデータ「foo:/dat
a/specl」をアクセスした場合には、キャッシュ
Aに対応するキャッシュ管理テーブル310の被依存フ
ァイル・プロセスフィールドにそのプロセスが追加され
る。そして、サーバマシン1からキャッシュデータを受
信したときにそのプロセスが一緒に叩き起こされる。
【0032】さて、このように一度キャッシュAのデー
タ「foo:/data/specl」を、後になって
他のプロセスBからアクセスする場合の状態を図6を参
照して説明する。この場合、クライアントマシン2a
は、まず、キャッシュテーブル300を検索し、当該デ
ータがキャッシュAでキャッシュされていることを知
る。ここで、現在時刻と、そのキャッシュ管理テーブル
310の取得時刻が比較され、前述の基準時間情報に照
らしてより最近に取得したことが判明した場合には、サ
ーバマシン1での更新の可能性は低いため、キャッシュ
データはそのまま利用され、プロセスBは、そのまま続
行される。
タ「foo:/data/specl」を、後になって
他のプロセスBからアクセスする場合の状態を図6を参
照して説明する。この場合、クライアントマシン2a
は、まず、キャッシュテーブル300を検索し、当該デ
ータがキャッシュAでキャッシュされていることを知
る。ここで、現在時刻と、そのキャッシュ管理テーブル
310の取得時刻が比較され、前述の基準時間情報に照
らしてより最近に取得したことが判明した場合には、サ
ーバマシン1での更新の可能性は低いため、キャッシュ
データはそのまま利用され、プロセスBは、そのまま続
行される。
【0033】見つかったキャッシュAのキャッシュ管理
テーブル310の取得時刻が、サーバマシン1での更新
可能性があるものである場合、すなわち、基準時間情報
と比較した結果、時間差が大きい場合は、本実施形態の
特徴の一つである仮プロセスが実行される。このとき、
キャッシュ管理テーブル310のキャッシュ状態フィー
ルドは「問い合わせ中」に設定され、問い合わせメッセ
ージがサーバマシン1へと送出される。この問い合わせ
メッセージには、キャッシュ元位置の情報のほかに、更
新時刻等が含まれる。また、被依存ファイル・プロセス
フィールドには、仮プロセスの識別情報(プロセスB)
が設定される。
テーブル310の取得時刻が、サーバマシン1での更新
可能性があるものである場合、すなわち、基準時間情報
と比較した結果、時間差が大きい場合は、本実施形態の
特徴の一つである仮プロセスが実行される。このとき、
キャッシュ管理テーブル310のキャッシュ状態フィー
ルドは「問い合わせ中」に設定され、問い合わせメッセ
ージがサーバマシン1へと送出される。この問い合わせ
メッセージには、キャッシュ元位置の情報のほかに、更
新時刻等が含まれる。また、被依存ファイル・プロセス
フィールドには、仮プロセスの識別情報(プロセスB)
が設定される。
【0034】このとき、仮プロセスBの現在のCPUレ
ジスタの値が基本プロセス状態フィールドで指し示され
るプロセス状態テーブル130のCPUレジスタ値フィ
ールドに保存され、プロセス状態テーブル150及びプ
ロセスデータメモリ160が複製され、プロセス管理テ
ーブル110の仮プロセス状態フィールドにより指し示
される。依存キャッシュフィールドは、問い合わせ中の
キャッシュAを指し示す。そして、CPUは、仮プロセ
ス状態フィールドで指し示されるプロセス状態テーブル
150及びプロセスデータメモリ160を使って仮プロ
セスBの実行を継続する。
ジスタの値が基本プロセス状態フィールドで指し示され
るプロセス状態テーブル130のCPUレジスタ値フィ
ールドに保存され、プロセス状態テーブル150及びプ
ロセスデータメモリ160が複製され、プロセス管理テ
ーブル110の仮プロセス状態フィールドにより指し示
される。依存キャッシュフィールドは、問い合わせ中の
キャッシュAを指し示す。そして、CPUは、仮プロセ
ス状態フィールドで指し示されるプロセス状態テーブル
150及びプロセスデータメモリ160を使って仮プロ
セスBの実行を継続する。
【0035】仮プロセスB、つまりプロセス管理テーブ
ル110が仮プロセス状態を持つようなプロセスが、あ
るファイルAに対して更新を行った場合の状態を図7に
示す。この場合の更新は、ファイルオープンシステムコ
ールやMMU(メモリマネジメントユニット)などによ
って検出される。すると、現在のファイルメモリ220
の内容が複製され、ファイルAのファイル管理テーブル
210の仮ファイルフィールドにより、その新たなファ
イルメモリ230が指し示される。依存キャッシュフィ
ールドには、アクセスした仮プロセスBに対応するプロ
セス管理テーブル110の依存キャッシュフィールドが
指し示すキャッシュAが引き継がれる。また、キャッシ
ュAに対応するキャッシュ管理テーブル310の被依存
ファイル・プロセスフィールドには、このファイルAの
ファイル管理テーブル210を指し示すように追加され
る。この動作により、仮プロセスによってファイルメモ
リが更新された場合に、それを取り消すことができるよ
うになる。
ル110が仮プロセス状態を持つようなプロセスが、あ
るファイルAに対して更新を行った場合の状態を図7に
示す。この場合の更新は、ファイルオープンシステムコ
ールやMMU(メモリマネジメントユニット)などによ
って検出される。すると、現在のファイルメモリ220
の内容が複製され、ファイルAのファイル管理テーブル
210の仮ファイルフィールドにより、その新たなファ
イルメモリ230が指し示される。依存キャッシュフィ
ールドには、アクセスした仮プロセスBに対応するプロ
セス管理テーブル110の依存キャッシュフィールドが
指し示すキャッシュAが引き継がれる。また、キャッシ
ュAに対応するキャッシュ管理テーブル310の被依存
ファイル・プロセスフィールドには、このファイルAの
ファイル管理テーブル210を指し示すように追加され
る。この動作により、仮プロセスによってファイルメモ
リが更新された場合に、それを取り消すことができるよ
うになる。
【0036】この状態で、別の、他のプロセスCがファ
イルAを読み取り、または更新する場合の状態を図8に
示す。この状態は、上述のMMUなどによって検出され
る。このときプロセスCは仮プロセスとして実行状態と
なる。つまり、プロセスCの現在状態が、対応するプロ
セス状態テーブル130へ保存され、プロセス状態テー
ブル130とプロセスデータメモリが複製される。そし
て、プロセス管理テーブル110の仮プロセス状態フィ
ールドにより指し示されるようになる。ファイル管理テ
ーブル210の依存キャッシュフィールドには、ファイ
ルAのファイル管理テーブル210の依存キャッシュフ
ィールドが指し示すキャッシュAが引き継がれる。ま
た、キャッシュAのキャッシュ管理テーブル310の被
依存ファイル・プロセスフィールドには、このプロセス
Cのプロセス管理テーブル110を指し示す情報が追加
される。
イルAを読み取り、または更新する場合の状態を図8に
示す。この状態は、上述のMMUなどによって検出され
る。このときプロセスCは仮プロセスとして実行状態と
なる。つまり、プロセスCの現在状態が、対応するプロ
セス状態テーブル130へ保存され、プロセス状態テー
ブル130とプロセスデータメモリが複製される。そし
て、プロセス管理テーブル110の仮プロセス状態フィ
ールドにより指し示されるようになる。ファイル管理テ
ーブル210の依存キャッシュフィールドには、ファイ
ルAのファイル管理テーブル210の依存キャッシュフ
ィールドが指し示すキャッシュAが引き継がれる。ま
た、キャッシュAのキャッシュ管理テーブル310の被
依存ファイル・プロセスフィールドには、このプロセス
Cのプロセス管理テーブル110を指し示す情報が追加
される。
【0037】サーバマシン1は、クライアントマシン2
aからの、問い合わせのメッセージを受信すると、その
メッセージで示されるキャッシュ対象データが更新され
ているかどうかを判定する。もし、問い合わせメッセー
ジ中に含まれる更新時刻が、現在サーバマシン1で保持
しているキャッシュ対象データの更新時刻と同一だった
場合は、当該キャッシュデータ(キャッシュ対象デー
タ)は更新されていない旨を示すメッセージをキャッシ
ュ元位置情報と共にクライアントマシン2aに伝達す
る。
aからの、問い合わせのメッセージを受信すると、その
メッセージで示されるキャッシュ対象データが更新され
ているかどうかを判定する。もし、問い合わせメッセー
ジ中に含まれる更新時刻が、現在サーバマシン1で保持
しているキャッシュ対象データの更新時刻と同一だった
場合は、当該キャッシュデータ(キャッシュ対象デー
タ)は更新されていない旨を示すメッセージをキャッシ
ュ元位置情報と共にクライアントマシン2aに伝達す
る。
【0038】サーバマシン1から更新されていない旨の
通知を受けたクライアントマシン2aは、まず、キャッ
シュテーブル300を検索し、当該キャッシュAを見つ
ける。この場合、キャッシュAが更新されておらず、こ
のキャッシュAに係る仮プロセスは正しいものとなるの
で、仮プロセスを実プロセスとして有効化するための動
作を行う。図9にこの状態を示す。
通知を受けたクライアントマシン2aは、まず、キャッ
シュテーブル300を検索し、当該キャッシュAを見つ
ける。この場合、キャッシュAが更新されておらず、こ
のキャッシュAに係る仮プロセスは正しいものとなるの
で、仮プロセスを実プロセスとして有効化するための動
作を行う。図9にこの状態を示す。
【0039】まず、図最下段に示すように、キャッシュ
Aに対応するキャッシュ管理テーブル310のキャッシ
ュ状態フィールドが「通常状態」に設定され、取得時刻
フィールドが現在の時刻に設定される。また、被依存フ
ァイル・プロセスフィールドが指し示す全てのファイル
及びプロセスについて以下の動作が行われる。
Aに対応するキャッシュ管理テーブル310のキャッシ
ュ状態フィールドが「通常状態」に設定され、取得時刻
フィールドが現在の時刻に設定される。また、被依存フ
ァイル・プロセスフィールドが指し示す全てのファイル
及びプロセスについて以下の動作が行われる。
【0040】仮プロセスB,Cにおいては、当該プロセ
ス管理テーブル110の基本プロセス状態フィールドが
指し示すプロセス状態テーブル130、及びそこから示
されるプロセスデータメモリ140が削除され、基本プ
ロセス状態フィールドは、仮プロセス状態フィールドが
指し示すプロセス状態テーブルを示すように修正され
る。また、該当する依存キャッシュフィールド及び仮プ
ロセス状態フィールドのデータは削除され、その仮プロ
セスB,Cは、仮実行状態でなく、通常の実行状態、す
なわち実プロセスとして確定される。
ス管理テーブル110の基本プロセス状態フィールドが
指し示すプロセス状態テーブル130、及びそこから示
されるプロセスデータメモリ140が削除され、基本プ
ロセス状態フィールドは、仮プロセス状態フィールドが
指し示すプロセス状態テーブルを示すように修正され
る。また、該当する依存キャッシュフィールド及び仮プ
ロセス状態フィールドのデータは削除され、その仮プロ
セスB,Cは、仮実行状態でなく、通常の実行状態、す
なわち実プロセスとして確定される。
【0041】仮の更新を受けたファイルAについては、
図中段に示すように、当該ファイル管理テーブル210
の基本ファイルフィールドが指し示すファイルメモリ2
20が削除され、ファイル管理テーブル210の基本フ
ァイルフィールドには、仮ファイルフィールドが指し示
すファイルメモリを示すように修正される。また、依存
キャッシュフィールド及び仮ファイルフィールドのデー
タは削除される。以上のようにして、キャッシュAに係
るファイルとプロセスが通常の状態に設定された後、キ
ャッシュ管理テーブル310の被依存ファイル・プロセ
スフィールド内のデータが全て削除される。
図中段に示すように、当該ファイル管理テーブル210
の基本ファイルフィールドが指し示すファイルメモリ2
20が削除され、ファイル管理テーブル210の基本フ
ァイルフィールドには、仮ファイルフィールドが指し示
すファイルメモリを示すように修正される。また、依存
キャッシュフィールド及び仮ファイルフィールドのデー
タは削除される。以上のようにして、キャッシュAに係
るファイルとプロセスが通常の状態に設定された後、キ
ャッシュ管理テーブル310の被依存ファイル・プロセ
スフィールド内のデータが全て削除される。
【0042】一方、サーバマシン1がクライアントマシ
ン2aから問い合わせメッセージを受信した際に、問い
合わせメッセージ中に含まれる更新時刻よりもサーバマ
シン1で保持しているキャッシュ対象データの更新時刻
が後の場合、キャッシュ対象データは、他のクライアン
トマシン等によって更新を受けたことを意味する。この
場合、サーバマシン1は、その更新されたキャッシュ対
象データや最終更新時刻と共に、更新されている旨のメ
ッセージをクライアントマシン2aに伝達する。
ン2aから問い合わせメッセージを受信した際に、問い
合わせメッセージ中に含まれる更新時刻よりもサーバマ
シン1で保持しているキャッシュ対象データの更新時刻
が後の場合、キャッシュ対象データは、他のクライアン
トマシン等によって更新を受けたことを意味する。この
場合、サーバマシン1は、その更新されたキャッシュ対
象データや最終更新時刻と共に、更新されている旨のメ
ッセージをクライアントマシン2aに伝達する。
【0043】サーバマシン1から、データが更新された
旨のメッセージと更新されたキャッシュ対象データ等を
受け取ったクライアントマシン2aは、まずキャッシュ
テーブル300を検索し、該当キャッシュAを見つけ
る。この場合、サーバマシン1にてキャッシュ対象デー
タが更新され、キャッシュAに関わる仮プロセスの実行
結果が正しくないことになるので、その取消動作が行わ
れる。図10は、この状態を示す図である。
旨のメッセージと更新されたキャッシュ対象データ等を
受け取ったクライアントマシン2aは、まずキャッシュ
テーブル300を検索し、該当キャッシュAを見つけ
る。この場合、サーバマシン1にてキャッシュ対象デー
タが更新され、キャッシュAに関わる仮プロセスの実行
結果が正しくないことになるので、その取消動作が行わ
れる。図10は、この状態を示す図である。
【0044】図10最下段を参照すると、キャッシュA
に対応するキャッシュ管理テーブル310のキャッシュ
状態フィールドが「通常状態」に設定される。また、キ
ャッシュデータフィールドが示した古いキャッシュメモ
リ320は削除され、新たに取得したキャッシュデータ
を示すように更新される。更新時刻フィールドは、取得
したキャッシュデータの最終更新時刻に設定される。取
得時刻フィールドは、取得した現在の時刻に設定され
る。そして、被依存ファイル・プロセスフィールドが示
す全てのファイル及びプロセスについて、実行の取り消
しを行うために、以下の動作が行われる。
に対応するキャッシュ管理テーブル310のキャッシュ
状態フィールドが「通常状態」に設定される。また、キ
ャッシュデータフィールドが示した古いキャッシュメモ
リ320は削除され、新たに取得したキャッシュデータ
を示すように更新される。更新時刻フィールドは、取得
したキャッシュデータの最終更新時刻に設定される。取
得時刻フィールドは、取得した現在の時刻に設定され
る。そして、被依存ファイル・プロセスフィールドが示
す全てのファイル及びプロセスについて、実行の取り消
しを行うために、以下の動作が行われる。
【0045】仮プロセスB,Cにおいては、図10上段
に示すように、対応するプロセス管理テーブル110の
仮プロセス状態フィールドが示すプロセス状態テーブル
130、及びそこから示されるプロセスデータメモリ1
40の情報が削除される。また、CPUレジスタ値フィ
ールドは、基本プロセス状態フィールドが示すプロセス
状態構造130のCPUレジスタ値に戻される。そし
て、依存キャッシュフィールド及び仮プロセス状態フィ
ールド内のデータは削除される。
に示すように、対応するプロセス管理テーブル110の
仮プロセス状態フィールドが示すプロセス状態テーブル
130、及びそこから示されるプロセスデータメモリ1
40の情報が削除される。また、CPUレジスタ値フィ
ールドは、基本プロセス状態フィールドが示すプロセス
状態構造130のCPUレジスタ値に戻される。そし
て、依存キャッシュフィールド及び仮プロセス状態フィ
ールド内のデータは削除される。
【0046】仮の更新を受けたファイルAについては、
図10中段に示すように、当該ファイル管理テーブル2
10の仮ファイルフィールドが示すファイルメモリ22
0の情報が削除され、依存キャッシュフィールド及び仮
ファイルフィールドのデータが削除される。以上のよう
にして、キャッシュAに関わるファイルとプロセスが以
前の状態に戻された後、キャッシュ管理テーブル310
の被依存ファイル・プロセスフィールドのデータが全て
削除される。
図10中段に示すように、当該ファイル管理テーブル2
10の仮ファイルフィールドが示すファイルメモリ22
0の情報が削除され、依存キャッシュフィールド及び仮
ファイルフィールドのデータが削除される。以上のよう
にして、キャッシュAに関わるファイルとプロセスが以
前の状態に戻された後、キャッシュ管理テーブル310
の被依存ファイル・プロセスフィールドのデータが全て
削除される。
【0047】なお、以上の説明は、ただ一つのキャッシ
ュ(キャッシュA)に関る仮プロセスの実行とその取消
しの場合の例であったが、仮プロセスが別のキャッシュ
を使用したり、あるいは、仮プロセスとは別のプロセス
が別のキャッシュを使用しようとして仮プロセスになっ
た後、これら仮プロセス同士が同じファイルにアクセス
した場合には、複数のキャッシュに依存したファイルや
プロセスが存在することになる。例えば、キャッシュB
に依存しているプロセスDが、キャッシュCに依存して
いるファイルBを読み取るような場合、プロセスDのプ
ロセス管理テーブル110には、新たな依存キャッシュ
フィールドと仮プロセス状態フィールドが作成され、プ
ロセスの現在の状態が複製される。また、新たに作られ
た仮プロセス状態フィールドがそれを指し示し、さら
に、新たに作られた依存キャッシュフィールドはキャッ
シュCを示すようになる。つまり、このプロセスDは、
キャッシュBに依存して仮実行している上に、キャッシ
ュCに依存して仮実行することになる。ファイルの場合
も同様に、複数のキャッシュに対して依存を持つことに
なる。図11上段は、この状態を示すものである。
ュ(キャッシュA)に関る仮プロセスの実行とその取消
しの場合の例であったが、仮プロセスが別のキャッシュ
を使用したり、あるいは、仮プロセスとは別のプロセス
が別のキャッシュを使用しようとして仮プロセスになっ
た後、これら仮プロセス同士が同じファイルにアクセス
した場合には、複数のキャッシュに依存したファイルや
プロセスが存在することになる。例えば、キャッシュB
に依存しているプロセスDが、キャッシュCに依存して
いるファイルBを読み取るような場合、プロセスDのプ
ロセス管理テーブル110には、新たな依存キャッシュ
フィールドと仮プロセス状態フィールドが作成され、プ
ロセスの現在の状態が複製される。また、新たに作られ
た仮プロセス状態フィールドがそれを指し示し、さら
に、新たに作られた依存キャッシュフィールドはキャッ
シュCを示すようになる。つまり、このプロセスDは、
キャッシュBに依存して仮実行している上に、キャッシ
ュCに依存して仮実行することになる。ファイルの場合
も同様に、複数のキャッシュに対して依存を持つことに
なる。図11上段は、この状態を示すものである。
【0048】このように複数のキャッシュに依存してい
るプロセスやファイルに対し、動作の取消しや仮プロセ
スの実行結果の有効化を行う場合の動作は、例えば以下
のようになる。プロセスDがキャッシュCに依存し、さ
らにキャッシュCに依存している場合に、キャッシュB
による仮プロセスの実行結果を取り消す場合には、図1
1下段に示すように、キャッシュBに関るプロセス及び
キャッシュCに関るプロセスの両方の実行結果が無効に
なる。この場合、プロセス管理テーブル110が指し示
す基本プロセス状態フィールドのプロセス状態にしたが
ってプロセスが実行されるようになる。
るプロセスやファイルに対し、動作の取消しや仮プロセ
スの実行結果の有効化を行う場合の動作は、例えば以下
のようになる。プロセスDがキャッシュCに依存し、さ
らにキャッシュCに依存している場合に、キャッシュB
による仮プロセスの実行結果を取り消す場合には、図1
1下段に示すように、キャッシュBに関るプロセス及び
キャッシュCに関るプロセスの両方の実行結果が無効に
なる。この場合、プロセス管理テーブル110が指し示
す基本プロセス状態フィールドのプロセス状態にしたが
ってプロセスが実行されるようになる。
【0049】また、プロセスDがキャッシュBに依存
し、さらにキャッシュCに依存している場合に、キャッ
シュBによる仮プロセスの実行結果が正しいものであっ
た場合には、図12に示すように、現在の基本プロセス
状態のプロセス状態が削除され、キャッシュBによる仮
プロセス状態が基本プロセス状態に設定される。また、
キャッシュBに関る依存キャッシュフィールド及び仮プ
ロセス状態フィールドが削除され、このプロセスDは、
キャッシュCにのみ依存してプロセスが実行されている
状態になる。このようにして、複数のキャッシュに依存
している場合にでもプロセスの実行を正しくやり直すこ
とが可能となる。
し、さらにキャッシュCに依存している場合に、キャッ
シュBによる仮プロセスの実行結果が正しいものであっ
た場合には、図12に示すように、現在の基本プロセス
状態のプロセス状態が削除され、キャッシュBによる仮
プロセス状態が基本プロセス状態に設定される。また、
キャッシュBに関る依存キャッシュフィールド及び仮プ
ロセス状態フィールドが削除され、このプロセスDは、
キャッシュCにのみ依存してプロセスが実行されている
状態になる。このようにして、複数のキャッシュに依存
している場合にでもプロセスの実行を正しくやり直すこ
とが可能となる。
【0050】以上、詳細に説明したように、本実施形態
の上記構成及び動作によって、クライアントマシン2a
側で最新のキャッシュデータをレスポンスの低下なく有
効に利用することができる。上述の実施形態は、特に、
サーバマシンとクライアントマシン間のデータ伝達に時
間がかかる情報処理システム、サーバマシン側でのデー
タ更新の頻度がクライアントマシン側でのデータ参照の
頻度よりも低い情報処理システム、あるいはサーバマシ
ン側でデータ更新があった旨をクライアントマシン側で
知りにくい情報処理システムにおいて特に効果的とな
る。
の上記構成及び動作によって、クライアントマシン2a
側で最新のキャッシュデータをレスポンスの低下なく有
効に利用することができる。上述の実施形態は、特に、
サーバマシンとクライアントマシン間のデータ伝達に時
間がかかる情報処理システム、サーバマシン側でのデー
タ更新の頻度がクライアントマシン側でのデータ参照の
頻度よりも低い情報処理システム、あるいはサーバマシ
ン側でデータ更新があった旨をクライアントマシン側で
知りにくい情報処理システムにおいて特に効果的とな
る。
【0051】なお、本発明は、上述のような情報処理シ
ステムに適用することができるほか、第1の装置を磁気
ディスク装置等の外部記憶装置、第2の装置を内部記憶
装置とする情報記憶手段にも同様に適用できるものであ
る。
ステムに適用することができるほか、第1の装置を磁気
ディスク装置等の外部記憶装置、第2の装置を内部記憶
装置とする情報記憶手段にも同様に適用できるものであ
る。
【0052】
【発明の効果】以上の説明から明らかなように、本発明
によれば、キャッシュ方式を採用する場合に、レスポン
スを低下させることなく最新のキャッシュデータを利用
することができ、キャッシュ方式の利点を最大限に活用
したデータ処理が可能となる。
によれば、キャッシュ方式を採用する場合に、レスポン
スを低下させることなく最新のキャッシュデータを利用
することができ、キャッシュ方式の利点を最大限に活用
したデータ処理が可能となる。
【図1】本発明のデータ処理方式の一実施形態である情
報処理システムの要部構成図。
報処理システムの要部構成図。
【図2】本実施形態によるクライアントマシンによるプ
ロセス、ファイル、キャッシュの管理形態の一例を示す
図。
ロセス、ファイル、キャッシュの管理形態の一例を示す
図。
【図3】本実施形態による、通常状態でのプロセスとフ
ァイルの状態説明図。
ァイルの状態説明図。
【図4】本実施形態による、クライアントマシンのプロ
セスAがサーバマシン内のデータ「foo:/data
/specl」をアクセスする場合の状態説明図。
セスAがサーバマシン内のデータ「foo:/data
/specl」をアクセスする場合の状態説明図。
【図5】本実施形態において、サーバマシンからデータ
等を受信した場合の、クライアントマシンによるプロセ
ス及びキャッシュデータの管理状態を示す説明図。
等を受信した場合の、クライアントマシンによるプロセ
ス及びキャッシュデータの管理状態を示す説明図。
【図6】本実施形態において、あるプロセスAで使用し
たキャッシュデータを、後になって他のプロセスBから
アクセスする場合の状態説明図。
たキャッシュデータを、後になって他のプロセスBから
アクセスする場合の状態説明図。
【図7】本実施形態において、仮プロセスBが、あるフ
ァイルAに対して更新を行った場合の状態を示す説明
図。
ァイルAに対して更新を行った場合の状態を示す説明
図。
【図8】本実施形態において、あるファイルAに対して
更新を行った場合の状態で、別の、他のプロセスCがフ
ァイルAを読み取り、または更新する場合の状態を示す
説明図。
更新を行った場合の状態で、別の、他のプロセスCがフ
ァイルAを読み取り、または更新する場合の状態を示す
説明図。
【図9】本実施形態において、キャッシュデータが更新
されていない旨の通知を受けたクライアントマシンが、
仮プロセスを実プロセスとして有効化する場合の動作状
態を示す説明図。
されていない旨の通知を受けたクライアントマシンが、
仮プロセスを実プロセスとして有効化する場合の動作状
態を示す説明図。
【図10】本実施形態において、キャッシュデータが更
新された旨の通知を受けたクライアントマシンが、仮プ
ロセスの実行結果の取消動作を行う場合の動作状態を示
す説明図。
新された旨の通知を受けたクライアントマシンが、仮プ
ロセスの実行結果の取消動作を行う場合の動作状態を示
す説明図。
【図11】本実施形態において、仮プロセスが別のキャ
ッシュを使用したり、あるいは、仮プロセスとは別のプ
ロセスが別のキャッシュを使用しようとして仮プロセス
になった後、これら仮プロセス同士が同じファイルにア
クセスした場合の説明図。
ッシュを使用したり、あるいは、仮プロセスとは別のプ
ロセスが別のキャッシュを使用しようとして仮プロセス
になった後、これら仮プロセス同士が同じファイルにア
クセスした場合の説明図。
【図12】複数のキャッシュに依存している仮プロセス
をやり直す場合の説明図。
をやり直す場合の説明図。
1 サーバマシン 2a〜2c クライアントマシン 10 サーバマシンのデータ保存部 11 サーバマシンの通信制御部 21 クライアントマシンの通信制御部 22 クライアントマシンのキャッシュ管理部 23 クライアントマシンのキャッシュ管理部 24 クライアントマシンのプロセス管理部 25a,25b クライアントマシンが有するプロセス 100 プロセステーブル 110 プロセス管理テーブル 120 コードメモリ 130,150 プロセス状態テーブル 140,160 プロセスデータメモリ 200 ファイルテーブル 210 ファイル管理テーブル 220,230 ファイルメモリ 300 キャッシュテーブル 310 キャッシュ管理テーブル 320 キャッシュメモリ
Claims (5)
- 【請求項1】 キャッシュされるデータ(以下、キャッ
シュ対象データ)を記憶した第1の装置と、この第1の
装置に記憶されているキャッシュ対象データの一部又は
全部をキャッシュする第2の装置とを備え、該第2の装
置が、自装置にキャッシュしたデータ(以下、キャッシ
ュデータ)に基づくプロセスを実行する前に該キャッシ
ュデータが第1の装置で事後的に更新されているか否か
を確認できるように構成されている情報処理システムの
データ処理方式において、 前記第2の装置に、 前記確認に際して現在のキャッシュデータに基づく仮プ
ロセスを実行しておき、確認の結果、該キャッシュデー
タが更新されていない場合は前記仮プロセスの実行結果
を実プロセスとして確定させて後続プロセスの実行を継
続するとともに、前記キャッシュデータが更新されてい
た場合は前記仮プロセスの実行結果を削除する手段を設
けたことを特徴とするデータ処理方式。 - 【請求項2】 前記第2の装置は、自装置におけるキャ
ッシュデータの取得時刻ないし更新時刻と前記第1の装
置におけるキャッシュ対象データの取得時刻ないし更新
時刻とを照合してその時刻差を検出する時刻差検出手段
を有し、 該検出した時刻差が予め定めた基準時間を超える場合に
のみ前記確認を行うように構成されていることを特徴と
する請求項1記載のデータ処理方式。 - 【請求項3】 前記第2の装置は、少なくとも自装置の
プロセスが使用するキャッシュデータの識別情報と該キ
ャッシュデータに基づくプロセスの状態情報とを対応付
けたプロセス管理テーブルを個々のプロセス毎に有し、
このプロセス管理テーブルにより前記仮プロセスの実行
結果が指標されることを特徴とする請求項1または2記
載のデータ処理方式。 - 【請求項4】 前記第2の装置は、少なくとも自装置に
おけるキャッシュデータの元位置情報、そのキャッシュ
データの取得ないし更新の時刻情報、及びそのキャッシ
ュデータを使用しているプロセスの識別情報を各々対応
付けたキャッシュ管理テーブルを個々のキャッシュデー
タ毎に有し、このキャッシュ管理テーブルにより前記仮
プロセスの実行結果が指標されることを特徴とする請求
項1または2記載のデータ処理方式。 - 【請求項5】 前記第2の装置は、自装置のプロセスの
実行に伴って変化する変化データを記憶する変化データ
記憶媒体(以下、ファイル)、及び少なくとも個々のフ
ァイルと当該ファイルが依存するキャッシュデータの識
別情報とを対応付けたファイル管理テーブルを有し、こ
のファイル管理テーブルにより前記仮プロセスの実行結
果が指標されることを特徴とする請求項1または2記載
のデータ処理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7325359A JPH09160829A (ja) | 1995-12-14 | 1995-12-14 | データ処理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7325359A JPH09160829A (ja) | 1995-12-14 | 1995-12-14 | データ処理方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09160829A true JPH09160829A (ja) | 1997-06-20 |
Family
ID=18175950
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7325359A Pending JPH09160829A (ja) | 1995-12-14 | 1995-12-14 | データ処理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH09160829A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010130361A (ja) * | 2008-11-27 | 2010-06-10 | Kyocera Mita Corp | 画像形成装置 |
| US10051083B2 (en) | 2005-04-15 | 2018-08-14 | Brother Kogyo Kabushiki Kaisha | Communication system, communication device and program |
-
1995
- 1995-12-14 JP JP7325359A patent/JPH09160829A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10051083B2 (en) | 2005-04-15 | 2018-08-14 | Brother Kogyo Kabushiki Kaisha | Communication system, communication device and program |
| US10623527B2 (en) | 2005-04-15 | 2020-04-14 | Brother Kogyo Kabushiki Kaisha | Communication system, communication device and program |
| JP2010130361A (ja) * | 2008-11-27 | 2010-06-10 | Kyocera Mita Corp | 画像形成装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109582686B (zh) | 分布式元数据管理一致性保证方法、装置、系统及应用 | |
| US5140689A (en) | Data recovery system and method of distributed transaction processing system | |
| US7107294B2 (en) | Method and apparatus for interrupting updates to a database to provide read-only access | |
| JP4437870B2 (ja) | 分散型トランザクション処理システムと方法 | |
| JP3490256B2 (ja) | エージェント方式 | |
| US7836162B2 (en) | Transaction processing system and transaction processing method | |
| KR100238925B1 (ko) | 비휘발성 메모리를 갖는 복원 가능 디스크 제어 시스템 | |
| CN111400268B (zh) | 一种分布式持久性内存事务系统的日志管理方法 | |
| EP2378420A1 (en) | Ownership reassignment in a shared-nothing database system | |
| JPH11282821A5 (ja) | ||
| KR20040012812A (ko) | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치 | |
| JPH076063A (ja) | 記憶ダンプ作成方法及びシステム、情報捕捉方法及びシステム、並びに記憶ダンプ提供方法及びシステム | |
| KR20040007546A (ko) | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-로드촉진 방법 및 장치 | |
| US7640276B2 (en) | Backup system, program and backup method | |
| WO2018040167A1 (zh) | 数据缓存方法及装置 | |
| US11269773B2 (en) | Exclusivity in circuitry having a home node providing coherency control | |
| CN115374133B (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
| US5900009A (en) | System and method for accessing records in a cache slot which are associated with a current owner storage element or at least one previous owner storage element | |
| JPH09160829A (ja) | データ処理方式 | |
| JP3866448B2 (ja) | ノード間共用ファイル制御方式 | |
| JP4286857B2 (ja) | ノード間共用ファイル制御方法 | |
| CN115017229B (zh) | 数据库同步方法、装置及电子设备 | |
| JP3555847B2 (ja) | キャッシュメモリの障害処理装置、キャッシュメモリの障害処理方法、マルチプロセッサシステム | |
| US20240143620A1 (en) | Object access based on tracking of objects and replication policies | |
| JP4140750B2 (ja) | Icカード内メモリアクセス制御方法および装置並びにプログラム記憶媒体 |