(57)【特許請求の範囲】
【請求項１】
制御装置が実行すべき動作項目を別々にリストするロール・フォワード・ログおよびロール・バック・ログを維持し、制御装置で使用され、コミット事象の発生時にロール・フォワード・ログにリストされている動作項目を実行することをコミットするように構成されるトランザクション・オブジェクトにおける、トランザクション・オブジェクトに作用する方法であって、
ロール・フォワード・ログ中のすべての動作項目を消去する動作項目をロール・バック・ログにリストするステップと、
コミット事象を、ロール・バック・ログを消去する一命令として定義するステップを有する方法。
【請求項２】
制御装置が実行すべき動作項目を別々にリストするロール・フォワード・ログおよびロール・バック・ログを維持し、制御装置で使用されるトランザクション・オブジェクトにおける、トランザクション・オブジェクトに作用する方法であって、
ロール・フォワード・ログ中のすべての動作項目を消去する動作項目をロール・バック・ログにリストするステップと、
ロール・フォワード・ログとロール・バック・ログのうちの少なくとも一方に制御装置が実行すべき動作項目をリストするステップと、
（イ）トランザクション・ユーザがトランザクションをコミットすることを決定した場合に、ロール・バック・ログを消去する単一の命令を実行し、ロール・フォワード・ログを実行して、それにリストされている動作項目を実行し、ロール・フォワード・ログから、それにリストされている動作項目を消去するステップ・シーケンスと、（ロ）トランザクション・ユーザが、トランザクションを中止することを決定した場合に、ロール・バック・ログを実行して、ロール・フォワード・ログ中のすべての動作項目を消去する動作項目を含め、ロール・バック・ログにリストされている動作項目を実行することによって、トランザクション・オブジェクトを中止し、ロール・バック・ログから、それにリストされている動作項目を消去するステップ・シーケンスと、（ハ）電源障害から回復する場合に、ロール・バック・ログを実行して、それにリストされている動作項目を実行し、ロール・フォワード・ログを実行して、それにリストされている動作項目を実行するステップ・シーケンスの３つのステップ・シーケンスのうちの１つを行なうステップとを有する方法。
【請求項３】
制御装置が実行すべき動作項目を別々にリストするロール・フォワード・ログおよびロール・バック・ログを維持する、制御装置で使用されるトランザクション・オブジェクトにおいて、電源障害から回復する場合にトランザクション・オブジェクトを操作する方法であって、（ａ）ロール・バック・ログを実行して、それにリストされている動作項目を実行するステップと、（ｂ）ステップ（ａ）についてのロール・バック・ログの実行に続いて、ロール・フォワード・ログを実行して、それにリストされている動作項目を実行するステップとを含む方法。
【請求項４】
ロール・バック・ログから、それにリストされている動作項目を消去する追加ステップ（ｃ）をさらに含む請求項３に記載の方法。
【請求項５】
ロール・フォワード・ログから、それにリストされている動作項目を消去するステップ（ｃ）をさらに含む請求項３に記載の方法。
【請求項６】
ロール・フォワード・ログ中のすべての動作項目を消去する動作項目をロール・バック・ログにリストするステップ（ｃ）をさらに含む請求項３に記載の方法。
【請求項７】
（ｃ）ロール・フォワード・ログから、それにリストされている動作項目を消去するステップと、（ｄ）ロール・バック・ログから、それにリストされている動作項目を消去するステップと、（ｅ）ロール・フォワード・ログにリストされているすべての動作項目を消去する動作項目をロール・バック・ログにリストするステップとをさらに有する請求項３に記載の方法。
【請求項８】
電源障害の場合に制御装置で使用されるトランザクション・オブジェクトを操作する方法であって、ロール・フォワード・ログおよびロール・バック・ログを不揮発性ＲＡＭに提供するステップと、ロール・フォワード・ログとロール・バック・ログのうちの少なくとも一方に制御装置が実行すべき動作項目をリストするステップと、ロール・フォワード・ログ中のすべての動作項目を消去する動作項目をロール・バック・ログにリストするステップと、ロール・バック・ログを消去する一命令が発生したときに、ロール・フォワード・ログ中の動作項目を実行するようにトランザクション・オブジェクトをコミットさせるステップとを有する方法。
【請求項９】
コミット・ステップの後に、ロール・フォワード・ログを実行して、それにリストされている動作項目を実行する追加ステップと、ロール・フォワード・ログから、それにリストされている動作項目を消去する追加ステップと、ロール・フォワード・ログ中のすべての動作項目を消去する動作項目をロール・バック・ログにリストする追加ステップとをさらに有する請求項８に記載の方法。
【請求項１０】
電源障害から回復する場合に、ロール・バック・ログを実行して、それにリストされている動作項目を実行するステップと、ロール・フォワード・ログを実行して、それにリストされている動作項目を実行するステップとを順次行なう追加ステップをさらに含む請求項８に記載の方法。
【請求項１１】
制御装置で使用されるトランザクション・オブジェクトを操作する方法であって、ロール・フォワード・ログおよびロール・バック・ログを不揮発性ＲＡＭに提供するステップと、ロール・フォワード・ログとロール・バック・ログのうちの少なくとも一方に制御装置が実行すべき動作項目をリストするステップと、ロール・フォワード・ログ中のすべての動作項目を消去する動作項目をロール・バック・ログにリストするステップと、ロール・バック・ログを実行して、ロール・フォワード・ログ中のすべての動作項目を消去する動作項目を含め、ロール・バック・ログにリストされている動作項目を実行することによって、トランザクション・オブジェクトを中止するステップと、中止するステップの後に、ロール・バック・ログから、それにリストされている動作項目を消去するステップと、ロール・フォワード・ログ中のすべての動作項目を消去する動作項目をロール・バック・ログにリストするステップとを有する方法。
【請求項１２】
制御装置で使用されるトランザクション・オブジェクトを操作する方法であって、ロール・フォワード・ログおよびロール・バック・ログを不揮発性ＲＡＭに提供するステップと、ロール・フォワード・ログとロール・バック・ログのうちの少なくとも一方に制御装置が実行すべき動作項目をリストするステップと、ロール・フォワード・ログ中のすべての動作項目を消去する動作項目をロール・バック・ログにリストするステップと、ロール・バック・ログを実行して、ロール・フォワード・ログ中のすべての動作項目を消去する動作項目を含め、ロール・バック・ログにリストされている動作項目を実行することによって、トランザクション・オブジェクトを中止するステップと、電源障害から回復する場合に（ａ）ロール・バック・ログを実行して、それにリストされている動作項目を実行するステップと、（ｂ）ステップ（ａ）についてのロール・バック・ログの実行に続いて、ロール・フォワード・ログを実行して、それにリストされている動作項目を実行するステップとを含む方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、制御装置で使用されるオブジェクトのトランザクションを操作する方法に関し、詳細には、トランザクション・オブジェクトでロール・フォワード・ログおよびロール・バック・ログを維持する方法に関する。
【０００２】
【従来の技術】
オブジェクト指向プログラミングでは、コンピュータ・ソフトウェアまたはファームウェアは、容易に交換し、修正し、再使用することができる自己完結型モジュールまたは「オブジェクト」を構成することによって開発される。オブジェクトとは、自己完結型コード単位であり、ルーチンとデータ構造を共に備える。各オブジェクトは、別々のエンティティとみなされ、他のオブジェクトと相互作用するように構成することができる。トランザクション・オブジェクトとは、１つまたは複数のトランザクションを管理するように構成されたオブジェクトである。トランザクションは、コンピュータ・システム内で実行される別々の活動である。
【０００３】
ディスク・アレイなどのデータ記憶システムでは、トランザクション・オブジェクトは一般に、ディスク・アレイ制御装置中のフォームウェアで実施される。トランザクション・オブジェクトは、実行すべき「動作項目」リストを維持することによってトランザクションを管理する。ディスク・アレイ制御装置で使用されるあるタイプのトランザクション・オブジェクトは、ロール・フォワード・ログおよびロール・バック・ログの２種類のテーブルまたは「ログ」を維持するように設計される。ロール・フォワード・ログは、将来制御装置が実行すべき動作項目をリストしたものであり、ロール・バック・ログは、すでに実行された動作項目をどのように取り消すかを記憶したものである。したがって、２つのログは、ディスク・アレイ内のデータ移動を伴う、複雑であることが多いトランザクションの動作項目に責任を負う。
【０００４】
電源障害は、データ記憶システムの設計で重大な問題である。データおよび命令は、電源障害時に情報を保存するために動作時に不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）に維持されることが多い。しかし、電源障害は予期しないときに発生する。電源障害は、部分的に完了したトランザクションの途中で発生することがある。制御装置は、電力の復元時に、電源障害の前に進行していたトランザクションを完了するか、それとも取り消すかを知る必要がある。トランザクションを完了すべきである場合、ロール・フォワード・ログが実行され、そのため制御装置は、ロール・フォワード・ログにリストされている動作項目を終了する。トランザクションを取り消すべきである場合、ロール・バック・ログが実行され、電源障害の前に実行されていた動作項目に戻る。そのような是正措置は、様々な点で、データ記憶システムで記憶され処理されるデータの完全性および正しさを維持するうえで重要である。
【０００５】
【発明が解決しようとする課題】
本発明は、電源障害時のロール・フォワード・ログまたはロール・バック・ログの選択を簡単にする、ディスク・アレイ制御装置などの制御装置でトランザクション・オブジェクトを操作する方法を提供する。
【０００６】
【課題を解決するための手段】
本発明による方法は、実際上、電源障害に対する動作全体をアトミックにする単一の命令に調整された、簡略化されたシーケンスを含む。
【０００７】
本発明の一態様によれば、トランザクション・オブジェクトを操作する方法は、ロール・フォワード・ログ中のすべての動作項目を消去する動作項目をロール・バック・ログにリストするステップを含む。このように、ロール・バック・ログが実行されると、自動的にロール・フォワード・ログが消去される。他の態様によれば、この方法はさらに、ロール・フォワード・ログの実行を単一の命令、すなわちロール・バック・ログを消去する命令にすることができるコミット事象を定義する。
【０００８】
他の態様によれば、この方法は、電力障害時にトランザクション・オブジェクトを操作する方法を提供する。この方法は、まずロール・バック・ログを実行してこのログにリストされている逆動作項目を実行し、その後、ロール・フォワード・ログを実行してこのログにリストされている動作項目を実行する順次ステップを含む。このステップ・シーケンスは、制御装置がコミット事象（すなわち、ロール・バック・ログを消去する単一の命令）を実行したかどうかに応じて、動作項目を正しく完了し、あるいは動作項目を取り消す。電源障害の前にコミット事象が実行された場合、ロール・バック・ログは消去されており、実行すべき動作項目は残っていない。その代わりに、ロール・フォワード・ログが実行されて、動作項目が完了する。逆に、電源障害の前にコミット事象に達しなかった場合、ロール・バック・ログが実行されて、動作項目が取り消される。これはロール・フォワード・ログを消去する動作項目を含んでいる。したがって、ロール・フォワード・ログを実行する第２ステップが実行されるまでに、ロール・フォワード・ログがすでに消去されており、実行すべき動作項目は残っていない。
【０００９】
したがって、本発明の動作方法は実際上、電源障害に対してＮＶＲＡＭで実行される複雑な一連の動作項目全体をアトミックにする。一連の動作項目は、ロール・バック・ログを消去する単一のアトミック動作項目が実行されたかどうかに応じて、完了され、あるいは取り消される。
【００１０】
【実施例】
ディスク・アレイ制御装置など、データ記憶システム用の制御装置に関して本発明を説明する。しかし、本発明はその他の環境とその他のタイプの制御装置で使用することができる。
【００１１】
ディスク・アレイ記憶システムは、複数の記憶ディスクのディスク・アレイと、記憶ディスクとの間のデータ転送の調和をはかるように結合されたディスク・アレイ制御装置１４とを含む。ディスク・アレイ制御装置は、小型コンピュータ・システム・インタフェース（ＳＣＳＩ）など、１つまたは複数のインタフェース・バスを介してディスク・アレイに結合される。ディスク・アレイ制御装置は、情報の持続記憶域を提供するＮＶＲＡＭの形のメモリ・マップ・ストアと、共通ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）とを含む。ＮＶＲＡＭの１つの使用法は、記憶ディスク上のデータを見つけるために使用されるマッピング情報を記憶することである。このマッピング情報は、データが記憶ディスクに書き込まれ、記憶ディスクから削除され、あるいは記憶ディスク上で再配置されるときに更新される。
【００１２】
図１は、ＤＲＡＭおよびＮＶＲＡＭに含まれているデータを管理するためにディスク・アレイ制御装置で使用されるトランザクション・オブジェクト１０を示す。トランザクション・オブジェクトの一使用例は、ディスク・アレイ上の利用可能なメモリ空間の割振りおよび割振り解除に関する複雑な一連の動作項目を管理することである。トランザクション・オブジェクト１０自体は、ディスク・アレイ制御装置中のファームウェアとして実施される。
【００１３】
トランザクション・オブジェクト１０は、ロール・フォワード・ログ１２とロール・バック・ログ１４とを含む。ロール・フォワード・ログ１２は、ＦＩＦＯ（先入れ先出し）テーブルであり、ある種のタスクを行うために制御装置が実行すべき動作項目をリストしたものである。ロール・フォワード・ログに動作項目１および２が示されている。たとえば、ディスク・アレイ制御装置は、ユーザ・データを記憶するためにメモリ・ブロックを割り振る。この割振りタスクは、ディスク・アレイ上に利用可能なメモリ空間を形成する一連の動作項目を必要とする。
【００１４】
ロール・バック・ログ１４は、ＬＩＦＯ（後入れ先出し）テーブルであり、すでに制御装置によって実行された動作項目を反転したものをリストしたものである。ロールバック・ログに反転動作項目１が示されている。たとえば、メモリ・ブロック割振りタスク中に、ロール・バック・ログ１４は、動作項目を、それらが実行される順序で追跡し、それらの動作項目を取り消す適当な反転動作項目を順次リストする。
【００１５】
本発明の一態様によれば、すべての動作項目のロール・フォワード・ログを消去することを指定する動作項目が、ロール・バック・ログに置かれる。これは、図１では、ロール・バック・ログ１４中の反転動作項目１の前の動作項目「ロール・フォワード・ログの消去」によって示されている。この消去動作は実際上、動作項目１や２などロール・フォワード・ログ１２中のすべての動作項目を削除する。
【００１６】
（１）ロール・フォワード・ログ１２に動作項目を追加すること、（２）ロール・バック・ログ１４に反転動作項目を追加すること、（３）コミット・トランザクション、（４）中止トランザクション、（５）電源障害からの回復の基本的に５つのサービスが、本発明のトランザクション・オブジェクト１０によって実行される。これらのサービスは、一連の動作項目をアトミックにするために他のファームウェア・モジュールまたはオブジェクトによって使用される。ファームウェア・モジュール・ユーザは、トランザクションを使用する際、トランザクションを「コミット」するか、それとも「中止する」かを決定する点に到達する。制御装置は、コミットする必要があることをトランザクション・オブジェクトに伝えた後、ロール・フォワード・ログ１２中の動作項目を実行することによってトランザクションを完了する。逆に、制御装置は、中止を要求した後、ロール・バック・ログ１４にリストされた反転動作項目中を逆の順序で通過することによってトランザクションを取り消す。
【００１７】
本発明の一態様によれば、トランザクションをコミットするか、それとも中止するかを表すコミット事象は、ロール・バック・ログ１４を消去する単一の命令として定義される。
【００１８】
図２は、５つのサービスの相互作用を示す。トランザクションの開始２０で、ロール・バック・ログ１４中のロール・フォワード・ログ１２を消去する動作項目が、最初に置かれる（ステップ２２）。プロセスが継続するにつれて、様々な動作項目が必要に応じて、ロール・フォワード・ログ１２またはロール・バック・ログ１４にログされる（ステップ２４および２６）。この時間中に、制御装置は、ディスク・アレイに記憶されているデータを管理する動作項目を実行する。
【００１９】
ある点で、トランザクションのユーザはトランザクション中のロギング動作項目を終了する。その点で、ユーザは、トランザクションをコミットするか、それとも中止するかを決定する（ステップ２８）。ユーザがコミットすることを決定した場合（すなわち、ステップ２８からの「ＹＥＳ」ブランチ）、制御装置は、以下で図３に関して説明するコミット・プロセスを実行する（ステップ３０）。一方、ユーザが中止することを決定した場合（すなわち、ステップ２８からの「ＮＯ」ブランチ）、制御装置は、以下で図４に関して説明する中止シーケンスを実行する（ステップ３２）。いずれの場合も、プロセスが再開される（ステップ２０）。
【００２０】
このプロセスのいずれかの段階で電源障害が発生した場合、流れはただちに、ステップ３４の回復サービスの方へ送られる。これは、ステップ・ブロック３４に至る点線の括弧で図示されている。回復サービスの後、動作は開始２０に戻る。
【００２１】
ロール・フォワード・ログを消去する一つの動作項目が、制御装置によって、電源障害に対してアトミックになる。アトミック動作は完全に実行されるか、あるいは全く実行されないかのどちらである。電源障害時にアトミック動作が部分的に実行されたままになることはない。したがって、ロール・フォワード・ログは電源障害時に消去されるか、あるいは消去されないかのどちらかであり、部分的な消去はない。
【００２２】
本発明は実際上、ＮＶＲＡＭで実行される複雑な一連の動作項目全体を電源障害に対してアトミックにするものである。一連の動作項目は、ロール・バック・ログを消去する単一のアトミック動作項目が実行されたかどうかに応じて完了され、あるいは取り消される。したがって、この方法は、電源障害に対するアトミック動作を生成するために、単一の命令を使用し、ロール・フォワード・ログおよびロール・バック・ログに関するすべての動作に対してその命令を有効にする。
【００２３】
図３は、図２のコミット関数３０に関する好ましいステップ・シーケンスを示す。ステップ４０で、ロール・バック・ログ１４が消去される。コミット点が消去されているので、トランザクションは取り消されず、したがってロール・バック・ログにリストされている反転動作項目を記憶する理由はない。次いで、ロール・フォワード・ログ１２にリストされている動作項目を実行し、それによってトランザクションを完了するために、ロール・フォワード・ログ１２が実行される（ステップ４２）。その後、ステップ４４で、トランザクション・オブジェクトの次の使用に備えてロール・フォワード・ログ１２が消去される。次いで、流れは新しい一連の動作項目の始めに戻り、再びステップ２２で、ロール・フォワード・ログを消去する動作項目がロール・バック・ログに置かれる（図２参照）。
【００２４】
図４は、図２の中止関数３２に関する好ましいステップ・シーケンスを示す。プロセスを中止することが決定された後、ロール・バック・ログが実行され、前に制御装置によって実行された動作項目が取り消される（ステップ５０）。ロール・フォワード・ログを消去する動作項目は、ロール・バック・ログにリストされているので、ロール・フォワード・ログは、ロール・バック・ログの実行時に自動的に消去される。その後、ロール・バック・ログも消去される（ステップ５２）。次いで、ロール・バック・ログの「ロール・フォワード・ログの消去」命令をリストする初期化ステップにより指示されるように、次に使用すべきトランザクション・オブジェクトが作成される（ステップ２２）。
【００２５】
図５は、電源障害から回復する場合に実行すべき図２の回復関数３４に関する好ましいステップ・シーケンスを示す。最初の２つのステップ６０および６２は、図示された順序で順次実行される。これらのステップはまず、ロール・バック・ログ１４を実行し、次いでロール・フォワード・ログ１２を実行する。このステップ・シーケンスでは、電源障害の前にコミット事象に到達した場合、各動作項目は完了され、電源障害の前にコミット事象が実行されなかった場合、各動作項目は取り消される。
【００２６】
コミット事象がロール・バック・ログを消去する単一の命令であることを想起されたい。制御装置によってコミット事象が電源障害の前に実行された場合、ロール・バック・ログは消去され、ステップ６０で実行すべき動作項目はなくなる。この場合、制御装置は、動作項目を終了させるようとし、したがってステップ６２でロール・フォワード・ログが実行される。逆に、電力障害の前に制御装置によるコミット事象に到達しなかった場合、ロール・バック・ログは依然として動作項目を含む。制御装置は各動作項目を取り消そうとし、したがってステップ６０でロール・バック・ログが実行される。これには、ロール・フォワード・ログを消去する動作項目も含まれる。なぜなら、この動作項目はロール・バック・ログにリストされているからである。その結果、ロール・フォワード・ログは、ステップ６２で実行されるまでに消去される。
【００２７】
実行後に、ステップ６４および６６で両方のログが消去される。これによって、トランザクション・オブジェクトが再初期化される前に両方のログが消去される。次いで、トランザクション・オブジェクトを初期化することができる。この初期化にも、ロール・フォワード・ログを消去する動作項目をロール・バック・ログにリストするタスクが含まれる（ステップ２２）。
【００２８】
このプロセスの変形例が可能である。たとえば、ロール・バック・ログを消去する動作項目をロール・フォワード・ログに置くことができる。これによってロール・フォワード・ログの実行時にロール・バック・ログが自動的に消去されるので、図３のコミット・シーケンスのステップ４０とステップ４２が組み合わされる。他の例を挙げると、図５の回復シーケンス中のステップ６４とステップ６６を、動作を実行せずに反転することができる。
【００２９】
上記の説明は、説明の都合上、単一のトランザクション・オブジェクトの使用に関するものである。しかし、複数のトランザクション・オブジェクトが様々な完了状態で同時に存在することができることに留意されたい。コミット、中止、および回復の各決定は、各トランザクションごとに独立に下すことができる。
【００３０】
構造および方法の特徴に特定の言語で本発明を説明した。しかし、本明細書で開示した手段が、本発明を実施する好ましい形を構成するため、本発明が、図示し説明した特定の態様に限らないことを理解されたい。したがって、本発明は、等価物の原則によって適切に解釈される添付の特許請求の範囲の妥当な範囲内の任意の形または修正として請求される。
【００３１】
以上、本発明の実施例について詳述したが、以下、本発明を各実施態様毎に列挙する。
（１）．  制御装置が実行すべき動作項目を別々にリストするロール・フォワード・ログおよびロール・バック・ログを維持する、制御装置で使用されるトランザクション・オブジェクトにおける、トランザクション・オブジェクトに作用する方法において、ロール・フォワード・ログ中のすべての動作項目を消去する動作項目をロール・バック・ログにリストするステップを有することを特徴とする方法。
（２）．  トランザクション・オブジェクトが、コミット事象の発生時にロール・フォワード・ログにリストされている動作項目を実行することをコミットするように構成され、前記方法がさらに、コミット事象をロール・バック・ログを消去する一命令として定義するステップを有することを特徴とする（１）に記載の方法。
（３）．  前記方法において、
ロール・フォワード・ログとロール・バック・ログのうちの少なくとも一方に制御装置が実行すべき動作項目をリストする追加ステップと、
（イ）トランザクション・ユーザがトランザクションをコミットすることを決定した場合に、
ロール・バック・ログを消去する単一の命令を実行し、
ロール・フォワード・ログを実行して、それにリストされている動作項目を実行し、
ロール・フォワード・ログから、それにリストされている動作項目を消去するステップ・シーケンスと、
（ロ）トランザクション・ユーザが、トランザクションを中止することを決定した場合に、
ロール・バック・ログを実行して、ロール・フォワード・ログ中のすべての動作項目を消去する動作項目を含め、ロール・バック・ログにリストされている動作項目を実行することによって、トランザクション・オブジェクトを中止し、
ロール・バック・ログから、それにリストされている動作項目を消去するステップ・シーケンスと、
（ハ）電源障害から回復する場合に、
ロール・バック・ログを実行して、それにリストされている動作項目を実行し、
ロール・フォワード・ログを実行して、それにリストされている動作項目を実行するステップ・シーケンスの３つのステップ・シーケンスのうちの１つを実行するステップとを有することを特徴とする（１）に記載の方法。
（４）．  制御装置が実行すべき動作項目を別々にリストするロール・フォワード・ログおよびロール・バック・ログを維持する、制御装置で使用されるトランザクション・オブジェクトにおける、電源障害から回復する場合にトランザクション・オブジェクトを操作する方法において、
（ａ）ロール・バック・ログを実行して、それにリストされている動作項目を実行し、
（ｂ）ロール・フォワード・ログを実行して、それにリストされている動作項目を実行する、順次順序のステップを含むことを特徴とする方法。
（５）．  前記方法において、
（ｃ）ロール・フォワード・ログ中のすべての動作項目を消去する動作項目をロール・バック・ログにリストする次の追加ステップを有することを特徴とする（４）に記載の方法。
（６）．  前記方法において、
（ｃ）ロール・フォワード・ログから、それにリストされている動作項目を消去するステップと、
（ｄ）ロール・バック・ログから、それにリストされている動作項目を消去するステップと、
（ｅ）ロール・フォワード・ログにリストされているすべての動作項目を消去する動作項目をロール・バック・ログにリストするステップとを有することを特徴とする（４）に記載の方法。
（７）．  電源障害の場合に制御装置で使用されるトランザクション・オブジェクトを操作する方法において、
ロール・フォワード・ログおよびロール・バック・ログを不揮発性ＲＡＭに提供するステップと、
ロール・フォワード・ログとロール・バック・ログのうちの少なくとも一方に制御装置が実行すべき動作項目をリストする追加ステップと、
ロール・フォワード・ログ中のすべての動作項目を消去する動作項目をロール・バック・ログにリストするステップと、
ロール・バック・ログを消去する一命令が発生したときに、ロール・フォワード・ログ中の動作項目を実行するようにトランザクション・オブジェクトをコミットさせるステップとを有することを特徴とする方法。
（８）．  前記方法において、コミット・ステップの後に、
ロール・フォワード・ログを実行して、それにリストされている動作項目を実行するステップと、
ロール・フォワード・ログから、それにリストされている動作項目を消去するステップと、
ロール・フォワード・ログ中のすべての動作項目を消去する動作項目をロール・バック・ログにリストするステップとを有することを特徴とする（６）に記載の方法。
（９）．  制御装置で使用されるトランザクション・オブジェクトを操作する方法において、
ロール・フォワード・ログおよびロール・バック・ログを不揮発性ＲＡＭに提供するステップと、
ロール・フォワード・ログとロール・バック・ログのうちの少なくとも一方に制御装置が実行すべき動作項目をリストするステップと、
ロール・フォワード・ログ中のすべての動作項目を消去する動作項目をロール・バック・ログにリストするステップと、
ロール・バック・ログを実行して、ロール・フォワード・ログ中のすべての動作項目を消去する動作項目を含め、ロール・バック・ログにリストされている動作項目を実行することによって、トランザクション・オブジェクトを中止するステップとを有することを特徴とする方法。
（１０）．  前記方法において、
ロール・バック・ログから、それにリストされている動作項目を消去するステップと、
ロール・フォワード・ログ中のすべての動作項目を消去する動作項目をロール・バック・ログにリストするステップとを有することを特徴とする（９）に記載の方法。
【００３２】
【発明の効果】
以上のように、本発明の方法は、次のような重要な利点を提供する。１つの利点は、動作シーケンスが簡単でグローバルであり、電源障害を含め、発生する可能性があるほぼどのような事象でも処理することである。他の利点は、制御装置の動作が電源障害に対してアトミックになることである。他の利点は、単一の命令を使用して、ロール・フォワード・ログおよびロール・バック・ログ中のほぼすべての動作の調和がとれることである。他の利点は、回復プロセス中に電源障害が反復的に発生する場合でも回復プロセスが正しく動作することである。
【図面の簡単な説明】
【図１】本発明によるトランザクション・オブジェクトの概略図である。
【図２】図１のトランザクション・オブジェクトの動作の流れ図である。
【図３】本発明の一態様によるコミット・トランザクション・サービスの流れ図である。
【図４】本発明の他の態様による中止トランザクション・サービスの流れ図である。
【図５】本発明の他の態様による電源障害回復トランザクション・サービスの流れ図である。
【符号の説明】
１０：トランザクション・オブジェクト
１２：ロール・フォワード・ログ
１４：ロールー・バック・ログ
【図１】
0003618426.tif 000002
【図２】
0003618426.tif 000003
【図３】
0003618426.tif 000004
【図４】
0003618426.tif 000005
【図５】
0003618426.tif 000006