JP5212580B2 - ログ情報記録システム、装置、方法およびプログラム - Google Patents

ログ情報記録システム、装置、方法およびプログラム Download PDF

Info

Publication number
JP5212580B2
JP5212580B2 JP2012543066A JP2012543066A JP5212580B2 JP 5212580 B2 JP5212580 B2 JP 5212580B2 JP 2012543066 A JP2012543066 A JP 2012543066A JP 2012543066 A JP2012543066 A JP 2012543066A JP 5212580 B2 JP5212580 B2 JP 5212580B2
Authority
JP
Japan
Prior art keywords
log
recording
log information
queue
information
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.)
Active
Application number
JP2012543066A
Other languages
English (en)
Other versions
JPWO2012140916A1 (ja
Inventor
隆 堀川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2012543066A priority Critical patent/JP5212580B2/ja
Application granted granted Critical
Publication of JP5212580B2 publication Critical patent/JP5212580B2/ja
Publication of JPWO2012140916A1 publication Critical patent/JPWO2012140916A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、ログ情報記録システム、ログ情報記録装置、ログ情報記録方法およびログ情報記録用プログラムに関する。
ファイルやデータベースなどに情報を書込む情報システムの内、特に高い信頼性を必要とする情報システム、具体的には、書込みが完了した情報の消失が許されないシステムでは、書込み操作に関する情報をログ情報としてファイルやデータベースとは別のログ記録媒体に記録する方式を採ることが多い。データベース管理システムは、このような情報システムの典型例である。本明細書では、以降、ファイルやデータベースなどに情報を格納する操作を「書込み」と表記し、書込み操作に関するログ情報をログ記録媒体に格納する操作を「記録」と表記して区別する。ログ情報を記録する目的は、システム障害が発生してファイルやデータベースに書込んだ情報が読み出せなくなった場合でも、ログ記録媒体に記録したログ情報を元に書込み操作を再実行し、障害発生時におけるファイルやデータベースの情報を復元可能とすることである。
一般に、情報システム内では、複数のプロセスが並行に動作しているため、ファイルやデータベースへの書込みについても、複数の書込み処理が並行して実行されることになる。そのため、書込み操作に伴って発生するログ情報についても、複数のログ情報を並行して記録することになる。この場合、ログを記録する装置の特性を考慮すると、各ログ情報に対して記録操作を実行するよりも、複数のログ情報をまとめて記録操作を実行したほうがログ情報を記録する際の効率は高くなる。これは、記録装置に対して記録操作を起動してから、記録装置内の記録媒体への記録操作が開始されるまでに時間が掛かる、すなわち、1回の記録操作に対してオーバヘッドがかかるからである。このことから、各々のログ情報について記録操作を実行すると、オーバヘッドは各々の記録操作に対してかかってくるのに対し、複数のログ情報をまとめて記録すると、オーバヘッドは1回の記録操作にかかるだけとなり、オーバヘッドを低減して効率を高めることができる。
複数のプロセスによるログ情報をまとめて記録する制御を行なうと、記録操作の完了時には複数のプロセスに対してログ記録完了を通知する必要がある。プロセッサが直接使うデータを格納するメモリの速度と比較すると、ログ記録媒体へのアクセスの方が数1000倍以上遅いことから、プロセスは、休眠(sleep)、すなわち、プロセッサの使用を中断してログ記録完了を待ち合わせることが多い。休眠して待ち合わせる方式であれば、プロセッサはその間、別プロセスの処理を実行できるため、システムとしての性能を向上させることができるためである。この場合、ログ記録完了を通知する操作は、休眠しているプロセスを起床、すなわち、プロセッサを使用して処理を実行可能な状態に変更する操作を意味する。
一般に、個々のログ情報には、一意に増加するログ順序番号(Log Sequence Number, 以下LSN)が付与されており、ログ記録操作はLSNによって管理されている。すなわち、あるLSNのログ情報の記録完了は、それよりも小さい値のLSNを持つログ情報の記録完了も意味している。すなわち、あるLSNのログ記録操作が完了すると、それより小さな値のLSNを持つログ情報の記録操作も完了しているので、それらのログ情報記録を待つプロセスについても起床操作を行う必要がある。逆に、記録操作が完了したログ情報のLSNよりも大きなLSNのログ情報は記録されていない可能性があるため、それらのログ情報の記録完了を待つプロセスに対しての起床操作は行なってはならないという点も遵守した制御を行う必要がある。
これらに関連する技術として、例えば特許文献1には、ログファイル書き込み方式が記載されている。特許文献1に記載された方式では、キューイング手段が複数のアプリケーションからメッセージのログファイル書き込み要求を受け取ると、複数のファイルI/O処理部は、メッセージを予め決められた順番に取り出し、予め対応付けられたログファイルに書き込む。
特開平07−271648号公報
上記のような制御を実現するプログラムのフローを図10に示す。これは、オープン・ソースのデータベース管理システムであるPostgreSQLで使われている方式を簡略化したものである。全プロセスから参照できる変数は、記録操作を行うプロセス数を1に限定するためのロックを実現するためのロック・フラグと、記録を完了しているLSN(完了LSN)と、記録すべき各ログ情報に付与されたLSNの内の最大値(要求LSN)とである。
図10に示された処理では、あるプロセスが、データベースへの書込みを行い、対応するログ情報の記録を行なう必要が生じると、まず、ロック・フラグで実現されているロックを取得する(ステップ10-1)。ここでロックが獲得できない場合には、そのロック解放を休眠により待つことになる(ステップ10-7)。この休眠状態は、ロックを獲得しているプロセスがロックを解放する際に起床操作を行う(ステップ10-6)ことで解消される。
ステップ10-1においてロックが獲得できると、そのプロセスが記録すべきログ情報のLSNと完了LSNとを比較する(ステップ10-3)。その結果、そのプロセスが記録すべきログ情報のLSNが、完了LSNよりも大きい場合には、ログ情報の記録操作を実行する必要があることを示しているので、要求LSNに対応するログ情報までの記録操作を行う(ステップ10-4)。
ステップ10-4の記録操作が完了すると、要求LSNを完了LSNに設定した上で(ステップ10-5)、記録操作ロックを解放し(ステップ10-6)、一連のフローを終了する。また、ステップ10-3の比較操作の結果、そのプロセスが記録すべきログ情報のLSNが、完了LSNよりも小さいか等しい場合には、直ちに記録操作ロックを解放して(ステップ10-6)、一連のフローを終了する。
このフローを複数のプロセスが並行して実行すると、1)各プロセスのフロー終了時点では、それらのプロセスが記録すべきログ情報の記録操作が完了している、2)ログ情報の記録が完了していない場合には記録操作を起動する、の2点が保証できる。なお、システムによっては、ステップ10-4にて、要求LSN、すなわち、その時点で記録すべき各ログ情報に付与されたLSNの内の最大値を取得できない事態が起きる可能性のあるものもある。そのようなシステムにおいて、要求LSNが取得できない場合には、ロックを獲得したプロセスが書込むべきログ情報のLSNまでのログをステップ10-4にて記録することになる。
図4は、このフローを複数のプロセスが並行して実行したときの動作の一例を示したタイミング図である。具体的には、トランザクション2-1を処理するプロセスがトランザクション2-1から2-4までのログ情報をログ記録媒体に記録したときの動作を示している。
図4に示すとおり、ログ記録媒体における記録操作が完了すると、まず、トランザクション2-1を処理するプロセスが起床され、そのプロセスが動作を再開するとトランザクション2-2を処理するプロセスを起床し、そのプロセスが動作を再開するとトランザクション2-3を処理するプロセスを起床する、というように、1プロセスずつ順番に起床されていく。
図11は、1プロセスずつ順番に起床されていく際、ログ記録操作の完了したプロセス(トランザクション2-4の処理プロセス)より先に、ログ記録操作の完了していないプロセス(トランザクション3の処理プロセス)を起床したときの動作を示すタイミング図である。この図は、トランザクション2-4の処理プロセスは、ログ情報(2)(3)(4)(5)の記録操作が完了した時点で動作を再開できるのにも関わらず、その動作再開はトランザクション3のログ情報(6)の記録完了またはそれ以降となってしまうことを示している。
上記のような制御を行った場合の問題点として、複数プロセスのログ情報をまとめて記録する場合、ログ格納媒体へのログ情報の記録操作完了時の起床操作に時間がかかることが挙げられる。その理由は、プロセスの起床操作が連鎖していく必要があるためである。すなわち、複数プロセスのログ情報をまとめて記録する操作が完了すると、まず、記録操作を行ったプロセスが起床されて処理を再開し、その中でログ記録の完了を休眠により待っているプロセスの一つを起床する。次に、起床されたプロセスが再開した処理において、その時点でログ情報の記録完了を休眠して待っている複数プロセスの内1つを起床する。更に、その起床操作によって処理を再開したプロセスが次のプロセスを起床する、というように、1プロセスずつ順番に起床されていく、すなわち、起床操作が連鎖することになる。このため、ログ記録が完了したことにより処理の実行を再開できるようになった総てのプロセス、つまり、起床すべき総てのプロセスに対する起床操作が完了するまでに時間がかかってしまうこととなる。
また、ログ情報の記録が完了し、本来であれば次の処理を実行できるプロセスを休眠させたままとしてしまう可能性がある。その理由は、複数プロセスのログ情報をまとめて記録する操作の完了時において、ログ記録の完了を休眠により待っているプロセスの一つを選んで起床する際、その選択が不適切、すなわち、ログ記録が完了しているプロセスと完了していないプロセスが混在している状況において、ログ記録が完了していないプロセスを選択して起床する可能性が残ってしまうためである。このようなプロセス選択を行なうと、その選択されたプロセスはログ記録操作を起動し、それが完了するまではログ記録待ち状態のプロセスを起床する操作を行わない。そのため、最初のプロセス選択時にはログ情報の記録が完了しており、本来であれば次の処理を実行できるプロセスを不必要な期間、休眠状態のままとしてしまうわけである。
また、ログ記録操作の単位が断片的となり、効率が低下する可能性がある。その理由は、ログ記録操作を行う際、その時点で記録すべき各ログ情報に付与されたログ順序番号の内の最大値を取得できない場合、その時点で記録可能な全ログではなく、記録操作を行うプロセスが記録を必要としているログ情報に付与されたログ順序番号までのログ情報についての記録を行なうためである。
本発明は、ファイルやデータベースなどに情報を書込む情報システムの内、既に書込みの完了した情報のシステム障害発生に起因する消失から保護するため、書込み操作に関する記録をログ情報として出力する情報システムにおいて、複数のプロセスが実行した書込み操作に関するログ情報をまとめて1回の書込み操作で記録する動作を効率化することができるログ情報記録システム、ログ情報記録装置、ログ情報記録方法およびログ情報記録用プログラムを提供することを目的とする。
本発明によるログ情報記録システムは、ログ記録媒体と、一意に増加するログ順序番号によってログ情報の記録操作を管理し、ログ記録媒体にログ情報を記録するログ記録制御手段と、ログ情報の記録完了を休眠状態として待ち合わせているプロセスの中から、ログ情報の記録完了により起床操作の対象となるプロセスを選択する目的で使用するプロセス待ち管理用待ち行列を記憶する待ち行列記憶手段とを備え、ロセス待ち管理用待ち行列が保持する要素である待ち行列エントリにはログ順序番号と休眠状態であるプロセスを示す情報と対応付けて含まれ、ログ記録制御手段は、第一のプロセスがログ情報の記録を要求した際に他のプロセスによりログ情報の記録操作が行われていた場合、第一のプロセスについて、ログ順序番号と第一のプロセスを示す情報とを設定した待ち行列エントリをプロセス待ち管理用待ち行列に格納した後、第一のプロセスを休眠処理させ、ログ情報の記録完了時には、プロセス待ち管理用待ち行列に格納された待ち行列エントリについて、待ち行列エントリに含まれるログ順序番号と記録が完了したログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出したログ情報の記録完了した総てのプロセスを起床処理させることを特徴とする。
本発明によるログ情報記録装置は、ログ記録媒体と、一意に増加するログ順序番号によってログ情報の記録操作を管理し、ログ記録媒体にログ情報を記録するログ記録制御手段と、ログ情報の記録完了を休眠状態として待ち合わせているプロセスの中から、ログ情報の記録完了により起床操作の対象となるプロセスを選択する目的で使用するプロセス待ち管理用待ち行列を記憶する待ち行列記憶手段とを備え、ロセス待ち管理用待ち行列が保持する要素である待ち行列エントリにはログ順序番号と休眠状態であるプロセスを示す情報と対応付けて含まれ、ログ記録制御手段は、第一のプロセスがログ情報の記録を要求した際に他のプロセスによりログ情報の記録操作が行われていた場合、第一のプロセスについて、ログ順序番号と第一のプロセスを示す情報とを設定した待ち行列エントリをプロセス待ち管理用待ち行列に格納した後、第一のプロセスを休眠処理させ、ログ情報の記録完了時には、プロセス待ち管理用待ち行列に格納された待ち行列エントリについて、待ち行列エントリに含まれるログ順序番号と記録が完了したログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出したログ情報の記録完了した総てのプロセスを起床処理させることを特徴とする。
本発明によるログ情報記録方法は、ログ情報の記録完了を休眠状態として待ち合わせているプロセスの中から、ログ情報の記録完了により起床操作の対象となるプロセスを選択する目的で使用し、一意に増加するログ順序番号と休眠状態であるプロセスを示す情報とを対応付けて含む待ち行列エントリを要素として保持するプロセス待ち管理用待ち行列を記憶し、第一のプロセスがログ情報の記録を要求した際に他のプロセスによりログ情報の記録操作が行われていた場合、第一のプロセスについて、ログ順序番号と第一のプロセスを示す情報とを設定した待ち行列エントリをプロセス待ち管理用待ち行列に格納した後、第一のプロセスを休眠処理させ、ログ情報の記録完了時には、プロセス待ち管理用待ち行列に格納された待ち行列エントリについて、待ち行列エントリに含まれるログ順序番号と記録が完了したログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出したログ情報の記録完了した総てのプロセスを起床処理させることを特徴とする。
本発明によるログ情報記録用プログラムは、ログ情報の記録完了を休眠状態として待ち合わせているプロセスの中から、ログ情報の記録完了により起床操作の対象となるプロセスを選択する目的で使用し、一意に増加するログ順序番号と休眠状態であるプロセスを示す情報とを対応付けて含む待ち行列エントリを要素として保持するプロセス待ち管理用待ち行列を記憶する記憶手段を備えたコンピュータに、第一のプロセスがログ情報の記録を要求した際に他のプロセスによりログ情報の記録操作が行われていた場合、第一のプロセスについて、ログ順序番号と第一のプロセスを示す情報とを設定した待ち行列エントリをプロセス待ち管理用待ち行列に格納した後、第一のプロセスを休眠処理させ、ログ情報の記録完了時には、プロセス待ち管理用待ち行列に格納された待ち行列エントリについて、待ち行列エントリに含まれるログ順序番号と記録が完了したログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出したログ情報の記録完了した総てのプロセスを起床処理させるログ記録制御処理を実行させることを特徴とする。
本発明によれば、ファイルやデータベースなどに情報を書込む情報システムの内、既に書込みの完了した情報のシステム障害発生に起因する消失から保護するため、書込み操作に関する記録をログ情報として出力する情報システムにおいて、複数のプロセスが実行した書込み操作に関するログ情報をまとめて1回の書込み操作で記録する動作を効率化することができる。
本発明によるログ情報記録システムの第1の実施形態の構成例を示すブロック図である。 第1の実施形態におけるログ記録制御手段の動作例を示す流れ図である。 第1の実施形態における記録完了通知手段の動作例を示す流れ図である。 一般的な技術によるログ記録完了時の動作の一例を示すタイミング図である。 第1の実施形態におけるログ記録完了時の動作例を示すタイミング図である。 本発明によるログ情報記録システムの第2の実施形態の構成例を示すブロック図である。 第2の実施形態におけるログ記録制御手段の動作例を示す流れ図である。 第2の実施形態における媒体記録完了通知手段の動作例を示す流れ図である。 第2の実施形態におけるロック解放通知手段の動作例を示す流れ図である。 一般的な技術によるログ記録制御手段の動作を示す流れ図である。 一般的な技術によるログ記録完了時において、トランザクション処理プロセスの動作再開が次のログ記録完了以降まで遅れる動作の一例を示すタイミング図である。 ログ情報記録システムの最小の構成例を示すブロック図である。
実施形態1.
次に、本発明の第1の実施形態について図面を参照して説明する。図1は、本発明によるログ情報記録システムの第1の実施形態の構成例を示すブロック図である。図1を参照すると、第1の実施形態では、ログ情報記録システムは、ログ記録制御手段110および状態保持手段120を含むログ記録手段100と、ログ記録媒体200とを備えている。また、ログ情報記録システムにおいて、複数のトランザクション処理プロセス300に従って処理を実行可能である。
ログ記憶手段100は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。また、ログ記録媒体200は、具体的には、磁気ディスク装置や光ディスク装置等の記憶装置によって実現される。また、トランザクション処理プロセスは、具体的には、プログラムに従って情報処理装置のCPUが処理を実行することによって実現される。
状態保持手段120は、待ち行列リスト121、完了LSN122、要求LSN123およびロック・フラグ124を含む。具体的には、状態保持手段120は、これらのデータを記憶している。ログ記録制御手段110は、媒体記録手段111、記録完了待ち手段112および記録完了通知手段113を含む。
これらの手段はそれぞれ概略つぎのように動作する。
状態保持手段120は、他の手段からの書込み要求に応じて、要求元から渡された値を待ち行列リスト121、完了LSN122、要求LSN123、ロック・フラグ124の各変数に格納する機能を備えている。また、状態保持手段120は、他の手段から各情報の読み出し要求に応じて、各変数に格納された値を抽出して要求元に出力する機能を備えている。
各変数の内、待ち行列リスト121は、待ち行列エントリを要素とする連結リスト構造を形成するためのポインタを保持する変数である。また、完了LSN122と要求LSN123とは、LSNを格納する変数である。また、ロック・フラグ124は、ロックされている、ロックされていない、という2種類の値を格納する変数である。
待ち行列エントリは、休眠するプロセスに関する情報を記録するためのデータ構造である。待ち行列エントリは、上記の待ち行列リスト変数とともに連結リスト構造を形成するために用いる他の待ち行列エントリへのポインタ、休眠するプロセスを特定するためのプロセス情報、LSNの3種類の変数を含んでいる。待ち行列リスト121と待ち行列エントリとで形成する連結リスト構造のデータを、プロセス待ち管理用待ち行列と呼ぶ。
ログ記録制御手段110は、トランザクション処理プロセス300からの要求に応じてログ記録を行なう機能を備えている。ログ記録制御手段110は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。
媒体記録手段111は、完了LSN122の次から要求されたLSNまでのログ情報をログ記録媒体200に格納する操作を行う機能を備えている。
第一のトランザクション処理プロセス300からのログ記録要求に従って媒体記録手段111がログ情報の記録操作を行っているときに、第二のトランザクション処理プロセス300がログ記録要求を行なう場合を想定する。この場合、第二のトランザクション処理プロセス300は、記録完了待ち手段112により、第一のトランザクション処理プロセス300によるログ情報記録操作の完了を待ち合わせる。また、ログ情報記録が完了したときには、第一のトランザクション処理プロセス300は、記録完了通知手段113により、第二のトランザクション処理プロセス300にログ記録操作の完了を通知する。なお、待ち合わせ処理と完了通知処理との詳細については後述する。
次に、図2及び図3のフローチャートを参照して本実施形態の全体の動作について説明する。図2は、第1の実施形態におけるログ記録制御手段の動作例を示す流れ図である。また、図3は、第1の実施形態における記録完了通知手段の動作例を示す流れ図である。
まず、ログの記録を要求するトランザクション処理プロセス300は、記録すべきログ情報を作成する。そして、トランザクション処理プロセス300は、要求LSN123を更新し、更新した要求LSN123にログ情報を対応付けた後、ログ記録制御手段110を起動する。例えば、トランザクション処理プロセス300は、ログ記録要求として、更新した要求LSN123と作成したログ情報とを対応付けてログ記録制御手段110に出力する。
ここまでの動作は、一般的な技術によるログ情報の扱いと同じである。以降、上記のトランザクション処理プロセス300が作成したログ情報に対応付けられたLSNを、そのトランザクション処理プロセス300のLSNという意味で「自LSN」と呼ぶ。
ログ記録制御手段110は、まず、自LSNと完了LSN122とを比較する(図2のステップ2-1)。比較の結果、自LSNが完了LSN122に等しいか、完了LSN122より値が小さいと判断した場合には、ログ情報のログ記録媒体200への記録が完了していることを意味しているので、ログ記録制御手段110は、ログ記録操作を終了する。
一方、自LSNの方が完了LSN122よりも値が大きいと判断した場合には、ログ記録制御手段110は、状態保持手段120内のロック・フラグ124で管理されているロックの取得を試み(ステップ2-2)、取得が成功したかどうかを確認する(ステップ2-3)。
このロック取得操作で、ロックの取得に失敗した場合、すなわち、別のトランザクション処理プロセス300によってロックが既に取得されている場合について説明する。この場合には、ロックを取得しているトランザクション処理プロセス300がログ記録媒体200への記録操作を行っていることを意味しているので、ロック取得に失敗したトランザクション処理プロセス300は、記録完了待ち手段112により、ログ記録媒体200への記録操作の完了を待ち合わせる。
具体的には、記録完了待ち手段112は、待ち行列エントリを作成し(ステップ2-8)、作成した待ち行列エントリに自プロセス(すなわち、ロック取得に失敗したトランザクション処理プロセス300)の情報と自LSNとを設定する(ステップ2-9)。そして、記録完了待ち手段112は、その待ち行列エントリをリスト構造によりデータを管理するプロセス待ち管理用待ち行列に繋ぐ(ステップ2-10)。以下、待ち行列エントリをプロセス待ち管理用待ち行列に繋ぐとの表現を用いるが、具体的には、プロセス管理用待ち行列に待ち行列エントリを格納することである。
なお、本実施形態では、待ち行列エントリの管理を一般的な技術であるリスト構造のデータを利用する方法としているが、どのデータ構造を使うのかは任意である。
待ち行列エントリをプロセス待ち管理用待ち行列に繋いだ後、記録完了待ち手段112は、そのトランザクション処理プロセス300に対して休眠操作をする(ステップ2-11)。この休眠状態は、後述するように、別のトランザクション処理プロセス300による記録完了通知操作によって起床するまで続く。
休眠したトランザクション処理プロセス300が起床して処理を再開した後には、記録完了待ち手段112は、不要となった待ち行列エントリを削除する(ステップ2-12)。その後、ログ記録制御手段110は、ログ記録操作の最初(ステップ2-1)から処理をやり直す。
一方、ステップ2-2のロック取得操作で、ロックの取得に成功した場合について説明する。この場合には、媒体への記録操作を行っているトランザクション処理プロセス300が他に存在していないことを意味しているので、ロック取得に成功したトランザクション処理プロセス300は、媒体記録手段111により要求LSN123までのログ情報をログ記録媒体200に記録する操作を行う(ステップ2-4)。具体的には、トランザクション処理プロセス300から出力されたログ記録要求に従って、媒体記録手段111は、完了LSN122の次から要求LSN123までのログ情報をログ記録媒体200に記録する操作を行う。
ログ記録媒体200への記録が完了すると、ログ記録制御手段110は、ステップ2-4において媒体記録手段111に要求したLSN、すなわち、記録の完了したログ情報に対応するLSNを完了LSN122に設定する(ステップ2-5)。
次に、ログ記録制御手段110は、ロックを解放する(ステップ2-6)。そして、トランザクション処理プロセス300は、記録完了通知手段113によりログ情報の記録完了を待ち合わせている他のトランザクション処理プロセス300を記録完了通知操作によって起床させる(ステップ2-7)。
具体的には、記録完了通知手段113は、まず、プロセス待ち管理用待ち行列に繋がれている待ち行列エントリの中から、待ち行列エントリのLSNが完了LSN122に等しいか小さいという条件を満たす総ての待ち行列エントリを選択する。そして、記録完了通知手段113は、選択した待ち行列エントリ中のプロセス情報に対応するトランザクション処理プロセス300に記録完了通知をして起床させるように制御する。その後、記録完了通知手段113は、選択した待ち行列エントリをプロセス待ち管理用待ち行列から外す(図3のステップ3-1)。
ステップ3-1の操作が完了した後、記録完了通知手段113は、プロセス待ち管理用待ち行列に待ち行列エントリが残っているかどうかを確認する(ステップ3-2)。
待ち行列エントリが残っている場合には、記録完了通知手段113は、プロセス待ち管理用待ち行列に繋がれている待ち行列エントリの中から、最大のLSNの待ち行列エントリを選択する。そして、記録完了通知手段113は、選択した待ち行列エントリ中のプロセス情報に対応するトランザクション処理プロセス300に記録完了通知をして起床させるように制御する。その後、記録完了通知手段113は、選択した待ち行列エントリをプロセス待ち管理用待ち行列から外す(ステップ3-3)。
次に、本実施形態の効果について説明する。本実施形態では、複数のトランザクション処理プロセス300が各々のログ情報の記録完了を休眠して待ち合わせている場合、記録完了通知手段113は、待ち行列エントリのうちのLSNが完了LSN122に等しいか小さいという条件を満たす総てのエントリを選択する。そして、記録完了通知手段113は、選択した待ち行列エントリ中のプロセス情報に対応するトランザクション処理プロセス300を起床させるように構成されている。そのため、1回の記録完了通知操作でログ情報の記録が完了した総てのトランザクション処理プロセス300を起床させることができる。
すなわち、一般的な技術では、図4に示すとおり、複数のトランザクション処理プロセス300(図4では、トランザクション2-1〜2-4)のログ情報を、トランザクション2-1の処理プロセスがログ記録媒体200への記録を要求した場合、まずトランザクション2-1の処理プロセスを起床させる。そして、トランザクション2-1の処理プロセスがトランザクション2-2の処理プロセスを起床させる。更にトランザクション2-2の処理プロセスがトランザクション2-3の処理プロセスを起床させる。このように各トランザクション処理プロセス300を経由して起床操作が行われる。これに対し、本実施形態では、図5に示すとおり、トランザクション2-1の処理プロセスが、ログ記録の完了したトランザクション2-2〜2-4の処理プロセスを起床させることができる。
また、本実施形態では、さらに、記録完了通知手段113は、ログ記録操作が完了した総てのトランザクション処理プロセス300を起床させた後、待ち行列エントリが残っている場合には、プロセス待ち管理用待ち行列に繋がれている待ち行列エントリの中から、LSNが最大の待ち行列エントリを選択する。そして、記録完了通知手段113は、選択した待ち行列エントリ中のプロセス情報に対応するプロセスを起床させるように構成されている。
そのため、次回のログ記録操作では、記録完了通知手段113の実行時における最大の要求LSN123までに対応するログ情報を記録対象とすることができる。
したがって、本実施形態では、複数プロセスのログ情報をログ格納媒体に記録する操作が完了した際において、起床操作を実行するまでの時間を短縮できる。その理由は、記録を完了したログ順序番号およびそれよりも小さいログ順序番号を持つエントリに設定されている複数のプロセスを起床対象とするためである。
また、本実施形態では、複数プロセスのログ情報をログ格納媒体に記録する操作が完了した際に、ログ情報の記録が完了した総てのプロセスに対して起床操作を実行するように制御できる。その理由は、ログ記録操作の完了を待つプロセスは、ログ順序番号の情報と自プロセスの情報とを設定したエントリを待ち行列に繋げているため、起床対象プロセスを選択する際、記録の完了したログ順序番号に等しいか小さい番号を持つエントリを漏れなく選択できるためである。
また、本実施形態では、ログ記録操作の単位を最大化できる。その理由は、ログ記録操作の完了を待つプロセスは、ログ順序番号の情報と自プロセスの情報とを設定したエントリを待ち行列に繋げているため、記録の完了したプロセスの他に、記録の完了していないプロセスの中から最大のログ順序番号を持つプロセスを起床対象として選択できるためである。
以上のことから、本実施形態では、ファイルやデータベースなどに情報を書込む情報システムの内、既に書込みの完了した情報のシステム障害発生に起因する消失から保護するため、書込み操作に関する記録をログ情報として出力する情報システムにおいて、複数のプロセスが実行した書込み操作に関するログ情報をまとめて1回の書込み操作で記録する動作を効率化することができる。
実施形態2.
次に、本発明の第2の実施形態について図面を参照して説明する。図6は、ログ情報記録システムの第2の実施形態の構成例を示すブロック図である。
図6を参照すると、本実施形態では、ログ情報記録システムは、ログ記録制御手段110および状態保持手段120を含むログ記録手段100と、ログ記録媒体200とを備えている。また、ログ情報記録システムにおいて、複数のトランザクション処理プロセス300に従って処理を実行可能である。
ログ記憶手段100は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。また、ログ記録媒体200は、具体的には、磁気ディスク装置や光ディスク装置等の記憶装置によって実現される。また、トランザクション処理プロセスは、具体的には、プログラムに従って情報処理装置のCPUが処理を実行することによって実現される。
状態保持手段120は、待ち行列リスト121、完了LSN122、要求LSN123およびロック・フラグ124を含む。具体的には、状態保持手段120は、これらのデータを記憶している。ログ記録制御手段110は、媒体記録手段111、記録完了待ち手段112、ロック解放通知手段114および媒体記録完了通知手段115を含む。
これらの手段はそれぞれ概略つぎのように動作する。
状態保持手段120は、他の手段からの書込み要求に応じて、要求元から渡された値を待ち行列リスト121、完了LSN122、要求LSN123、ロック・フラグ124の各変数に格納する機能を備えている。また、状態保持手段120は、他の手段から各情報の読み出し要求に応じて各変数に格納された値を抽出して要求元に出力する機能を備えている。
各変数の内、待ち行列リスト121は、待ち行列エントリへのポインタを保持する変数である。また、完了LSN122と要求LSN123とは、LSNを格納する変数である。また、ロック・フラグ124は、ロックされている、ロックされていない、という2種類の値を格納する変数である。
また、待ち行列エントリは、他の待ち行列エントリへのポインタ、プロセス情報、LSNの3種類の変数を含んでおり、待ち行列リスト121とともにプロセス管理用待ち行列を形成する。
ログ記録制御手段110は、トランザクション処理プロセス300からの要求に応じてログ記録を行なう機能を備えている。ログ記録制御手段110は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。
媒体記録手段111は、完了LSN122の次から要求されたLSNまでのログ情報をログ記録媒体200に格納する操作を行う機能を備えている。
第一のトランザクション処理プロセス300が媒体記録手段111によりログ情報の記録操作を行っているとき、第二のトランザクション処理プロセス300がログ記録要求を行なった場合を想定する。この場合、第二のトランザクション処理プロセス300は、記録完了待ち手段112により、第一のトランザクション処理プロセス300によるログ情報記録操作の完了を待ち合わせる。ログ記録媒体200へのログ情報記録が完了すると、ログ記録制御手段110は、媒体記録完了通知手段115により、第一と第二のトランザクション処理プロセス300にログ記録操作の完了を通知する。
次に、図7、図8、図9のフローチャートを参照して本実施形態の全体の動作について説明する。図7は、本実施形態におけるログ記録制御手段の動作例を示す流れ図である。図8は、本実施形態における媒体記録完了通知手段の動作例を示す流れ図である。図9は、本実施形態におけるロック解放通知手段の動作例を示す流れ図である。
まず、ログの記録を要求するトランザクション処理プロセス300は、記録すべきログ情報を作成する。そして、トランザクション処理プロセス300は、要求LSN123を更新し、更新した要求LSN123にログ情報を対応付けた後、ログ記録制御手段110を起動する。例えば、トランザクション処理プロセス300は、ログ記録要求として、更新した要求LSN123と作成したログ情報とを対応付けてログ記録制御手段110に出力する。
ここまでの動作は、一般的な技術によるログ情報の扱いと同じである。以降、上記のトランザクション処理プロセス300が作成したログ情報に対応付けられたLSNを、そのトランザクション処理プロセス300のLSNという意味で「自LSN」と呼ぶ。
ログ記録制御手段110は、まず、自LSNと完了LSN122とを比較する(図7のステップ7-1)。比較の結果、自LSNが完了LSN122に等しいか、完了LSN122より値が小さいと判断した場合には、ログ情報のログ記録媒体200への記録が完了していることを意味しているので、ログ記録制御手段110は、ログ記録操作を終了する。
一方、自LSNの方が完了LSN122よりも値が大きいと判断した場合には、ログ記録制御手段110は、状態保持手段120内のロック・フラグ124で管理されているロックの取得を試み(ステップ7-2)、取得が成功したかどうかを確認する(ステップ7-3)。
このロック取得操作で、ロックの取得に失敗したと判断した場合、すなわち、別のトランザクション処理プロセス300によってロックが既に取得されている場合について説明する。この場合には、ロックを取得しているトランザクション処理プロセス300がログ記録媒体200への記録操作を行っていることを意味しているので、ロック取得に失敗したトランザクション処理プロセス300は、記録完了待ち手段112により、ログ記録媒体200への記録操作の完了を待ち合わせる。
具体的には、記録完了待ち手段112は、待ち行列エントリを作成し(ステップ7-8)、作成した待ち行列エントリに自プロセス(すなわち、ロック取得に失敗したトランザクション処理プロセス300)の情報と自LSNとを設定(ステップ7-9)する。そして、記録完了待ち手段112は、作成した待ち行列エントリをリスト構造によりデータを管理するプロセス待ち管理用待ち行列に繋ぐ(ステップ7-10)。
なお、本実施形態では、待ち行列エントリの管理を一般的な技術であるリスト構造のデータを利用する方法としているが、どのデータ構造を使うのかは任意である。
待ち行列エントリをプロセス待ち管理用待ち行列に繋いだ後、記録完了待ち手段112は、そのトランザクション処理プロセス300に対して休眠操作を行う(ステップ7-11)。この休眠状態は、後述するように、別のトランザクション処理プロセス300による記録完了通知操作によって起床されるまで続く。
休眠したトランザクション処理プロセス300が起床して処理を再開した後には、記録完了待ち手段112は、不要となった待ち行列エントリを削除する(ステップ7-12)。そして、ログ記録制御手段110は、ログ記録操作の最初(ステップ7-1)から処理をやり直す。
一方、ステップ7-2のロック取得操作で、ロックの取得に成功した場合について説明する。この場合には、媒体への記録操作を行っているトランザクション処理プロセス300が他に存在していないことを意味しているので、ロック取得に成功したトランザクション処理プロセス300は、要求LSN123までのログ情報をログ記録媒体200に記録するログ記録要求を媒体記録手段111に対して行い(ステップ7-4)、休眠する(ステップ7-5)。具体的には、媒体記録手段111は、ログ記録要求に従ってログ記録媒体200へのログ情報の記録を開始するとともに、トランザクション処理プロセス300に対して休眠操作を行う。
ログ記録媒体200へのログ記録操作が完了すると、後述する媒体記録完了通知手段115からの起床操作により、トランザクション処理プロセス300は、ステップ7-5による休眠状態が解除されて処理の実行を再開する。実行を再開すると、トランザクション処理プロセス300からの要求に従って、ログ記録制御手段110は、まずロックを解放し(ステップ7-6)、ロック解放通知手段114によりロック解放を待ち合わせているトランザクション処理プロセス300を起床させる(ステップ2-7)。具体的には、ログ記録制御手段110は、ロック解放通知手段114を起動する。
起動したロック解放通知手段114は、プロセス待ち管理用待ち行列に待ち行列エントリが残っているかどうかを確認する(図9のステップ9-1)。
待ち行列エントリが残っていると判断した場合には、ロック解放通知手段114は、プロセス待ち管理用待ち行列に繋がれている待ち行列エントリの中から、最大のLSNの待ち行列エントリを選択する。そして、ロック解放通知手段114は、選択した待ち行列エントリに含まれるプロセス情報に対応するプロセスをロック解放の通知によって起床させるように制御する。その後、ロック解放通知手段114は、その待ち行列エントリをプロセス待ち管理用待ち行列から外す(ステップ9-2)。
また、遡って、ログ記録媒体200へのログ情報の記録操作が完了すると、媒体記録手段111は、媒体記録完了通知手段115を起動する。すると、起動された媒体記録完了通知手段115は、まず、完了LSN122に要求LSN123を設定する(図8のステップ8-1)。そして、媒体記録完了通知手段115は、ログ記録媒体200にログ情報記録を要求したトランザクション処理プロセス300を媒体記録完了通知によって起床させるように制御する(ステップ8-2)。
次に、媒体記録完了通知手段115は、プロセス待ち管理用待ち行列に繋がれている待ち行列エントリの中から、待ち行列エントリのLSNが完了LSN122に等しいか小さいという条件を満たす総てのエントリを選択する。そして、媒体記録完了通知手段115は、選択した待ち行列エントリに含まれるプロセス情報に対応するプロセスを起床させる。その後、媒体記録完了通知手段115は、そのエントリをプロセス待ち管理用待ち行列から外す(ステップ8-3)。
次に、本実施形態の効果について説明する。本実施形態では、複数のトランザクション処理プロセス300が各々のログ情報の記録完了を休眠して待ち合わせているとき、媒体記録完了通知手段は、待ち行列エントリのLSNがログ情報の記録が完了したLSNに等しいか小さいという条件を満たす総てのエントリを選択する。そして、媒体記録完了通知手段は、選択した待ち行列エントリに含まれるプロセス情報に対応するプロセスを起床させるように構成されている。そのため、第1の実施形態と同様、1回の記録完了通知操作でログ情報の記録が完了した総てのトランザクション処理プロセス300を起床させることができる。
また、ロック解放通知手段による効果、すなわち、次回のログ記録操作では、記録完了通知手段の実行時における最大の要求LSN123までに対応するログ情報を記録対象とすることができる点も、第1の実施形態と同様である。
したがって、本実施形態では、複数プロセスのログ情報をログ格納媒体に記録する操作が完了した際において、起床操作を実行するまでの時間を短縮できる。その理由は、記録を完了したログ順序番号およびそれよりも小さいログ順序番号を持つエントリに設定されている複数のプロセスを起床対象とするためである。
また、本実施形態では、複数プロセスのログ情報をログ格納媒体に記録する操作が完了した際に、ログ情報の記録が完了した総てのプロセスに対して起床操作を実行するように制御できる。その理由は、ログ記録操作の完了を待つプロセスは、ログ順序番号の情報と自プロセスの情報とを設定したエントリを待ち行列に繋げているため、起床対象プロセスを選択する際、記録の完了したログ順序番号に等しいか小さい番号を持つエントリを漏れなく選択できるためである。
また、本実施形態では、ログ記録操作の単位を最大化できる。その理由は、ログ記録操作の完了を待つプロセスは、ログ順序番号の情報と自プロセスの情報とを設定したエントリを待ち行列に繋げているため、記録の完了したプロセスの他に、記録の完了していないプロセスの中から最大のログ順序番号を持つプロセスを起床対象として選択できるためである。
以上のことから、本実施形態では、ファイルやデータベースなどに情報を書込む情報システムの内、既に書込みの完了した情報のシステム障害発生に起因する消失から保護するため、書込み操作に関する記録をログ情報として出力する情報システムにおいて、複数のプロセスが実行した書込み操作に関するログ情報をまとめて1回の書込み操作で記録する動作を効率化することができる。
以上に説明したように、本発明は、複数のプロセスからのログ記録要求をまとめて1回の操作でログ記録媒体200に記録する際のプロセス起床操作を効率化することができるログ情報記録システム、ログ情報記録装置、ログ情報記録方法およびログ情報記録用プログラムに関する。
本発明によるログ記録システムは、ログ順序番号とプロセスの情報とを含むエントリを要素とする待ち行列を管理する手段を備えている。そして、1)プロセスがログ情報の記録操作を要求する際には、プロセスが記録しようとするログ情報に付与されたログ順序番号および自身のプロセス情報を格納したエントリを待ち行列に繋げ、プロセスを休眠させる。また、2)ログ格納媒体へのログ記録操作が完了すると、待ち行列を検索し、記録を完了したログ順序番号およびそれよりも小さいログ順序番号を持つエントリに設定されている複数のプロセスと、記録の完了していないプロセスの中から最大のログ順序番号を持つプロセスとを起床対象とするよう動作する。
このような構成を採用し、ログ情報の記録完了時に起床させるプロセスの選択を行なうことにより以下に示す効果を得ることができる。
第1の効果は、複数プロセスのログ情報をログ格納媒体に記録する操作が完了した際において、起床操作を実行するまでの時間を短縮できることにある。その理由は、記録を完了したログ順序番号およびそれよりも小さいログ順序番号を持つエントリに設定されている複数のプロセスを起床対象とするためである。
第2の効果は、複数プロセスのログ情報をログ格納媒体に記録する操作が完了した際には、ログ情報の記録が完了した総てのプロセスに対して起床操作を実行するように制御できることにある。その理由は、ログ記録操作の完了を待つプロセスは、ログ順序番号の情報と自プロセスの情報とを設定したエントリを待ち行列に繋げているため、起床対象プロセスを選択する際、記録の完了したログ順序番号に等しいか小さい番号を持つエントリを漏れなく選択できるためである。
第3の効果は、ログ記録操作の単位を最大化できることにある。その理由は、ログ記録操作の完了を待つプロセスは、ログ順序番号の情報と自プロセスの情報とを設定したエントリを待ち行列に繋げているため、記録の完了したプロセスの他に、記録の完了していないプロセスの中から最大のログ順序番号を持つプロセスを起床対象として選択できるためである。
次に、本発明によるログ情報記録システムの最小構成について説明する。図12は、ログ情報記録システムの最小の構成例を示すブロック図である。図12に示すように、ログ情報記録システムは、最小の構成要素として、ログ記録媒体1と、一意に増加するログ順序番号によってログ情報の記録操作を管理し、ログ記録媒体1にログ情報を記録するログ記録制御部2と、待ち行列記憶部3とを含む。
図12に示す最小構成のログ情報記録システムでは、待ち行列記憶部3は、ログ情報の記録完了を休眠状態として待ち合わせているプロセスの中から、ログ情報の記録完了により起床操作の対象となるプロセスを選択する目的で使用するプロセス待ち管理用待ち行列を記憶している。また、待ち行列記憶部3は、プロセス待ち管理用待ち行列が保持する要素である待ち行列エントリにはログ順序番号と休眠状態であるプロセスを示す情報とを対応付けて含む。
ログ記録制御部2は、第一のプロセスがログ情報の記録を要求した際に他のプロセスによりログ情報の記録操作が行われていた場合、第一のプロセスについて、ログ順序番号と第一のプロセスを示す情報とを設定した待ち行列エントリをプロセス待ち管理用待ち行列に格納した後、第一のプロセスを休眠処理させる。また、ログ記録制御部2は、ログ情報の記録完了時には、プロセス待ち管理用待ち行列に格納された待ち行列エントリについて、待ち行列エントリに含まれるログ順序番号と記録が完了したログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出したログ記録の完了した総てのプロセスを起床処理させる。
ログ情報記録システムは、複数のプロセスが実行した書込み操作に関するログ情報をまとめて1回の書込み操作で記録する動作を効率化することができる。
なお、本実施形態では、以下の(1)〜(5)に示すようなログ情報記録システムの特徴的構成が示されている。
(1)ログ情報記録システムは、ログ記録媒体(例えば、ログ記録媒体200によって実現される)と、一意に増加するログ順序番号(例えば、LSN)によってログ情報の記録操作を管理し、ログ記録媒体にログ情報を記録するログ記録制御手段(例えば、ログ記録制御手段110によって実現される)と、ログ情報の記録完了を休眠状態として待ち合わせているプロセス(例えば、トランザクション処理プロセス300によって実現される)の中から、ログ情報の記録完了により起床操作の対象となるプロセスを選択する目的で使用するプロセス待ち管理用待ち行列を記憶する待ち行列記憶手段(例えば、状態保持手段120によって実現される)とを備え、待ち行列記憶手段は、プロセス待ち管理用待ち行列が保持する要素である待ち行列エントリにはログ順序番号と休眠状態であるプロセスを示す情報(例えば、図1に示されるプロセス情報)とを対応付けて含み、ログ記録制御手段は、第一のプロセスがログ情報の記録を要求した際に他のプロセスによりログ情報の記録操作が行われていた場合、第一のプロセスについて、ログ順序番号と第一のプロセスを示す情報とを設定した待ち行列エントリをプロセス待ち管理用待ち行列に格納した後、第一のプロセスを休眠処理させ(例えば、記録完了待ち手段112が処理を実行することによって実現される)、ログ情報の記録完了時には、プロセス待ち管理用待ち行列に格納された待ち行列エントリについて、待ち行列エントリに含まれるログ順序番号(例えば、要求LSN)と記録が完了したログ情報のログ順序番号(例えば、完了LSN)とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出したログ記録の完了した総てのプロセスを起床処理させる(例えば、記録完了通知手段113又は媒体記録完了通知手段115が処理を実行することによって実現される)ことを特徴とする。
(2)ログ情報記録システムにおいて、ログ記録制御手段は、ログ情報の記録完了時には、プロセス待ち管理用待ち行列に格納された待ち行列エントリについて、待ち行列エントリに含まれるログ順序番号と記録が完了したログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出したログ情報の記録が完了した総てのプロセスを起床処理させた後、プロセス待ち管理用待ち行列に待ち行列エントリが残っている場合には、残っている待ち行列エントリの中から最大のログ順序番号を含む待ち行列エントリを抽出し、抽出した待ち行列エントリに含まれる情報によって示されるプロセスを起床処理させるように構成されていてもよい。
(3)ログ情報記録システムにおいて、ロックが取得されているか否かを示すロック・フラグを記憶するロック・フラグ記憶手段(例えば、状態保持手段120によって実現される)を備え、ログ記録制御手段は、ロックを取得したプロセスのみがログ情報の記録操作を起動するように制御し、更にログ情報の記録完了時に起床処理させたプロセスの内、ログ情報の記録が完了したプロセスについてはロックの取得操作を行うことなく動作を再開するように制御し、ログ情報の記録が完了していないプロセスの内、最大のログ順序番号でログ情報の記録を要求しているプロセスについてはロックの取得を試み、ロックが取得できた場合にはログ情報の記録操作を起動するように制御するように構成されていてもよい。
(4)ログ情報記録システムにおいて、ログ記録制御手段は、ロックが取得できた場合には最大のログ順序番号までのログ情報をログ記録媒体に記録するように構成されていてもよい。
(5)ログ情報記録システムにおいて、ログ記録制御手段は、休眠状態であるプロセスを起床させるとともに、プロセスに対応する待ち行列エントリをプロセス待ち管理用待ち行列から削除するように構成されていてもよい。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)ログ記録媒体と、一意に増加するログ順序番号によってログ情報の記録操作を管理し、前記ログ記録媒体にログ情報を記録するログ記録制御手段と、ログ情報の記録完了を休眠状態として待ち合わせているプロセスの中から、ログ情報の記録完了により起床操作の対象となるプロセスを選択する目的で使用するプロセス待ち管理用待ち行列を記憶する待ち行列記憶手段とを備え、前記待ち行列記憶手段は、前記プロセス待ち管理用待ち行列が保持する要素である待ち行列エントリには前記ログ順序番号と休眠状態であるプロセスを示す情報とを対応付けて含み、前記ログ記録制御手段は、第一のプロセスがログ情報の記録を要求した際に他のプロセスによりログ情報の記録操作が行われていた場合、前記第一のプロセスについて、ログ順序番号と前記第一のプロセスを示す情報とを設定した待ち行列エントリを前記プロセス待ち管理用待ち行列に格納した後、前記第一のプロセスを休眠処理させ、ログ情報の記録完了時には、前記プロセス待ち管理用待ち行列に格納された待ち行列エントリについて、前記待ち行列エントリに含まれるログ順序番号と記録が完了した前記ログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出した前記ログ記録の完了した総てのプロセスを起床処理させ、前記ログ記録制御手段は、ログ情報の記録完了時には、プロセス待ち管理用待ち行列に繋がれた待ち行列エントリについて、前記待ち行列エントリに含まれるログ順序番号と記録が完了した前記ログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出した前記ログ情報の記録が完了した総てのプロセスを起床処理させた後、前記プロセス待ち管理用待ち行列に待ち行列エントリが残っている場合には、残っている前記待ち行列エントリの中から最大のログ順序番号を含む待ち行列エントリを抽出し、抽出した前記待ち行列エントリに含まれる情報によって示されるプロセスを起床処理させるログ情報記録装置。
(付記2)ロックが取得されているか否かを示すロック・フラグを記憶するロック・フラグ記憶手段を備え、ログ記録制御手段は、前記ロックを取得したプロセスのみがログ情報の記録操作を起動するように制御し、更にログ情報の記録完了時に起床処理させたプロセスの内、ログ情報の記録が完了したプロセスについては前記ロックの取得操作を行うことなく動作を再開するように制御し、ログ情報の記録が完了していないプロセスの内、最大のログ順序番号でログ情報の記録を要求しているプロセスについては前記ロックの取得を試み、前記ロックが取得できた場合にはログ情報の記録操作を起動するように制御する付記1記載のログ情報記録装置。
(付記3)ログ情報の記録完了を休眠状態として待ち合わせているプロセスの中から、ログ情報の記録完了により起床操作の対象となるプロセスを選択する目的で使用し、一意に増加するログ順序番号と休眠状態であるプロセスを示す情報とを対応付けて含む待ち行列エントリを要素として保持するプロセス待ち管理用待ち行列を記憶し、第一のプロセスがログ情報の記録を要求した際に他のプロセスによりログ情報の記録操作が行われていた場合、前記第一のプロセスについて、ログ順序番号と前記第一のプロセスを示す情報とを設定した待ち行列エントリを前記プロセス待ち管理用待ち行列に格納した後、前記第一のプロセスを休眠処理させ、ログ情報の記録完了時には、前記プロセス待ち管理用待ち行列に格納された待ち行列エントリについて、前記待ち行列エントリに含まれるログ順序番号と記録が完了した前記ログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出した前記ログ記録の完了した総てのプロセスを起床処理させ、ログ情報の記録完了時には、前記プロセス待ち管理用待ち行列に繋がれた待ち行列エントリについて、前記待ち行列エントリに含まれるログ順序番号と記録が完了した前記ログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出した前記ログ情報の記録が完了した総てのプロセスを起床させた後、前記プロセス待ち管理用待ち行列に待ち行列エントリが残っている場合には、残っている前記待ち行列エントリの中から最大のログ順序番号を含む待ち行列エントリを抽出し、抽出した前記待ち行列エントリに含まれる情報によって示されるプロセスを起床させるログ情報記録方法。
(付記4)ロックを取得したプロセスのみがログ情報の記録操作を起動するように制御し、更にログ情報の記録完了時に起床処理させたプロセスの内、ログ情報の記録が完了したプロセスについては前記ロックの取得操作を行うことなく動作を再開するように制御し、ログ情報の記録が完了していないプロセスの内、最大のログ順序番号でログ情報の記録を要求しているプロセスについては前記ロックの取得を試み、前記ロックが取得できた場合にはログ情報の記録操作を起動するように制御する付記3記載のログ情報記録方法。
(付記5)ログ情報の記録完了を休眠状態として待ち合わせているプロセスの中から、ログ情報の記録完了により起床操作の対象となるプロセスを選択する目的で使用し、一意に増加するログ順序番号と休眠状態であるプロセスを示す情報とを対応付けて含む待ち行列エントリを要素として保持するプロセス待ち管理用待ち行列を記憶する記憶手段を備えたコンピュータに、第一のプロセスがログ情報の記録を要求した際に他のプロセスによりログ情報の記録操作が行われていた場合、前記第一のプロセスについて、ログ順序番号と前記第一のプロセスを示す情報とを設定した待ち行列エントリを前記プロセス待ち管理用待ち行列に格納した後、前記第一のプロセスを休眠処理させ、ログ情報の記録完了時には、前記プロセス待ち管理用待ち行列に格納された待ち行列エントリについて、前記待ち行列エントリに含まれるログ順序番号と記録が完了した前記ログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出した前記ログ記録の完了した総てのプロセスを起床処理させるログ記録制御処理を実行させ、前記ログ記録制御処理で、ログ情報の記録完了時には、プロセス待ち管理用待ち行列に格納された待ち行列エントリについて、前記待ち行列エントリに含まれるログ順序番号と記録が完了した前記ログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出した前記ログ情報の記録が完了した総てのプロセスを起床処理させた後、前記プロセス待ち管理用待ち行列に待ち行列エントリが残っている場合には、残っている前記待ち行列エントリの中から最大のログ順序番号を含む待ち行列エントリを抽出し、抽出した前記待ち行列エントリに含まれる情報によって示されるプロセスを起床処理させる処理を実行させるログ情報記録用プログラム。
(付記6)ロックが取得されているか否かを示すロック・フラグを記憶するロック・フラグ記憶手段を備えたコンピュータに、ログ記録制御処理で、前記ロックを取得したプロセスのみがログ情報の記録操作を起動するように制御し、更にログ情報の記録完了時に起床処理させたプロセスの内、ログ情報の記録が完了したプロセスについては前記ロックの取得操作を行うことなく動作を再開するように制御し、ログ情報の記録が完了していないプロセスの内、最大のログ順序番号でログ情報の記録を要求しているプロセスについては前記ロックの取得を試み、前記ロックが取得できた場合にはログ情報の記録操作を起動するように制御する処理を実行させる付記5記載のログ情報記録用プログラム。
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2011年4月15日に出願された日本特許出願2011−91288を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、ファイルやデータベースへの書込み操作に関する情報をログ情報としてファイルやデータベースとは別の媒体に記録する用途に適用可能である。
1 ログ記憶媒体
2 ログ記録制御部
3 待ち行列記憶部
100 ログ記録手段
110 ログ記録制御手段
111 媒体記録手段
112 記録完了待ち手段
113 記録完了通知手段
114 ロック解放通知手段
115 媒体記録完了通知手段
120 状態保持手段
121 待ち行列リスト
122 完了LSN
123 要求LSN
124 ロック・フラグ
200 ログ記録媒体
300 トランザクション処理プロセス

Claims (8)

  1. ログ記録媒体と、
    一意に増加するログ順序番号によってログ情報の記録操作を管理し、前記ログ記録媒体にログ情報を記録するログ記録制御手段と、
    ログ情報の記録完了を休眠状態として待ち合わせているプロセスの中から、ログ情報の記録完了により起床操作の対象となるプロセスを選択する目的で使用するプロセス待ち管理用待ち行列を記憶する待ち行列記憶手段とを備え、
    記プロセス待ち管理用待ち行列が保持する要素である待ち行列エントリには前記ログ順序番号と休眠状態であるプロセスを示す情報と対応付けて含まれ
    前記ログ記録制御手段は、
    第一のプロセスがログ情報の記録を要求した際に他のプロセスによりログ情報の記録操作が行われていた場合、前記第一のプロセスについて、ログ順序番号と前記第一のプロセスを示す情報とを設定した待ち行列エントリを前記プロセス待ち管理用待ち行列に格納した後、前記第一のプロセスを休眠処理させ、ログ情報の記録完了時には、前記プロセス待ち管理用待ち行列に格納された待ち行列エントリについて、前記待ち行列エントリに含まれるログ順序番号と記録が完了した前記ログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出した前記ログ情報の記録完了した総てのプロセスを起床処理させる
    ことを特徴とするログ情報記録システム。
  2. ログ記録制御手段は、ログ情報の記録完了時には、プロセス待ち管理用待ち行列に格納された待ち行列エントリについて、前記待ち行列エントリに含まれるログ順序番号と記録が完了した前記ログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出した前記ログ情報の記録が完了した総てのプロセスを起床処理させた後、前記プロセス待ち管理用待ち行列に待ち行列エントリが残っている場合には、残っている前記待ち行列エントリの中から最大のログ順序番号を含む待ち行列エントリを抽出し、抽出した前記待ち行列エントリに含まれる情報によって示されるプロセスを起床処理させる
    請求項1記載のログ情報記録システム。
  3. ロックが取得されているか否かを示すロック・フラグを記憶するロック・フラグ記憶手段を備え、
    ログ記録制御手段は、前記ロックを取得したプロセスのみがログ情報の記録操作を起動するように制御し、更にログ情報の記録完了時に起床処理させたプロセスの内、ログ情報の記録が完了したプロセスについては前記ロックの取得操作を行うことなく動作を再開するように制御し、ログ情報の記録が完了していないプロセスの内、最大のログ順序番号でログ情報の記録を要求しているプロセスについては前記ロックの取得を試み、前記ロックが取得できた場合にはログ情報の記録操作を起動するように制御する
    請求項2記載のログ情報記録システム。
  4. ログ記録制御手段は、ロックが取得できた場合には最大のログ順序番号までのログ情報をログ記録媒体に記録する
    請求項3記載のログ情報記録システム。
  5. ログ記録制御手段は、休眠状態であるプロセスを起床処理させるとともに、前記プロセスに対応する待ち行列エントリをプロセス待ち管理用待ち行列から削除する
    請求項1から請求項4のうちのいずれか1項に記載のログ情報記録システム。
  6. ログ記録媒体と、
    一意に増加するログ順序番号によってログ情報の記録操作を管理し、前記ログ記録媒体にログ情報を記録するログ記録制御手段と、
    ログ情報の記録完了を休眠状態として待ち合わせているプロセスの中から、ログ情報の記録完了により起床操作の対象となるプロセスを選択する目的で使用するプロセス待ち管理用待ち行列を記憶する待ち行列記憶手段とを備え、
    記プロセス待ち管理用待ち行列が保持する要素である待ち行列エントリには前記ログ順序番号と休眠状態であるプロセスを示す情報と対応付けて含まれ
    前記ログ記録制御手段は、
    第一のプロセスがログ情報の記録を要求した際に他のプロセスによりログ情報の記録操作が行われていた場合、前記第一のプロセスについて、ログ順序番号と前記第一のプロセスを示す情報とを設定した待ち行列エントリを前記プロセス待ち管理用待ち行列に格納した後、前記第一のプロセスを休眠処理させ、ログ情報の記録完了時には、前記プロセス待ち管理用待ち行列に格納された待ち行列エントリについて、前記待ち行列エントリに含まれるログ順序番号と記録が完了した前記ログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出した前記ログ情報の記録完了した総てのプロセスを起床処理させる
    ことを特徴とするログ情報記録装置。
  7. ログ情報の記録完了を休眠状態として待ち合わせているプロセスの中から、ログ情報の記録完了により起床操作の対象となるプロセスを選択する目的で使用し、一意に増加するログ順序番号と休眠状態であるプロセスを示す情報とを対応付けて含む待ち行列エントリを要素として保持するプロセス待ち管理用待ち行列を記憶し、
    第一のプロセスがログ情報の記録を要求した際に他のプロセスによりログ情報の記録操作が行われていた場合、前記第一のプロセスについて、ログ順序番号と前記第一のプロセスを示す情報とを設定した待ち行列エントリを前記プロセス待ち管理用待ち行列に格納した後、前記第一のプロセスを休眠処理させ、ログ情報の記録完了時には、前記プロセス待ち管理用待ち行列に格納された待ち行列エントリについて、前記待ち行列エントリに含まれるログ順序番号と記録が完了した前記ログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出した前記ログ情報の記録完了した総てのプロセスを起床処理させる
    ことを特徴とするログ情報記録方法。
  8. ログ情報の記録完了を休眠状態として待ち合わせているプロセスの中から、ログ情報の記録完了により起床操作の対象となるプロセスを選択する目的で使用し、一意に増加するログ順序番号と休眠状態であるプロセスを示す情報とを対応付けて含む待ち行列エントリを要素として保持するプロセス待ち管理用待ち行列を記憶する記憶手段を備えたコンピュータに、
    第一のプロセスがログ情報の記録を要求した際に他のプロセスによりログ情報の記録操作が行われていた場合、前記第一のプロセスについて、ログ順序番号と前記第一のプロセスを示す情報とを設定した待ち行列エントリを前記プロセス待ち管理用待ち行列に格納した後、前記第一のプロセスを休眠処理させ、ログ情報の記録完了時には、前記プロセス待ち管理用待ち行列に格納された待ち行列エントリについて、前記待ち行列エントリに含まれるログ順序番号と記録が完了した前記ログ情報のログ順序番号とを比較することで、ログ情報の記録が完了した総てのプロセスを抽出し、抽出した前記ログ情報の記録完了した総てのプロセスを起床処理させるログ記録制御処理を
    実行させるためのログ情報記録用プログラム。
JP2012543066A 2011-04-15 2012-04-13 ログ情報記録システム、装置、方法およびプログラム Active JP5212580B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012543066A JP5212580B2 (ja) 2011-04-15 2012-04-13 ログ情報記録システム、装置、方法およびプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011091288 2011-04-15
JP2011091288 2011-04-15
PCT/JP2012/002599 WO2012140916A1 (ja) 2011-04-15 2012-04-13 ログ情報記録システム、装置、方法およびプログラム
JP2012543066A JP5212580B2 (ja) 2011-04-15 2012-04-13 ログ情報記録システム、装置、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP5212580B2 true JP5212580B2 (ja) 2013-06-19
JPWO2012140916A1 JPWO2012140916A1 (ja) 2014-07-28

Family

ID=47009105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012543066A Active JP5212580B2 (ja) 2011-04-15 2012-04-13 ログ情報記録システム、装置、方法およびプログラム

Country Status (3)

Country Link
US (1) US20140108839A1 (ja)
JP (1) JP5212580B2 (ja)
WO (1) WO2012140916A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10216429B2 (en) 2015-06-26 2019-02-26 International Business Machines Corporation Performing post-processing operations for log file writes
US9864532B2 (en) 2015-06-26 2018-01-09 International Business Machines Corporation Performing preprocessing operations in anticipation of log file writes
JP6536237B2 (ja) * 2015-07-10 2019-07-03 日本電気株式会社 制御情報設定装置、制御情報設定方法、及び、制御情報設定プログラム
US20200050692A1 (en) * 2018-08-10 2020-02-13 Microsoft Technology Licensing, Llc Consistent read queries from a secondary compute node
CN113868014A (zh) * 2020-06-30 2021-12-31 华为技术有限公司 一种数据同步方法及装置
CN111913923A (zh) * 2020-07-15 2020-11-10 上海眼控科技股份有限公司 日志记录方法、装置、设备以及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271648A (ja) * 1994-03-30 1995-10-20 Nec Corp ログファイル書き込み方式およびログファイル書き込み 方法
JPH10187519A (ja) * 1996-06-19 1998-07-21 At & T Corp 分配システムの競合を防止する方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493749B2 (en) * 1998-08-17 2002-12-10 International Business Machines Corporation System and method for an administration server
US6721765B2 (en) * 2002-07-02 2004-04-13 Sybase, Inc. Database system with improved methods for asynchronous logging of transactions
US7392335B2 (en) * 2006-02-10 2008-06-24 Oracle International Corporation Anticipatory changes to resources managed by locks
US7899794B2 (en) * 2008-03-20 2011-03-01 Sybase, Inc. Optimizing lock acquisition on transaction logs
US9009125B2 (en) * 2010-10-13 2015-04-14 International Business Machiness Corporation Creating and maintaining order of a log stream

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271648A (ja) * 1994-03-30 1995-10-20 Nec Corp ログファイル書き込み方式およびログファイル書き込み 方法
JPH10187519A (ja) * 1996-06-19 1998-07-21 At & T Corp 分配システムの競合を防止する方法

Also Published As

Publication number Publication date
WO2012140916A1 (ja) 2012-10-18
JPWO2012140916A1 (ja) 2014-07-28
US20140108839A1 (en) 2014-04-17

Similar Documents

Publication Publication Date Title
JP5212580B2 (ja) ログ情報記録システム、装置、方法およびプログラム
US8108696B2 (en) Optimizing non-preemptible read-copy update for low-power usage by avoiding unnecessary wakeups
JP5011028B2 (ja) ストレージシステム、管理装置、スケジューリング方法、プログラム、記録媒体
JP2667039B2 (ja) データ管理システムおよびデータ管理方法
KR102303008B1 (ko) 파일 시스템에서의 플러싱 기법
US20070073693A1 (en) Transaction and task scheduler
US20130198139A1 (en) Durability implementation plan in an in-memory database system
US20110145525A1 (en) Method and System for Storing and Operating on Advanced Historical Access Data
US20140040208A1 (en) Early release of transaction locks based on tags
US20140215127A1 (en) Apparatus, system, and method for adaptive intent logging
JP2006323826A (ja) データベース管理システムでログ書込みを実行するシステム
WO2012083754A1 (zh) 处理脏数据的方法及装置
US20140310253A1 (en) Out-of-order execution of strictly-ordered transactional workloads
US11048671B2 (en) Automated storage tier copy expiration
EP3224742A1 (en) Efficient data manipulation support
US9411692B2 (en) Applying write elision
WO2016097681A1 (en) Monitoring utilization of transactional processing resource
US20150113244A1 (en) Concurrently accessing memory
US20170039110A1 (en) Computer
CN111367625B (zh) 一种线程的唤醒方法及装置,存储介质和电子设备
JP4139642B2 (ja) データベース管理方法およびシステム
CN107239474B (zh) 一种数据记录方法及装置
JP2713218B2 (ja) チェックポイント/リスタート処理方式
EP2972848B1 (en) Completing asynchronous operations during program execution
EP3944101B1 (en) Information processing program, information processing method, and information processing device

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: 20130129

R150 Certificate of patent or registration of utility model

Ref document number: 5212580

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160308

Year of fee payment: 3