JPH1097451A - クライアント/サーバ計算機システムにおけるログ・ファイルの最適化方法及び装置 - Google Patents
クライアント/サーバ計算機システムにおけるログ・ファイルの最適化方法及び装置Info
- Publication number
- JPH1097451A JPH1097451A JP9135199A JP13519997A JPH1097451A JP H1097451 A JPH1097451 A JP H1097451A JP 9135199 A JP9135199 A JP 9135199A JP 13519997 A JP13519997 A JP 13519997A JP H1097451 A JPH1097451 A JP H1097451A
- Authority
- JP
- Japan
- Prior art keywords
- file
- write
- client
- server
- log
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1443—Transmit or communication errors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 クライアント/サーバ計算機システムにおい
て、切断中のクライアントの処理の間に、ログ・ファイ
ルに効率的にエントリを入力する。 【解決手段】 エンコーダは、切断中処理の間にクライ
アントが実行した書込み処理を記録するために、ログ・
ファイルおよび書込みファイル・テーブルを利用する。
ロギング方法は、異なるファイルに関連する書込みのみ
をログ・ファイルに記録する。エンコード処理モジュー
ルは、ログ・ファイルのファイル・エントリに関連する
最新の連番を含む書込みファイル・テーブルを用いて、
ログ・ファイル内のエントリの状態を追跡する。クライ
アントのサーバとの再接続時に、デコード処理モジュー
ルは、書込みファイル・テーブルによって検出された順
序で、切断期間中に修正されたファイル・データを転送
することによって、正確な時間的な順序でイベントを再
現する。
て、切断中のクライアントの処理の間に、ログ・ファイ
ルに効率的にエントリを入力する。 【解決手段】 エンコーダは、切断中処理の間にクライ
アントが実行した書込み処理を記録するために、ログ・
ファイルおよび書込みファイル・テーブルを利用する。
ロギング方法は、異なるファイルに関連する書込みのみ
をログ・ファイルに記録する。エンコード処理モジュー
ルは、ログ・ファイルのファイル・エントリに関連する
最新の連番を含む書込みファイル・テーブルを用いて、
ログ・ファイル内のエントリの状態を追跡する。クライ
アントのサーバとの再接続時に、デコード処理モジュー
ルは、書込みファイル・テーブルによって検出された順
序で、切断期間中に修正されたファイル・データを転送
することによって、正確な時間的な順序でイベントを再
現する。
Description
【0001】
【発明の属する技術分野】本発明は、サーバまたはネッ
トワークが不動作状態にある間に、クライアント/サー
バ計算機システムにおけるクライアント計算機ステーシ
ョン(client computing station)によって実行される書
込み処理に関する。更に特定すれば、本発明は、サーバ
またはネットワークの使用不能期間にログ・ファイルに
入力されるエントリ数を減らすことによる、クライアン
ト内に保持されるログ・ファイルの管理に関するもので
ある。
トワークが不動作状態にある間に、クライアント/サー
バ計算機システムにおけるクライアント計算機ステーシ
ョン(client computing station)によって実行される書
込み処理に関する。更に特定すれば、本発明は、サーバ
またはネットワークの使用不能期間にログ・ファイルに
入力されるエントリ数を減らすことによる、クライアン
ト内に保持されるログ・ファイルの管理に関するもので
ある。
【0002】
【従来の技術】ネットワーク上におけるクライアント/
サーバ計算機システムでは、この計算機システムのクラ
イアントで作成されたファイル全てをサーバが記憶する
というファイル・システム・アーキテクチャが採用され
ている。このような計算機システムでは、クライアント
上で動作するアプリケーション・プログラムがファイル
にデータを書き込まなければならない場合、ネットワー
クを通じてそのファイル・データをサーバに転送し、サ
ーバが保持するファイルに記憶する。クライアントにロ
ーカル・ディスク・キャッシュが設けられている場合、
データはこのクライアントのローカル・ディスク・キャ
ッシュにも任意に書き込まれる。通常の動作状態の下で
は、このような計算機システムは円滑に動作することが
できる。
サーバ計算機システムでは、この計算機システムのクラ
イアントで作成されたファイル全てをサーバが記憶する
というファイル・システム・アーキテクチャが採用され
ている。このような計算機システムでは、クライアント
上で動作するアプリケーション・プログラムがファイル
にデータを書き込まなければならない場合、ネットワー
クを通じてそのファイル・データをサーバに転送し、サ
ーバが保持するファイルに記憶する。クライアントにロ
ーカル・ディスク・キャッシュが設けられている場合、
データはこのクライアントのローカル・ディスク・キャ
ッシュにも任意に書き込まれる。通常の動作状態の下で
は、このような計算機システムは円滑に動作することが
できる。
【0003】しかしながら、サーバが不動作状態になる
と(即ち、故障する)、またはサーバおよびクライアン
ト間のネットワーク接続が不動作状態となると、クライ
アントは、通常行われているように、ネットワークを通
じて新たなファイル・データをサーバに転送しその中に
記憶することができなくなる。このサーバ使用不能期間
のことを、切断中処理(disonnected operation)とも呼
ぶことにする。
と(即ち、故障する)、またはサーバおよびクライアン
ト間のネットワーク接続が不動作状態となると、クライ
アントは、通常行われているように、ネットワークを通
じて新たなファイル・データをサーバに転送しその中に
記憶することができなくなる。このサーバ使用不能期間
のことを、切断中処理(disonnected operation)とも呼
ぶことにする。
【0004】クライアント/サーバ計算機システムのフ
ォールト・トレラント性(fault-tolerant)を高めるため
には、サーバ使用不能中でも、クライアント上で走らせ
るアプリケーション・プログラムのユーザには、データ
の修正やファイルへの書き込みを可能とすることが望ま
しい。
ォールト・トレラント性(fault-tolerant)を高めるため
には、サーバ使用不能中でも、クライアント上で走らせ
るアプリケーション・プログラムのユーザには、データ
の修正やファイルへの書き込みを可能とすることが望ま
しい。
【0005】サーバ使用不能期間の間、クライアントに
おいてログ・ファイルを作成、維持し、このサーバ使用
不能期間中にクライアントが実行した処理のリストを収
集することができる。ログ・ファイルは、通常、実行さ
れた処理のタイプおよび当該処理に関連するデータを、
処理が実行されたファイルの識別と共に含んでいる。一
旦サーバが再度使用可能となると、クライアントはログ
・ファイルを利用して、サーバ使用不能中に実行された
処理を「再現」即ち「ロール(roll)」することにより、
サーバのファイル・バージョンとクライアントのファイ
ル・バージョンとの間の一貫性を確保しようとする。
おいてログ・ファイルを作成、維持し、このサーバ使用
不能期間中にクライアントが実行した処理のリストを収
集することができる。ログ・ファイルは、通常、実行さ
れた処理のタイプおよび当該処理に関連するデータを、
処理が実行されたファイルの識別と共に含んでいる。一
旦サーバが再度使用可能となると、クライアントはログ
・ファイルを利用して、サーバ使用不能中に実行された
処理を「再現」即ち「ロール(roll)」することにより、
サーバのファイル・バージョンとクライアントのファイ
ル・バージョンとの間の一貫性を確保しようとする。
【0006】サーバ使用不能中のファイル修正(即ちフ
ァイルへのデータの書込み)を伴うクライアント処理
は、特に重要である。従来のログ・ファイル技法は、通
常、線形ログ処理技法(linear logging technique)を使
用し、全てのファイル書込み処理を順次単一のログ・フ
ァイルに入力していく。
ァイルへのデータの書込み)を伴うクライアント処理
は、特に重要である。従来のログ・ファイル技法は、通
常、線形ログ処理技法(linear logging technique)を使
用し、全てのファイル書込み処理を順次単一のログ・フ
ァイルに入力していく。
【0007】
【発明が解決しようとする課題】線形ログ処理技法で
は、1つのファイルに対して実行された各書込み処理を
別個にログ・ファイルに入力していくので、サーバ使用
不能期間が長くなると、ログ・ファイルのサイズが非常
に大きくなるという欠点がある。例えば、クライアント
上でアプリケーションを走らせているユーザが、サーバ
使用不能中に、同一ファイルを1000回修正した場
合、従来の線形ログ処理技法では、ログ・ファイルに1
000個の個別のエントリを作成する。サーバは通常ク
ライアントよりも格段に大きなファイル記憶能力を有す
るように設計されているので、サーバ使用不能期間の
間、クライアントのメモリ/記憶空間は非常に希少な資
源となるため、大きなログ・ファイルは不利である。ロ
グ・ファイルのサイズが大型化し、クライアントのメモ
リ/記憶能力を超過した場合、クライアント上で走らせ
ているアプリケーション・プログラムにユーザが供給す
る新しいデータを処理したり記憶することが、クライア
ントにはもはや不可能となってしまう。したがって、こ
のような状況の下では、サーバが再び使用可能となるま
で、クライアント上の処理を中断しなければならない。
は、1つのファイルに対して実行された各書込み処理を
別個にログ・ファイルに入力していくので、サーバ使用
不能期間が長くなると、ログ・ファイルのサイズが非常
に大きくなるという欠点がある。例えば、クライアント
上でアプリケーションを走らせているユーザが、サーバ
使用不能中に、同一ファイルを1000回修正した場
合、従来の線形ログ処理技法では、ログ・ファイルに1
000個の個別のエントリを作成する。サーバは通常ク
ライアントよりも格段に大きなファイル記憶能力を有す
るように設計されているので、サーバ使用不能期間の
間、クライアントのメモリ/記憶空間は非常に希少な資
源となるため、大きなログ・ファイルは不利である。ロ
グ・ファイルのサイズが大型化し、クライアントのメモ
リ/記憶能力を超過した場合、クライアント上で走らせ
ているアプリケーション・プログラムにユーザが供給す
る新しいデータを処理したり記憶することが、クライア
ントにはもはや不可能となってしまう。したがって、こ
のような状況の下では、サーバが再び使用可能となるま
で、クライアント上の処理を中断しなければならない。
【0008】更に、ログ・ファイル内に入力される各エ
ントリは、クライアントによる処理時間を必要とする。
クライアントが持続的記憶のためにディスク・キャッシ
ュを利用する場合、ログ・ファイルへの各データ書込み
は、ディスクの処理時間周期(period of disk processi
ng time)と関連付けられる。したがって、クライアント
の処理性能を向上させるためには、ログ・ファイル内に
配されるエントリの数を最少に抑える方が有利である。
ントリは、クライアントによる処理時間を必要とする。
クライアントが持続的記憶のためにディスク・キャッシ
ュを利用する場合、ログ・ファイルへの各データ書込み
は、ディスクの処理時間周期(period of disk processi
ng time)と関連付けられる。したがって、クライアント
の処理性能を向上させるためには、ログ・ファイル内に
配されるエントリの数を最少に抑える方が有利である。
【0009】また、ログ・ファイル内に纏められるファ
イル修正の相対的な順序付けを保存することも重要であ
る。例えば、切断中処理の間に、クライアントにおいて
ユーザがファイルBを修正した後にファイルAを修正し
た場合、このファイル修正の相対的な順序を保存するこ
とは重要である。クライアント/サーバ計算機システム
の中には、サーバが各ファイルに対する修正時刻を保持
し、サーバがファイルにデータを書き込むことによって
当該ファイルを修正したときにはいつでも、この修正時
刻を更新するものがある。この修正時刻は、「makefil
e」コンパイル・ユーティリティのような従来のソフト
ウエア・プログラムの多くによって、ファイルの状態を
追跡するために利用されている。
イル修正の相対的な順序付けを保存することも重要であ
る。例えば、切断中処理の間に、クライアントにおいて
ユーザがファイルBを修正した後にファイルAを修正し
た場合、このファイル修正の相対的な順序を保存するこ
とは重要である。クライアント/サーバ計算機システム
の中には、サーバが各ファイルに対する修正時刻を保持
し、サーバがファイルにデータを書き込むことによって
当該ファイルを修正したときにはいつでも、この修正時
刻を更新するものがある。この修正時刻は、「makefil
e」コンパイル・ユーティリティのような従来のソフト
ウエア・プログラムの多くによって、ファイルの状態を
追跡するために利用されている。
【0010】したがって、クライアントは、サーバが再
び使用可能になった後のログ・ファイルの「ローリン
グ」即ち再現の間、切断中処理の間にクライアント上で
ユーザが行ったファイル修正の相対的な順序を正確に反
映した順序で、修正ファイルのデータをサーバに転送し
なければならない。
び使用可能になった後のログ・ファイルの「ローリン
グ」即ち再現の間、切断中処理の間にクライアント上で
ユーザが行ったファイル修正の相対的な順序を正確に反
映した順序で、修正ファイルのデータをサーバに転送し
なければならない。
【0011】
【課題を解決するための手段】本発明によれば、切断さ
れたクライアントの書込み処理中にログ・ファイルに入
力されるエントリ数を減少させる方法によって、上述の
問題を解決した。切断中処理の間にログ・ファイルに入
力されたエントリのファイル名および連番を追跡するた
めに、書込みファイル・テーブルを作成する。現書込み
処理の連番のカウントを保持し、現書込み処理のファイ
ル名および連番を識別するエントリで、ログ・ファイル
をエンコードする。現書込み処理が以前の書込み処理と
同じファイル上で処理されるかどうかの第1条件が検出
され、書込みファイル・テーブル・エントリのみを現書
込み処理に対応する最新連番で更新する。したがって、
ログ・ファイルには、現ファイルに対する追加のエント
リは作成されない。
れたクライアントの書込み処理中にログ・ファイルに入
力されるエントリ数を減少させる方法によって、上述の
問題を解決した。切断中処理の間にログ・ファイルに入
力されたエントリのファイル名および連番を追跡するた
めに、書込みファイル・テーブルを作成する。現書込み
処理の連番のカウントを保持し、現書込み処理のファイ
ル名および連番を識別するエントリで、ログ・ファイル
をエンコードする。現書込み処理が以前の書込み処理と
同じファイル上で処理されるかどうかの第1条件が検出
され、書込みファイル・テーブル・エントリのみを現書
込み処理に対応する最新連番で更新する。したがって、
ログ・ファイルには、現ファイルに対する追加のエント
リは作成されない。
【0012】クライアントがサーバに再接続されたとき
に、切断中処理の間にクライアントによって実行された
書込み処理は、ネットワークを通じてファイル・データ
をサーバに転送しその中に記憶することによって、適切
な連続順序で再現される。切断中処理の正確な順序を保
存するために再現すべきでない処理を一時的に記憶する
ために、据置き書込みリスト(deferred write list)を
作成する。ログ・ファイルからのあらゆる処理対象のエ
ントリに対して、当該ログ・ファイルからのエントリの
連番が、書込みファイル・テーブル内のエントリの連番
と一致しない場合、このエントリを据置き書込みリスト
に入力し、後の時点で再現を行う。
に、切断中処理の間にクライアントによって実行された
書込み処理は、ネットワークを通じてファイル・データ
をサーバに転送しその中に記憶することによって、適切
な連続順序で再現される。切断中処理の正確な順序を保
存するために再現すべきでない処理を一時的に記憶する
ために、据置き書込みリスト(deferred write list)を
作成する。ログ・ファイルからのあらゆる処理対象のエ
ントリに対して、当該ログ・ファイルからのエントリの
連番が、書込みファイル・テーブル内のエントリの連番
と一致しない場合、このエントリを据置き書込みリスト
に入力し、後の時点で再現を行う。
【0013】本発明の別の実施形態において、上述のコ
ンピュータ実装ステップは、ある製造物、即ち、上述の
ステップを実行するための命令のコンピュータ・プログ
ラムを内蔵したコンピュータ記憶媒体として提供され
る。
ンピュータ実装ステップは、ある製造物、即ち、上述の
ステップを実行するための命令のコンピュータ・プログ
ラムを内蔵したコンピュータ記憶媒体として提供され
る。
【0014】本発明の機械実施態様においては、切断さ
れたクライアントの書込み処理の間にログ・ファイルに
入力されたエントリを効率的に再現する装置は、エンコ
ード処理モジュールとデコード処理モジュールとを有す
る。エンコード処理モジュールは、ログ・ファイルの状
態を追跡するために、エントリをログ・ファイルおよび
書込みファイル・テーブルに入力する。エンコード処理
モジュールは、異なるファイルに関連する書込みのみを
ログ・ファイルに記録する。クライアントがサーバに再
接続されたとき、デコード処理モジュールは、切断期間
中に修正されたファイル・データを、書込みファイル・
テーブルによって検出された順序で転送することによっ
て、正確な時間順序でイベントを再現する。デコード処
理モジュールは、ログ・ファイルおよび書込みファイル
・テーブルにアクセスすることによって、書込み処理を
再現する。デコード処理モジュールは、一時的記憶およ
びその後の適切な時点での再現のために、エントリを据
置き書込みリストに入力する。
れたクライアントの書込み処理の間にログ・ファイルに
入力されたエントリを効率的に再現する装置は、エンコ
ード処理モジュールとデコード処理モジュールとを有す
る。エンコード処理モジュールは、ログ・ファイルの状
態を追跡するために、エントリをログ・ファイルおよび
書込みファイル・テーブルに入力する。エンコード処理
モジュールは、異なるファイルに関連する書込みのみを
ログ・ファイルに記録する。クライアントがサーバに再
接続されたとき、デコード処理モジュールは、切断期間
中に修正されたファイル・データを、書込みファイル・
テーブルによって検出された順序で転送することによっ
て、正確な時間順序でイベントを再現する。デコード処
理モジュールは、ログ・ファイルおよび書込みファイル
・テーブルにアクセスすることによって、書込み処理を
再現する。デコード処理モジュールは、一時的記憶およ
びその後の適切な時点での再現のために、エントリを据
置き書込みリストに入力する。
【0015】本発明の大きな有用性は、切断中処理の間
にクライアントによって保持されるログ・ファイル内の
エントリ数を大幅に減少させることにより、サーバ使用
不能期間中にログ・ファイルによって消費されるメモリ
/記憶空間量を少なくする点にある。このように、本発
明は、サーバが使用不能の間にユーザがクライアント・
ワークステーションにおいて作成したファイル・データ
の効率的な記憶を可能にするものである。
にクライアントによって保持されるログ・ファイル内の
エントリ数を大幅に減少させることにより、サーバ使用
不能期間中にログ・ファイルによって消費されるメモリ
/記憶空間量を少なくする点にある。このように、本発
明は、サーバが使用不能の間にユーザがクライアント・
ワークステーションにおいて作成したファイル・データ
の効率的な記憶を可能にするものである。
【0016】本発明の更に別の有用性は、ログ・ファイ
ルに書き込むエントリ数を減少させることにより、これ
らログ・ファイルへの書込み処理に関連するクライアン
トの処理量を少なくする点にある。
ルに書き込むエントリ数を減少させることにより、これ
らログ・ファイルへの書込み処理に関連するクライアン
トの処理量を少なくする点にある。
【0017】本発明の更に別の有用性は、サーバ使用不
能中に修正されたファイルの相対的順序が、サーバが使
用可能になった後、クライアントのログ・ファイルの
「再現」即ち「ローリング」において保存される点にあ
る。
能中に修正されたファイルの相対的順序が、サーバが使
用可能になった後、クライアントのログ・ファイルの
「再現」即ち「ローリング」において保存される点にあ
る。
【0018】本発明の更に別の有用性は、サーバ・ファ
イル・システムのインプリメンテーションまたはクライ
アント/サーバ間ファイル・システム・プロトコルに修
正を加えることなく、既存のクライアント/サーバ計算
機システムに本発明を組み込み可能な点にある。
イル・システムのインプリメンテーションまたはクライ
アント/サーバ間ファイル・システム・プロトコルに修
正を加えることなく、既存のクライアント/サーバ計算
機システムに本発明を組み込み可能な点にある。
【0019】本発明の上述のおよびその他の特徴、有用
性、ならびに利点は、以下の添付図面に示された本発明
の好適実施例のより特定的な記載から明白となろう。
性、ならびに利点は、以下の添付図面に示された本発明
の好適実施例のより特定的な記載から明白となろう。
【0020】
【発明の実施の形態】ここに記載する本発明の実施例
は、計算機システムにおける論理処理として実施される
ものである。本発明の論理処理は、(1)計算機システ
ム上で実行する一連のコンピュータ実装ステップとし
て、および(2)計算機システム内部の相互接続機械モ
ジュールとして、実施する。実施形態は、本発明を実施
する計算機システムの性能要件によって異なる選択事項
である。したがって、ここに記載する本発明の実施例を
構成する論理処理については、処理、ステップ、または
モジュールというように様々な呼び方をすることとす
る。
は、計算機システムにおける論理処理として実施される
ものである。本発明の論理処理は、(1)計算機システ
ム上で実行する一連のコンピュータ実装ステップとし
て、および(2)計算機システム内部の相互接続機械モ
ジュールとして、実施する。実施形態は、本発明を実施
する計算機システムの性能要件によって異なる選択事項
である。したがって、ここに記載する本発明の実施例を
構成する論理処理については、処理、ステップ、または
モジュールというように様々な呼び方をすることとす
る。
【0021】本発明が用いられる処理環境は、汎用分散
型計算機システム だけでなく単体の計算機システムも
含む。分散型計算機システムでは、汎用コンピュータ、
ワークステーション、またはパーソナル・コンピュータ
が、種々の形態の通信リンクを通じて、クライアント−
サーバ構成で接続され、多くはオブジェクト形状のプロ
グラムおよびデータが、システムの様々なメンバーに利
用可能となっている。
型計算機システム だけでなく単体の計算機システムも
含む。分散型計算機システムでは、汎用コンピュータ、
ワークステーション、またはパーソナル・コンピュータ
が、種々の形態の通信リンクを通じて、クライアント−
サーバ構成で接続され、多くはオブジェクト形状のプロ
グラムおよびデータが、システムの様々なメンバーに利
用可能となっている。
【0022】単体コンピュータまたは汎用ワークステー
ション・コンピュータの要素のいくつかを、図1に示
す。本発明によれば、クライアント・プロセッサ35の
ような、ネットワーク内の遠隔ワークステーションにお
けるユーザは、ネットワークを通じてコンピュータ・サ
ーバ20と通信を行う。サーバ20は、入出力部22、
中央演算装置23、およびメモリ部24を有するプロセ
ッサ21含む。入出力部22は、任意に、キーボード2
5、表示装置またはモニタ26、およびディスク記憶装
置29に接続される。入出力部22は、ネットワーク4
6上で遠隔クライアント・ステーション35と通信する
ための通信アダプタ(図示せず)を含む。
ション・コンピュータの要素のいくつかを、図1に示
す。本発明によれば、クライアント・プロセッサ35の
ような、ネットワーク内の遠隔ワークステーションにお
けるユーザは、ネットワークを通じてコンピュータ・サ
ーバ20と通信を行う。サーバ20は、入出力部22、
中央演算装置23、およびメモリ部24を有するプロセ
ッサ21含む。入出力部22は、任意に、キーボード2
5、表示装置またはモニタ26、およびディスク記憶装
置29に接続される。入出力部22は、ネットワーク4
6上で遠隔クライアント・ステーション35と通信する
ための通信アダプタ(図示せず)を含む。
【0023】アプリケーション・プログラム45は、ク
ライアント・ステーション35上で動作し、サーバ20
によって保持されているファイルのアクセスまたは修正
を行うことができる。本発明の装置および方法を実行す
るコンピュータ・プログラム製造物は、メモリ部24、
またはディスク記憶装置29あるいは同様の記憶媒体
(図示せず)に置くことができ、あるいはクライアント
35が使用する記憶媒体上に置くことも可能である。サ
ーバ20またはクライアント35のいずれかとして使用
可能な計算機システムの例は、Sun Microsystems社が提
供するSPARCシステム(SPARCはSun Microsystems社の商
標である)、IBM社およびその他のIBM互換パーソ
ナル・コンピュータの製造者が提供するパーソナル・コ
ンピュータ、ならびにUNIX(UNIXはX/Open社によって使
用許諾される商標である)、OS/2、HP-UX、AIX、DOS等
(OS/2およびAIXはIBM社の商標である)のオペレー
ティング・システムを走らせるシステムが含まれる。
ライアント・ステーション35上で動作し、サーバ20
によって保持されているファイルのアクセスまたは修正
を行うことができる。本発明の装置および方法を実行す
るコンピュータ・プログラム製造物は、メモリ部24、
またはディスク記憶装置29あるいは同様の記憶媒体
(図示せず)に置くことができ、あるいはクライアント
35が使用する記憶媒体上に置くことも可能である。サ
ーバ20またはクライアント35のいずれかとして使用
可能な計算機システムの例は、Sun Microsystems社が提
供するSPARCシステム(SPARCはSun Microsystems社の商
標である)、IBM社およびその他のIBM互換パーソ
ナル・コンピュータの製造者が提供するパーソナル・コ
ンピュータ、ならびにUNIX(UNIXはX/Open社によって使
用許諾される商標である)、OS/2、HP-UX、AIX、DOS等
(OS/2およびAIXはIBM社の商標である)のオペレー
ティング・システムを走らせるシステムが含まれる。
【0024】図1および図2に示すように、クライアン
ト35およびサーバ20は、ネットワーク46を通じて
通信を行う。ネットワーク46は、クライアント35
に、サーバのディスク29上に保持されているファイル
へのアクセスを与える。逆に、クライアント35も、ネ
ットワーク46を通じて、サーバ上に保持されているフ
ァイルにファイル・データを転送する。
ト35およびサーバ20は、ネットワーク46を通じて
通信を行う。ネットワーク46は、クライアント35
に、サーバのディスク29上に保持されているファイル
へのアクセスを与える。逆に、クライアント35も、ネ
ットワーク46を通じて、サーバ上に保持されているフ
ァイルにファイル・データを転送する。
【0025】クライアント35は、通常、クライアント
35上で走るアプリケーション・プログラム45(図
1)による要求に応答してファイル・データを作成し、
ファイルと関連するデータを記憶する、即ち、書き込
む。ネットワーク接続46が不動作状態であったり、サ
ーバ20が故障していたり、あるいはその他の理由のた
めにサーバ20が使用不能の場合、クライアント35は
ファイル・データをサーバに転送することができない。
以下で説明するが、本発明は、サーバが使用不能である
にも拘わらず、ログ・ファイル、書込みファイル・テー
ブル、および据置き書込みファイルの効率的な使用によ
り、クライアント35がファイル・データをサーバ20
に転送できるようにするものである。
35上で走るアプリケーション・プログラム45(図
1)による要求に応答してファイル・データを作成し、
ファイルと関連するデータを記憶する、即ち、書き込
む。ネットワーク接続46が不動作状態であったり、サ
ーバ20が故障していたり、あるいはその他の理由のた
めにサーバ20が使用不能の場合、クライアント35は
ファイル・データをサーバに転送することができない。
以下で説明するが、本発明は、サーバが使用不能である
にも拘わらず、ログ・ファイル、書込みファイル・テー
ブル、および据置き書込みファイルの効率的な使用によ
り、クライアント35がファイル・データをサーバ20
に転送できるようにするものである。
【0026】図2は、本発明の好適実施例を示す。クラ
イアント35は、書込みファイル・テーブル56、据置
き書込みリスト58、ログ・ファイル50、およびファ
イル・データ52を有する。ファイル・データ・ブロッ
ク52は、クライアント35内に保持される種々のファ
イルを代表し、各ファイルはファイル名のような識別子
を有するものと仮定する。例えば、ファイルA、B、お
よびCがクライアント35上に存在する場合、これらの
ファイルはファイル・データ・ブロック52内に含まれ
ている。
イアント35は、書込みファイル・テーブル56、据置
き書込みリスト58、ログ・ファイル50、およびファ
イル・データ52を有する。ファイル・データ・ブロッ
ク52は、クライアント35内に保持される種々のファ
イルを代表し、各ファイルはファイル名のような識別子
を有するものと仮定する。例えば、ファイルA、B、お
よびCがクライアント35上に存在する場合、これらの
ファイルはファイル・データ・ブロック52内に含まれ
ている。
【0027】前述のように、クライアント35がファイ
ル・データ52の書き込みまたは修正を行う場合、クラ
イアント35は通常このデータをネットワーク46を通
じてサーバ20に送信し、データはサーバ20によって
ファイル・データ54として記憶される。サーバ20は
このファイル・データ54をディスク29(図1)に記
憶する。
ル・データ52の書き込みまたは修正を行う場合、クラ
イアント35は通常このデータをネットワーク46を通
じてサーバ20に送信し、データはサーバ20によって
ファイル・データ54として記憶される。サーバ20は
このファイル・データ54をディスク29(図1)に記
憶する。
【0028】しかしながら、サーバ20またはネットワ
ーク46が不動作状態となった場合、クライアント35
はログ・ファイル50を利用して、ファイル・データ5
2に書き込むデータのエントリを記録する。本発明の好
適実施例によれば、クライアント35は、書込みファイ
ル・テーブル56および据置き書込みリスト58を作成
し、保持することによって、サーバ使用不能期間中にロ
グ・ファイル50に記憶されるエントリの最適化を図
る。
ーク46が不動作状態となった場合、クライアント35
はログ・ファイル50を利用して、ファイル・データ5
2に書き込むデータのエントリを記録する。本発明の好
適実施例によれば、クライアント35は、書込みファイ
ル・テーブル56および据置き書込みリスト58を作成
し、保持することによって、サーバ使用不能期間中にロ
グ・ファイル50に記憶されるエントリの最適化を図
る。
【0029】また、クライアント35は、エンコード処
理モジュール55およびデコード処理モジュール57も
有する。切断中処理の間、エンコード処理モジュール5
5は、クライアント35が実行した処理のエントリを、
ログ・ファイル50および書込みファイル・テーブル5
6に入力する。デコード処理モジュール57は、ログ・
ファイル50および書込みファイル・テーブル56内の
エントリを体系的に相互参照することにより、ログ・フ
ァイル50の内容を「再現」即ち「ロール」し、これに
よって、サーバが再度使用可能となった後に、ファイル
・データ52をクライアント35からサーバ20に転送
する。
理モジュール55およびデコード処理モジュール57も
有する。切断中処理の間、エンコード処理モジュール5
5は、クライアント35が実行した処理のエントリを、
ログ・ファイル50および書込みファイル・テーブル5
6に入力する。デコード処理モジュール57は、ログ・
ファイル50および書込みファイル・テーブル56内の
エントリを体系的に相互参照することにより、ログ・フ
ァイル50の内容を「再現」即ち「ロール」し、これに
よって、サーバが再度使用可能となった後に、ファイル
・データ52をクライアント35からサーバ20に転送
する。
【0030】図3は、本発明の好適実施例の処理を説明
する際に有用な、イベントの見本を示す。時点60にお
いて、クライアント35がデータをファイルAに書き込
むときに、サーバ20がクライアント35との通信が不
能となったと仮定する。次に、時点62において、クラ
イアント35はデータをファイルBに書き込む。時点6
4において、クライアント35は再びデータをファイル
Aに書き込む。この例は、本発明の利点に関して、2つ
の重要な項目を示している。第1に、ファイルAはイベ
ント60,64双方において修正されたので、従来の線
形即ち連続ログ・ファイル技法であれば、これらのイベ
ント各々に対して別個のエントリを作成し、これらを別
個にログ・ファイルに記憶したであろう。第2に、イベ
ント64は、イベント62の後に発生するので、ファイ
ルAの修正時刻は、ファイルBの修正時刻よりも大きい
(遅い)はずである。既に説明したように、ファイル
A、Bに対するデータをサーバ20に転送する処理の完
了時に、この関係を保持することは重要である。
する際に有用な、イベントの見本を示す。時点60にお
いて、クライアント35がデータをファイルAに書き込
むときに、サーバ20がクライアント35との通信が不
能となったと仮定する。次に、時点62において、クラ
イアント35はデータをファイルBに書き込む。時点6
4において、クライアント35は再びデータをファイル
Aに書き込む。この例は、本発明の利点に関して、2つ
の重要な項目を示している。第1に、ファイルAはイベ
ント60,64双方において修正されたので、従来の線
形即ち連続ログ・ファイル技法であれば、これらのイベ
ント各々に対して別個のエントリを作成し、これらを別
個にログ・ファイルに記憶したであろう。第2に、イベ
ント64は、イベント62の後に発生するので、ファイ
ルAの修正時刻は、ファイルBの修正時刻よりも大きい
(遅い)はずである。既に説明したように、ファイル
A、Bに対するデータをサーバ20に転送する処理の完
了時に、この関係を保持することは重要である。
【0031】図4は、本発明の好適実施例によって利用
されるログ・ファイル50を示す。ログ・ファイル50
は、レコード番号列70、ファイル名列72、および連
番列74から成る3本の列を有する。以下で更に詳しく
説明するが、ログ・ファイル50は、サーバ使用不能期
間に作成され、サーバ20が再度使用可能となったとき
に、その内容を用いて、ネットワーク36を通じてファ
イル・データ52をサーバ20に転送した後削除され
る。
されるログ・ファイル50を示す。ログ・ファイル50
は、レコード番号列70、ファイル名列72、および連
番列74から成る3本の列を有する。以下で更に詳しく
説明するが、ログ・ファイル50は、サーバ使用不能期
間に作成され、サーバ20が再度使用可能となったとき
に、その内容を用いて、ネットワーク36を通じてファ
イル・データ52をサーバ20に転送した後削除され
る。
【0032】図5は、本発明の好適実施例の書込みファ
イル・テーブル56を示す。書込みファイル・テーブル
56は、ログ・ファイル50内に作成されるエントリの
数を減らすために用いられ、ログ・ファイル50の最終
状態の追跡もする。書込みファイル・テーブル56は、
ファイル名列72、連番76、および当該ファイルがロ
グ・ファイル50内にエントリとして書き込まれている
か否かを示すフラグ78を含む3本の列を有する。
イル・テーブル56を示す。書込みファイル・テーブル
56は、ログ・ファイル50内に作成されるエントリの
数を減らすために用いられ、ログ・ファイル50の最終
状態の追跡もする。書込みファイル・テーブル56は、
ファイル名列72、連番76、および当該ファイルがロ
グ・ファイル50内にエントリとして書き込まれている
か否かを示すフラグ78を含む3本の列を有する。
【0033】書込みファイル・テーブル56は、通常動
作の間に作成され、接続中の処理の間にクライアント3
5によって書き込まれた各ファイルに対する初期化エン
トリ(initialized entry)を含む。例えば、図5は、通
常動作の間にクライアント35によってアクセスされた
ファイル名Cが、書込みファイル・テーブル56内に初
期化エントリを有することを示す。クライアント35が
ディスク・キャッシュを有する場合、書込みファイル・
テーブル56は、クライアント35のキャッシュの中に
配されている各ファイルに対してエントリを有する。図
4に示すような書込みファイル50内のファイルA、B
に対するエントリについては、以下で説明する。
作の間に作成され、接続中の処理の間にクライアント3
5によって書き込まれた各ファイルに対する初期化エン
トリ(initialized entry)を含む。例えば、図5は、通
常動作の間にクライアント35によってアクセスされた
ファイル名Cが、書込みファイル・テーブル56内に初
期化エントリを有することを示す。クライアント35が
ディスク・キャッシュを有する場合、書込みファイル・
テーブル56は、クライアント35のキャッシュの中に
配されている各ファイルに対してエントリを有する。図
4に示すような書込みファイル50内のファイルA、B
に対するエントリについては、以下で説明する。
【0034】図6および図7は、サーバが使用不能の間
に、本発明の好適実施例のエンコード処理モジュール5
5(図2)が実行する論理処理を示す。図6および図7
に示す処理は、イベント毎に、図3に示した単一のイベ
ント各々に応答して発生する。
に、本発明の好適実施例のエンコード処理モジュール5
5(図2)が実行する論理処理を示す。図6および図7
に示す処理は、イベント毎に、図3に示した単一のイベ
ント各々に応答して発生する。
【0035】まず最初に、処理80において、クライア
ント35によって書き込まれるファイル・データ52
(図2)があるか否かについて判定を行う。書き込むべ
きファイル・データがない場合、プログラムは終了す
る。処理80において、書き込むべきファイル・データ
があると判定された場合、処理82において、クライア
ント35が切断されているか否か(即ち、サーバ使用不
能状態であるか否か)について判定を行う。クライアン
ト35がサーバ20(図2)から切断されていない場
合、処理84において、先に説明したように、ネットワ
ーク46を通じてファイル・データをサーバ20に書き
込む。クライアント35にローカル・キャッシュが設け
られている場合、処理86において、ファイル・データ
をローカル・キャッシュに書き込む。
ント35によって書き込まれるファイル・データ52
(図2)があるか否かについて判定を行う。書き込むべ
きファイル・データがない場合、プログラムは終了す
る。処理80において、書き込むべきファイル・データ
があると判定された場合、処理82において、クライア
ント35が切断されているか否か(即ち、サーバ使用不
能状態であるか否か)について判定を行う。クライアン
ト35がサーバ20(図2)から切断されていない場
合、処理84において、先に説明したように、ネットワ
ーク46を通じてファイル・データをサーバ20に書き
込む。クライアント35にローカル・キャッシュが設け
られている場合、処理86において、ファイル・データ
をローカル・キャッシュに書き込む。
【0036】本発明によれば、処理82においてクライ
アント35がサーバ20から切断されていると判定され
た場合、処理88において、ログ・ファイル50(図
2)が既に存在するか否かについて判定を行う。存在し
ていない場合、処理90において、図4に関して既に述
べた構成要素を含むログ・ファイルを作成する。
アント35がサーバ20から切断されていると判定され
た場合、処理88において、ログ・ファイル50(図
2)が既に存在するか否かについて判定を行う。存在し
ていない場合、処理90において、図4に関して既に述
べた構成要素を含むログ・ファイルを作成する。
【0037】エンコード処理モジュール55は、切断中
の書込み処理の状態を追跡するために、連番変数を保持
する。ログ・ファイルを処理90によって作成した後
に、処理92においてこの連番変数をゼロに初期化す
る。次に、制御は処理94に渡される。処理88におい
て、ログ・ファイルが既に存在すると判定された場合
も、制御は処理94に渡される。
の書込み処理の状態を追跡するために、連番変数を保持
する。ログ・ファイルを処理90によって作成した後
に、処理92においてこの連番変数をゼロに初期化す
る。次に、制御は処理94に渡される。処理88におい
て、ログ・ファイルが既に存在すると判定された場合
も、制御は処理94に渡される。
【0038】処理94において、書込みファイル・テー
ブルにおいて使用するために、連番を増分する。これに
ついては、以下で説明する。
ブルにおいて使用するために、連番を増分する。これに
ついては、以下で説明する。
【0039】先に説明したように、書込みファイル・テ
ーブル56は、通常動作の間にアクセスされた(即ち、
クライアント・キャッシュに入力された)各ファイルの
初期化エントリを含む。これらの初期化エントリは、連
番列76(図5)にゼロ、そして書き込みフラグ列78
(図5)にゼロを有する。
ーブル56は、通常動作の間にアクセスされた(即ち、
クライアント・キャッシュに入力された)各ファイルの
初期化エントリを含む。これらの初期化エントリは、連
番列76(図5)にゼロ、そして書き込みフラグ列78
(図5)にゼロを有する。
【0040】図7を参照して、切断中処理の間に、クラ
イアント35において書き込まれる現ファイルが、以前
にクライアント35によって書き込まれたことがあるか
否かについて、判断処理96において判定を行う。判断
処理96を実行するには、ファイル名72によって参照
される現ファイルに対応する、書込みファイル・テーブ
ル56内に含まれるフラグ78を検査する。
イアント35において書き込まれる現ファイルが、以前
にクライアント35によって書き込まれたことがあるか
否かについて、判断処理96において判定を行う。判断
処理96を実行するには、ファイル名72によって参照
される現ファイルに対応する、書込みファイル・テーブ
ル56内に含まれるフラグ78を検査する。
【0041】処理96において、現ファイルは切断中処
理の間に書き込まれたことがないと判定された場合、処
理102において、このファイルの新たなエントリをロ
グ・ファイル50に作成する。この新たなエントリは、
データが特定のファイル(ファイル名72によって識別
される)に書き込まれたことを反映し、連番はクライア
ント35によって記憶された現連番を反映する。次に、
処理104において、連番の現在値を書込みファイル・
テーブル56の列76に書き込む。次に、処理106に
おいて、書込みファイル・テーブル56内のフラグ78
をセットし、現ファイルがログ・ファイル50に入力さ
れたという事実を反映する。ここでは、書込みファイル
・テーブル56は、ログ・ファイル50内の特定のファ
イル参照(file reference)の現状態を有する。処理10
0において、クライアント35内のローカル・ディスク
・キャッシュまたはその他の記憶機構に、ファイル・デ
ータを書き込む。
理の間に書き込まれたことがないと判定された場合、処
理102において、このファイルの新たなエントリをロ
グ・ファイル50に作成する。この新たなエントリは、
データが特定のファイル(ファイル名72によって識別
される)に書き込まれたことを反映し、連番はクライア
ント35によって記憶された現連番を反映する。次に、
処理104において、連番の現在値を書込みファイル・
テーブル56の列76に書き込む。次に、処理106に
おいて、書込みファイル・テーブル56内のフラグ78
をセットし、現ファイルがログ・ファイル50に入力さ
れたという事実を反映する。ここでは、書込みファイル
・テーブル56は、ログ・ファイル50内の特定のファ
イル参照(file reference)の現状態を有する。処理10
0において、クライアント35内のローカル・ディスク
・キャッシュまたはその他の記憶機構に、ファイル・デ
ータを書き込む。
【0042】処理96において、現ファイルは切断中処
理の間にクライアント35によって既に書き込まれてい
ることが判定された場合、本発明によれば、そのイベン
トに対して、ログ・ファイル50には新たなエントリを
作成しない。代わりに、書込みファイル・テーブル56
を適切に修正し、ファイル・データが現ファイルに書き
込まれたことを反映させる。
理の間にクライアント35によって既に書き込まれてい
ることが判定された場合、本発明によれば、そのイベン
トに対して、ログ・ファイル50には新たなエントリを
作成しない。代わりに、書込みファイル・テーブル56
を適切に修正し、ファイル・データが現ファイルに書き
込まれたことを反映させる。
【0043】処理98において、書込みファイル・テー
ブル56内の現ファイルに対応するエントリの位置を突
き止め、クライアント35のエンコード処理モジュール
55によって保持されている連番の現在値を、書込みフ
ァイル・テーブル56の連番列76に書き込む(列76
内の古い連番は上書きされる)。処理98の後、処理1
00において、クライアント35内のローカル・ディス
ク・キャッシュまたはその他の持続的記憶装置にファイ
ル・データ52を書き込む。
ブル56内の現ファイルに対応するエントリの位置を突
き止め、クライアント35のエンコード処理モジュール
55によって保持されている連番の現在値を、書込みフ
ァイル・テーブル56の連番列76に書き込む(列76
内の古い連番は上書きされる)。処理98の後、処理1
00において、クライアント35内のローカル・ディス
ク・キャッシュまたはその他の持続的記憶装置にファイ
ル・データ52を書き込む。
【0044】このように、書込みファイル・テーブル5
6は、切断中処理の間に発生したイベントを反映する、
ログ・ファイルの現状態を有する。以下で説明するよう
に、本発明の再現処理即ちログ・ローリング処理は、書
込みファイル・テーブル56およびログ・ファイル50
の双方を利用して、切断中処理の間に発生した一連のイ
ベントを正確に再現(recreate)する。
6は、切断中処理の間に発生したイベントを反映する、
ログ・ファイルの現状態を有する。以下で説明するよう
に、本発明の再現処理即ちログ・ローリング処理は、書
込みファイル・テーブル56およびログ・ファイル50
の双方を利用して、切断中処理の間に発生した一連のイ
ベントを正確に再現(recreate)する。
【0045】本発明の処理について、図3で説明した状
況を用いて、図6および図7を参照しながら説明する。
この場合、切断中処理の間に、クライアント35はファ
イル・データをファイルAに書き込まなければならず、
次に異なるファイル・データをファイルBに書き込まな
ければならず、最後に異なるファイル・データをファイ
ルAに書き込まなければならない。
況を用いて、図6および図7を参照しながら説明する。
この場合、切断中処理の間に、クライアント35はファ
イル・データをファイルAに書き込まなければならず、
次に異なるファイル・データをファイルBに書き込まな
ければならず、最後に異なるファイル・データをファイ
ルAに書き込まなければならない。
【0046】エンコード処理モジュール55によって保
持される連番の現在値が1であると仮定すると、処理9
6から開始し、図3の時点60におけるイベント1に応
答して、書込みファイル・テーブル56の書き込みフラ
グがファイル名A(図示せず)に対応するゼロを含んで
いるので、ファイルAは未だ書き込まれていないと、処
理96において判定される。処理102では、1という
連番を用いて、ファイル名Aに対するエントリをログ・
ファイル50に追加する。次に、処理104,106に
おいて、テーブル内に含まれている連番の値を上書きし
(初期化されたゼロから連番1の現在値に、連番を変更
する)、書き込みフラグを1にセットする。次に、処理
100において、ファイルAに対するファイル・データ
を、クライアント35内のローカル・キャッシュまたは
その他のファイル記憶媒体に書き込む。
持される連番の現在値が1であると仮定すると、処理9
6から開始し、図3の時点60におけるイベント1に応
答して、書込みファイル・テーブル56の書き込みフラ
グがファイル名A(図示せず)に対応するゼロを含んで
いるので、ファイルAは未だ書き込まれていないと、処
理96において判定される。処理102では、1という
連番を用いて、ファイル名Aに対するエントリをログ・
ファイル50に追加する。次に、処理104,106に
おいて、テーブル内に含まれている連番の値を上書きし
(初期化されたゼロから連番1の現在値に、連番を変更
する)、書き込みフラグを1にセットする。次に、処理
100において、ファイルAに対するファイル・データ
を、クライアント35内のローカル・キャッシュまたは
その他のファイル記憶媒体に書き込む。
【0047】時点62(図3)において発生したイベン
ト2に応答して、処理94では、現連番を2の値に増分
し、処理96、102〜106、および100を、既に
述べたイベント1の場合と同様に実行する。尚、この場
合、使用する連番の値が2であることが前述の場合と異
なる。
ト2に応答して、処理94では、現連番を2の値に増分
し、処理96、102〜106、および100を、既に
述べたイベント1の場合と同様に実行する。尚、この場
合、使用する連番の値が2であることが前述の場合と異
なる。
【0048】時点64(図3)においてイベント3が発
生し、新たなファイル・データが再びファイルAに書き
込まれると仮定すると、処理94において、連番を3に
増分した後、処理96において、書込みファイル・テー
ブル56内の書き込みフラグ78を検査することによっ
て(フラグは1にセットされている)、ファイルAが既
にログ・ファイルに書き込まれていることを検出する。
したがって、処理96において、制御を処理98に渡
し、図5に示すように、連番列76内の連番をファイル
名Aに対する連番の現在値(即ち、3)で上書きする。
この場合、ログ・ファイル50に追加エントリは作成さ
れない。次に、処理100において、クライアント35
のローカル・ディスク・キャッシュまたはその他の媒体
内のファイルAに、新たなデータが書き込まれる。
生し、新たなファイル・データが再びファイルAに書き
込まれると仮定すると、処理94において、連番を3に
増分した後、処理96において、書込みファイル・テー
ブル56内の書き込みフラグ78を検査することによっ
て(フラグは1にセットされている)、ファイルAが既
にログ・ファイルに書き込まれていることを検出する。
したがって、処理96において、制御を処理98に渡
し、図5に示すように、連番列76内の連番をファイル
名Aに対する連番の現在値(即ち、3)で上書きする。
この場合、ログ・ファイル50に追加エントリは作成さ
れない。次に、処理100において、クライアント35
のローカル・ディスク・キャッシュまたはその他の媒体
内のファイルAに、新たなデータが書き込まれる。
【0049】この例が示すように、クライアント35に
おいて複数のイベントが発生し、異なる時点で同一ファ
イルに書込み処理が行われた場合の、ログ・ファイル5
0内のエントリ数が減少する。
おいて複数のイベントが発生し、異なる時点で同一ファ
イルに書込み処理が行われた場合の、ログ・ファイル5
0内のエントリ数が減少する。
【0050】図8および図9〜図10は、サーバ20が
再度使用可能となった後に、本発明の好適実施例のデコ
ード処理モジュール57によって使用される。サーバ2
0との再接続後のクライアント35の主な目的は、各フ
ァイルに対する最近のデータをネットワークを通じてサ
ーバ20に転送することにより、サーバ20がこのデー
タをその記憶装置に書き込みができるようにすることを
伴う。
再度使用可能となった後に、本発明の好適実施例のデコ
ード処理モジュール57によって使用される。サーバ2
0との再接続後のクライアント35の主な目的は、各フ
ァイルに対する最近のデータをネットワークを通じてサ
ーバ20に転送することにより、サーバ20がこのデー
タをその記憶装置に書き込みができるようにすることを
伴う。
【0051】据置き書込みリスト58は、デコード処理
モジュール57によって用いられ、切断中処理の間にク
ライアント35上で発生したファイル修正の相対的な順
序が、ログ・ファイル50および書込みファイル・テー
ブル56内に記憶したイベントの再現即ちローリングの
間保存されることを保証する。一般的には、ログ・ファ
イル50内にエントリを有する所与のファイルについ
て、列74(図4)から得られたログ・ファイル50内
のエントリに対する連番を、列76(図5)から得られ
た書込みファイル・テーブル56内の対応するエントリ
の連番と比較する。これらの連番が一致した場合、当該
ファイルに対するファイル・データを、クライアント3
5からサーバ20に転送し、そこで記憶する。これらの
連番が一致しない場合、その時点でこのエントリを再現
するのはまだ早過ぎる。したがって、デコード処理モジ
ュール57はこのエントリを据置き書込みリスト58に
入力することによって、イベントの順序が適正に保たれ
た時点で、このエントリによって参照されるファイル・
データをサーバ20に転送できるようにする。
モジュール57によって用いられ、切断中処理の間にク
ライアント35上で発生したファイル修正の相対的な順
序が、ログ・ファイル50および書込みファイル・テー
ブル56内に記憶したイベントの再現即ちローリングの
間保存されることを保証する。一般的には、ログ・ファ
イル50内にエントリを有する所与のファイルについ
て、列74(図4)から得られたログ・ファイル50内
のエントリに対する連番を、列76(図5)から得られ
た書込みファイル・テーブル56内の対応するエントリ
の連番と比較する。これらの連番が一致した場合、当該
ファイルに対するファイル・データを、クライアント3
5からサーバ20に転送し、そこで記憶する。これらの
連番が一致しない場合、その時点でこのエントリを再現
するのはまだ早過ぎる。したがって、デコード処理モジ
ュール57はこのエントリを据置き書込みリスト58に
入力することによって、イベントの順序が適正に保たれ
た時点で、このエントリによって参照されるファイル・
データをサーバ20に転送できるようにする。
【0052】図8は、据置き書込みリスト58の構成要
素を示す。据置き書込みリスト58の列72は、リスト
58内の特定のエントリのファイル名を反映し、一方連
番110は書込みファイル・テーブル56の列76から
得られた連番を反映する。レコード・ポインタ列112
は、ログ・ファイル50からのレコード番号列70を反
映する。
素を示す。据置き書込みリスト58の列72は、リスト
58内の特定のエントリのファイル名を反映し、一方連
番110は書込みファイル・テーブル56の列76から
得られた連番を反映する。レコード・ポインタ列112
は、ログ・ファイル50からのレコード番号列70を反
映する。
【0053】デコード処理モジュール57は、イベント
の再現において、2つの変数を保持する。レコード・ポ
インタ変数(RECORD_PTR)は、ログ・ファイル50のレコ
ード番号列70から読み出され、現連番(CURRENT_SEQ#)
は、書込みファイル・テーブル56内に含まれている連
番との比較のために、ログ・ファイル50から読み出さ
れる。
の再現において、2つの変数を保持する。レコード・ポ
インタ変数(RECORD_PTR)は、ログ・ファイル50のレコ
ード番号列70から読み出され、現連番(CURRENT_SEQ#)
は、書込みファイル・テーブル56内に含まれている連
番との比較のために、ログ・ファイル50から読み出さ
れる。
【0054】図9および図10を参照すると、デコード
処理モジュール57の論理処理が示されている。処理1
20において、クライアント35のサーバ20への再接
続を検出する。処理122において、RECORD_PTR(図示
せず)を、ログ・ファイル50に含まれる第1レコード
70にセットする。処理124において、現連番をゼロ
に初期化する。
処理モジュール57の論理処理が示されている。処理1
20において、クライアント35のサーバ20への再接
続を検出する。処理122において、RECORD_PTR(図示
せず)を、ログ・ファイル50に含まれる第1レコード
70にセットする。処理124において、現連番をゼロ
に初期化する。
【0055】処理126において、先に説明したよう
に、クライアント35に据置き書込みリスト58を作成
する。処理128において、ログ・ファイル50の中に
処理すべきレコードがあるか否かについて判定を行う。
処理すべきレコードが残っていない場合、処理130に
おいて、据置き書込みリスト58の内容を、その中に含
まれている残りの項目を全て処理するためにチェックす
る。据置き書込みリスト58内にエントリがない場合、
プログラムは終了する。据置き書込みリスト内にエント
リがある場合、以下に述べる処理138に制御を渡す。
に、クライアント35に据置き書込みリスト58を作成
する。処理128において、ログ・ファイル50の中に
処理すべきレコードがあるか否かについて判定を行う。
処理すべきレコードが残っていない場合、処理130に
おいて、据置き書込みリスト58の内容を、その中に含
まれている残りの項目を全て処理するためにチェックす
る。据置き書込みリスト58内にエントリがない場合、
プログラムは終了する。据置き書込みリスト内にエント
リがある場合、以下に述べる処理138に制御を渡す。
【0056】処理128において、処理すべきレコード
があると判定された場合、処理132において、ログ・
ファイル50のレコード・ポインタによってインデック
スされた次のレコードを読み出す。処理134におい
て、クライアント35のデコード処理モジュール57が
保持する現連番を、このログ・ファイル50のレコード
の現エントリの連番にセットする。
があると判定された場合、処理132において、ログ・
ファイル50のレコード・ポインタによってインデック
スされた次のレコードを読み出す。処理134におい
て、クライアント35のデコード処理モジュール57が
保持する現連番を、このログ・ファイル50のレコード
の現エントリの連番にセットする。
【0057】処理136において、リスト58に含まれ
ている据置き書込みを処理すべきときであるか否かにつ
いて判定を行う。据置き書込みリスト58が空の場合、
制御は処理146に移る。リスト58がエントリを有す
る場合、処理136において、処理134によって得ら
れた連番を、据置き書込みリスト58の最初のエントリ
(front entry)の列110にある連番と比較する。現連
番が、据置き書込みリスト58の最初のエントリの連番
以上である場合、リスト58に含まれているこの据置き
書込みエントリを処理するときである。処理138にお
いて、処理のために、この最初のエントリを据置き書込
みリストから取り出す。処理140において、最初のエ
ントリに含まれる対応するレコードを読み出し、一方処
理142においてこのレコードからファイル名を得る。
次に、処理144において、このレコードによって参照
されるファイルをクライアント35からサーバ20にコ
ピーし、その中に記憶する。こうして、最初のエントリ
を据置き書込みリスト58から除去することができる。
ている据置き書込みを処理すべきときであるか否かにつ
いて判定を行う。据置き書込みリスト58が空の場合、
制御は処理146に移る。リスト58がエントリを有す
る場合、処理136において、処理134によって得ら
れた連番を、据置き書込みリスト58の最初のエントリ
(front entry)の列110にある連番と比較する。現連
番が、据置き書込みリスト58の最初のエントリの連番
以上である場合、リスト58に含まれているこの据置き
書込みエントリを処理するときである。処理138にお
いて、処理のために、この最初のエントリを据置き書込
みリストから取り出す。処理140において、最初のエ
ントリに含まれる対応するレコードを読み出し、一方処
理142においてこのレコードからファイル名を得る。
次に、処理144において、このレコードによって参照
されるファイルをクライアント35からサーバ20にコ
ピーし、その中に記憶する。こうして、最初のエントリ
を据置き書込みリスト58から除去することができる。
【0058】処理136において、この時点で処理すべ
き据置き書込みエントリがないと判定された場合、処理
146において、レコード・ポインタをログ・ファイル
50内の次のレコードに増分する。処理148におい
て、処理対象の特定のエントリのファイル名に対応す
る、書込みファイル・テーブル56内の行の位置を突き
止める。処理150において、ログ・ファイル50の現
エントリを据置き書込みリスト58に書き込むべきか否
かについて判定を行う。処理150におけるこの判定
は、現連番を書込みファイル・テーブル56の連番と比
較することによって行われる。これらの連番が一致した
場合、処理対象の現エントリを据置き書込みリスト58
に追加する必要はなく、上述のように、制御は処理14
2,144に渡される。
き据置き書込みエントリがないと判定された場合、処理
146において、レコード・ポインタをログ・ファイル
50内の次のレコードに増分する。処理148におい
て、処理対象の特定のエントリのファイル名に対応す
る、書込みファイル・テーブル56内の行の位置を突き
止める。処理150において、ログ・ファイル50の現
エントリを据置き書込みリスト58に書き込むべきか否
かについて判定を行う。処理150におけるこの判定
は、現連番を書込みファイル・テーブル56の連番と比
較することによって行われる。これらの連番が一致した
場合、処理対象の現エントリを据置き書込みリスト58
に追加する必要はなく、上述のように、制御は処理14
2,144に渡される。
【0059】しかしながら、処理150によって比較さ
れた連番が一致しない場合、処理152において、据置
き書込みリスト58の最後部に新たなエントリを追加す
る。新たなエントリは、書込みファイル・テーブル56
の連番列76からコピーされたエントリの連番、このエ
ントリのファイル名、およびログ・ファイル50の列7
0からコピーされたエントリのレコード・ポインタを含
む。
れた連番が一致しない場合、処理152において、据置
き書込みリスト58の最後部に新たなエントリを追加す
る。新たなエントリは、書込みファイル・テーブル56
の連番列76からコピーされたエントリの連番、このエ
ントリのファイル名、およびログ・ファイル50の列7
0からコピーされたエントリのレコード・ポインタを含
む。
【0060】処理152,144の双方は、書込みファ
イル・テーブル56または据置き書込みリスト58のい
ずれかに含まれるいずれかのエントリの後続処理のため
に、制御を処理128に戻す。
イル・テーブル56または据置き書込みリスト58のい
ずれかに含まれるいずれかのエントリの後続処理のため
に、制御を処理128に戻す。
【0061】本発明の処理について、図4および図5の
例を用いて、図8および図9〜図10を参照しながら説
明する。この場合、切断中処理の間に、クライアント3
5はファイル・データをファイルAに書き込み、続いて
異なるファイル・データをファイルBに書き込み、最後
に異なるファイル・データをファイルAに書き込んだと
する。
例を用いて、図8および図9〜図10を参照しながら説
明する。この場合、切断中処理の間に、クライアント3
5はファイル・データをファイルAに書き込み、続いて
異なるファイル・データをファイルBに書き込み、最後
に異なるファイル・データをファイルAに書き込んだと
する。
【0062】処理132から開始し、ログ・ファイル5
0(図4)の最初のレコードを読み出す。処理134に
おいて、現連番を、ログ・ファイル50からの現レコー
ドの連番である、1にセットする。これは最初のレコー
ドであるので、処理136においては、据置き書込みリ
スト58にはレコードはあり得ないと判断され、制御を
処理146に渡し、ここで、次の繰り返しのために、ロ
グ・ファイル内の2番目のレコードにレコード・ポイン
タを増分する。
0(図4)の最初のレコードを読み出す。処理134に
おいて、現連番を、ログ・ファイル50からの現レコー
ドの連番である、1にセットする。これは最初のレコー
ドであるので、処理136においては、据置き書込みリ
スト58にはレコードはあり得ないと判断され、制御を
処理146に渡し、ここで、次の繰り返しのために、ロ
グ・ファイル内の2番目のレコードにレコード・ポイン
タを増分する。
【0063】処理148において、現レコードのファイ
ル名(即ち、ファイル名A)に対応する、書込みファイ
ル・テーブル56内のエントリの位置を突き止める。次
に、処理150において、現連番(即ち、1)を、書込
みファイル・テーブル56内のファイルAに対応する連
番(即ち、3)と比較する。これらの連番は一致しない
ので、処理150は制御を処理152に渡し、図8に示
すように、3の連番を有するファイル名Aに対して、据
置き書込みリスト58に新たなエントリを作成する。次
に、制御は処理128に戻される。
ル名(即ち、ファイル名A)に対応する、書込みファイ
ル・テーブル56内のエントリの位置を突き止める。次
に、処理150において、現連番(即ち、1)を、書込
みファイル・テーブル56内のファイルAに対応する連
番(即ち、3)と比較する。これらの連番は一致しない
ので、処理150は制御を処理152に渡し、図8に示
すように、3の連番を有するファイル名Aに対して、据
置き書込みリスト58に新たなエントリを作成する。次
に、制御は処理128に戻される。
【0064】論理処理の2回目の繰り返しにおいて、処
理132では、ログ・ファイル50の次のレコード(即
ち、連番2のファイルB)を読み出す。処理134にお
いて、現連番を2の値にセットし、処理136におい
て、現連番(即ち、2)を据置き書込みリストの列11
0に含まれている連番(即ち、3)と比較する。現連番
(即ち、2)は、列110内の連番(即ち3)よりも小
さいので、未だ据置き書込みリスト58に含まれている
エントリを処理するときではない。したがって、制御は
処理146に渡され、次いで処理148に渡されて、フ
ァイル名Bに対応する書込みファイル・テーブル56の
エントリを読み出す。次に、処理150において、現連
番(即ち、2)を、ファイル名Bに対応する書込みファ
イル・テーブル56の列76内の連番(即ち、2)と比
較する。これらの連番は一致するので、処理142,1
44において、ファイルBに対するファイル・データを
クライアント35からサーバ20にコピーする。
理132では、ログ・ファイル50の次のレコード(即
ち、連番2のファイルB)を読み出す。処理134にお
いて、現連番を2の値にセットし、処理136におい
て、現連番(即ち、2)を据置き書込みリストの列11
0に含まれている連番(即ち、3)と比較する。現連番
(即ち、2)は、列110内の連番(即ち3)よりも小
さいので、未だ据置き書込みリスト58に含まれている
エントリを処理するときではない。したがって、制御は
処理146に渡され、次いで処理148に渡されて、フ
ァイル名Bに対応する書込みファイル・テーブル56の
エントリを読み出す。次に、処理150において、現連
番(即ち、2)を、ファイル名Bに対応する書込みファ
イル・テーブル56の列76内の連番(即ち、2)と比
較する。これらの連番は一致するので、処理142,1
44において、ファイルBに対するファイル・データを
クライアント35からサーバ20にコピーする。
【0065】次いで、制御を処理128に渡し、次の繰
り返しを行う。処理132において、ログ・ファイル5
0内の3番目のレコードを読み出し、処理134におい
て現連番を3の値にセットする。処理136において、
現連番(即ち、3)を据置き書込みリスト58の列11
0内の連番と比較する。これらの連番は等しいので、制
御は処理138に渡され、このエントリを据置き書込み
リスト58から除去することにより、このエントリによ
って参照されるファイル・データをサーバ20に転送可
能とする。
り返しを行う。処理132において、ログ・ファイル5
0内の3番目のレコードを読み出し、処理134におい
て現連番を3の値にセットする。処理136において、
現連番(即ち、3)を据置き書込みリスト58の列11
0内の連番と比較する。これらの連番は等しいので、制
御は処理138に渡され、このエントリを据置き書込み
リスト58から除去することにより、このエントリによ
って参照されるファイル・データをサーバ20に転送可
能とする。
【0066】この例によって示されるように、ファイル
Bに対するファイル・データは、ファイルAに対するフ
ァイル・データの前に、サーバ20に転送された。した
がって、サーバ20の観点からは、ファイルBはファイ
ルAよりも前に修正されたことになる。これは、サーバ
20が切断されていた間に発生したファイルの修正の順
序を正確に反映している。したがって、本発明は、切断
中処理の間のファイル修正の相対的な順序を保存してい
る訳である。
Bに対するファイル・データは、ファイルAに対するフ
ァイル・データの前に、サーバ20に転送された。した
がって、サーバ20の観点からは、ファイルBはファイ
ルAよりも前に修正されたことになる。これは、サーバ
20が切断されていた間に発生したファイルの修正の順
序を正確に反映している。したがって、本発明は、切断
中処理の間のファイル修正の相対的な順序を保存してい
る訳である。
【0067】本発明の好適実施例の方法および装置を用
いると、ログ・ファイルのサイズは、切断中処理の間に
アクセスされたファイル数によって支配される。従来の
逐次ロギング技法では、切断中処理の間にクライアント
35上で実行された書込み処理の回数に比例するサイズ
のログ・ファイルが作成され、単一ファイル上で多数の
書込み処理が行われた場合、非常に大きなログ・ファイ
ルになる可能性がある。したがって、本発明の使用によ
り、ログ・ファイル・サイズの大幅な縮小が達成可能と
なる。
いると、ログ・ファイルのサイズは、切断中処理の間に
アクセスされたファイル数によって支配される。従来の
逐次ロギング技法では、切断中処理の間にクライアント
35上で実行された書込み処理の回数に比例するサイズ
のログ・ファイルが作成され、単一ファイル上で多数の
書込み処理が行われた場合、非常に大きなログ・ファイ
ルになる可能性がある。したがって、本発明の使用によ
り、ログ・ファイル・サイズの大幅な縮小が達成可能と
なる。
【0068】図9および図10の処理が完了し、ファイ
ル・データが首尾良くサーバ20に転送された後、デコ
ード処理モジュール57は、据置き書込みリスト58の
削除、ログ・ファイル50の削除、および書込みファイ
ル・テーブル56の列76、78の再初期化のような様
々なハウスキーピング機能(housekeeping functions)を
実行することができる。したがって、クライアント35
における効率的な処理が達成される。
ル・データが首尾良くサーバ20に転送された後、デコ
ード処理モジュール57は、据置き書込みリスト58の
削除、ログ・ファイル50の削除、および書込みファイ
ル・テーブル56の列76、78の再初期化のような様
々なハウスキーピング機能(housekeeping functions)を
実行することができる。したがって、クライアント35
における効率的な処理が達成される。
【0069】クライアント・ワークステーション35の
ハードウエア構成要素に応じて、ログ・ファイル50、
書込みファイル・テーブル56、および据置き書込みリ
スト58は、クライアント35によって、メモリまたは
ディスク・ドライブ(図示せず)のような持続的記憶装
置内に保持することが可能である。ディスク・ドライブ
は、クライアント・ワークステーション35に供給され
る電力変動の場合にもデータ信頼性が高いという利点を
与える。
ハードウエア構成要素に応じて、ログ・ファイル50、
書込みファイル・テーブル56、および据置き書込みリ
スト58は、クライアント35によって、メモリまたは
ディスク・ドライブ(図示せず)のような持続的記憶装
置内に保持することが可能である。ディスク・ドライブ
は、クライアント・ワークステーション35に供給され
る電力変動の場合にもデータ信頼性が高いという利点を
与える。
【0070】以上、本発明の好適実施例を参照しなが
ら、特定的に本発明について示しかつ説明したが、本発
明の精神および範囲から逸脱することなく、その形態お
よび詳細において様々な他の変更が可能であることは、
当業者には認められよう。例えば、好適実施例では、書
込みファイル・テーブル56および据置き書込みリスト
58は、ログ・ファイル50(図2)とは別個に維持さ
れる構成要素として説明した。テーブル56およびリス
ト58の構成要素は、ログ・ファイル50に組み込むこ
とによって、単一ファイルの形成も可能であることは理
解されよう。ログ・ファイル50、書込みファイル・テ
ーブル56、および据置き書込みリスト58の特定の実
施形態ならびに維持は、特定のシステム開発者の選択事
項である。
ら、特定的に本発明について示しかつ説明したが、本発
明の精神および範囲から逸脱することなく、その形態お
よび詳細において様々な他の変更が可能であることは、
当業者には認められよう。例えば、好適実施例では、書
込みファイル・テーブル56および据置き書込みリスト
58は、ログ・ファイル50(図2)とは別個に維持さ
れる構成要素として説明した。テーブル56およびリス
ト58の構成要素は、ログ・ファイル50に組み込むこ
とによって、単一ファイルの形成も可能であることは理
解されよう。ログ・ファイル50、書込みファイル・テ
ーブル56、および据置き書込みリスト58の特定の実
施形態ならびに維持は、特定のシステム開発者の選択事
項である。
【図1】本発明の論理処理を実行するための、通信ネッ
トワーク内において接続されたサーバおよび多数のクラ
イアントを有する、分散型処理コンピュータ・システム
を示す図。
トワーク内において接続されたサーバおよび多数のクラ
イアントを有する、分散型処理コンピュータ・システム
を示す図。
【図2】本発明の好適実施例のブロック図。
【図3】サーバ使用不能期間中にクライアント上で発生
した一連の3つのイベントを例示する図。
した一連の3つのイベントを例示する図。
【図4】本発明の好適実施例において利用されるログ・
ファイルを示す図。
ファイルを示す図。
【図5】本発明の好適実施例によって利用される書込み
ファイル・テーブルを示す図。
ファイル・テーブルを示す図。
【図6】図5の書込みファイル・テーブル56を用い
て、サーバ使用不能期間中にログ・ファイル50にエン
トリを書き込むためにクライアントによって実行される
論理処理を示す図。
て、サーバ使用不能期間中にログ・ファイル50にエン
トリを書き込むためにクライアントによって実行される
論理処理を示す図。
【図7】図5の書込みファイル・テーブル56を用い
て、サーバ使用不能期間中にログ・ファイル50にエン
トリを書き込むためにクライアントによって実行される
論理処理を示す図。
て、サーバ使用不能期間中にログ・ファイル50にエン
トリを書き込むためにクライアントによって実行される
論理処理を示す図。
【図8】本発明の好適実施例において利用される据置き
書込みリストを示す図。
書込みリストを示す図。
【図9】サーバが再度使用可能となった後に、サーバへ
ログ・ファイルの内容を「再現」即ち「ロール」するた
めに、クライアントによって実行される論理処理を示す
図。
ログ・ファイルの内容を「再現」即ち「ロール」するた
めに、クライアントによって実行される論理処理を示す
図。
【図10】サーバが再度使用可能となった後に、サーバ
へログ・ファイルの内容を「再現」即ち「ロール」する
ために、クライアントによって実行される論理処理を示
す図。
へログ・ファイルの内容を「再現」即ち「ロール」する
ために、クライアントによって実行される論理処理を示
す図。
20 コンピュータ・サーバ 21 プロセッサ 22 入出力部 23 中央演算装置 24 メモリ部 25 キーボード 26 表示装置またはモニタ 29 ディスク記憶装置 35 クライアント・プロセッサ 45 アプリケーション・プログラム 46 ネットワーク 50 ログ・ファイル 52 ファイル・データ 54 ファイル・データ 55 エンコード処理モジュール 56 書込みファイル・テーブル 57 デコード処理モジュール 58 据置き書込みリスト 70 レコード番号列 72 ファイル名列 74 連番列 76 連番 78 フラグ 110 連番 112 レコード・ポインタ・コラム
───────────────────────────────────────────────────── フロントページの続き (71)出願人 597004720 2550 Garcia Avenue,MS PAL1−521,Mountain V iew,California 94043− 1100,United States of America (72)発明者 ロバート・マスターズ アメリカ合衆国コロラド州80920,コロラ ド・スプリングス,ケイプウッド・コート 8340
Claims (3)
- 【請求項1】ネットワークを通じてサーバと通信を行う
クライアント計算機ステーションにおいて、切断中のク
ライアントの書込み処理の間にログ・ファイルに入力さ
れるエントリの数を減少させる方法であって、 切断中処理の間に、前記ログ・ファイルに入力されるエ
ントリのファイル名および連番を追跡するために、書込
みファイル・テーブルを作成するステップと、 現書込み処理の連番のカウントを維持するステップと、 現書込み処理のファイル名および連番を識別するエント
リによって、前記ログ・ファイルをエンコードするステ
ップと、 現書込み処理が以前の書込み処理と同じファイル上で実
行されている第1状態を検出するステップと、 前記第1状態の検出時に、前記現書込み処理に対応する
前記書込みファイル・テーブル内の連番を更新すること
により、以降のデコード処理のために前記書込みファイ
ル・テーブルをエンコードするステップと、から成るこ
とを特徴とする方法。 - 【請求項2】請求項1記載の方法であって、更に、 サーバ使用可能の検出時に、前記書込みファイル・テー
ブルに含まれている情報を参照することによって、前記
ログ・ファイルに含まれているエントリを処理するステ
ップと、 前記クライアントから前記サーバへのファイル・データ
転送の適正な順序を検出するステップと、 前記ログ・ファイルに含まれているエントリに対応して
前記クライアント上に記憶されているデータを、前記サ
ーバに転送するステップと、 を含むことを特徴とする方法。 - 【請求項3】切断中のクライアントの書込み処理の間に
ログ・ファイルに入力されたエントリを効率的に再現す
る装置であって、 前記エントリを前記ログ・ファイルに入力するエンコー
ド処理モジュールと、 前記ログ・ファイルの状態を追跡するための書込みファ
イル・テーブルと、 前記ログ・ファイルに保持されている書込み処理を再現
するためのデコード処理モジュールであって、前記書込
み処理を正しい順序で再現するために、前記書込みファ
イル・テーブルにアクセスする前記デコード処理モジュ
ールと、 エントリを一時的に記憶し、適切なときに再現するため
の据置き書込みリストと、から成ることを特徴とする装
置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US654330 | 1996-05-28 | ||
| US08/654,330 US5740432A (en) | 1996-05-28 | 1996-05-28 | Log file optimization in a client/server computing system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1097451A true JPH1097451A (ja) | 1998-04-14 |
Family
ID=24624418
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9135199A Pending JPH1097451A (ja) | 1996-05-28 | 1997-05-26 | クライアント/サーバ計算機システムにおけるログ・ファイルの最適化方法及び装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (3) | US5740432A (ja) |
| EP (1) | EP0810525B1 (ja) |
| JP (1) | JPH1097451A (ja) |
| DE (1) | DE69703181T2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003006018A (ja) * | 2001-06-25 | 2003-01-10 | Mitsubishi Electric Corp | 処理要求復旧方式及び処理要求復旧方法及びクライアント装置及びサーバ装置 |
Families Citing this family (68)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2227432C (en) * | 1995-07-20 | 2001-05-22 | Novell, Inc. | Transaction synchronization in a disconnectable computer and network |
| US5740432A (en) * | 1996-05-28 | 1998-04-14 | Sun Microsystems, Inc. | Log file optimization in a client/server computing system |
| US5966708A (en) * | 1997-03-28 | 1999-10-12 | International Business Machines | Tail compression of a log stream using a scratch pad of logically deleted entries |
| US6286011B1 (en) * | 1997-04-30 | 2001-09-04 | Bellsouth Corporation | System and method for recording transactions using a chronological list superimposed on an indexed list |
| US6182080B1 (en) * | 1997-09-12 | 2001-01-30 | Netvoyage Corporation | System, method and computer program product for storage of a plurality of documents within a single file |
| US6067541A (en) * | 1997-09-17 | 2000-05-23 | Microsoft Corporation | Monitoring document changes in a file system of documents with the document change information stored in a persistent log |
| US6148338A (en) * | 1998-04-03 | 2000-11-14 | Hewlett-Packard Company | System for logging and enabling ordered retrieval of management events |
| US6757705B1 (en) * | 1998-08-14 | 2004-06-29 | Microsoft Corporation | Method and system for client-side caching |
| US6401093B1 (en) | 1999-03-31 | 2002-06-04 | International Business Machines Corporation | Cross file system caching and synchronization |
| US8620286B2 (en) | 2004-02-27 | 2013-12-31 | Synchronoss Technologies, Inc. | Method and system for promoting and transferring licensed content and applications |
| US7505762B2 (en) | 2004-02-27 | 2009-03-17 | Fusionone, Inc. | Wireless telephone data backup system |
| US7035878B1 (en) | 2000-01-25 | 2006-04-25 | Fusionone, Inc. | Base rolling engine for data transfer and synchronization system |
| US8156074B1 (en) | 2000-01-26 | 2012-04-10 | Synchronoss Technologies, Inc. | Data transfer and synchronization system |
| US6671757B1 (en) | 2000-01-26 | 2003-12-30 | Fusionone, Inc. | Data transfer and synchronization system |
| US7895334B1 (en) | 2000-07-19 | 2011-02-22 | Fusionone, Inc. | Remote access communication architecture apparatus and method |
| US8073954B1 (en) | 2000-07-19 | 2011-12-06 | Synchronoss Technologies, Inc. | Method and apparatus for a secure remote access system |
| US6925476B1 (en) * | 2000-08-17 | 2005-08-02 | Fusionone, Inc. | Updating application data including adding first change log to aggreagate change log comprising summary of changes |
| US7818435B1 (en) | 2000-12-14 | 2010-10-19 | Fusionone, Inc. | Reverse proxy mechanism for retrieving electronic content associated with a local network |
| US6847983B2 (en) | 2001-02-28 | 2005-01-25 | Kiran Somalwar | Application independent write monitoring method for fast backup and synchronization of open files |
| US6985915B2 (en) | 2001-02-28 | 2006-01-10 | Kiran Somalwar | Application independent write monitoring method for fast backup and synchronization of files |
| US8615566B1 (en) | 2001-03-23 | 2013-12-24 | Synchronoss Technologies, Inc. | Apparatus and method for operational support of remote network systems |
| US20020147739A1 (en) * | 2001-04-10 | 2002-10-10 | Netvoyage Corporation | Methods and systems for tracking storage resources associated with a document distribution system |
| US6978345B2 (en) * | 2001-05-15 | 2005-12-20 | Hewlett-Packard Development Company, L.P. | Self-mirroring high performance disk drive |
| US6996580B2 (en) * | 2001-06-22 | 2006-02-07 | International Business Machines Corporation | System and method for granular control of message logging |
| US20030033351A1 (en) * | 2001-08-10 | 2003-02-13 | Aleta Ricciardi | Group proxy and method for grouping services in a distributed computing application |
| US8245297B2 (en) * | 2001-09-04 | 2012-08-14 | E-Cop Pte. Ltd. | Computer security event management system |
| US7062516B2 (en) * | 2001-09-18 | 2006-06-13 | Sun Microsystems, Inc. | Methods, systems, and articles of manufacture for implementing a runtime logging service storage infrastructure |
| US20030055809A1 (en) * | 2001-09-18 | 2003-03-20 | Sun Microsystems, Inc. | Methods, systems, and articles of manufacture for efficient log record access |
| US10033700B2 (en) | 2001-12-12 | 2018-07-24 | Intellectual Ventures I Llc | Dynamic evaluation of access rights |
| US10360545B2 (en) * | 2001-12-12 | 2019-07-23 | Guardian Data Storage, Llc | Method and apparatus for accessing secured electronic data off-line |
| US7380120B1 (en) | 2001-12-12 | 2008-05-27 | Guardian Data Storage, Llc | Secured data format for access control |
| US7103810B2 (en) * | 2002-04-18 | 2006-09-05 | International Business Machines Corporation | System for the tracking of errors in a communication network enabling users to selectively bypass system error logs and make real-time responses to detected errors |
| US7475260B2 (en) * | 2002-05-09 | 2009-01-06 | International Business Machines Corporation | Method and apparatus for protecting sensitive information in a log file |
| ATE342953T1 (de) * | 2003-02-10 | 2006-11-15 | Henkel Kgaa | Bleichmittelhaltiges waschmittel mit baumwollaktivem schmutzablösevermögendem cellulosederivat |
| WO2005010715A2 (en) | 2003-07-21 | 2005-02-03 | Fusionone, Inc. | Device message management system |
| US7634509B2 (en) | 2003-11-07 | 2009-12-15 | Fusionone, Inc. | Personal information space management system and method |
| US7155445B1 (en) | 2004-02-05 | 2006-12-26 | Cingular Wireless Ii, Llc | System and method for self-recovering real-time data-feed compression and archiving |
| SG127715A1 (en) * | 2004-02-25 | 2006-12-29 | E Cop Net Pte Ltd | Managing transaction log data |
| US9542076B1 (en) | 2004-05-12 | 2017-01-10 | Synchronoss Technologies, Inc. | System for and method of updating a personal profile |
| WO2005112586A2 (en) | 2004-05-12 | 2005-12-01 | Fusionone, Inc. | Advanced contact identification system |
| US7340487B2 (en) * | 2004-08-18 | 2008-03-04 | International Business Machines Corporation | Delayed deletion of extended attributes |
| EP1637999A1 (en) * | 2004-09-20 | 2006-03-22 | Sap Ag | Data transmission apparatus and method having resume data transmission in case of interrupted transmission |
| EP1638001A1 (en) * | 2004-09-20 | 2006-03-22 | Sap Ag | Data transmission apparatus and method having resume data transmission in case of interrupted transmission |
| US20060182417A1 (en) * | 2005-02-16 | 2006-08-17 | Satoru Sugishita | Image processor and file data management therein |
| US7747907B2 (en) * | 2005-09-20 | 2010-06-29 | Seagate Technology Llc | Preventive recovery from adjacent track interference |
| US7778959B2 (en) * | 2005-12-09 | 2010-08-17 | Microsoft Corporation | Protecting storages volumes with mock replication |
| US8756399B2 (en) * | 2006-01-25 | 2014-06-17 | Seagate Technology Llc | Mutable association of a set of logical block addresses to a band of physical storage blocks |
| US7809778B2 (en) * | 2006-03-08 | 2010-10-05 | Omneon Video Networks | Idempotent journal mechanism for file system |
| US7664995B2 (en) * | 2006-07-31 | 2010-02-16 | International Business Machines Corporation | Transfer of application loggin status information across subsystem nodes |
| US20080195750A1 (en) * | 2007-02-09 | 2008-08-14 | Microsoft Corporation | Secure cross platform auditing |
| US8001075B2 (en) * | 2007-06-01 | 2011-08-16 | Microsoft Corporation | Log file amnesia detection |
| US8990378B2 (en) * | 2007-07-05 | 2015-03-24 | Interwise Ltd. | System and method for collection and analysis of server log files |
| US8181111B1 (en) | 2007-12-31 | 2012-05-15 | Synchronoss Technologies, Inc. | System and method for providing social context to digital activity |
| EP2098957A1 (en) * | 2008-03-07 | 2009-09-09 | Siemens Aktiengesellschaft | Notifying a client on server disconnection in a MES system |
| US8732829B2 (en) * | 2008-04-14 | 2014-05-20 | Tdi Technologies, Inc. | System and method for monitoring and securing a baseboard management controller |
| US9154386B2 (en) * | 2008-06-06 | 2015-10-06 | Tdi Technologies, Inc. | Using metadata analysis for monitoring, alerting, and remediation |
| US8260751B2 (en) * | 2008-08-12 | 2012-09-04 | Tdi Technologies, Inc. | Log file time sequence stamping |
| US8095828B1 (en) * | 2009-08-31 | 2012-01-10 | Symantec Corporation | Using a data storage system for cluster I/O failure determination |
| US8255006B1 (en) | 2009-11-10 | 2012-08-28 | Fusionone, Inc. | Event dependent notification system and method |
| US10210162B1 (en) * | 2010-03-29 | 2019-02-19 | Carbonite, Inc. | Log file management |
| US8943428B2 (en) | 2010-11-01 | 2015-01-27 | Synchronoss Technologies, Inc. | System for and method of field mapping |
| US20130132347A1 (en) * | 2011-11-22 | 2013-05-23 | I O Interconnect, Ltd. | Backup method for portable device |
| US8938429B1 (en) * | 2011-03-31 | 2015-01-20 | Emc Corporation | Resynchronization of nonactive and active segments |
| US8818954B1 (en) | 2011-03-31 | 2014-08-26 | Emc Corporation | Change tracking |
| US9256634B2 (en) | 2013-08-21 | 2016-02-09 | Business Objects Software, Ltd. | Resuming big data transformations |
| US9912727B1 (en) | 2015-06-08 | 2018-03-06 | Seagate Technology Llc | Multiple concurrent in-flight replies in a distributed state system |
| FR3040810B1 (fr) * | 2015-09-07 | 2017-10-13 | Docapost Dps | Systeme informatique de gestion securisee d'informations numeriques |
| US9836237B2 (en) | 2015-11-09 | 2017-12-05 | International Business Machines Corporation | Storing data in storage area |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63307551A (ja) * | 1987-06-08 | 1988-12-15 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 先書きロギング型のトランザクシヨン向けシステム中のロールバツク方法 |
| US6119151A (en) * | 1994-03-07 | 2000-09-12 | International Business Machines Corp. | System and method for efficient cache management in a distributed file system |
| US5537588A (en) * | 1994-05-11 | 1996-07-16 | International Business Machines Corporation | Partitioned log-structured file system and methods for operating the same |
| US5745750A (en) * | 1995-12-15 | 1998-04-28 | International Business Machines Corporation | Process and article of manufacture for constructing and optimizing transaction logs for mobile file systems |
| US5740432A (en) * | 1996-05-28 | 1998-04-14 | Sun Microsystems, Inc. | Log file optimization in a client/server computing system |
-
1996
- 1996-05-28 US US08/654,330 patent/US5740432A/en not_active Expired - Lifetime
-
1997
- 1997-05-03 DE DE69703181T patent/DE69703181T2/de not_active Expired - Fee Related
- 1997-05-03 EP EP97201338A patent/EP0810525B1/en not_active Expired - Lifetime
- 1997-05-26 JP JP9135199A patent/JPH1097451A/ja active Pending
-
1998
- 1998-04-13 US US09/059,803 patent/US5832518A/en not_active Expired - Lifetime
- 1998-11-02 US US09/184,782 patent/US6092087A/en not_active Expired - Lifetime
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003006018A (ja) * | 2001-06-25 | 2003-01-10 | Mitsubishi Electric Corp | 処理要求復旧方式及び処理要求復旧方法及びクライアント装置及びサーバ装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0810525B1 (en) | 2000-09-27 |
| US5832518A (en) | 1998-11-03 |
| US6092087A (en) | 2000-07-18 |
| EP0810525A1 (en) | 1997-12-03 |
| DE69703181D1 (de) | 2000-11-02 |
| US5740432A (en) | 1998-04-14 |
| DE69703181T2 (de) | 2001-05-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH1097451A (ja) | クライアント/サーバ計算機システムにおけるログ・ファイルの最適化方法及び装置 | |
| US5089958A (en) | Fault tolerant computer backup system | |
| US6957221B1 (en) | Method for capturing a physically consistent mirrored snapshot of an online database from a remote database backup system | |
| US5619644A (en) | Software directed microcode state save for distributed storage controller | |
| US5535381A (en) | Apparatus and method for copying and restoring disk files | |
| US5682513A (en) | Cache queue entry linking for DASD record updates | |
| US20070276884A1 (en) | Method and apparatus for managing backup data and journal | |
| US6549992B1 (en) | Computer data storage backup with tape overflow control of disk caching of backup data stream | |
| EP3002672B1 (en) | Apparatus for increasing data storage capacity | |
| US6529995B1 (en) | Method and apparatus for maintaining and restoring mapping table entries and data in a raid system | |
| US6983295B1 (en) | System and method for database recovery using a mirrored snapshot of an online database | |
| US6654769B2 (en) | File system for creating switched logical I/O paths for fault recovery | |
| US7991749B2 (en) | Database recovery method applying update journal and database log | |
| US7263537B1 (en) | System and method for creating multiple QUIESCE database copies at a single server | |
| US20050015640A1 (en) | System and method for journal recovery for multinode environments | |
| US20020194529A1 (en) | Resynchronization of mirrored storage devices | |
| US20040044705A1 (en) | Optimized disk repository for the storage and retrieval of mostly sequential data | |
| JP2003516582A (ja) | スケーラブルな記憶アーキテクチャ | |
| US8214377B2 (en) | Method, system, and program for managing groups of objects when there are different group types | |
| US8762347B1 (en) | Method and apparatus for processing transactional file system operations to enable point in time consistent file data recreation | |
| JP2001520779A (ja) | ディスク記憶システムのバックアップ装置および方法 | |
| US20040044642A1 (en) | Apparatus, method and program for managing database logs | |
| WO2022033269A1 (zh) | 数据处理的方法、设备及系统 | |
| JP2015527620A (ja) | 計算機システム、サーバ、及び、データ管理方法 | |
| US7681001B2 (en) | Storage system |