JPWO2013008327A1 - ジャーナル管理システム - Google Patents
ジャーナル管理システム Download PDFInfo
- Publication number
- JPWO2013008327A1 JPWO2013008327A1 JP2013504601A JP2013504601A JPWO2013008327A1 JP WO2013008327 A1 JPWO2013008327 A1 JP WO2013008327A1 JP 2013504601 A JP2013504601 A JP 2013504601A JP 2013504601 A JP2013504601 A JP 2013504601A JP WO2013008327 A1 JPWO2013008327 A1 JP WO2013008327A1
- Authority
- JP
- Japan
- Prior art keywords
- journal
- unit
- destination
- processing
- column
- 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
Images
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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
図27及び図28は、ジャーナル方式を説明する図である。
図27は正常時の動作例を示し、図28は故障・復旧時の動作例を示す。
図28に示すように、アプリケーションが異常終了し、クラスタミドルウェア等により系が切り替わり、予備サーバ装置806においてアプリケーションが再起動した際には、ディスクに保存されているジャーナル803から異常終了する直前に完了していた処理の識別子とその時のアプリケーションの状態が読込まれ、異常終了の直前に完了していた処理の次の処理からアプリケーションが再開する。
このような動作により、中断した処理の再開を実現する。
そのため、ジャーナルの書きこみ性能がアプリケーションの性能へ大きく影響する。
また、復旧時にはディスクから書き出したジャーナルを読み込み、読み込んだジャーナルを解析し、異常終了の直前に完了していた処理を抽出し、異常終了の直前に完了していた処理の次の処理から再開する。
一般に、処理の順序を保つために、中断処理を再開してから新規処理を実行する必要があるため、中断処理の再開が完了してから復旧が完了となる。
そのため、ディスクからのジャーナル読込み時間やジャーナルの解析時間が復旧時間に大きく影響する。
以上のことから、ジャーナル方式ではアプリケーションの性能への影響を最小化しつつ信頼性を向上させる(復旧時間を短縮)するために、ジャーナルの書出し性能の向上、ジャーナルファイルからの読み込み及び復旧準備までの処理時間の短縮が課題となる。
特許文献1では、アプリケーションの処理手順を複数の処理種別(図29では、A、B、C)に分類し、処理種別ごとに決まったジャーナルファイルへ書き出すことで、ディスク書出しを並列化し、ジャーナル書出し性能を向上している。
また、特許文献1では、処理種別ごとに独立して復旧できるように処理種別を決定し、ある処理種別のジャーナルが決まったジャーナルファイルにのみ存在するように書出先を決定している。
つまり、書出先決定部811が、処理種別Aのジャーナル及び処理種別Bのジャーナルは、ジャーナルファイル812aを書出先として決定し、処理種別Cのジャーナルは、ジャーナルファイル812bを書出先として決定する。
そして、読込部813aが処理種別Aのジャーナル及び処理種別Bのジャーナルをジャーナルファイル812aから読み込み、復旧部814aが処理種別A及び処理種別Bについての処理の復旧を行い、読込部813bが処理種別Cのジャーナルをジャーナルファイル812bから読み込み、復旧部814bが処理種別Cについての処理の復旧を行う。
これにより、あるジャーナルファイルを読み込めばそこに含まれる処理種別のジャーナルが揃い、その処理種別の処理を再開できるようにしている。
この結果、読み込んだジャーナルファイルに含まれる処理種別の処理から順次再開することで、復旧手順を並列化し復旧時間を短縮している。
例えば、処理種別ごとに処理の性質が異なり、処理種別A、Bは処理単位が小さく処理数が多いトランザクション系、処理種別Cは処理単位が大きく処理数が少ないバッチ系であるとする。
トランザクション系の処理のジャーナルはサイズが小さく、ディスクへの書出し時間が短い。
バッチ系の処理のジャーナルはサイズが大きく、ディスクへの書出時間が長い。
処理種別A、Bのジャーナルが一つのジャーナルファイルに書き出され、処理種別Cのジャーナルが一つのジャーナルファイルに書き出されるという構成の時、処理種別Aがある期間バッチ系の処理になった場合、処理種別Aのジャーナルの書出し性能に処理種別Bのジャーナルの書出し性能が引き摺られ遅くなる。
このような場合には、処理種別Aのジャーナルを同じくバッチ系の処理である処理種別Cの書出先ジャーナルファイルへ切り替え、全体の書出し性能のバランスを最適化する必要がある。
しかし、特許文献1の方式では、処理種別とジャーナルファイルが固定されており、このようなジャーナルファイルの切り替えには対応できないという課題がある。
しかし、この方式では、ジャーナル書出し性能の向上とジャーナルファイルの変更が実現できるが、ジャーナルが全てのジャーナルファイルに分散して書き込まれているため、復旧時には全てのジャーナルファイルを読み込む必要があり、ジャーナルファイルの読込みを並列化して読込み時間を短縮することができないという課題がある。
複数種の処理手順が含まれるアプリケーションプログラムでの処理の進行状況を示すデータであって、処理が進行している処理手順の処理手順ID(Identifier)が記述されるデータをジャーナルとして生成するジャーナル生成部と、
生成されたジャーナルごとに、ジャーナルの書出先となる書出先ジャーナルファイルを複数のジャーナルファイルの中から決定する書出先決定部と、
処理手順IDが共通するジャーナルの間で書出先ジャーナルファイルが変更になる場合に、書出先ジャーナルファイルの変更を通知する書出先変更通知を、書出先ジャーナルファイル変更前のいずれかのジャーナルと書出先ジャーナルファイル変更後のいずれかのジャーナルに記述する書出先変更通知部と、
前記書出先決定部により決定された書出先ジャーナルファイルにジャーナルを書き出す書出部と、
それぞれが、いずれかのジャーナルファイルに対応付けられ、対応付けられているジャーナルファイルからジャーナルを読み込み、読み込んだジャーナルを処理手順IDに従って分類し、処理手順IDごとに、分類された1つ以上のジャーナルからジャーナル列を生成し、読み込んだジャーナルの中に書出先変更通知が記述されているジャーナルがある場合に、書出先変更通知が記述されているジャーナルに記述されている処理手順IDを書出先変更発生IDとして他の処理手順IDから区別する複数のジャーナル読込分類部と、
書出先変更発生IDに対して生成されたジャーナル列を少なくともいずれかのジャーナル読込分類部から入力し、共通する書出先変更発生IDに対して生成された2つ以上のジャーナル列を連結するジャーナル連結部とを有することを特徴とする。
このため、ジャーナルファイルを固定する必要がなく、ジャーナルファイルの変更が可能であり、ジャーナルの書出し性能の向上が図られる。
また、書出先ジャーナルファイルの変更があったジャーナルは書出先変更通知により検知できるので、ジャーナルファイルの読込みの並列化が可能であり、読込み時間を短縮することができる。
図1は、本実施の形態に係るジャーナル管理システムの構成例を示す。
ジャーナル出力装置100は、図27及び図28に示したサーバ装置805に相当する。
つまり、ジャーナル出力装置100は、正常時にアプリケーション300を実行するとともに、アプリケーション300での処理の進行状況を示すデータであるジャーナル600を生成し、生成したジャーナル600をジャーナルファイル400及びジャーナルファイル500に書き出す。
復旧装置200は、図28に示した予備サーバ装置806に相当する。
つまり、復旧装置200は、アプリケーション300が異常終了した際に、ジャーナルファイル400及びジャーナルファイル500からジャーナル600を読み出し、読み出したジャーナル600を解析して、アプリケーション300を異常終了により中断した工程の次の工程から再開させる。
なお、アプリケーション300は、ジャーナル出力装置100及び復旧装置200の各々の記憶領域に格納されていてもよいし、ジャーナル出力装置100及び復旧装置200が共有する共用サーバ装置等に格納されていてもよい。
しかし、後述するように、ジャーナル600の書出先のジャーナルファイルは変更になることがある。
ジャーナルファイル400とジャーナルファイル500は、ジャーナル出力装置100と復旧装置200がともにアクセス可能な記憶領域(磁気ディスク等)である。
ジャーナル600の詳細は後述する。
なお、書出先決定部102によりジャーナル600の書出先として決定されたジャーナルファイルを書出先ジャーナルファイルという。
なお、処理定義ID、書出先変更通知の詳細は後述する。
書出先決定テーブル106は、ジャーナル600の書出先ジャーナルファイルとして指定されたジャーナルファイルを示す情報である。
書出先保持テーブル107は、実際にジャーナル600を書き出しているジャーナルファイルを示す情報である。
書出先決定テーブル106及び書出先保持テーブル107の詳細は、後述する。
読込部201bは、ジャーナルファイル500に対応付けられ、ジャーナルファイル500からジャーナル600を読み込む。
なお、読込部201aと読込部201bを区別する必要がないときは、読込部201と表記する。
また、書出先変更検知部202aは、読み込んだジャーナル600の中に書出先変更通知が記述されているジャーナル600がある場合に、書出先変更通知が記述されているジャーナル600に記述されている処理定義IDを書出先変更発生IDとして他の処理定義IDから区別する。
更に、書出先変更検知部202aは、書出先変更発生IDに対して生成されたジャーナル列は順序保証部204に出力し、書出先変更発生ID以外の処理定義IDに対して生成されたジャーナル列は復旧部203aに出力する。
書出先変更検知部202bは、読込部201bがジャーナルファイル500から読み込んだジャーナル600を処理定義IDに従って分類し、処理定義IDごとに、分類された1つ以上のジャーナル600からジャーナル列を生成する。
また、書出先変更検知部202bは、読み込んだジャーナル600の中に書出先変更通知が記述されているジャーナル600がある場合に、書出先変更通知が記述されているジャーナル600に記述されている処理定義IDを書出先変更発生IDとして他の処理定義IDから区別する。
更に、書出先変更検知部202bは、書出先変更発生IDに対して生成されたジャーナル列は順序保証部204に出力し、書出先変更発生ID以外の処理定義IDに対して生成されたジャーナル列は復旧部203bに出力する。
なお、書出先変更検知部202aと書出先変更検知部202bを区別する必要がないときは、書出先変更検知部202と表記する。
復旧部203bは、書出先変更検知部202bから書出先変更発生ID以外の処理定義IDに対して生成されたジャーナル列を入力し、入力したジャーナル列に対してアプリケーション300を復旧するための解析を行う。
復旧部203cは、書出先変更発生IDに対して生成されたジャーナル列であって順序保証部204によって連結された後のジャーナル列を、順序保証部204から入力し、入力したジャーナル列に対してアプリケーション300を復旧するための解析を行う。
復旧部203a、復旧部203b及び復旧部203cは、それぞれ、ジャーナル解析部の例に相当する。
なお、復旧部203a、復旧部203b、復旧部203cを区別する必要がないときは、復旧部203と表記する。
順序保証部204は、書出先変更検知部202a及び書出先変更検知部202bの少なくともいずれかから、書出先変更発生IDに対して生成されたジャーナル列を入力し、入力したジャーナル列を順序待合せ部205に渡す。
順序待合せ部205は、共通する書出先変更発生IDに対して生成された2つ以上のジャーナル列を連結する。
順序待合せ部205は、処理定義IDごとに設けられている。
順序待合せ部205を含む順序保証部204は、ジャーナル連結部の例に相当する。
ヘッダは、処理定義ID、処理ID、処理ステージID、処理ブランチID、処理ブランチ数、処理状態、書出先変更通知領域から構成される。
ボディは、処理データから構成される。
書出先変更通知領域は、書出先ジャーナルファイルの変更を通知する書出先変更通知が記述される領域である。
なお、処理定義ID、処理ID、処理ステージID、処理ブランチID、処理ブランチ数、処理状態及び処理データの詳細は後述する。
図31の表記方式では、符号821で示す要素で「処理定義ID」を表し、符号822で示す要素で「処理ID」を表し、符号823で示す要素で「処理ステージID」を表し、符号824で示す要素で「処理ブランチID」を表し、符号825で示す要素で「処理状態」を表し、符号826で示す要素で「処理データ」を表す。
つまり、図31の処理定義ID821、処理ID822、処理ステージID823、処理ブランチID824、処理状態825及び処理データ826は、図2の処理定義ID、処理ID、処理ステージID、処理ブランチID、処理状態及び処理データに対応する。
図31の表記方式では、処理ブランチ数及び書出先変更通知領域は省略される。
以降では、図2の表記方式及び図31の表記方式を用いて、ジャーナル600を表記する。
処理定義が実行されることにより、アプリケーションプログラムに備わっている所定の機能が実現される。
つまり、処理定義は、アプリケーションプログラムに備わっている機能を実現するための処理手順である。
各処理定義を識別するための識別子を処理定義ID821と呼ぶ。
換言すると、処理定義IDは、処理手順を識別するための識別子であり、処理手順IDの例に相当する。
各処理定義は、複数の内部処理(処理手順内の工程)で構成される。
なお、処理定義は、特許文献1及び特許文献2の説明において言及した「処理種別」と同義である。
つまり、同じ処理定義に対して複数のインスタンス(処理インスタンスと呼ぶ)を発生させることができる。
各処理インスタンスを識別するための識別子を処理ID822又は処理インスタンスIDと呼ぶ。
図33に示すように、処理ID822(処理インスタンスID)は、処理定義ごとの連番である。
処理ID822(処理インスタンスID)は、外部からの処理要求ごとに増加する。
つまり、処理定義は、複数の処理ステージから構成される。
各処理ステージを識別するための識別子を処理ステージID823と呼ぶ。
各処理ブランチを識別するための識別子を処理ブランチID824と呼ぶ。
処理ブランチの数を処理ブランチ数と呼ぶ。
処理状態825を識別するための識別子を状態IDともいう。
処理データ826は、現在の処理ステージまたは次の処理ステージを再開するのに十分な情報量を持つデータとする必要がある。
そして、分岐後の最終工程である内部処理Pn_1〜Pn_mがすべて完了すると、アプリケーション300の処理が終了となる。
アプリケーション300と内部処理と入力データ801との間には、以下の関係がある。
(1)アプリケーション300は、複数の内部処理から構成され、最終処理は複数存在する。
(2)入力データが幾つかの種別に分類され(図36では、種別A、B、C)、種別間で内部処理が異なる。
(3)同じ種別の入力データ801でも流量は一定では無く、振れ幅が大きい(トランザクション系の処理とバッチ系の処理が混在する)。
この例では、処理ブランチの数を2としている。
図37において、「A1」は「処理定義ID:A」及び「処理ID:1」を表し、「A2」は「処理定義ID:A」及び「処理ID:2」を表し、「B3」は「処理定義ID:B」及び「処理ID:3」を表している。
また、「p1」は「処理ステージID:1」を表し(処理ブランチはない)、「p2 1」は「処理ステージID:2」及び「処理ブランチID:1」を表し、「pn 1」は「処理ステージID:n」及び「処理ブランチID:1」を表し、「pn 2」は「処理ステージID:n」及び「処理ブランチID:2」を表している。
なお、図37では、図31に示した処理状態825及び処理データ826の図示は省略している。
また、A1p1、A2p1...A1pn_1となっているように、同じ処理定義の同じ処理ステージでは、処理ID順に順序が保証されるため、A2p1は必ずA1p1の後に出現する。
各処理ステージでは外部から要求された内部処理を順次実行するため、必ずしも処理IDの順序通りにはならず、A1pn_1の前にA2p1が出力されることがある。
図37の例では、処理ブランチ数が2のため、A1の処理インスタンスは、最初の工程(処理ステージ)の完了を示すジャーナルA1p1と最後の工程(処理ステージ)の完了を示すジャーナルA1pn_1、A1pn_2が揃っていれば、完了している。
この時、A1p1のように、最初の処理ステージIDを持つジャーナルを開始ジャーナル、A1pn_1、A1pn_2のように最後の処理ステージIDを持つジャーナルを完了ジャーナルと呼ぶ。
書出先決定テーブル106は、処理定義IDと書出先ジャーナルファイルを対応付ける表である。
書出先ジャーナルファイルを変更する場合にはこの書出先決定テーブル106の値を変更する。
例えば、アプリケーション300、または、アプリケーション300を管理するOS(Operating System)からの指示に基づき、書出先決定部102は、書出先決定テーブル106の値を変更する。
書出先保持テーブル107は、処理定義IDと現在書き出している書出先ジャーナルファイルを対応付ける表である。
書出先変更通知部103は、書出先決定テーブル106の値と書出先保持テーブル107の値を比較して、書出先ジャーナルファイルの変更を検知する。
そして、復旧時には、ジャーナルファイルごとに読込/復旧を行い、復旧時に、書出先ジャーナルファイルが変更されたジャーナルを持つ種別のみ、順序保証を行うようにする。
このようにすることで、複数のジャーナルファイルによる書出し性能の向上、読み込み及び復旧処理時間の短縮、書出先ジャーナルファイルの変更を全て実現する。
処理データは、アプリケーション300が次の処理ステージから処理を開始するために必要なデータとする。
ヘッダとボディを合せてジャーナル600と呼ぶ。
例えば、ステップ200で生成されたジャーナル600の処理定義IDが「A」であれば、図3に示す書出先決定テーブル106に従って、書出先決定部102は、書出先ジャーナルファイルとしてジャーナルファイル「1」を指定する。
また、書出先決定部102は、ステップ300において、次のジャーナル600(処理定義IDが同一の次のジャーナル600)の書出先ジャーナルファイルを変更するか否かを判断し、書出先ジャーナルファイルを変更する場合は、書出先決定部102は、書出先決定テーブル106の値を変更する。
但し、変更後の書出先ジャーナルファイルが適用されるのは、次のジャーナル600からである。
例えば、図37に示す順序でジャーナル600が生成される場合を想定する。
この場合に、ジャーナルA1p1に対するステップ300開始時の書出先決定テーブル106の値が図3に示す通りであれば、ジャーナルA1p1の書出先ジャーナルファイルはジャーナルファイル「1」となる。
ここで、書出先決定部102が書出先決定テーブル106を変更して「処理定義ID:A」の書出先ジャーナルファイルを「ジャーナルファイル:2」とすれば、同じ処理定義IDの次のジャーナルA2p1に対するステップ300において、書出先決定部102は、書出先ジャーナルファイルをジャーナルファイル「2」とする。
また、書出先保持テーブル107から取得した書出先ジャーナルファイルの値と、書出先決定テーブル106(図3)の書出先ジャーナルファイルの値とを比較し、ステップ410へ進む。
また、ステップ410における「YES」判定(書出先ジャーナルファイルが変更されているとの判定)が1度目であれば、ステップ500に進む。
一方、ステップ410における「YES」判定(書出先ジャーナルファイルが変更されているとの判定)が2度目であれば、書出先変更通知部103は、ステップ460において、書出先保持テーブル107に書出先決定テーブル106の書出先ジャーナルファイルの値を書き込み、書出先保持テーブル107を更新し、ステップ500へ進む。
書出部104は、書出しが完了するとアプリケーション300へ処理を返す。
ステップ300において、図3の書出先決定テーブル106に従って、ジャーナルA1p1の書出先ジャーナルファイルとしてジャーナルファイル「1」が決定された後に、書出先決定部102により書出先ジャーナルファイルが変更されて、「処理定義ID:A」の書出先ジャーナルファイルが「ジャーナルファイル:2」になったとする。
なお、このときの書出先保持テーブル107では、「処理定義ID:A」の書出先ジャーナルファイルは「ジャーナルファイル:1」である。
そして、ジャーナルA1p1に対するステップ410では、書出先決定テーブル106の値と書出先保持テーブル107の値が異なるので(ステップ410でYES)、ステップ450において、ジャーナルA1p1の書出先変更通知領域には「変更有り」が記述される。
但し、この時点では、ステップ410における「YES」判定は1度目なので、書出先保持テーブル107は変更されず、ステップ500において、ジャーナルA1p1はジャーナルファイル「1」に書出される。
次のジャーナルA2p1に対するステップ300において、図3の書出先決定テーブル106に従って、ジャーナルA2p1の書出先ジャーナルファイルとしてジャーナルファイル「2」が決定される。
ここでは、「処理定義ID:A」の書出先ジャーナルファイルは変更されないものとする。
また、このときの書出先保持テーブル107では、「処理定義ID:A」の書出先ジャーナルファイルは「ジャーナルファイル:1」である。
ジャーナルA2p1に対するステップ410では、書出先決定テーブル106の値と書出先保持テーブル107の値が異なるので(ステップ410でYES)、ステップ450において、ジャーナルA2p1の書出先変更通知領域には「変更有り」が記述される。
そして、ステップ410における「YES」判定は2度目なので、書出先保持テーブル107において「処理定義ID:A」の書出先ジャーナルファイルが「ジャーナルファイル:2」変更され、ステップ500において、ジャーナルA2p1はジャーナルファイル「2」に書出される。
読込部201の起動が完了すると、図6のフローは終了する。
前述したように、ステップ140で書出先変更有無格納領域に書出先ジャーナルファイルが変更されていることが格納された処理定義ID、つまり、書出先変更通知領域に「変更有り」が記述されているジャーナル600に記述されている処理定義IDを、書出先変更発生IDという。
全て読み込んで無い場合には、ステップ100へ進み、ジャーナル600の読込みを続ける。
つまり、書出先変更検知部202は、書出先変更発生ID以外の処理定義IDに対して生成されたジャーナル列は復旧部203に出力する。
つまり、書出先変更検知部202は、書出先変更発生IDに対して生成されたジャーナル列は順序保証部204に出力する。
一方、未処理の処理定義IDがある場合には、ステップ200へ進み、ジャーナル列の処理を続ける。
説明を簡明にするために、図12のジャーナル600では、「処理定義ID」と「処理ID」のみを図示している。
ジャーナルファイル400(500)には、複数の処理定義IDのジャーナル600が含まれているが、読込部201が、処理定義IDに従ってジャーナル600を分類し、同じ処理定義IDを持つジャーナル600をまとめたものがジャーナル列である。
図12では、処理定義A、B、Cのジャーナル600が混在しているジャーナルファイル400(500)から、処理定義Aのジャーナル600のみを抽出して、処理定義Aのジャーナル列を生成している状況が示されている。
ステップ120では、順序保証部204は、処理定義IDに対応する順序待合せ部205が起動されているかを検査し、順序待合せ部205が起動されている場合にはステップ140へ進み、起動されていない場合にはステップ130へ進む。
未処理のジャーナル列がある場合は、ステップ100へ進み、ジャーナル列の処理を続ける。
つまり、順序待合せ部205は、共通する書出先変更発生IDに対して生成された2つ以上のジャーナル列を連結する。
ジャーナル列受取完了通知を出していない場合はステップ100へ進み、ジャーナル列の受け取りを続ける。
全ての処理ステージと処理ブランチが揃っていれば、復旧部203は、ステップ120へ進む。
揃っていなければステップ130へ進む。
全ての処理IDに対して処理していれば、動作を終了する。
処理していなければステップ100へ進み、処理を継続する。
アプリケーション300は内部処理の完了状況を取得し、完了していない内部処理があればアプリケーション300が再開処理を行うことで、異常終了により中断された内部処理を再開させることができる。
このため、ジャーナルファイルを固定する必要がなく、ジャーナルファイルの変更が可能であり、ジャーナルの書出し性能の向上が図られる。
また、書出先ジャーナルファイルの変更があったジャーナルは書出先変更通知により検知できるので、ジャーナルファイルの読込みの並列化が可能であり、読込み時間を短縮することができる。
以上の実施の形態1では、書出先変更通知がセットされた処理定義IDのジャーナル列を全て順序保証部204へ渡すようにしている。
これに対し、実施の形態2では、書出先変更通知がセットされたジャーナル列でも、あるパターンにマッチするジャーナル列は順序保証部204へ渡さないようにすることで、順序保証による遅延を最小化し、アプリケーション全体の復旧処理を高速化する。
なお、順序保証除外部206a、順序保証除外部206bを区別する必要がないときは、順序保証除外部206と表記する。
また、実施の形態2では、ジャーナル600の書出先変更通知は、書出先変更通知(OUT)と書出先変更通知(IN)に区別される。
また、書出先変更通知(IN)は、書出先ジャーナルファイル変更後の先頭のジャーナルであることを通知する情報であり、変更後先頭データ通知の例に相当する。
つまり、本実施の形態では、書出先変更通知部103は、処理定義IDが共通するジャーナルの間で書出先ジャーナルファイルが変更になる場合に、書出先ジャーナルファイル変更前の最後尾のジャーナルの書出先変更通知領域に書出先変更通知(OUT)を記述する。
また、書出先変更通知部103は、処理定義IDが共通するジャーナルの間で書出先ジャーナルファイルが変更になる場合に、書出先ジャーナルファイル変更後の先頭のジャーナルの書出先変更通知領域に書出先変更通知(IN)を記述する。
順序保証除外パターンは、後述するように、先頭のジャーナルに書出先変更通知(IN)が記述され、最後尾のジャーナルに書出先変更通知(OUT)が記述されていないというジャーナル列のパターンである。
順序保証除外パターンは、後述する図14のパターン2であり、特殊ジャーナル列パターンの例に相当する。
また、順序保証除外パターン記憶部207は、記憶部の例に相当する。
より具体的には、順序保証除外部206は、入力したジャーナル列が順序保証除外パターンに該当する場合に、入力したジャーナル列を解析して、処理手順が完了している処理インスタンスが存在するか否かを判断する。
そして、順序保証除外部206は、処理手順が完了している処理インスタンスが存在する場合に、処理手順が完了している処理インスタンスよりも後の発生順序を表す処理IDが記述されている1つ以上のジャーナルを、入力したジャーナル列から抽出する。
更に、順序保証除外部206は、抽出したジャーナルを、他のジャーナル列との連結の対象とすることなく、復旧部203に出力する。
なお、順序保証除外部206は、順序保証部204とともに、ジャーナル連結部の例に相当する。
つまり、図14は、1つのジャーナルファイルに含まれるジャーナルを処理定義IDごとに分類し、図17のように書出先変更通知の出現を区切りとして分割して得られるジャーナル列のパターンを示している。
図17の例では、1つのジャーナルファイルから、同じ処理定義IDが記述されている3つのジャーナル列が生成される(書出先ジャーナルファイルが2回変更になった)ことを示している。
なお、(2)〜(4)のパターンが出現する場合は、図17のように1つの処理定義IDに対して2つ以上のジャーナル列が抽出される。
また、(1)のパターンの場合は、1つの処理定義IDに対して必ず1つのジャーナル列が抽出される。
(2)パターン2は、先頭のジャーナルに書出先変更通知(IN)が記述され、それ以降最後尾のジャーナルまで書出先変更通知が無いジャーナル列である。
(3)パターン3は、最後尾のジャーナルのみに書出先変更通知(OUT)が記述されているジャーナル列である。
(4)パターン4は、先頭のジャーナルに書出先変更通知(IN)が記述され、さらに最後尾のジャーナルに書出先変更通知(OUT)が記述されているジャーナル列である。
上記の(2)パターン2が、順序保証除外パターンである。
ステップ410では、書出先変更通知部103が、実施の形態1と同様の判断手順にて書出先ジャーナルファイルが変更されているか否かを判断し、書出先ジャーナルファイルが変更されている場合は、ステップ420へ進み、変更されていない場合はステップ430へ進む。
つまり、書出先変更通知部103は、ステップ410における「YES」判定(書出先ジャーナルファイルが変更されているとの判定)が1度目であるか2度目であるかを判断し、1度目であればステップ440へ進み、2度目の場合はステップ452へ進む。
書出部104は、書出しが完了するとアプリケーションへ処理を返す。
また、書出先変更通知部103は、「処理定義ID:A」、「処理ID:3」のジャーナル(2回目)の書出先変更通知領域には「書出先変更通知(IN)」として「変更有り(IN)」を格納し、当該ジャーナルを書出部104が変更後のジャーナルファイル500へ書き出す。
復旧装置200のフローは実施の形態1と同様であるため省略する。
全て読み込んで無い場合には、ステップ100へ進み、ジャーナル600の読込みを続ける。
ステップ220で書出先変更検知部202から復旧部203に出力されるジャーナル列は、図14のパターン1に該当するジャーナル列である。
ステップ232で書出先変更検知部202から順序保証除外部206に出力されるジャーナル列は、図14のパターン2〜4のいずれかに該当するジャーナル列である。
一方、未処理の処理定義IDがある場合には、ステップ202へ進み、ジャーナル列の処理を続ける。
ジャーナル列がパターン2以外のパターンに該当する場合には、ステップ140へ進む。
この場合は、完了している処理IDより後の処理IDのジャーナルで構成されるジャーナル列は他のジャーナル列との連結の対象とせずに、復旧部203へ渡す。
一方、全てを処理していればステップ150へ進む。
ここで、「処理ID:1」は、A1pn_1、A1pn_2の両者が揃っているので完了しており、順序保証除外部206は、「処理ID:1」よりも後の処理IDである「処理ID:2」が記述されているジャーナルA2p1を、ステップ160において、復旧部203へ出力する。
このようなジャーナル列は、書出先ジャーナルファイルの変更があるため、共通の処理定義IDが記述されているジャーナルが複数のジャーナルファイルに跨って存在し、本来なら順序保証部によりそれらジャーナルを繋ぎ合わせ完全な状態としてから解析し、復旧部へ渡す必要がある。
しかし、パターン2のように末尾まで書出先ジャーナルファイルの変更がされておらず、さらに途中で完了している処理IDがある場合、その処理IDまでの処理が完了していることが分かるため、復旧処理に関してそれ以前のジャーナルは必要ない。
このようなジャーナルは、順序保証部へ渡す必要はなく、これらを復旧部へ直接渡すことにより、必要のない順序保証をなくし、アプリケーション全体の復旧処理を高速化することができる。
以上の実施の形態2では、書出先変更通知がセットされたジャーナル列でも順序保証除外パターンにマッチするジャーナル列は、順序保証部へ渡さないようにしている。
実施の形態3では、さらに順序保証部へ渡されたジャーナル列を分析して、順序待合せ対象から除外する。
順序待合せ除外部208、順序待合せ除外パターン記憶部209以外の要素は、実施の形態2と同様なので説明を省略する。
順序待合せ除外パターンの詳細は後述する。
順序待合せ除外パターンは、制限ジャーナル列パターンの例に相当する。
また、順序待合せ除外パターン記憶部209は、記憶部の例に相当する。
そして、ジャーナル列が順序待合せ除外パターンに該当する場合に、所定の処理IDが記述されているジャーナル列を、他のジャーナル列との連結の対象から除外する。
順序待合せ除外部208は、順序保証部204及び順序保証除外部206とともに、ジャーナル連結部の例に相当する。
しかし、あるジャーナル列が書出先変更通知(IN)を持つ場合でも、そのジャーナル列の中で、ある処理IDの処理インスタンスが完了していることが分かる場合には、その処理IDより後の処理インスタンスを再開すればよいため、その処理IDが記述されているジャーナル及びその処理IDより前の処理IDが記述されているジャーナルは復旧処理で利用されない。
このため、ジャーナル列の待ち合わせをする必要は無い。
順序待合せ除外パターン記憶部209が記憶する順序待合せ除外パターンは、このようなジャーナル列を判別するためのパターンである。
順序待合せ除外パターンは、具体的には、図22に示すパターン1〜パターン3である。
(1)先頭のジャーナルに書出先変更通知(IN)がある。
(2)ある処理ID:xの開始ジャーナルと全ての完了ジャーナルが揃っている。
ここで、「全ての完了ジャーナルが揃っている」とは、処理ブランチ数分、すなわち、処理手順内の分岐数分、完了ジャーナルが存在していることを意味する。
前述したように、開始ジャーナルとは、処理手順内の最初の工程(処理ステージ)が完了したことを示すジャーナルであり、完了ジャーナルとは、処理手順内の最後の工程(処理ステージ)が完了したことを示すジャーナルである。
パターン1に該当する場合は、処理ID:xの処理インスタンスと、処理ID:xの処理インスタンスよりも前の処理インスタンスは完了している。
もし、処理ID:xの処理インスタンスが、完了している最後の処理インスタンスであれば、処理ID:xの開始ジャーナルから末尾までのジャーナル(完了ジャーナル)を分析して復旧処理を開始することができる。
図23では、先頭ジャーナルA1pn_1に書出先変更通知(IN)があり、開始ジャーナルA2p1に対して完了ジャーナルA2pn_1、A2pn_2があり、完了ジャーナルが全て揃っている。
(1)先頭のジャーナルに書出先変更有り(IN)がある。
(2)ある処理ID:xの全ての完了ジャーナルが揃っている(処理ID:xの開始ジャーナルはない)。
(3)先頭のジャーナルから処理ID:xの最後の完了ジャーナルまでの間、または最後の完了ジャーナルの次のジャーナルに、処理ID:xの次の処理ID:x+1の開始ジャーナルがある。
パターン2に該当する場合、処理ID:xの開始ジャーナルが無くても、全ての完了ジャーナルが揃っており、処理ID:xの処理インスタンスは完了している。
さらに、処理ID:xより次の処理ID:x+1の開始ジャーナルがそのジャーナル列にあれば、処理ID:xの処理インスタンスと、処理ID:xの処理インスタンスよりも前の処理インスタンスは復旧に必要ない。
図24では、先頭ジャーナルA3p1に書出先変更通知(IN)があり、A2の完了ジャーナルA2pn_1、A2pn_2が揃っている。
A2の開始ジャーナルは無いが、A3の開始ジャーナルA3p1があるためA2以降の処理インスタンスのジャーナルは全てこのジャーナル列にある。
このため、A2以前のジャーナル列は復旧のために必要が無い。
(1)先頭のジャーナルに書出先変更有り(IN)がある。
(2)ある処理ID:x、処理ID:x−1の完了ジャーナルがあり、1つのジャーナルとして見た場合に完了ジャーナルが全て揃っている。
例えばA1(処理ID:1)、A2(処理ID:2)があり、ブランチ数が4つの場合、完了ジャーナルA1pn_1、A2pn_2、A2pn_3、A2pn_4が揃っている状態である。
ここでの「揃っている」とは、A1のブランチID=2、3、4の完了ジャーナルは無いが、A2のブランチID=2、3、4の完了ジャーナルがあることを指す。
(3)先頭のジャーナルから処理ID:xの最後の完了ジャーナルまでの間、または最後の完了ジャーナルの次のジャーナルに、処理ID:xの次の処理ID:x+1の開始ジャーナルがある。
図25では、先頭ジャーナルA3p1に書出先変更通知(IN)があり、A2の完了ジャーナルA2pn_2、A3の完了ジャーナルA3pn_1がある。
また、A4の開始ジャーナルA3p1が存在している。
A2、A3のどちらのジャーナルも完了するためには完了ジャーナルが不足しているが、両方では補完しあっている。
同じ処理ステージ内では追い越しが無いため、A3pn_2が存在することで、ジャーナル列には現れないがA2pn_2がこのジャーナル列より前のジャーナル列(他のジャーナルファイルに書出されたジャーナルで構成されるジャーナル)に存在することが保証されるため、A2の完了ジャーナルが揃っていると判断することができる。
復旧時のフローは、図26の順序待合せ除外部208のフロー以外は実施の形態2と同様のため省略する。
図26は、順序待合せ除外部208の動作フローである。
順序待合せ除外部208が入力するジャーナル列は、図20のステップ120においてパターン3又はパターン4に該当すると判定されたジャーナル列、または、図20のステップ130により「完了しているジャーナルがない」と判定されたパターン2のジャーナル列である。
すなわち、順序待合せ除外部208は、図22の各パターンの説明で示している処理ID:xに相当する処理IDをジャーナル列から抽出する。
ステップ220で取得した処理IDが既に処理ID格納領域に登録されている場合は、登録されている処理IDよりも取得した処理IDの方が大きい場合には、順序待合せ除外部208は、取得した処理IDを上書きして登録し、ステップ240へ進む。
揃っている場合にはステップ260へ、揃っていない場合にはステップ110へ進む。
ジャーナル受取完了通知が来ていない場合には、ステップ100へ進み、順序待合せ処理を継続する。
ステップ130では、順序待合せ除外部208は、繋ぎ合せたジャーナル列を復旧部203へ渡して、動作を終了する。
つまり、実施の形態3に係る順序待合せ除外部208は、処理ID:xに相当する処理IDよりも前の発生順序を表す処理IDが記述されているジャーナル列を、連結の対象から除外する。
これにより、待ち合わせによる処理遅延を排除し、アプリケーション全体の復旧処理を高速化することができる。
図38は、実施の形態1〜3に示すジャーナル出力装置100及び復旧装置200のハードウェア資源の一例を示す図である。
なお、図38の構成は、あくまでもジャーナル出力装置100及び復旧装置200のハードウェア構成の一例を示すものであり、ジャーナル出力装置100及び復旧装置200のハードウェア構成は図38に記載の構成に限らず、他の構成であってもよい。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態1〜3で説明した「〜記憶部」は、RAM914、磁気ディスク装置920等により実現される。
通信ボード915、キーボード902、マウス903、スキャナ装置907などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
ジャーナル出力装置100及び復旧装置200の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
プログラムは、CPU911により読み出され実行される。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜3で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
すなわち、実施の形態1〜3で説明したフローチャートに示すステップ、手順、処理により、ジャーナル出力装置100及び復旧装置200の処理をジャーナル管理方法として捉えることができる。
また、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。
プログラムはCPU911により読み出され、CPU911により実行される。
すなわち、プログラムは、実施の形態1〜3の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態1〜3の「〜部」の手順や方法をコンピュータに実行させるものである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
Claims (9)
- 複数種の処理手順が含まれるアプリケーションプログラムでの処理の進行状況を示すデータであって、処理が進行している処理手順の処理手順ID(Identifier)が記述されるデータをジャーナルとして生成するジャーナル生成部と、
生成されたジャーナルごとに、ジャーナルの書出先となる書出先ジャーナルファイルを複数のジャーナルファイルの中から決定する書出先決定部と、
処理手順IDが共通するジャーナルの間で書出先ジャーナルファイルが変更になる場合に、書出先ジャーナルファイルの変更を通知する書出先変更通知を、書出先ジャーナルファイル変更前のいずれかのジャーナルと書出先ジャーナルファイル変更後のいずれかのジャーナルに記述する書出先変更通知部と、
前記書出先決定部により決定された書出先ジャーナルファイルにジャーナルを書き出す書出部と、
それぞれが、いずれかのジャーナルファイルに対応付けられ、対応付けられているジャーナルファイルからジャーナルを読み込み、読み込んだジャーナルを処理手順IDに従って分類し、処理手順IDごとに、分類された1つ以上のジャーナルからジャーナル列を生成し、読み込んだジャーナルの中に書出先変更通知が記述されているジャーナルがある場合に、書出先変更通知が記述されているジャーナルに記述されている処理手順IDを書出先変更発生IDとして他の処理手順IDから区別する複数のジャーナル読込分類部と、
書出先変更発生IDに対して生成されたジャーナル列を少なくともいずれかのジャーナル読込分類部から入力し、共通する書出先変更発生IDに対して生成された2つ以上のジャーナル列を連結するジャーナル連結部とを有することを特徴とするジャーナル管理システム。 - 前記ジャーナル管理システムは、更に、
書出先変更発生ID以外の処理手順IDに対して生成されたジャーナル列をいずれかのジャーナル読込分類部から入力し、入力したジャーナル列を解析し、
書出先変更発生IDに対して生成された連結後のジャーナル列を前記ジャーナル連結部から入力し、入力した連結後のジャーナル列を解析するジャーナル解析部を有することを特徴とする請求項1に記載のジャーナル管理システム。 - 前記書出先変更通知部は、
処理手順IDが共通するジャーナルの間で書出先ジャーナルファイルが変更になる場合に、
書出先ジャーナルファイル変更前の最後尾のジャーナルに、書出先ジャーナルファイル変更前の最後尾のジャーナルであることを通知する変更前最後尾データ通知を、前記書出先変更通知として記述し、
書出先ジャーナルファイル変更後の先頭のジャーナルに、書出先ジャーナルファイル変更後の先頭のジャーナルであることを通知する変更後先頭データ通知を、前記書出先変更通知として記述し、
前記ジャーナル管理システムは、更に、
先頭のジャーナルに変更後先頭データ通知が記述され、最後尾のジャーナルに変更前最後尾データ通知が記述されていないというジャーナル列のパターンを、特殊ジャーナル列パターンとして記憶する記憶部を有し、
前記ジャーナル連結部は、
入力したジャーナル列が前記特殊ジャーナル列パターンに該当するか否かを判断し、入力したジャーナル列が前記特殊ジャーナル列パターンに該当する場合に、他のジャーナル列との連結の対象とすることなく、入力したジャーナル列の一部を前記ジャーナル解析部に出力することを特徴とする請求項2に記載のジャーナル管理システム。 - 前記ジャーナル管理システムは、
前記アプリケーションプログラムにおいて発生する同じ処理手順の複数の処理インスタンスに、処理インスタンスの発生順序を表す処理インスタンスIDを設定し、
前記ジャーナル生成部は、
処理手順IDと、処理インスタンスIDとが記述されるジャーナルを生成し、
前記ジャーナル連結部は、
入力したジャーナル列が前記特殊ジャーナル列パターンに該当する場合に、入力したジャーナル列を解析して、処理手順が完了している処理インスタンスが存在するか否かを判断し、
入力したジャーナル列を解析した結果、処理手順が完了している処理インスタンスが存在する場合に、処理手順が完了している処理インスタンスよりも後の発生順序を表す処理インスタンスIDが記述されている1つ以上のジャーナルを、入力したジャーナル列から抽出し、
抽出したジャーナルを、他のジャーナル列との連結の対象とすることなく、前記ジャーナル解析部に出力することを特徴とする請求項3に記載のジャーナル管理システム。 - 前記ジャーナル生成部は、
m(m≧2)個の分岐が存在する処理手順に対して、各分岐での最後の工程が完了したことを示すm個の完了ジャーナルを、処理インスタンスごとに生成し、
前記ジャーナル連結部は、
入力したジャーナル列が前記特殊ジャーナル列パターンに該当する場合に、入力したジャーナル列に、共通の処理インスタンスIDが記述されるm個の完了ジャーナルが存在する場合に、当該処理インスタンスIDに対応する処理インスタンスにおいて処理手順が完了していると判断することを特徴とする請求項4に記載のジャーナル管理システム。 - 前記ジャーナル連結部は、
入力したジャーナル列が前記特殊ジャーナル列パターンに該当し、入力したジャーナル列を解析した結果、処理手順が完了している処理インスタンスが存在しない場合に、
入力したジャーナル列を、共通する書出先変更発生IDに対して生成された他のジャーナル列と連結し、連結後のジャーナル列を前記ジャーナル解析部に出力することを特徴とする請求項4に記載のジャーナル管理システム。 - 前記記憶部は、
先頭のジャーナルに変更後先頭データ通知が記述され、
処理手順内の最初の工程の処理が完了したことを示す開始ジャーナルであって、x番目の発生順序を表す処理インスタンスIDが記述される開始ジャーナルが存在し、
処理手順内の最後の工程の処理が完了したことを示す完了ジャーナルであって、前記x番目の発生順序を表す処理インスタンスIDが記述される完了ジャーナルが、処理手順内の分岐数分存在する
というジャーナル列のパターンを、制限ジャーナル列パターンとして記憶し、
前記ジャーナル連結部は、
入力したジャーナル列が前記特殊ジャーナル列パターンに該当しない場合に、入力したジャーナル列が前記制限ジャーナル列パターンに該当するか否かを判断し、入力したジャーナル列が前記制限ジャーナル列パターンに該当する場合に、
前記x番目の発生順序を表す処理インスタンスIDに相当する処理インスタンスIDを入力したジャーナル列から抽出し、抽出した処理インスタンスIDよりも前の発生順序を表す処理インスタンスIDが記述されているジャーナル列を、連結の対象から除外することを特徴とする請求項4に記載のジャーナル管理システム。 - 前記記憶部は、
先頭のジャーナルに変更後先頭データ通知が記述され、
処理手順内の最後の工程の処理が完了したことを示す完了ジャーナルであって、x番目の発生順序を表す処理インスタンスIDが記述される完了ジャーナルが、処理手順内の分岐数分存在し、
処理手順内の最初の工程の処理が完了したことを示す開始ジャーナルであって、(x+1)番目の発生順序を表す処理インスタンスIDが記述される開始ジャーナルが、先頭のジャーナルと前記x番目の発生順序を表す処理インスタンスIDの最後尾の完了ジャーナルとの間又は当該最後尾の完了ジャーナルの直後に存在している
というジャーナル列のパターンを、制限ジャーナル列パターンとして記憶し、
前記ジャーナル連結部は、
入力したジャーナル列が前記特殊ジャーナル列パターンに該当しない場合に、入力したジャーナル列が前記制限ジャーナル列パターンに該当するか否かを判断し、入力したジャーナル列が前記制限ジャーナル列パターンに該当する場合に、
前記x番目の発生順序を表す処理インスタンスIDに相当する処理インスタンスIDを入力したジャーナル列から抽出し、抽出した処理インスタンスIDよりも前の発生順序を表す処理インスタンスIDが記述されているジャーナル列を、連結の対象から除外することを特徴とする請求項4に記載のジャーナル管理システム。 - 前記記憶部は、
先頭のジャーナルに変更後先頭データ通知が記述され、
処理手順内の最後の工程の処理が完了したことを示す完了ジャーナルであって、x番目の発生順序を表す処理インスタンスID及び(x−1)番目の発生順序を表す処理インスタンスIDのいずれかが記述される完了ジャーナルが、処理手順内の分岐数分存在し、
処理手順内の最初の工程の処理が完了したことを示す開始ジャーナルであって、(x+1)番目の発生順序を表す処理インスタンスIDが記述される開始ジャーナルが、先頭のジャーナルと前記x番目の発生順序を表す処理インスタンスIDの最後尾の完了ジャーナルとの間又は当該最後尾の完了ジャーナルの直後に存在している
というジャーナル列のパターンを、制限ジャーナル列パターンとして記憶し、
前記ジャーナル連結部は、
入力したジャーナル列が前記特殊ジャーナル列パターンに該当しない場合に、入力したジャーナル列が前記制限ジャーナル列パターンに該当するか否かを判断し、入力したジャーナル列が前記制限ジャーナル列パターンに該当する場合に、
前記x番目の発生順序を表す処理インスタンスIDに相当する処理インスタンスIDを入力したジャーナル列から抽出し、抽出した処理インスタンスIDよりも前の発生順序を表す処理インスタンスIDが記述されているジャーナル列を、連結の対象から除外することを特徴とする請求項4に記載のジャーナル管理システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/066040 WO2013008327A1 (ja) | 2011-07-14 | 2011-07-14 | ジャーナル管理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5340507B2 JP5340507B2 (ja) | 2013-11-13 |
JPWO2013008327A1 true JPWO2013008327A1 (ja) | 2015-02-23 |
Family
ID=47505646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013504601A Expired - Fee Related JP5340507B2 (ja) | 2011-07-14 | 2011-07-14 | ジャーナル管理システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130304703A1 (ja) |
EP (1) | EP2653972A1 (ja) |
JP (1) | JP5340507B2 (ja) |
WO (1) | WO2013008327A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6194641B2 (ja) * | 2013-05-31 | 2017-09-13 | 富士電機株式会社 | 情報処理装置及びプログラム |
KR102435910B1 (ko) * | 2022-03-15 | 2022-08-25 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05225024A (ja) * | 1992-02-13 | 1993-09-03 | Nec Corp | ジャーナル媒体作成方式 |
JPH10228404A (ja) * | 1996-12-09 | 1998-08-25 | Toshiba Corp | ジャーナル管理システムおよびジャーナル管理方法 |
JP2005174193A (ja) * | 2003-12-15 | 2005-06-30 | Nec Software Chubu Ltd | 更新照会分散ファイルサーバ |
-
2011
- 2011-07-14 US US13/980,403 patent/US20130304703A1/en not_active Abandoned
- 2011-07-14 JP JP2013504601A patent/JP5340507B2/ja not_active Expired - Fee Related
- 2011-07-14 EP EP11869465.2A patent/EP2653972A1/en not_active Withdrawn
- 2011-07-14 WO PCT/JP2011/066040 patent/WO2013008327A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP2653972A1 (en) | 2013-10-23 |
JP5340507B2 (ja) | 2013-11-13 |
US20130304703A1 (en) | 2013-11-14 |
WO2013008327A1 (ja) | 2013-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103069385B (zh) | 用于动态加载基于图的计算的系统和方法 | |
US10089169B2 (en) | Identifying solutions to application execution problems in distributed computing environments | |
US20110320882A1 (en) | Accelerated virtual environments deployment troubleshooting based on two level file system signature | |
US10540498B2 (en) | Technologies for hardware assisted native malware detection | |
US8271768B2 (en) | Concurrent handling of exceptions in received aggregate exception structure with supplied exception handlers and marking handled exceptions | |
JP6266008B2 (ja) | 仮想マシン・イメージをコンピュータ・システムに適用する方法、情報処理システム、コンピュータ・プログラム | |
US8146085B2 (en) | Concurrent exception handling using an aggregated exception structure | |
US20190294571A1 (en) | Operation of a multi-slice processor implementing datapath steering | |
JP5340507B2 (ja) | ジャーナル管理システム | |
US20200218635A1 (en) | Logging stored information for identifying a fix for and/or a cause of an error condition | |
JP5968451B2 (ja) | 計算機システム、及びプログラム | |
US11068463B2 (en) | System and method for managing log data | |
US10733065B2 (en) | Recovery of local resource | |
US20140157230A1 (en) | Streamlining Hardware Initialization Code | |
JP5686686B2 (ja) | プログラムトレース管理装置及びプログラムトレース管理方法及びプログラム | |
US9087311B2 (en) | Method, system and program product for grouping related program sequences | |
JP4989496B2 (ja) | コマンドネット実行装置、コマンドネット実行プログラム及びコマンドネット実行プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP7336911B2 (ja) | 処理特定装置、処理特定方法及び処理特定プログラム | |
WO2022107346A1 (ja) | データ処理装置、プログラム、システム、及びデータ処理方法 | |
CN116737487A (zh) | 一种验证数据的确定方法、装置、存储介质及电子设备 | |
CN115525890A (zh) | 程序的保护方法、检测器、电子设备及存储介质 | |
JP2012226504A (ja) | プログラムの実行結果の比較方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130709 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5340507 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |