JPH0713751A - ファイル・システムの副作用の選択的追加装置 - Google Patents
ファイル・システムの副作用の選択的追加装置Info
- Publication number
- JPH0713751A JPH0713751A JP6155409A JP15540994A JPH0713751A JP H0713751 A JPH0713751 A JP H0713751A JP 6155409 A JP6155409 A JP 6155409A JP 15540994 A JP15540994 A JP 15540994A JP H0713751 A JPH0713751 A JP H0713751A
- Authority
- JP
- Japan
- Prior art keywords
- file
- backup
- function
- message
- library
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2071—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
なしに使用できるバックアップファイルシステム(BF
S)を提供する。 【構成】 BFSは、主コンピュータシステム及びBC
Sに対する動的にリンク可能な代替ライブラリ(DLR
L)及びユーザレベルプロセス(ULP)により実現さ
れる。DLRLはファイル操作(FO)の標準的なDL
Lと同じIFを有する。DLRLにおけるファンクショ
ンはDLLにおけるファンクションと同じFOを行う。
このファンクションは現に行われている操作を指定する
メッセージ(MS)をBCSのULPに送る。ULP
は、MSで指定された操作をBCSにおけるバックアッ
プファイル(BF)に対して行う。被BFはPFSのネ
ーム空間(NS)のサブツリー(ST)を識別すること
により指定される。STはユーザ定義NSを形成する。
BCS及びBFSのプロセスをモニタし、必要に応じて
障害を処理するモニタプロセスを使用することにより、
BFSは誤り許容にされる。
Description
関する。更に詳細には、本発明はオペレーティングシス
テムに対して行われた呼出の効果を修正するために、シ
ステムのアプリケーションプログラムレベルで使用する
手法に関する。
る。典型的なシステムでは、階層は、最下位層のハード
ウエア(例えば、プロセッサ,メモリ,大容量記憶装置
及びこれらの部品をリンクさせる通信媒体)を包含す
る。次の層はオペレーティングシステムである。オペレ
ーティングシステムはハードウエアの操作を制御し、一
連の論理デバイスを定義する。論理デバイスにおける操
作はオペレーティングシステムにより制御されるハード
ウエアにおける操作になる。オペレーティングシステム
により供給される論理デバイスはオペレーティングシス
テムよりも上位層におけるプログラムにより使用され
る。これらの階層はシステムのユーザレベルと呼ばれて
いる。
な問題点はシステムにより実行される操作が定義される
レベルである。例えば、オペレーティングシステムはア
プリケーションプログラムレベルに豊富な一連の論理デ
バイスを供給するか、又は小規模な一連の基本的論理デ
バイスを供給し、操作を行うために必要に応じてユーザ
のアプリケーションプログラムが基本的デバイスを結合
することを期待する。これはハードウエアの場合も全く
同様である。各レベルにおける設計上の二律背反は同じ
である。
おけるプログラミングを簡単にするが、論理デバイスを
供給するレベルの複雑性が増大し、その結果、システム
の全体的な柔軟性は低下する。特に、システムの下位層
で複雑な操作が行われる場合、これらの操作は、上位層
で利用可能な情報の恩恵無しに行わなければならない。
エム・トランザクションズ・オン・コンピュータ・シス
テムズ(ACM Transactions on Computer Systems),第2
巻,第4号(1984年11月発行),277〜288
頁に掲載された、ジェー・エッチ・サルザー(J.H.Saltz
er)らの「システム設計におけるエンド・ツー・エンド
問題」と題する論文中に詳細に説明されている。
ステムの設計によりもたらされる。バックアップファイ
ルシステムは別のファイルシステムの一部又は全部のバ
ックアップを与える。これはバックアップされているシ
ステムなので、バックアップファイルシステムはファイ
ル内容を保存するでけでなく、バックアップされている
システムの一部分の中の既知のファイル名も保存する。
ファイルについて行われる操作はバックアップファイル
システムにおけるファイルについても繰り返すことが望
ましい場合が多々ある。
場合、オリジナルファイルシステムが破壊されるか又は
動作不能になっても、失われる情報は皆無である。更
に、バックアップファイルシステムは内容と共に名称
(ネーム)も保存するので、バックアップファイルシス
テムは故障したファイルシステムで使用されていたプロ
グラムにより即座に使用することができる。言うまでも
なく、アプリケーションプログラムは常にそれ自体のバ
ックアップファイルシステムを作製することができる
が、バックアップファイルシステム問題の好ましい解決
法は常に、アプリケーションの変更なしにバックアップ
を行うことができる方法である。
計に対する従来のアプローチを示す。多重処理コンピュ
ータシステムでは、アプリケーションプロセスで実行す
るプログラムにより特定される操作に応答して、ファイ
ルシステムはファイルに対する操作を行う。ファイルシ
ステム自体は少なくとも一つのオペレーティングシステ
ムプロセス及びハードウエア(例えば、ディスクドライ
ブ)を用いて実現される。
ングシステムプロセスとの間の関係はクライアントとサ
ーバの関係である。アプリケーションプロセスは、サー
バプロセスが操作を行い、その操作の結果をアプリケー
ションプロセスに返送することを要求する。従って、シ
ステム101では、アプリケーションプロセス103
は、カーネルサーバ113がファイル操作109を行う
ことを要求する。このため、カーネルサーバ109は操
作を行い、そして結果111を返送する。
ディスクドライブ117でデータを変更することにより
操作を行う。ディスクドライブ117とカーネルサーバ
113との間のインターフェースは、所定のタイプのデ
ィスクドライブ117に対して特有のドライバ115と
呼ばれるカーネルサーバ113の部品である。
ステムはハードウエアレベル119とオペレーティング
システムレベル107において実現されていた。図1の
システム101ではハードウエアレベル109において
実現されている。ディスクドライブ117はサーバ11
3に対して通常のディスクドライブとして出現するが、
ミラーディスク119(a)及び119(b)を包含す
る。
し、ファイルを変更する操作は各ディスクのコピーに対
して行われる。従って、各ディスクはファイルシステム
のコピーを包含する。ディスクの一方が壊れても、他の
ディスクのシステムは依然として利用可能である。言う
までもなく、システム101の特別な欠点は特定のハー
ドウエアを必要とすることである。
123はオペレーティングシステムレベルで実現され
る。システム121は2つの非ミラーディスク123
(a)及び123(b)を有する。各ディスクは別個の
ドライバ115(a)及び115(b)を有する。サー
バ113がファイルの作成,削除又はその他の変更など
のファイル操作を行う場合、ドライバ115(a)はド
ライブ123(a)にこの操作を行わせ、ドライバ11
5(b)はドライブ123(b)にこの操作を行わせ
る。
ブ123(b)にファイルシステムの同一コピーが存在
する。システム121はもはや特別なハードウエアを必
要としないが、変更されたオペレーティングシステムは
依然として必要である。更に、変更はドライバ115
(a)及び(b)について行わなければならないので、
この変更はカーネルサーバ113の最下位層で行わなけ
ればならない。
つの非ミラーディスク123(a)及び123(b)を
有するが、各ディスクは別個のサーバ125及び127
により駆動される。サーバ125は第1のディスク12
3(a)についてファイル操作109を行う。このファ
イル操作がファイルの作成,削除又はその他の変更であ
る場合、サーバ125はファイル操作メッセージもバッ
クアップサーバ127に送信する。そして、その後、同
じファイル操作を行う。
3により現に使用されているファイルシステムのコピー
が両方のディスクドライブ123(a)及び123
(b)に存在する。バックアップファイルシステム12
3は一般的に、多数のコンポーネントコンピュータシス
テム131を含む分散コンピュータシステムで実現され
る。このようなシステムでは、アプリケーションプロセ
ス103,カーネルサーバ125及びディスクドライブ
123は一般的に、1個のコンポーネントシステム13
1(a)に存在するが、バックアップサーバ127及び
ディスクドライブ123(b)は別のコンポーネントシ
ステム131(b)に存在する。
はオペレーティングシステムの変更を必要とするが、ア
プリケーションプロセス103に関するファイルを変更
するときに常にメッセージをサーバ127に送るように
サーバ125を変更するだけでよい。バックアップサー
バ127は、コンポーネントシステム131(b)につ
いて他のプロセスからのファイル操作109に応答する
のと全く同じ方法でこのメッセージに応答する。
もバックアップファイルの作成に有効であるが、これら
は全て重大な欠陥を有する。第1に、これらのシステム
は特別なハードウエア又はオペレーティングシステムの
変更のどちらかを必要とし、その結果、携帯型にはなら
ない。
ュータシステムは特別なハードウエア又は特別なオペレ
ーティングシステムを有しない場合、これらのコンポー
ネントを獲得しなければならない。更に、システム10
1,121又は123が一旦使用状態になると、全ての
交替用コンピュータシステムは特別なハードウエア又は
特別なオペレーティングシステムを有しなければならな
い。
3はハードウエアレベル109又はオペレーティングシ
ステムレベル107で動作するので、全てのファイルが
これらのシステムに均等に出現し、これらのシステムは
アプリケーションプロセス103により変更された全て
のファイルをバックアップするだけである。
クアップする必要は無い。UNIX(登録商標)オペレ
ーティングシステムにおけるファイルを分析したとこ
ろ、ファイルシステム中のファイルのうちの50〜60
%は3分間未満の寿命しか有しない一時的作業ファイル
であることが判明した。多くの場合、これらのファイル
のうちの殆どのものがバックアップする必要の無いもの
である。
れらのファイルを識別する方法が存在しない。言うまで
もなく、不必要なバックアップを行うことはシステム計
算リソース及びシステム記憶リソースの浪費である。
の特別な事例である。ユーザから操作が行われれば行わ
れるほど、この操作に関する情報はシステムにとって利
用されなくなる。バックアップの事例で示されるよう
に、結果は殆ど例外無く、システムリソースの非効率な
使用ということになる。
は、ユーザ情報が有用な操作をアプリケーションプログ
ラムの変更無しにユーザレベルで実行できるシステムを
提供することである。
し、従って、携帯することができ、かつ、バックアップ
されるべきファイルに関するユーザ情報の利点を利用で
きるバックアップファイルシステムを提供することであ
る。
ユーザレベルバックアップファイルシステムにより解決
される。本発明のバックアップファイルシステムは、カ
ーネルサーバにファイルコマンドを供給する標準的な一
連のライブラリルーチンを、標準的な一連のライブラリ
ルーチンの操作をエミュレートし、また、バックアップ
ファイルシステムも処理する一連のライブラリルーチン
に置き換える。アプリケーションプログラムが、ファイ
ルを変更する操作を指定する場合、この操作のための代
替ライブラリルーチンはこの操作を実行する。
う。すなわち、カーネルサーバに指定操作を実行させ、
そして、カーネルサーバにより実際に行われる操作を指
定するメッセージを別のコンピュータシステムにおける
ユーザレベルバックエンドサーバに供給する。次いで、
ユーザレベルバックエンドサーバは、このメッセージで
指定されたファイル操作を他のコンピュータシステムに
おけるカーネルサーバに供給する。
保守は代替ライブラリルーチンにより行われるファイル
操作の副作用になる。バックアップファイルシステムの
全てのコンポーネントはユーザレベルに存在し、そし
て、代替ライブラリルーチンはアプリケーションプログ
ラムにより元々使用されるライブラリをエミュレートす
るので、このシステムは、ハードウエア,オペレーティ
ングシステム又はアプリケーションプログラムを変更す
ること無しに使用することができ、更に、代替ライブラ
リでルーチンを実行できる全てのシステムで使用するこ
とができる。
ルシステムの別の利点は、どのファイルをバックアップ
すべきか指定するためにクライアントプロセス303を
行うことである。この指定は複製ツリーデータ構造によ
り行われる。この複製ツリーデータ構造は、バックアッ
プすべきファイルを包含するクライアント303にアク
セス可能なファイルシステムの部分を指定する。
リルーチン内のコードは、ライブラリルーチンが操作を
実行する際のファイルがバックアップされるべきものか
否か決定するために、複製ツリーデータ構造をチェック
する。バックアップされるべきものであり、かつ、操作
がファイルを変更する場合、ファイル操作を包含するメ
ッセージはバックエンドサーバプロセスに送信される。
される相関性のユーザレベル再定義を可能にするため
に、一般的に、或る種のエンティティに対する操作の副
作用を指定するライブラリルーチンと、どのエンティテ
ィが副作用により悪影響を受けているか指定するデータ
構造の組合わせが使用される。例えば、ユーザレベル論
理ファイルシステムを定義し、オペレーティングシステ
ムにより提供されるファイルシステムにユーザレベル論
理ファイルシステムをマップするのに、この手法を使用
することができる。
説明する。
変更:図2 前記で説明したように、コンピュータシステムは階層化
されている。各層は次の上位層に対してインターフェー
スを形成する。上位層は、下位層のインターフェースに
より必要とされるに応じて、下位層により実行されるべ
き操作を指定する。上位層が下位層により必要とされる
インターフェースに適合しない場合、上位層と下位層と
の間にアダプター層を追加しなければならない。
期待されるインターフェースに従って作成された操作仕
様を下位層のインターフェースにより必要とされる操作
仕様に翻訳することである。この手法を使用すれば、例
えば、MSDOSオペレーティングシステムを実行すP
Cを、そのユーザに、UNIXオペレーティングシステ
ムを実行するコンピュータであるかのように思わせるこ
とができる。
によりアダプター層が必要とされる場合、これはしばし
ば、一連のライブラリルーチンとして実現される。この
名称が示唆するように、ライブラリルーチンは、コンピ
ュータシステムのサブシステムのメーカーがアプリケー
ションプログラムと共に使用するためにコンピュータシ
ステムのユーザに提供するルーチンである。
ブラリルーチンの使用方法を示す。ユーザプログラム2
01は次の階層(この場合、一連のシステムルーチンで
ある)に対してインターフェース206を有する。しか
し、ユーザプログラム201が使用されるべきコンピュ
ータシステムにおけるシステムルーチンはインターフェ
ース213を有する。インターフェース206とインタ
ーフェース213との間の相違は、図2において、各イ
ンターフェースを示す実線の形状が異なることにより示
される。
からなる。ライブラリルーチン207は、ユーザプログ
ラム201により必要とされる上位の次層用のインター
フェース206と、システムルーチン205により必要
とされる下位の次層用のインターフェース213を有す
る。実際、インターフェースはファンクション(関数又
は機能)呼出からなる。ライブラリルーチン207にお
けるルーチンは、インターフェース213により必要と
されるファンクション呼出を生成することにより、イン
ターフェース206により必要とされるファンクション
呼出203に応答して動作し、ファンクション呼出20
3により指定される操作を行う。
線211で示されるように、システムルーチンはその実
行結果をライブラリルーチン207に返送し、次いで、
ライブラリルーチン207はリターン205で示される
ように、結果をユーザプログラム201に返送する。
使用によるインターフェース再定義 ユーザプログラム201の実行コードを生成する場合、
ライブラリルーチンをユーザプログラム201にリンク
させなければならないという事実により、従来のシステ
ムでは、インターフェースの再定義に関するライブラリ
ルーチンの有用性は低かった。
ログラム201におけるライブラリルーチンの呼出をラ
イブラリルーチン207のコピー内のライブラリルーチ
ンの位置に関連させる処理のことである。実行可能コー
ドが生成された場合、リンキングを行わなければならな
かったので、実行可能コードのコピーしか有しないユー
ザは、或る一連のライブラリルーチン207を別の一連
のライブラリルーチン207に置き換えることは不可能
であった。
動的にリンクさせることのできるコンピュータシステム
が本発明により開発された。このようなコンピュータシ
ステムでは、ユーザプログラムを実行するプロセスが、
実行前にコンピュータシステムのメモリにロードされる
場合に、リンキングが行われる。
のオブジェクトコードを変更すること無しに、或る一連
のライブラリルーチンを別の一連のライブラリルーチン
に置き換えることができ、これにより、ユーザプログラ
ムが操作されるシステムの挙動を変更することができ
る。動的リンキングに関する説明は、米国、カリフォル
ニア州のマウンテンビューに所在するサンマイクロシス
テムズ社から1988年5月に発行された「共用ライブ
ラリ(Shared Libraries)」に記載されている。
の挙動を変更する方法を示す。システム1301では、
ユーザプロセス307は、オペレーティングシステムラ
イブラリ1315が動的に結合されたアプリケーション
プログラム309を実行する。オペレーティングシステ
ムライブラリ1315は、コール311で指定される操
作を行うために、コール311及びリターン313並び
にカーネルサーバ305へのユーザコール317及びカ
ーネルサーバ305からのリターン319により示され
るアプリケーションプログラム309へインターフェー
スを供給する。
同じアプリケーションプログラム309を実行し、同じ
カーネルサーバ305を使用する。しかし、この場合、
オペレーティングシステムライブラリ1315の代わり
にオペレーティングシステムライブラリ2321が使用
される。オペレーティングシステムライブラリ2321
はオペレーティングシステムライブラリ1315が行う
ことは全て行う。しかし、オペレーティングシステムラ
イブラリ2321は更に、副作用323を生成する。
1と同様に挙動するが副作用323も生成するシステム
303に変換するために必要なことは、オペレーティン
グシステムライブラリ1315の代わりに、オペレーテ
ィングシステムライブラリ2321をユーザプログラム
309に動的にリンクさせることだけである。
ことによるユーザレベルネーム空間の作成 図4は、動的にリンクされたオペレーティングシステム
ライブラリ403を用いてユーザレベルネーム空間を作
成する方法及びこのユーザレベルネーム空間を用いて副
作用203を制御する方法を示す。ファンクション,フ
ァイル及びデバイスなどのようなコンピュータシステム
におけるエンティティはネームによりプログラム中で引
用される。
間のファンクションは、プログラム中で使用されるネー
ムを、このネームにより示されるエンティティに関連さ
せることである。従来のコンピュータシステムでは、ユ
ーザプログラムにより使用されるネーム空間はオペレー
ティングシステムにより作成され、保持される。本発明
のシステム401では、オペレーティングシステムライ
ブラリ403がユーザプロセス409用の1個以上のユ
ーザレベルネーム空間を作成し、保持する。
リルーチン403により使用できる一つの方法は、カー
ネルサーバ305によりユーザプログラム309が供給
されるファイルシステムと挙動,構造又はこの両方とも
が異なるユーザレベル論理ファイルシステムを作成する
ことである。この論理ファイルシステムはその後、副作
用を制御するために使用できる。
ァイルシステムディスクある場合、副作用323はバッ
クアップファイルシステムを生成するのに必要なもので
あり、ユーザレベルネーム空間405は、カーネルサー
バ305により供給されたファイルシステム中のどのフ
ァイルをバックアップファイルシステムにおいてバック
アップすべきか指定する。図4から明らかなように、ユ
ーザレベルネーム空間はユーザプロセス409の環境の
一部である。
ムの概観:図5及び図6 アプリケーションプログラムを実行するアプリケーショ
ンプロセスにより変更されたファイルのうちの特定のフ
ァイルだけを自動的にバックアップするユーザレベルバ
ックアップファイルシステムを形成するために、前記の
動的にリンクされたライブラリ及びユーザレベルネーム
空間を使用することができる。
プファイルシステム501を示す。システム501は主
システム511とバックアップシステム513の2つの
コンピュータシステムで実現される。主システム511
はアプリケーションプロセス503を実行し、バックア
ップシステム513はアプリケーションプロセス503
により変更されたファイルのバックアップコピーを保持
する。主システム511及びバックアップシステム51
3は、主システム511で実行するプロセスからのメッ
セージをバックアップシステム513で実行するプロセ
スに送信することができる通信媒体により接続されてい
る。
のコンポーネントはアプリケーションプロセス503と
カーネルサーバ305(a)である。カーネルサーバ3
05(a)は主システム511にファイルシステムを供
給する。図5において、ファイルシステムは主システム
511に対してローカルのディスク307(a)により
示されるが、このファイルシステムは別のシステムと一
緒に配置された遠隔ファイルシステムであることもでき
る。
(a)はファイルシステムに対してファイル操作を行
い、ファイルシステムはアプリケーションプロセス50
3からのコール317に応答し、そして、プロセス50
3へ結果319を返送し、また、ファイルシステム自体
がディスク307(a)に対して必要な操作を行う。カ
ーネルサーバ305(a)においてファイル操作を行う
ために、アプリケーションプロセス503は動的リンク
可能なライブラリを使用する。
は、lib.3d507と呼ばれる新たなライブラリに
より置換される。ライブラリ507はコール317に応
答し、適正なコール317をカーネルサーバ305に供
給することによるだけでなく、バックアップメッセージ
512をバックアップシステム513に送信することに
よっても特定のファイルを変更するファイル操作を指定
する。変更によりバックアップメッセージ512を送信
するファイルはフロントエンド複製ツリー(FRT)5
05において指定される。
5は、矢線506により示されるように、lib.3d
507におけるルーチンにより保持され、かつ、使用さ
れる。従って、複製ツリー505は、変更によりシステ
ム513におけるバックアップファイルの変更を生じる
ファイルからなるユーザレベル論理ファイルシステムを
定義する。
テムのコンポーネントは、バックエンドサーバ515,
ユーザレベルプロセス,カーネルサーバ305(b)及
びディスク307(b),バックアップシステム513
用の標準的なファイルシステムサーバ及びディスクドラ
イブである。カーネルサーバ305(b)はバックエン
ドサーバ517にファイルシステムを供給する。図5に
おいて、ファイルシステムに関するデータはローカルデ
ィスク307(b)に記憶される。しかし、遠隔システ
ムに記憶することもできる。
7によりカーネルサーバ305(b)に対してファイル
操作を行い、そして、コールの結果をサーバ305
(b)から受信する。バックエンドサーバ515はバッ
クエンドマップ517を保持する。このバックエンドマ
ップ517は、バックエンド複製ツリー505により指
定されるファイルを、これらのバックアップとして役立
つ、バックアップシステム513のファイルシステム内
のファイルにマップする。カーネルサーバ305(a)
により生成されたファイルシステム及びカーネルサーバ
305(b)により生成されたファイルシステムが同じ
ネーム空間を有する実施例では、バックエンドマップ5
17は不要である。
図6は、ファイルを変更するライブラリ507における
ルーチン601の形態の概観図である。ルーチンが有す
るルーチンネーム603及び引数605は、ライブラリ
507に置換されるライブラリにおいてファイル操作を
行うのに使用されるファンクションのネーム及び引数と
同一である。従って、アプリケーションプログラム50
9におけるこのルーチンの呼出はルーチン601を呼び
出す。
ン601は、ルーチン601により置換されるルーチン
と同じファイル操作をカーネルサーバ305(a)に行
わせる。操作が成功すれば、ルーチン613は変更され
るファイルのネームによりファンクション613を呼出
し、フロントエンド複製ツリー505が、変更されるフ
ァイルがバックアップすべきものであることを示してい
るか否か決定する。フロントエンド複製ツリー505が
そのように示している場合、ファンクション615は引
数617を有するメッセージ512をバックアップシス
テム513に送る。
より供給されたファイルシステムで行われた操作と全く
同じバックアップファイルシステムに対する操作をバッ
クアップシステム513が行うことを要求する。メッセ
ージを送った後、ルーチン601はリターンする。ファ
イルがフロントエンド複製ツリー505に存在しない場
合又はファンクション607により指定される操作が成
功しなかった場合も、ルーチン601はリターンする。
のセクションは副作用(この場合はメッセージ512)
を指定する。ルーチンの特徴は、主システム511でフ
ァイル操作が成功する場合だけメッセージ512をバッ
クアップシステム513に送ることである。なぜなら、
不成功操作はバックアップする必要がないからである。
一般的に2つの形態がある。一つは、フロントエンド複
製ツリー505及びバックエンドマップ517により実
現されるユーザレベルネーム空間405変更することで
あり、もう一つは、変更しないことである。第2の形態
の操作は例えば、フロントエンド複製ツリー505にお
いて指定されるファイルへの書込みである。lib.3
d507における書込ファンクションは、lib.3d
に置換されるライブラリにおける書込ファンクションと
同じインターフェースを有する。
は引数として、ファイルを識別するためにカーネルサー
バ305(a)により使用される整数のファイル記述
子,被書込データを含有するバッファに対するポインタ
及び被書込データのサイズを示す整数を有する。li
b.3dにおける書込ファンクションは、カーネルサー
バ305(a)がファイル記述子により指定されたファ
イルにシステム書込操作を行うことを要求し、操作が成
功すれば、ファンクションはファイル記述子により識別
されたファイルがフロントエンド複製ツリー505内に
存在するか否かチェックし、存在すれば、ファンクショ
ンは書込メッセージ512をバックアップシステム51
3内のバックエンドサーバ515に送り、そして、リタ
ーンする。
により書込まれたファイルを識別し、そして、カーネル
サーバ305(a)により供給されたファイルシステム
におけるシステム書込操作により行われたバックアップ
ファイルシステムにおける書込操作を正確に行うのに必
要な情報を包含する。バックエンドサーバ515がメッ
セージを受信すると、バックエンドサーバ515はバッ
クエンドマップ517を使用し、カーネルサーバ305
(b)がバックアップファイル用に使用するファイル記
述子を決定し、そして、その後、カーネルサーバ305
(b)により供給されたシステム書込ファンクションを
使用し、メッセージ内に与えられたデータ及び位置情報
を用いてバックアップファイルへの書込操作を実行す
る。
操作の単純なケースはファイル削除である。lib.3
dにより供給される削除ファンクションは最初に、カー
ネルサーバ305(a)がファイルを削除することを要
求し、この削除が行われると、削除ファンクションは、
削除されたファイルに関する情報をフロントエンド複製
ツリー505から削除する必要があるか否かチェック
し、削除する必要がある場合、削除ファンクションはこ
の情報を削除する。
メッセージをバックエンドサーバ515に送り、そして
リターンする。バックエンドサーバ515がこのメッセ
ージを受信すると、削除ファンクションはファイルをバ
ックエンドマップ517に配置し、カーネルサーバ30
5(b)がこのファイルを削除することを要求し、同時
に、この削除により必要とされるバックエンドマップ5
17に対する全ての操作を実行する。
ルサーバ305(a)により供給されるファイルシステ
ムにおけるファイルのリネームは、ユーザレベルネーム
空間405に次の3つの可能性のある結果を有すること
ができる。
ーム空間405の一部であり、新たなネームもユーザレ
ベルネーム空間405の一部である場合、ファイルはユ
ーザレベルネーム空間405内にとどまる。
ーム空間405の一部でなく、新たなネームもユーザレ
ベルネーム空間405の一部でない場合、ファイルはユ
ーザレベルネーム空間405に加えられる。
ーム空間405の一部であり、新たなネームがユーザレ
ベルネーム空間405の一部でない場合、ファイルはユ
ーザレベルネーム空間405から削除される。
ムファンクションは、カーネルサーバ305(a)がそ
のファイルシステムでリネームを行うことを要求する。
次いで、リネームされたファイルがユーザレベルネーム
空間405に存在するか否かチェックし、存在すれば、
リネームファンクションはこのリネームを反映するため
にフロントエンド複製ツリー505を変更し、メッセー
ジをバックエンドサーバ515に送り、そこにおけるリ
ネームを要求し、そしてリターンする。言うまでもな
く、このメッセージは新旧のパスネームを包含する。バ
ックエンドサーバ515がメッセージを受信すると、サ
ーバ515はカーネルサーバ305(b)のリネームを
要求する。
ンはサーバ305(a)からリネームを要求し、そして
前記のようにリネームされたファイルがユーザレベルネ
ーム空間405内に存在するか否かチェックする。しか
し、この場合、リネームファンクションはフロントエン
ド複製ツリー505からリネームファイルの情報を削除
し、メッセージをバックエンドサーバ515に送り、リ
ターンする。バックエンドサーバ515へのメッセージ
はファイルの削除メッセージである。このメッセージに
応答して、バックエンドサーバ515は、カーネルサー
バ305(a)にバックアップファイルを削除させる。
ンは再び前記のようなリネームを要求する。しかし、こ
の場合、2種類のメッセージを送らなければならない。
第1のメッセージは、ユーザレベルネーム空間405に
移動されたファイルのネームを有するファイルをバック
アップシステム513内に作成することを要求し、バッ
クエンドサーバ515は、カーネルサーバ305(b)
がこのファイルを作成し、そして、その後、バックエン
ドマップ517にこのファイルのエントリを作成するこ
とを要求することによりこのメッセージに応答する。そ
の後、リネームファンクションはユーザレベルネーム空
間405に移動されたファイルの現在の内容を有する書
込メッセージを送り、バックエンドサーバ515は、カ
ーネルサーバ305(b)にその内容をバックアップシ
ステム513内のバックアップファイルに書き込ませる
ことにより、この書込メッセージに応答する。
ム511におけるカーネルサーバ305(a)により行
われる単一の操作は、バックエンドサーバ515がカー
ネルサーバ305(b)に一連の操作を行わせることを
要求する。更に前記の説明から明らかなように、li
b.3d507におけるファンクションにより行われる
操作の終了時に、バックエンドマップ517とフロント
エンド複製ツリー505は常に同じ状態である。
ましい実施例701のブロック図である。この好ましい
実施例は、或るプロセッサがUNIX(登録商標)オペ
レーティングシステムのSunOS4.1バージョンを
実行し、他のプロセッサがUNIX(登録商標)オペレ
ーティングシステムのMIPS4.5バージョンを実行
するシステムで実現される。システム701には2つの
コンポーネント群が存在する。一方の群はバックアップ
ファイル操作を行い、他方の群はシステム701をフォ
ルトトレラント(誤り許容)システムにする。下記の記
載では、バックアップファイル操作を行うコンポーネン
トについて先ず説明し、次いで、フォルトトレランスを
与えるコンポーネントについて説明する。
プリケーションプロセス503はアプリケーションプロ
グラム509,動的にリンク可能なライブラリlib.
3d507(この機能はファイル操作の副作用としてバ
ックアップファイル操作を行う)及びフロントエンド複
製ツリー(FRT)505を有する。ファイル操作はシ
ステム511によりカーネルサーバ305(a)により
行われる。ライブラリ507におけるファンクションに
より生成されるメッセージはパイプ710によりバック
アップシステム513に搬送される。
りアプリケーションプロセス503に供給され、パイプ
プロセス711自体はパイプ709によりアプリケーシ
ョンプロセス503と通信する。下記で更に詳細に説明
するように、パイププロセス711は単一のパイプ71
0を供給する。パイプ710はバックアップシステム5
13でバックアップを作成する全てのアプリケーション
プロセス503により使用される。
テム513を続ける場合、バックエンドサーバ515は
2つのプロセス、すなわち、バックエンドログプロセス
(BLP)716とシステム呼出エンジン(SYSCA
LL ENG)715に分割される。両方ともファイル
操作を行うためにカーネルサーバ305(b)を使用す
る。バックアップファイルの他に、カーネルサーバ30
5(b)により維持されるファイルシステムはログファ
イル703(b)を包含する。
プロセス503が初期化される場合、パイププロセス7
11からパイプ710を指定するファイル識別子を取得
するアプリケーションプログラム509の実行によりフ
ァイル操作の性能が生じる場合、lib.3d507に
おける操作のファンクションは、カーネルサーバ305
(a)により供給されるファイルシステムに対するファ
ンクションをカーネルサーバ305(a)に行わせ、更
に、パイプ710を介してメッセージをバックアップシ
ステム513に送信する。
に達すると、メッセージはバックエンドログプロセス
(BLP)716により受信される。バックエンドログ
プロセス716はカーネルサーバ305(b)により供
給されるファイルシステムにおけるログファイル703
(b)にメッセージをログする。ログファイル703
(b)がファイル内にメッセージを有する場合は常に、
メッセージは到着順にシステム呼出エンジン715によ
り読み出される。
517はシステム呼出エンジン715に属する。システ
ム呼出エンジン715がメッセージを読み出すのに応じ
て、システム呼出エンジン715はカーネルサーバ30
5(b)に、メッセージにより求められたファイル操作
を行わせ、そしてシステム呼出エンジン715自体はメ
ッセージにより求められるに応じてバックエンドマップ
517を保持する。
検出された誤りがシステムが操作を続行できるような方
法で応答されることを必要とする。好ましい実施例で
は、誤りの検出及びこの検出に対する応答はWatch
D(分散システム誤り許容を作成するユーザレベルシス
テム)により処理される。
24日にフランス国のツールーズで開催された第23回
フォルト・トレラント・コンピューティングに関する国
際会議における、ヒューアン,ワイ(Huang,Y)及びキン
ターラ,シー(Kintala,C)の“フォルトトレランスが実
現されたソフトウエア:技術と経験(Software Implemen
ted Fault Tolerance: Technologies and Experience
s)”及び1992年9月30日に出願されたヒューア
ン,ワイ(Huang,Y)の米国特許出願第07/954,5
49号明細書(発明の名称:フォルトトレラントコンピ
ューティングのための装置及び方法)に詳細に説明され
ている。
は、libftと呼ばれるライブラリと分散システムの
各ノードに対する一つのモニタプロセスを包含すること
を理解するだけでよい。libftは、WatchDに
プロセスを登録するような操作を行うルーチン,自動バ
ックアップのためのメモリの領域を指定するルーチン及
びこれらメモリの領域の対するチェックポイント操作を
行うルーチンを包含する。モニタは、WatchD及び
モニタ相互にも登録されるモニタユーザプロセスを処理
する。
したことをモニタが検出すると、モニタはそのプロセス
を再始動する。libftファンクションによりプロセ
スが再始動される場合、プロセスは何が起こったのかを
決定する。分散システムの或るノードに対するユーザプ
ロセスをモニタする過程で、モニタは重要なデータ(こ
れもlibftファンクションを用いることにより決定
される)のコピーを分散システムの別のノードに移動す
る。
方のノードのモニタがこの障害を検出し、重要データの
現行コピーを用いて他方のノードのユーザプロセスを再
始動する。障害ノードが復旧される場合、そのモニタは
他方のノードからの重要情報を用いてユーザプロセスを
再始動する。そして、ユーザプロセスが再始動されたこ
とを示すメッセージを送信する。他方のノードのモニタ
がこのメッセージを受信すると、他方のノードはそのノ
ードで実行するユーザプロセスを終了する。
列され、各モニタは環内のその隣のモニタをモニタす
る。環内のノードの数及びユーザプロセスの重要データ
のコピーを受信するモニタの数は、WatchDに登録
されたユーザプロセスが再始動出来なくなる前に分散シ
ステムのノードを何個障害させなければならないかを決
定する。
びバックアップシステム513はそれぞれWatchD
モニタを有する。モニタとシステム701のコンポーネ
ントとの間の関係は点線721により示される。主シス
テム511用のモニタはモニタ717である。点線72
1で示されるように、モニタ717はパイププロセス7
11,フロントエンドログプロセス705及びシステム
513内のモニタ719を監視する。モニタ719はモ
ニタ717,システム呼出エンジン715及びバックエ
ンドログプロセス716を監視する。
フロントエンドログプロセス705,パイププロセス7
11,システム呼出エンジン715,バックエンドログ
プロセス716における障害及びシステム513の障害
を取り扱うことができる。フォルトトレランス(誤り許
容性)を与えるシステム701の部分を2つ有するデザ
インは次の2つの主要な目的を有する。
ドが確実に小さいこと, 障害及び障害回復がアプリケーションに対して確実に
透過的であり、実行アプリケーションが絶対に停止され
ないこと。
内で最も信頼できるコンポーネントであるという仮定に
基づく。これは、WatchDが極めて簡単なタスクを
行い、障害発生後に自己回復できるためである。
からの回復を詳細に説明する。他のプロセスの障害から
の回復も概観する。バックアップシステム513の障害
から説明を始めると、このようなケースでは、システム
701は次のように動作する。モニタ717がシステム
513の障害を検出すると、モニタ717はパイププロ
セス711に知らせ、パイププロセス711はフロント
エンドログプロセス705を作成し、パイプ710のフ
ァイル記述子をフロントエンドログプロセス705に対
するパイプ707のファイル記述子に置き換える。
用されるメッセージファンクションがパイプ710の障
害を検出すると、このメッセージファンクションはパイ
ププロセス711からパイプ710用の新たなファイル
記述子を要求する。パイププロセス711はメッセージ
ファンクションに、フロントエンドログプロセス705
に結合されたパイプ707のファイル記述子を与え、メ
ッセージファンクションにより送信されたメッセージは
バックエンドログプロセス716ではなくフロントエン
ドログプロセス705に行く。フロントエンドログプロ
セス705がこのメッセージを受信すると、フロントエ
ンドログプロセス705はこのメッセージを主システム
511内のログファイル703(a)に配置する。
ションはパイプ510の障害を次のように検出する。プ
ロセス503はTCP−IPプロトコルを使用し、パイ
プ701にメッセージを送信する。このプロトコルで
は、先行メッセージが受信された場合だけ次のメッセー
ジを送信することができる。従って、ライブラリルーチ
ン507におけるファンクションにより使用されるメッ
セージファンクションは2種類のメッセージ、すなわち
真正メッセージとダミーメッセージを送信することによ
りパイプ710にメッセージを送信する。メッセージフ
ァンクションがダミーメッセージを送信出来る場合、真
正メッセージは到達する。システム513の障害が発生
すると、パイプ710を介して送信されるメッセージは
到達せず、ダミーメッセージも送信出来ない。
と、モニタ719はシステム呼出エンジン715とバッ
クエンドログプロセス716を再始動させ、その後、モ
ニタ717に通知する。モニタ717はパイププロセス
711に通知する。パイププロセス711はパイプ71
0のファイル記述子を取得し、そしてフロントエンドロ
グプロセス705を終了させる。バックエンドログプロ
セス716がシステム513で再始動すると、プロセス
716はカーネルサーバ305(a)からログファイル
703(a)のコピーを取得し、そして、このコピーを
ログファイル703(b)に付加する。その後、システ
ム呼出エンジン715はログファイル703(b)にお
けるメッセージの実行を再開する。
ファンクションは、パイプ707に関するファイル記述
子を取得する方法と同じ方法で、パイプ710に関する
ファイル記述子を取得する。次に、メッセージファンク
ションがメッセージを送信するためにパイプ710のフ
ァイル記述子を使用しようと試みると、この試みは失敗
し、メッセージファンクションは再びパイププロセス7
11からパイプファイル記述子を要求する。今度は、メ
ッセージファンクションはパイプ710のファイル記述
子を受信し、バックエンドログファイルに再び接続され
る。
たプロセスは、WatchDによりセーブされたプロセ
ス状態からパイプ710への接続を検索する。その他の
プロセスはこの障害・回復に気付かない。
ン715を再始動させる。libftにより与えられる
チェックポイント及び回復機能により、新たに再始動さ
れたシステム呼出エンジン715は外部ファイルからそ
の先行チェックポイント状態へ回復することができる。
その他のプロセスはこの障害・回復に気付かない。
ロセス716を再始動させる。プロセス716はチェッ
クポイントファイルからその状態を復元する。モニタ7
19は更に、バックエンドログプロセス716が再始動
されたことをモニタ717に通知し、次いで、モニタ7
17はパイププロセス711に通知する。その後、プロ
セス711はパイプ710を新たなバックエンドログプ
ロセス716に接続する。各アプリケーションファイル
及びlib.3dの次の書込はパイププロセス711か
ら新たな接続を取得する。
害 フロントエンドログプロセス705の障害はシステム5
13の障害発生期間中のみ存在する。モニタ717がフ
ロントエンドログプロセス705の障害を検出すると、
モニタはパイププロセス711に通知する。次いで、フ
ロントエンドログプロセス705を再始動させ、そして
パイプ708をフロントエンドログプロセス705に再
接続させる。アプリケーションプログラム509の次の
書込は失敗し、その結果、lib.3dにおけるメッセ
ージ送信ファンクションはパイププロセス711から新
たなパイプ708に関するファイル記述子を取得する。
8〜11 全ての一連のファイルを、カーネルサーバ305(a)
により供給されるファイルシステムからアプリケーショ
ンプロセス503へ指定するために、ユーザレベルネー
ム空間405を使用することができる。図8は、カーネ
ルサーバ305(a)により供給されるファイルシステ
ムのネーム空間801とユーザレベルバックアップファ
イルシステム701におけるユーザレベルネーム空間4
05との間の関係を示す。
ムはツリー状に配列される。図8におけるツリーの葉
(B,D,E,G,I,M,N)を形成するファイルは
データ又はプログラムを含有する。残りのファイルは他
のファイルのリストである。このようなファイルはディ
レクトリと呼ばれる。ネーム空間801における全ての
ファイルは、ルート“/”で始まるパスネームによりカ
ーネルサーバ305(a)に対して指定することがで
き、また、ルートからパスネームにより指定されるファ
イルのネームまで全てのファイルのネームを包含する。
従って、ファイル“D”のパスネームは/A/C/Dで
あり、ファイル“L”のパスネームは/J/K/Lであ
る。
ム701は、ファイルを包含するネーム空間801のサ
ブツリーを指定することにより、バックアップすべきフ
ァイルを指定する。次いで、ファイルを変更するサブツ
リー内のファイルに対する操作はバックアップシステム
513内のバックアップファイルに対して行われる。図
8では、4個のサブツリー,803(a),803
(b)及び803(c)がバックアップすべきものとし
て選択されている。
ファイルD,E,G,I,M又はNに対する変更は、こ
のデータファイルのバックアップファイルに対する変更
を生じるであろう。同様に、ディレクトリC,F,H及
びLに対する変更はこれらのバックアップファイルに対
する変更を生じるであろう。サブツリー内の全てのファ
イルがバックアップされるので、バックアップすべきフ
ァイルは、サブツリーのルートであるディレクトリのパ
スネームにより、ユーザレベルネーム空間405で指定
される。例えば、サブツリー803(a)は、パスネー
ム/A/C805(a)によりユーザレベルネーム空間
405において指定される。
405はシステム呼出エンジン715により供給される
ファイルシステムに対してもマップされなければならな
い。これはバックエンドマップ517において行われ
る。図9に示されるように、バックエンドマップ517
はユーザレベルネーム空間405における各オープンフ
ァイルに関するエントリを包含する。エントリは、ユー
ザレベルネーム空間情報903とバックアップシステム
情報905の513の2つの部分からなる。
ザレベルネーム空間405におけるファイルを識別す
る。バックアップシステム情報905は、ユーザレベル
ネーム空間情報により識別されたファイルに対応する、
カーネルサーバ305(b)により供給されるシステム
内のファイルを識別する。
01のサブツリーを、カーネルサーバ305(b)がバ
ックエンドログプロセス716及びシステム呼出エンジ
ン715に供給したファイルシステムのネーム空間90
7のサブツリーにマッピングすることを可能にする。こ
のマッピングは、ネーム空間801のサブツリーのルー
トのパスネームをネーム空間907の対応するサブツリ
ーのルートのパスネームにマッピングすることにより行
われる。
イルのパスネームのプレフィックスと呼ばれている。例
えば、サブツリー803(a)におけるパスネームはプ
レフィックス/A/Cを有する。サブツリー803
(a)内のファイルEのパスネームはEである。ネーム
空間907において、サブツリー909/Zは、ネーム
空間801からプレフィックス/A/Cをネーム空間9
07のプレフィックス/Zにマッピングすることによ
り、サブツリー803(a)に対応させる。マッピング
が完了した後、ネーム空間801におけるパスネーム/
A/C/Eにより指定されるファイルの変更は、ネーム
空間907におけるパスネーム/Z/Eにより指定され
るファイルの変更を生じる。
図10 好ましい実施例では、ユーザレベルネーム空間405は
フロントエンド複製ツリー505により実現される。図
10はフロントエンド複製ツリー505を詳細に示すブ
ロック図である。フロントエンド複製ツリー505の2
つの主要なコンポーネントはRTREE1015とファ
イル記述子キャッシュ1027である。RTREE10
15はバックアップされるべきファイルを有するサブツ
リー803のルートのパスネームがリンクされたリスト
である。
ァイル記述子をデバイス及びエントリ(inode)識
別子に関連させるアレーである。従って、この実現の形
は、UNIXオペレーティングシステムにより提供され
たファイルシステムが3つの方法、すなわち、パスネー
ムにより、整数ファイル記述子により及びファイルが駐
在するディスクの識別子とUNIXファイルシステムテ
ーブル内のファイルのエントリ(inode)によりフ
ァイルを識別するという事実の結果である。
ープンしたプロセスだけに、また、このプロセスがこの
ファイルをオープンしている間だけ有効である。UNI
Xファイルシステムテーブルは、パスネームとデバイス
及びinode間並びにデバイス及びinodeと現行
ファイル記述子との間の翻訳を可能にするが、パスネー
ムと現行ファイル記述子との間の直接翻訳は可能にしな
い。
try1003及びinit1005はフロントエンド
複製ツリー505の初期化に使用される。maxtry
1003は、初期化機能がギブアップする前に、パイプ
710をバックアップシステム513にセットアップす
るために試行した回数を示す。init1005は、パ
イプがセットアップされたか否かを示す。RPROPア
レー1009はフロントエンド複製ツリー505で行う
ことができる操作のネーム1011のアレーである。
Eリスト1015の最初の要素のポインタ、すなわち、
各複製ツリー803の或る要素を包含するリンクリスト
である。各要素1017は複製ツリー803のルートの
パスネーム1021,パスネーム1021の長さ101
9及びリンクリスト内の次の要素に対するポインタ10
23を包含する。接続サーバ1025はバックアップシ
ステム513に対するパイプ710のネーム空間801
におけるパスネームである。
キャッシュエントリ1029のアレーである。このアレ
ー内のエントリ1029は、アプリケーションプロセス
503に対して利用可能なファイル記述子と同じくらい
多数存在する。FDキャッシュ1027内の所定のファ
イル記述子のエントリのインデックスはファイル記述子
である。エントリ1029は、エントリが現に有効であ
るか否かを示し、かつ、ファイルがオープンされている
間、アプリケーションプロセス503が子を産むか否か
を示す状態フラグを包含する。
けるファイル駐在デバイスの識別子1101と主システ
ム511におけるファイルのinodeの識別子も包含
する。RTREE1015におけるエントリにより指定
されるサブツリー803で現にオープンされている各フ
ァイルの有効エントリ1029が存在する。
3とオープン複製ファイルリスト1117の2つの部分
からなる。パスネームマップ1113は、主システム5
11のネーム空間801におけるパスネームをバックア
ップシステム513のネーム空間907のパスネームに
マップするだけである。マップ内の各エントリ1115
は、フロントエンドパスネーム1117とバックエンド
パスネーム1119との間の関係を確立する。
エンドネーム空間907におけるサブツリー803のル
ートをネーム空間907におけるサブツリーのルートに
マッピングするエントリが包含されている。バックエン
ドパスネーム1119はバックアップシステム情報90
5の一部である。好ましい実施例では、これらのマッピ
ングはシステム構成ファイルにおいて指定される。
アプリケーションプロセス503がその複製ツリー80
3において現にオープンしている各ファイルのエントリ
1119を包含する。エントリ1119におけるユーザ
レベルネーム空間情報903はフロントエンドファイル
識別子(FFID)1105及びフロントエンドパスネ
ーム(FP)1106を包含する。フロントエンドファ
イル識別子(FFID)1105は主システム511に
おけるファイルのデバイス識別子とinode識別子か
ら構成されている。
6はフロントエンドプレフィックス(FPR)1107
とサブツリーパスネーム1108に分割される。フロン
トエンドプレフィックス(FPR)1107はフロント
エンドネーム空間801におけるファイルのサブツリー
のプレフィックスである。サブツリーパスネーム110
8はそのサブツリー内のファイルのパスネームである。
エントリ1117におけるバックアップシステム情報9
05はバックエンドファイル記述子1111からなる。
このファイルについてカーネルサーバ305(b)によ
り供給されるファイルシステムにおけるファイル記述子
である。好ましい実施例では、バックエンドマップ51
7はハッシュテーブルとして実現される。このハッシュ
テーブルは、フロントエンドファイル識別子1105及
びフロントエンドパスネーム1106の両方によりアク
セスできる。
のデータ構造を様々なファイル操作により作用させる方
法について説明する。好ましい実施例では、アプリケー
ションプロセス503はコーンシェルを使用するUNI
Xオペレーティングシステムで実行する。
設定できるようにする。ENV変数は、プロセスがコー
ンシェルを呼び出すときはいつでも、実行されるファイ
ルを指定する。アプリケーションプロセス503におい
てENV変数により指定されるファイルは、フロントエ
ンド複製テーブル505を構築し、かつ、初期化するた
めに、アプリケーションプロセス503にとって必要な
情報を含有する。
ケーションプロセス503のアドレス空間の一部とな
り、アプリケーションプロセス503の子プロセスに対
して利用可能である。この子プロセスは、UNIXオペ
レーティングシステムのフォークシステム呼出により作
成される。従って、子プロセスはその親の環境を受け継
ぐ。一方、execシステム呼出は子プロセスに新たな
環境を与える。
プリケーションプロセス503の子に対して利用可能な
フロントエンド複製ツリー505を作成するために、l
ib.3dは、新たなプロセスについて利用可能なEN
Vにフロントエンド複製ツリー505をコピーするex
ecファンクションを有する。このため、プロセスが他
の点で、その親のアドレス空間を受け継いでいない場合
であっても、lib.3dはこのプロセスに対して利用
可能である。その他の実施例は、フロントエンド複製ツ
リー505をexecにより作成された子プロセスにパ
スするための、ネーム付パイプ又は外部ファイルさえも
使用できる。
らの操作のうちの最初の操作はマウント操作である。U
NIXオペレーティングシステムでは、マウントはネー
ムのツリーをオペレーティングシステムのネーム空間に
追加する。好ましい実施例では、lib.3dで実現さ
れるマウントのバージョンは、フロントエンドネーム空
間801のサブツリーを複製ツリー805としてユーザ
レベルネーム空間405に追加させるモードを包含す
る。
パスネーム引数はユーザレベルネーム空間405に追加
されるサブツリー803のルートのパスネームである。
このファンクションは、このパスネームについて複製ツ
リーエントリ1017を作成し、そして、このエントリ
を複製ツリー1015に追加することにより、サブツリ
ー803をユーザレベルネーム空間405に追加する。
また、指定されたパスネームを有する複製ツリーエント
リ1017を複製ツリー1015から削除するアンマウ
ント操作も存在する。
リー805内のファイルに対してオープン操作を行う場
合、lib.3d内のオープンファンクションは、新た
にオープンされたファイルに関するファイル記述子キャ
ッシュエントリ1029を作成し、オープンメッセージ
をバックエンドログプロセス716に送信する。このオ
ープンメッセージはオープンされたファイルの主システ
ム511におけるパスネーム,デバイス識別子及びin
ode識別子を含む。
15により実行されると、バックエンドマップ517で
エントリ901が作成される。パスネーム113は、主
システム511でオープンされているファイルに対応す
るバックエンドシステム513におけるファイルを発見
するために使用される。対応するファイルのファイル記
述子はバックエンドファイル記述子1111に配置され
る。
511におけるファイル操作は、ファイルを識別するた
めにファイル識別子を使用する。バックアップシステム
513におけるバックアップファイルに対する対応する
操作のためのメッセージは、ファイルを識別するために
デバイス識別子とinode識別子を使用する。このよ
うなメッセージを実行するために、システム呼出エンジ
ン715は、メッセージ内で指定されたデバイス及びi
nodeについて、オープン複製ファイルリスト111
7内のエントリにアクセスするだけでよい。このエント
リはバックアップシステム513を実行するのに必要な
ファイル記述子1111を包含する。
リー505内のファイルをクローズする場合、lib.
3dクローズファンクションは、子プロセスがファイル
を使用しているか否かについて、状態フィールド103
3から決定する。子プロセスがファイルを使用していな
い場合、クローズファンクションは複製ツリー505内
のファイルに関するファイル記述子キャッシュエントリ
1029を無効にし、デバイス識別子及びinode識
別子を含むクローズメッセージをバックアップシステム
513に送信する。
ージを実行する場合、このファイルのエントリ1119
を見つけるために、デバイス及びinode識別子を使
用する。次いで、ファイルを識別するためのバックエン
ドファイル記述子1111を使用しバックアップシステ
ム513内のファイルをクローズし、そして、最後に、
オープン複製ファイルリスト1117からエントリ11
19を削除する。
システムの形成方法及び使用方法の一例について詳細に
説明してきたが、本発明のユーザレベルバックアップフ
ァイルシステムの様々な変更例を実現できることは当業
者に明らかである。例えば、好ましい実施例は、UNI
Xオペレーティングシステムを実行するシステムで実現
され、好ましい実施例の多数の細部はUNIXオペレー
ティングシステムを実行するシステムで実現されること
を反映する。その他のオペレーティングシステムおいて
実現する場合、これらの細部は変更される。
レーティングシステムで使用される共用ライブラリシス
テムを使用する。その他の実施例は動的にリンクされた
ライブラリのその他の構成を使用する。更に、この明細
書で開示したデータ構造及びメッセージは、この明細書
に開示されたものと機能的に同等のその他の多くの方法
により実現させることもできる。
システムは、プロセスにより実行されているアプリケー
ションプログラムを変更することなしにプロセスの挙動
を変更するための、動的にリンクされた代替ライブラリ
の使用方法の一例にしか過ぎない。この同じ手法は、オ
ペレーティングシステムによりプロセスに与えられたネ
ーム空間と異なる、プロセス用ユーザレベルネーム空間
を定義するためにも使用でき、また、ファイルバックア
ップばかりでなく、その他のサービスも、ユーザレベル
ネーム空間又はオペレーティングシステムがプロセスに
与えるネーム空間の何れかのエンティティのネームに付
加するためにも使用できる。
アプリケーションプログラム,オペレーティングシステ
ム又はハードウエアを変更することなしに使用できるバ
ックアップファイルシステムが得られる。
ク図である。
ースを再定義する方法を示す模式図である。
ーティングシステムインターフェースを再定義する方法
を示すブロック図である。
レベルネーム空間を供給する方法を示すブロック図であ
る。
ザレベルバックアップファイルシステムのブロック図で
ある。
ンの概要図である。
好ましい実施例のブロック図である。
空間とユーザレベルネーム空間との関係を示すブロック
図である。
(b)により供給されるネーム空間との関係を示すブロ
ック図である。
すブロック図である。
ック図である。
Claims (2)
- 【請求項1】 動的にリンクされるライブラリにおける
ファンクションを実行することにより行われるエンティ
ティに対する操作に副作用を選択的に追加する装置にお
いて、 追加すべき副作用の表示をエンティティに対応付ける手
段と,動的にリンクされるライブラリを代替し、かつ、
代替ファンクションを有する動的にリンクされる代替ラ
イブラリとからなり、 前記代替ファンクションは、動的にリンクされるライブ
ラリにおけるファンクションと同じ方法で操作を行い、
そして、更に、副作用がエンティティについて行われる
べきものか否か表示対応付け手段から決定し、行われる
べきものと表示対応付け手段が示した場合、該副作用を
行うことを特徴とするファイル・システムの副作用の選
択的追加装置。 - 【請求項2】 第1の動的にリンクされるライブラリか
らのファンクションを用いて第1のファイルシステムに
おける第1のファイルについて動作するアプリケーショ
ンプログラムを実行する第1のユーザプロセスと,第2
のファイルシステムにおいて動作する第2のユーザプロ
セスと,第1の動的にリンクされるライブラリを代替
し、かつ、第1の動的にリンクされるライブラリからの
ファンクションの代替ファンクションを有する第2の動
的にリンクされるライブラリ、該代替ファンクションは
第1のライブラリからのファンクションと同じ方法で第
1のファイルシステムにおけるファイルについて動作
し、更に、第2のユーザプロセスに対する操作を指定す
るメッセージを送信する,及び第2のユーザプロセスに
より実行可能な、第2のファイルシステムにおける第2
のファイルに関するメッセージにょり指定される操作を
行うことにより該メッセージに応答する手段と,からな
るファイル複製システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US080037 | 1993-06-18 | ||
US08/080,037 US5572709A (en) | 1993-06-18 | 1993-06-18 | Using dynamically-linked libraries to add side effects to operations |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0713751A true JPH0713751A (ja) | 1995-01-17 |
JP2925931B2 JP2925931B2 (ja) | 1999-07-28 |
Family
ID=22154859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6155409A Expired - Lifetime JP2925931B2 (ja) | 1993-06-18 | 1994-06-15 | ファイル・システムの副作用の選択的追加装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5572709A (ja) |
EP (1) | EP0629950B1 (ja) |
JP (1) | JP2925931B2 (ja) |
CA (1) | CA2124123C (ja) |
DE (1) | DE69428741T2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11508071A (ja) * | 1995-06-09 | 1999-07-13 | オクトパス テクノロジーズ インコーポレイテッド | 実時間データ保護システムおよび方法 |
JP2008541213A (ja) * | 2005-05-05 | 2008-11-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ストレージ仮想化インフラストラクチャの可用性を向上させる自律型ストレージ・プロビジョニング[i1] |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812748A (en) * | 1993-06-23 | 1998-09-22 | Vinca Corporation | Method for improving recovery performance from hardware and software errors in a fault-tolerant computer system |
JP3140906B2 (ja) * | 1994-04-12 | 2001-03-05 | 株式会社エヌ・ティ・ティ・データ | システムファイルの更新及び復元方法 |
US5831606A (en) | 1994-12-13 | 1998-11-03 | Microsoft Corporation | Shell extensions for an operating system |
US5870757A (en) * | 1995-09-11 | 1999-02-09 | Sun Microsystems, Inc. | Single transaction technique for a journaling file system of a computer operating system |
JP2000512044A (ja) * | 1996-06-07 | 2000-09-12 | エイ・ティ・アンド・ティ・コーポレーション | インターネット・ファイル・システム |
US7278106B1 (en) * | 1998-07-14 | 2007-10-02 | Computer Associates Think, Inc. | Method and apparatus for interacting with a source code control system |
US6266781B1 (en) * | 1998-07-20 | 2001-07-24 | Academia Sinica | Method and apparatus for providing failure detection and recovery with predetermined replication style for distributed applications in a network |
US6504915B1 (en) | 1998-09-25 | 2003-01-07 | Unisys Corporation | Multiple node messaging system wherein nodes have shared access to message stores of other nodes |
US6609159B1 (en) | 1998-11-30 | 2003-08-19 | Semyon Dukach | Methods, systems, and machine readable programming for interposing front end servers between servers and clients |
US6513153B1 (en) * | 1999-03-03 | 2003-01-28 | Cisco Technology, Inc. | Automatically integrating and executing application software modules |
US6556995B1 (en) | 1999-11-18 | 2003-04-29 | International Business Machines Corporation | Method to provide global sign-on for ODBC-based database applications |
US6779003B1 (en) * | 1999-12-16 | 2004-08-17 | Livevault Corporation | Systems and methods for backing up data files |
US6460055B1 (en) * | 1999-12-16 | 2002-10-01 | Livevault Corporation | Systems and methods for backing up data files |
US6847984B1 (en) | 1999-12-16 | 2005-01-25 | Livevault Corporation | Systems and methods for backing up data files |
US6625623B1 (en) | 1999-12-16 | 2003-09-23 | Livevault Corporation | Systems and methods for backing up data files |
US6526418B1 (en) * | 1999-12-16 | 2003-02-25 | Livevault Corporation | Systems and methods for backing up data files |
US20030115546A1 (en) * | 2000-02-17 | 2003-06-19 | Dubey Stuart P. | Method and apparatus for integrating digital media assets into documents |
US6792559B1 (en) * | 2000-04-25 | 2004-09-14 | Ncr Corporation | Performing operations in an environment recreated from system dump information |
US6484187B1 (en) * | 2000-04-28 | 2002-11-19 | International Business Machines Corporation | Coordinating remote copy status changes across multiple logical sessions to maintain consistency |
US7327832B1 (en) | 2000-08-11 | 2008-02-05 | Unisys Corporation | Adjunct processing of multi-media functions in a messaging system |
US7116764B1 (en) | 2000-08-11 | 2006-10-03 | Unisys Corporation | Network interface unit having an embedded services processor |
US7095828B1 (en) | 2000-08-11 | 2006-08-22 | Unisys Corporation | Distributed network applications platform architecture |
US6829687B2 (en) * | 2000-12-28 | 2004-12-07 | International Business Machines Corporation | Volume data net backup |
US7689715B1 (en) * | 2002-12-20 | 2010-03-30 | Symantec Operating Corporation | Method and system for implementing a global name space service |
US7092976B2 (en) * | 2003-06-24 | 2006-08-15 | International Business Machines Corporation | Parallel high speed backup for a storage area network (SAN) file system |
US7225208B2 (en) * | 2003-09-30 | 2007-05-29 | Iron Mountain Incorporated | Systems and methods for backing up data files |
US7567974B2 (en) | 2004-09-09 | 2009-07-28 | Microsoft Corporation | Method, system, and apparatus for configuring a data protection system |
US8145601B2 (en) | 2004-09-09 | 2012-03-27 | Microsoft Corporation | Method, system, and apparatus for providing resilient data transfer in a data protection system |
US7865470B2 (en) * | 2004-09-09 | 2011-01-04 | Microsoft Corporation | Method, system, and apparatus for translating logical information representative of physical data in a data protection system |
US20060218435A1 (en) * | 2005-03-24 | 2006-09-28 | Microsoft Corporation | Method and system for a consumer oriented backup |
US7774313B1 (en) * | 2005-11-29 | 2010-08-10 | Symantec Corporation | Policy enforcement in continuous data protection backup systems |
US7647362B1 (en) | 2005-11-29 | 2010-01-12 | Symantec Corporation | Content-based file versioning |
US7809688B2 (en) | 2006-08-04 | 2010-10-05 | Apple Inc. | Managing backup of content |
US7853566B2 (en) | 2006-08-04 | 2010-12-14 | Apple Inc. | Navigation of electronic backups |
US8311988B2 (en) | 2006-08-04 | 2012-11-13 | Apple Inc. | Consistent back up of electronic information |
US7860839B2 (en) | 2006-08-04 | 2010-12-28 | Apple Inc. | Application-based backup-restore of electronic information |
US8370853B2 (en) | 2006-08-04 | 2013-02-05 | Apple Inc. | Event notification management |
US8166415B2 (en) | 2006-08-04 | 2012-04-24 | Apple Inc. | User interface for backup management |
US9009115B2 (en) | 2006-08-04 | 2015-04-14 | Apple Inc. | Restoring electronic information |
US7809687B2 (en) | 2006-08-04 | 2010-10-05 | Apple Inc. | Searching a backup archive |
US7853567B2 (en) | 2006-08-04 | 2010-12-14 | Apple Inc. | Conflict resolution in recovery of electronic data |
US7856424B2 (en) | 2006-08-04 | 2010-12-21 | Apple Inc. | User interface for backup management |
US20080126442A1 (en) * | 2006-08-04 | 2008-05-29 | Pavel Cisler | Architecture for back up and/or recovery of electronic data |
US8099392B2 (en) | 2007-06-08 | 2012-01-17 | Apple Inc. | Electronic backup of applications |
US20080307017A1 (en) | 2007-06-08 | 2008-12-11 | Apple Inc. | Searching and Restoring of Backups |
US8745523B2 (en) | 2007-06-08 | 2014-06-03 | Apple Inc. | Deletion in electronic backups |
US8010900B2 (en) | 2007-06-08 | 2011-08-30 | Apple Inc. | User interface for electronic backup |
US8307004B2 (en) | 2007-06-08 | 2012-11-06 | Apple Inc. | Manipulating electronic backups |
US8725965B2 (en) | 2007-06-08 | 2014-05-13 | Apple Inc. | System setup for electronic backup |
US8429425B2 (en) | 2007-06-08 | 2013-04-23 | Apple Inc. | Electronic backup and restoration of encrypted data |
US8468136B2 (en) | 2007-06-08 | 2013-06-18 | Apple Inc. | Efficient data backup |
US9235595B2 (en) * | 2009-10-02 | 2016-01-12 | Symantec Corporation | Storage replication systems and methods |
US8838644B2 (en) * | 2009-11-25 | 2014-09-16 | International Business Machines Corporation | Extensible access control list framework |
FR2953306B1 (fr) * | 2009-12-01 | 2011-12-16 | Bull Sas | Procede, programme d'ordinateur et dispositif pour la gestion automatique de versions de fichiers dans un environnement informatique local |
US8984029B2 (en) | 2011-01-14 | 2015-03-17 | Apple Inc. | File system management |
US8943026B2 (en) | 2011-01-14 | 2015-01-27 | Apple Inc. | Visual representation of a local backup |
US10069674B2 (en) | 2013-12-12 | 2018-09-04 | International Business Machines Corporation | Monitoring file system operations between a client computer and a file server |
US9519468B2 (en) * | 2015-02-13 | 2016-12-13 | Oracle International Corporation | Modular co-versioning in a dynamically linked runtime environment |
US10592329B2 (en) | 2017-03-02 | 2020-03-17 | Acer Incorporated | Method and electronic device for continuing executing procedure being aborted from physical address where error occurs |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5109515A (en) * | 1987-09-28 | 1992-04-28 | At&T Bell Laboratories | User and application program transparent resource sharing multiple computer interface architecture with kernel process level transfer of user requested services |
US5146593A (en) * | 1989-03-06 | 1992-09-08 | International Business Machines Corporation | Procedure call interface |
US5133065A (en) * | 1989-07-27 | 1992-07-21 | Personal Computer Peripherals Corporation | Backup computer program for networks |
US5371885A (en) * | 1989-08-29 | 1994-12-06 | Microsoft Corporation | High performance file system |
JP2554404B2 (ja) * | 1990-05-21 | 1996-11-13 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 自動記憶ライブラリ |
GB2251502B (en) * | 1990-11-07 | 1995-06-14 | Nonstop Networks Limited | Data-loss prevention products |
US5247681A (en) * | 1990-12-18 | 1993-09-21 | International Business Machines Corporation | Dynamic link libraries system and method |
US5375241A (en) * | 1992-12-21 | 1994-12-20 | Microsoft Corporation | Method and system for dynamic-link library |
-
1993
- 1993-06-18 US US08/080,037 patent/US5572709A/en not_active Expired - Lifetime
-
1994
- 1994-05-24 CA CA002124123A patent/CA2124123C/en not_active Expired - Fee Related
- 1994-06-07 DE DE69428741T patent/DE69428741T2/de not_active Expired - Lifetime
- 1994-06-07 EP EP94304064A patent/EP0629950B1/en not_active Expired - Lifetime
- 1994-06-15 JP JP6155409A patent/JP2925931B2/ja not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11508071A (ja) * | 1995-06-09 | 1999-07-13 | オクトパス テクノロジーズ インコーポレイテッド | 実時間データ保護システムおよび方法 |
US7100072B2 (en) | 1995-06-09 | 2006-08-29 | Emc Corporation | Backing up selected files of a computer system |
JP2008541213A (ja) * | 2005-05-05 | 2008-11-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ストレージ仮想化インフラストラクチャの可用性を向上させる自律型ストレージ・プロビジョニング[i1] |
Also Published As
Publication number | Publication date |
---|---|
DE69428741T2 (de) | 2002-08-08 |
DE69428741D1 (de) | 2001-11-29 |
CA2124123C (en) | 1999-05-18 |
EP0629950A1 (en) | 1994-12-21 |
US5572709A (en) | 1996-11-05 |
EP0629950B1 (en) | 2001-10-24 |
CA2124123A1 (en) | 1994-12-19 |
JP2925931B2 (ja) | 1999-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2925931B2 (ja) | ファイル・システムの副作用の選択的追加装置 | |
JP4762972B2 (ja) | データベース内の回復ユニット(recoveryunit)のためのシステムおよび方法 | |
US7243198B2 (en) | Method and system for transporting data content on a storage area network | |
US9059976B2 (en) | Software-defined network attachable storage system and method | |
US7546431B2 (en) | Distributed open writable snapshot copy facility using file migration policies | |
US7822726B1 (en) | Encapsulation of storage object extensibility records for backup and restore | |
US7099900B1 (en) | Mapping driver for use in data backup systems | |
US7392425B1 (en) | Mirror split brain avoidance | |
US5878434A (en) | Transaction clash management in a disconnectable computer and network | |
US6647473B1 (en) | Kernel-based crash-consistency coordinator | |
US7457982B2 (en) | Writable virtual disk of read-only snapshot file objects | |
US6163856A (en) | Method and apparatus for file system disaster recovery | |
US8255364B2 (en) | System for emulating a virtual boundary of a file system for data management at a fileset granularity | |
US20050216788A1 (en) | Fast backup storage and fast recovery of data (FBSRD) | |
US20070006018A1 (en) | Creation of a single snapshot using a server job request | |
US20020091710A1 (en) | Method for backup and restore of a multi-lingual network file server | |
GB2341958A (en) | File system disaster recovery | |
JPH07104808B2 (ja) | 設置可能なファイルシステムにおいてダイナミックボリュームトラッキングを行う方法及び装置 | |
US20050278382A1 (en) | Method and apparatus for recovery of a current read-write unit of a file system | |
Welch | A comparison of the Vnode and Sprite file system architectures | |
EP0694839B1 (en) | Distributed systems with replicated files | |
Peyrouze et al. | FT-NFS: An efficient fault-tolerant NFS server designed for off-the-shelf workstations | |
Nishimura et al. | Implementation of a stackable file system for real-time network backup |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080507 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080507 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090507 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090507 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100507 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110507 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110507 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120507 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130507 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130507 Year of fee payment: 14 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |