(57)【要約】      （修正有）【課題】複数のプロセスによる同じ記録媒体に対するログの記録を高速化する。【解決手段】情報処理装置１００は、受付部１０２が、プロセス実行部１０１が実行するプロセスによるログ情報の生成を検出すると、付与部１０８がログ情報にＬＳＮ（ログ順序番号）を付与する。さらに、受付部１０２が、付与されたＬＳＮと、そのログ情報を生成したプロセス識別子を、状態保持部１０３に格納しログ情報の記録を要求する。媒体記録部１０５がログ情報の記録を実行中である場合、受付部１０２は、ログ情報の生成の検出を継続する。媒体記録部１０５がログ情報の記録を実行中でない場合、要求部１０４が、要求ＬＳＮを含むアクセス要求を生成する。媒体記録部１０５は、記録が要求されているログ情報を、ログ記録媒体１０６にまとめて記録する。完了待ち部１０７は、記録が完了したログ情報の記録を要求したプロセスを、順次起床させる。【選択図】図１
2016162356.tif 000002
【特許請求の範囲】
【請求項１】
プロセスによって記録が要求されたログ情報の記録をまとめて要求するアクセス要求を行う要求手段と、
前記アクセス要求に基づく前記ログ情報の記録が完了するのに応じて、前記アクセス要求によって記録が要求された前記ログ情報の記録を要求した前記プロセスである記録完了プロセスを起床させる完了待ち手段と、
を備え、
前記ログ情報には、当該ログ情報の記録が要求された順番を表す順序番号が付与され、
前記要求手段は、前記アクセス要求によって記録が要求された前記ログ情報に付与されている前記順序番号の中で、最も大きい前記順序番号を、前記アクセス要求に付与し、
前記完了待ち手段は、前記アクセス要求に付与されている前記順序番号以下の前記順序番号が付与されている前記ログ情報の記録を要求した前記プロセスを起床させることによって、前記記録完了プロセスを起床させる
情報処理装置。
【請求項２】
前記完了待ち手段は、前記アクセス要求に付与されている前記順序番号以下の前記順序番号が付与されている前記ログ情報の記録を要求した前記プロセスのうち、起床していない前記プロセスの各々を起床させることによって、前記記録完了プロセスを起床させる
請求項１に記載の情報処理装置。
【請求項３】
前記要求手段は、前記アクセス要求に基づく前記ログ情報の記録が完了するのに応じて、前記アクセス要求に基づく前記ログ情報の記録が行われている間に前記プロセスによって記録が要求された前記ログ情報の記録をまとめて要求する新たな前記アクセス要求行う
請求項１又は２に記載の情報処理装置。
【請求項４】
前記プロセスを実行するプロセス実行手段と、
前記アクセス要求に基づいて前記ログ情報をログ記録媒体に記録する媒体記録手段と、
前記ログ情報を記憶する前記ログ記録媒体と
を備える請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
プロセスによって記録が要求された順番を表す順序番号が付与されているログ情報の記録をまとめて要求するアクセス要求に、当該アクセス要求によって記録が要求される前記ログ情報に付与されている前記順序番号の中で最も大きい前記順序番号を付与し、前記アクセス要求を行い、
前記アクセス要求に基づく前記ログ情報の記録が完了するのに応じて、前記アクセス要求によって記録が要求された前記ログ情報の記録を要求した前記プロセスである記録完了プロセスを、前記アクセス要求に付与されている前記順序番号以下の前記順序番号が付与されている前記ログ情報の記録を要求した前記プロセスを起床させることによって起床させる
情報処理方法。
【請求項６】
前記アクセス要求に付与されている前記順序番号以下の前記順序番号が付与されている前記ログ情報の記録を要求した前記プロセスのうち、起床していない前記プロセスの各々を起床させることによって、前記記録完了プロセスを起床させる
請求項５に記載の情報処理方法。
【請求項７】
前記アクセス要求に基づく前記ログ情報の記録が完了するのに応じて、前記アクセス要求に基づく前記ログ情報の記録が行われている間に前記プロセスによって記録が要求された前記ログ情報の記録をまとめて要求する新たな前記アクセス要求行う
請求項５又は６に記載の情報処理方法。
【請求項８】
コンピュータを、
プロセスによって記録が要求されたログ情報の記録をまとめて要求するアクセス要求を行う要求手段と、
前記アクセス要求に基づく前記ログ情報の記録が完了するのに応じて、前記アクセス要求によって記録が要求された前記ログ情報の記録を要求した前記プロセスである記録完了プロセスを起床させる完了待ち手段と、
して動作させ、
前記ログ情報には、当該ログ情報の記録が要求された順番を表す順序番号が付与され、
前記要求手段は、前記アクセス要求によって記録が要求された前記ログ情報に付与されている前記順序番号の中で、最も大きい前記順序番号を、前記アクセス要求に付与し、
前記完了待ち手段は、前記アクセス要求に付与されている前記順序番号以下の前記順序番号が付与されている前記ログ情報の記録を要求した前記プロセスを起床させることによって、前記記録完了プロセスを起床させる
情報処理プログラム。
【請求項９】
コンピュータを、
前記アクセス要求に付与されている前記順序番号以下の前記順序番号が付与されている前記ログ情報の記録を要求した前記プロセスのうち、起床していない前記プロセスの各々を起床させることによって、前記記録完了プロセスを起床させる前記完了待ち手段と
して動作させる請求項８に記載の情報処理プログラム。
【請求項１０】
コンピュータを、
前記アクセス要求に基づく前記ログ情報の記録が完了するのに応じて、前記アクセス要求に基づく前記ログ情報の記録が行われている間に前記プロセスによって記録が要求された前記ログ情報の記録をまとめて要求する新たな前記アクセス要求行う前記要求手段と
して動作させる請求項８又は９に記載の情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報を処理する技術に関し、特にログ情報の書き込みを制御する技術に関する。
【背景技術】
【０００２】
ファイルやデータベースなどに情報を書込む情報システムの内、特に高い信頼性を必要とする情報システムでは、書込み操作に関する情報を、ログ情報として、ファイルやデータベースとは別のログ記録媒体に記録する方式が採られることが多い。特に高い信頼性を必要とする情報システムは、具体的には、書込みが完了した情報の消失が許されないシステムである。データベース管理システムは、このような情報システムの典型例である。
【０００３】
本発明の実施形態の説明を含む以下の説明において、ファイルやデータベースなどに情報を格納する操作を「書込み」と表記する。書込みの操作に関するログ情報をログ記録媒体に格納する操作を「記録」と表記する。以上のように、「書き込み」と「記録」とは、区別される。
【０００４】
ログ情報が記録されていれば、どのような書き込み操作が行われたかを知ることができる。例えばシステム障害の発生によって、ファイルやデータベースに書き込まれた情報が読み出せなくなった場合であっても、ログ記録が記録されていれば、例えば、以下のように、障害発生時におけるファイルやデータベースの情報を復元できる。情報処理装置は、ログ記録に基づいて、そのファイルやデータベースのバックアップが行われた後、システム障害が発生するまでの間に行われた書き込み操作を特定する。そして、情報処理装置は、特定された書き込み操作をそのバックアップに対して再実行することによって、障害発生時におけるファイルやデータベースの情報を復元できる。
【０００５】
ログを記録する方式の例が、例えば、特許文献１によって開示されている。特許文献１に記載されているログ書き込み方式では、複数のアプリケーションからメッセージが、複数のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）実行手段によって、あらかじめ決められた順番で取り出される。そして、取り出されたメッセージは、取り出したＩ／Ｏ実行手段にあらかじめ関連付けられているログファイルに記録される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−２７１６４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の技術では、複数のプロセスによる同じ記録媒体に対するログの記録を高速化することはできない。
【０００８】
本発明の目的の１つは、複数のプロセスによる同じ記録媒体に対するログの記録を高速化することができる情報処理装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一態様に係る情報処理装置は、プロセスによって記録が要求されたログ情報の記録をまとめて要求するアクセス要求を行う要求手段と、前記アクセス要求に基づく前記ログ情報の記録が完了するのに応じて、前記アクセス要求によって記録が要求された前記ログ情報の記録を要求した前記プロセスである記録完了プロセスを起床させる完了待ち手段と、を備え、前記ログ情報には、当該ログ情報の記録が要求された順番を表す順序番号が付与され、前記要求手段は、前記アクセス要求によって記録が要求された前記ログ情報に付与されている前記順序番号の中で、最も大きい前記順序番号を、前記アクセス要求に付与し、前記完了待ち手段は、前記アクセス要求に付与されている前記順序番号以下の前記順序番号が付与されている前記ログ情報の記録を要求した前記プロセスを起床させることによって、前記記録完了プロセスを起床させる。
【００１０】
本発明の一態様に係る情報処理方法は、プロセスによって記録が要求された順番を表す順序番号が付与されているログ情報の記録をまとめて要求するアクセス要求に、当該アクセス要求によって記録が要求される前記ログ情報に付与されている前記順序番号の中で最も大きい前記順序番号を付与し、前記アクセス要求を行い、前記アクセス要求に基づく前記ログ情報の記録が完了するのに応じて、前記アクセス要求によって記録が要求された前記ログ情報の記録を要求した前記プロセスである記録完了プロセスを、前記アクセス要求に付与されている前記順序番号以下の前記順序番号が付与されている前記ログ情報の記録を要求した前記プロセスを起床させることによって起床させる。
【００１１】
本発明の一態様に係る情報処理プログラムは、コンピュータを、プロセスによって記録が要求されたログ情報の記録をまとめて要求するアクセス要求を行う要求手段と、前記アクセス要求に基づく前記ログ情報の記録が完了するのに応じて、前記アクセス要求によって記録が要求された前記ログ情報の記録を要求した前記プロセスである記録完了プロセスを起床させる完了待ち手段と、して動作させ、前記ログ情報には、当該ログ情報の記録が要求された順番を表す順序番号が付与され、前記要求手段は、前記アクセス要求によって記録が要求された前記ログ情報に付与されている前記順序番号の中で、最も大きい前記順序番号を、前記アクセス要求に付与し、前記完了待ち手段は、前記アクセス要求に付与されている前記順序番号以下の前記順序番号が付与されている前記ログ情報の記録を要求した前記プロセスを起床させることによって、前記記録完了プロセスを起床させる。
【発明の効果】
【００１２】
本発明には、複数のプロセスによる同じ記録媒体に対するログの記録を高速化することができるという効果がある。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の第１の実施形態の情報処理装置１００の構成の例を表すブロック図である。
【図２】図２は、本発明の第１の実施形態のプロセス実行部１０１を概念的に表す図である。
【図３】図３は、本発明の第１の実施形態の状態保持部１０３を模式的に表す図である。
【図４】図４は、本発明の第１の実施形態の情報処理装置１００の動作の例を表すフローチャートである。
【図５】図５は、本発明の第１の実施形態の情報処理装置１００の動作の例を表すフローチャートである。
【図６】図６は、本発明の第１の実施形態に基づく実装例の情報処理装置１００Ａの構成の例を表すブロック図である
【図７】図７は、本発明の第１の実施形態に基づく実装例の情報処理装置１００Ａの、ログ情報の記録を要求する動作の例を表すフローチャートである。
【図８】図８は、本発明の第１の実施形態に基づく実装例の情報処理装置１００Ａの、ログ情報を記録する動作の例を表すフローチャートである。
【図９】図９は、本発明の第１の実施形態の情報処理装置１００によるログ情報を記録する動作のタイミングを模式的に表す図である。
【図１０】図１０は、本発明の第２の実施形態の情報処理装置１００Ｂの構成を表すブロック図である。
【図１１】図１１は、情報処理装置１００及び１００Ａを実現することができる、コンピュータ１０００のハードウェア構成の一例を表す図である。
【図１２】図１２は、動作例に従った制御を実現するプログラムの動作を表すフローチャートである。
【図１３】図１３は、複数のプロセスが動作例に従った動作を独立して行った場合におけるタイミングの例を表す図である。
【図１４】図１４は、動作例における、ログ情報の記録が完了した後に起床するプロセスが、動作を開始するまでに時間を要する場合におけるタイミングの例を表す図である。
【発明を実施するための形態】
【００１４】
以下では、まず、本発明の各実施形態と比較される、複数のプロセスによるログを記録する動作の例（以下、比較例と表記）について説明し、続けて、本発明の実施形態について説明する。なお、以下では、プロセスを実行するプロセッサの、そのプロセスを実行することによる動作を、そのプロセスの動作として説明する。
【００１５】
＜比較例＞
まず、本発明の各実施形態と比較される、情報処理システムの動作例（すなわち上述の比較例）について、詳細に説明する。
【００１６】
一般に、情報システム内では、複数のプロセスが並行に動作している。複数のプロセスは、独立に、ファイルやデータベースへの書込みの操作（以下、書き込み操作とも表記）を行う。すなわち、複数の書込み処理が並行して実行される。独立に行われる書込み操作に伴って発生するログ情報の記録も、独立に記録される。すなわち、複数のログ情報が並行して記録される。
【００１７】
複数のログ情報が並行して記録される場合、ログが記録される装置の特性を考慮すると、複数のログ情報に対して別々に記録操作を実行するよりも、複数のログ情報をまとめて記録する記録操作を実行したほうが、ログ情報を記録する際の効率は高い。その理由は、以下の通りである。記録装置に対して記録操作を起動してから、記録装置内の記録媒体への記録操作が開始されるまでに時間が掛かる。すなわち、１回の記録操作に対してオーバヘッドがかかる。そのため、複数のログ情報に対して別々に記録操作を実行した場合、オーバヘッドは各々の記録操作に対してかかる。それに対して、複数のログ情報をまとめて記録した場合、オーバヘッドは１回の記録操作にかかるだけである。そのため、複数のログ情報をまとめて記録した場合、オーバヘッドを低減できる。
【００１８】
複数のプロセスによるログ情報をまとめて記録する制御を行なう場合、記録する操作の完了時に、複数のプロセスに対してログ記録完了を通知する必要がある。プロセッサが直接使うデータが格納されるメモリへのアクセスの速度と比較すると、ログ記録媒体へのアクセスの速度は、数千倍以上遅い。そのため、ログ情報をログ記録媒体に記録する要求を行った後、プロセスは、休眠（sleep）しながら、すなわち、プロセッサの使用を中断したまま、ログ情報のログ記録媒体への記録（すなわちログ記録）の完了を待つことが多い。その理由は、以下の通りである。プロセスがログ記録の完了まで休眠して待つ方式を採用することによって、プロセッサは、そのプロセスが休眠している間、別プロセスの処理を実行できる。そのため、システムとしての性能を向上させることができる。この場合、ログ情報をログ記録媒体に記録する要求を行ったプロセスにログ記録完了を通知する操作は、休眠しているプロセスを起床させる操作、すなわち、そのプロセスの状態を、プロセッサを使用して処理を実行可能な状態に変更する操作を意味する。
【００１９】
一般に、個々のログ情報には、一意に増加するログ順序番号（Ｌｏｇ  Ｓｅｑｕｅｎｃｅ  Ｎｕｍｂｅｒ；以下、ＬＳＮと表記）が付与される。ＬＳＮは、例えば、ログ情報の記録が要求された順番を表す。ログ情報を記録する操作であるログ記録操作は、ＬＳＮによって制御される。あるＬＳＮが付与されているログ情報のログ記録操作が完了した場合、そのＬＳＮが付与されているログ情報の記録の完了を待つプロセスを起床させる必要がある。また、ログ情報を記録する操作は、そのログ情報に付与されているＬＳＮの順番に従って行われる。従って、あるＬＳＮが付与されているログ情報の記録の完了は、そのＬＳＮよりも小さいＬＳＮが付与されているログ情報の記録の完了も意味する。言い換えると、あるＬＳＮが付与されているログ情報のログ記録操作が完了した場合、そのＬＳＮよりも小さなＬＳＮが付与されているログ情報のログ記録操作も完了している。そのため、あるＬＳＮが付与されているログ情報のログ記録操作が完了した場合、そのＬＳＮよりも小さなＬＳＮが付与されているログ情報の記録の完了を待つプロセスを起床させる操作を行う必要もある。逆に、記録操作が完了したログ情報に付与されているＬＳＮよりも大きなＬＳＮが付与されているログ情報は、記録されていない可能性がある。そのため、記録操作が完了したログ情報に付与されているＬＳＮよりも大きなＬＳＮが付与されているログ情報の記録の完了を待つプロセスを起床させる操作を行ってはならない。
【００２０】
図１２は、以上で説明した動作例に従った制御を実現するプログラムの動作を表すフローチャートである。図１２に示す動作は、オープン・ソースのデータベース管理システムであるＰｏｓｔｇｒｅＳＱＬ（登録商標）において使われている方式が簡略化された動作を表す。この動作において、全てのプロセスが参照できる変数は、ロック・フラグと、完了ＬＳＮと、要求ＬＳＮとである。ロック・フラグは、記録操作を行うプロセス数を１に限定するためのロックを実現するための変数である。完了ＬＳＮは、記録が完了しているログ情報に付与されているＬＳＮの中で最も大きいＬＳＮである。要求ＬＳＮは、ログ記録操作が要求されたログ情報に付与されているＬＳＮの中で最も大きいＬＳＮである。
【００２１】
あるプロセスが、データベースへの書込みを行った場合、その書き込みに関するログ情報の記録を行なう必要が生じる。図１２によると、そのプロセスは、ロック・フラグによって実現されているロックを取得する（ステップＳ００１）。ロックの取得に失敗した場合（ステップＳ００２においてＮＯ）、そのプロセスは休眠し、そのロックの解放を待つ（ステップＳ００７）。そのプロセスの休眠状態は、そのロックを獲得しているプロセスがロックを解放する際に、起床の操作を行う（ステップＳ００６）ことによって解消される。ロックの取得に成功した場合（ステップＳ００２においてＹＥＳ）、そのプロセスは、そのプロセスが記録の要求を行ったログ情報に付与されているＬＳＮ（以下、自ＬＳＮと表記）と、完了ＬＳＮとを比較する（ステップＳ００３）。自ＬＳＮが完了ＬＳＮより大きい場合（ステップＳ００３においてＹＥＳ）、記録する操作を実行する必要があるログ情報が存在する。そのため、そのプロセスは、要求ＬＳＮが付与されているログ情報までのログ情報（すなわち、要求ＬＳＮまでのログ情報）を記録する操作を行う（ステップＳ００４）。ステップＳ００４におけるログ記録操作が完了すると、そのプロセスは、要求ＬＳＮを完了ＬＳＮに設定する（ステップＳ００５）。そして、そのプロセスは、ロックを解放し、休眠しているプロセスを起床させる（ステップＳ００６）。そして、そのプロセスは、図１２に示す動作を終了する。ステップＳ００３における比較の結果、自ＬＳＮが完了ＬＳＮより大きくない場合（ステップＳ００３においてＮＯ）、そのプロセスは、直ちにロックを解放し、休眠しているプロセスを起床させる（ステップＳ００６）。そして、そのプロセスは、図１２に示す動作を終了する。
【００２２】
このフローを複数のプロセスが独立に実行する場合、
１）複数のプロセスのフローが終了した時点において、それらのプロセスが記録を要求した、記録されるべきログ情報を記録する操作が完了している
２）ログ情報の記録が完了していない場合はそのログ情報を記録する操作が起動される
の２点が保証される。なお、システムによっては、ステップＳ００４において、要求ＬＳＮ（すなわち、記録されていないログ情報に付与されているＬＳＮの中で最も大きいＬＳＮ）を取得できない可能性がある。そのようなシステムにおいて、要求ＬＳＮを取得できない場合は、ロックを獲得したプロセスが、ステップＳ００４において、そのプロセスが記録を要求したログ情報に付与されているＬＳＮまでのＬＳＮが付与されているログ情報を記録する操作を行えばよい。
【００２３】
図１３は、複数のプロセスが本動作例に従った動作を独立して行った場合におけるタイミングの例を表す図である。図１３は、具体的には、トランザクション２−１を処理するプロセスが、トランザクション２−１から２−４までのログ情報をログ記録媒体に記録する場合の、複数のプロセスの動作のタイミングを示す。まず、ロックを獲得したトランザクション１を処理するプロセスが、ログ情報の記録を要求する。具体的には、トランザクション１を処理するプロセスは、例えば、ログ情報をログ記録媒体に記録する媒体記録部（図示されない）に、ログ情報の記録を要求し、休眠する。トランザクション１を処理するプロセスが休眠している間に、ランザクション２−１から２−４までのログ情報の記録が要求される。トランザクション１を処理するプロセスが要求したログ情報の記録が完了すると、ロックが解放され、トランザクション１を処理するプロセスが起床される。次に、トランザクション１を実行するプロセスが、トランザクション２−１を実行するプロセスを起床させる。トランザクション２−１を実行するプロセスは、ロックを獲得し、トランザクション２−１から２−４までのログ情報のログ記録媒体への記録を、媒体記録部に要求し、休眠する。トランザクション２−１を実行するプロセスが要求したログ情報の記録が完了すると、まず、トランザクション２−１を実行するプロセスが起床される。
【００２４】
トランザクション２−１を実行するプロセスが動作を再開すると、トランザクション２−１を実行するプロセスは、トランザクション２−２を処理するプロセスを起床させる。トランザクション２−２を処理するプロセスが動作を再開すると、トランザクション２−２を処理するプロセスは、トランザクション２−３を処理するプロセスを起床させる。以上のように、起床したプロセスが次のプロセスを起床させる動作が、１プロセスずつ順番に繰り返される。
【００２５】
図１４は、本動作例における、ログ情報の記録が完了した後に起床するプロセスが、動作を開始するまでに時間を要する場合におけるタイミングの例を表す図である。図１４に示す例では、トランザクション２−１を実行するプロセスは、割り込み処理によって起床する。そして、割り込み処理が行われてから、トランザクション２−１を実行するプロセスが、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を獲得することによって動作を再開するまでに時間を要する。図１４に示すように、トランザクション２−１を実行するプロセスの動作の再開の遅れによって、トランザクション２−１を実行するプロセスによって起床される、ログ情報の記録の完了を待っている他のプロセス全ての動作の再開が遅れる。
【００２６】
＜第１の実施形態＞
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００２７】
図１は、本発明の第１の実施形態の情報処理装置１００の構成の例を表すブロック図である。
【００２８】
図１を参照すると、本実施形態の情報処理装置１００は、プロセス実行部１０１と、受付部１０２と、状態保持部１０３と、要求部１０４と、媒体記録部１０５と、ログ記録媒体１０６と、完了待ち部１０７と、付与部１０８とを含む。
【００２９】
図２は、プロセス実行部１０１を概念的に表す図である。
【００３０】
図２示すように、プロセス実行部１０１は、複数のトランザクション処理プロセスを実行する。以下の説明では、トランザクション処理プロセスを、単に「プロセス」とも表記する。プロセス実行部１０１は、例えば、トランザクション処理プロセスを実行するプロセッサによって実現される。
【００３１】
受付部１０２は、プロセス実行部１０１が実行するプロセスによる、ログ情報の生成を検出する。受付部１０２は、プロセスから、ログ情報をログ記録媒体１０６に記録する要求である、ログ記録要求を受信することによって、ログ情報の生成を検出してもよい。以下の説明では、ログ情報は、単に「ログ」と表記されることがある。また、ログ記録要求は、単に、「記録要求」と表記される。受付部１０２は、受信したログ記録要求を行ったプロセスを特定する情報と、受信したログ記録要求によって記録が要求されるログ情報に付与されているＬＳＮとを、例えば後述の待ち行列エントリとして、状態保持部１０３に格納する。受付部１０２は、その待ち行列エントリを、後述されるプロセス待ち管理用待ち行列の最後尾に連結することによって、状態保持部１０３に格納すればよい。受付部１０２は、さらに、受信したログ記録要求によって記録が要求されるログ情報に付与されているＬＳＮを、要求ＬＳＮとして、状態保持部１０３に格納する。受付部１０２は、受信したログ記録要求によって記録が要求されるログ情報に付与されているＬＳＮによって、要求ＬＳＮを更新する。受付部１０２は、さらに、記録が要求されたログ情報を、例えば、状態保持部１０３又は他の記憶部（図示されない）に格納してもよい。
【００３２】
ログ情報の記録を要求するプロセスが、受付部１０２として動作してもよい。その場合、受付部１０２は、その受付部１０２として動作するプロセスを特定する情報と、記録の要求を行ったログ情報に付与されているＬＳＮとを状態保持部１０３に格納し、さらに、そのＬＳＮを要求ＬＳＮとして状態保持部１０３に格納すればよい。
【００３３】
付与部１０８は、記録が要求されたログ情報に、そのログ情報の記録が要求された順番を表すＬＳＮ（以下、順序番号とも表記）を付与する。ログ情報に付与されたＬＳＮは、そのログ情報の記録を要求するログ記録要求に付与されたＬＳＮであると見なすことができる。以下では、ログ情報に付与されたＬＳＮを、そのログ情報の記録を要求するログ記録要求に付与されたＬＳＮとして説明することがある。付与部１０８は、例えば、プロセス実行部１０１が実行する複数のプロセスによって実現される。
【００３４】
図３は、状態保持部１０３を模式的に表す図である。図３に示すように、状態保持部１０３は、待ち行列リストと、完了ＬＳＮと、要求ＬＳＮとを記憶する。待ち行列リストは、例えば、いずれかのプロセスによって記録の要求が行われたログ情報のうち、記録が行われていないログ情報に付与されているＬＳＮと、そのログ情報の記録を要求したプロセスを特定する情報との組のリストである。図３に示す、プロセス待ち管理用待ち行列は、待ち行列のデータ構造の一例を表す。プロセス待ち管理用待ち行列は、待ち行列エントリを含む。待ち行列エントリは、ログ記録要求を行ったプロセスを特定する情報（例えば識別子）であるプロセス情報と、そのログ記録要求のＬＳＮとを含む。待ち行列エントリは、さらに、連結リスト構造を形成するためのリスとポインタである「リスト」を含む。「待ち行列リスト」には、最初の待ち行列エントリへのポインタが格納される。「待ち行列リスト」の値が、いずれの待ち行列エントリも指し示さない値（例えばＮＵＬＬ）である場合、ログ情報の記録が行われていないログ記録要求は存在しない。
【００３５】
完了ＬＳＮは、上述のように、記録が完了したログ情報に付与されていたＬＳＮのうち、最大のＬＳＮである。言い換えると、完了ＬＳＮは、記録が完了したログ情報のうち、最後に記録が要求されたログ情報に付与されていたＬＳＮである。
【００３６】
要求ＬＳＮは、上述のように、記録が完了していないログ情報に付与されているＬＳＮのうち、最大のＬＳＮである。言い換えると、要求ＬＳＮは、最後に記録の要求が行われたログ情報に付与されているＬＳＮである。
【００３７】
要求部１０４は、記録の要求が行われたログ記録のうち、記録が行われていないログ記録（以下、未記録ログ情報と表記）をまとめてログ記録媒体１０６に記録する要求である、アクセス要求を生成する。要求部１０４は、生成したアクセス要求に、要求ＬＳＮを付与する。要求部１０４は、要求ＬＳＮを含むアクセス要求を生成してもよい。要求部１０４は、要求ＬＳＮが付与されたアクセス要求を、媒体記録部１０５に送信する。要求ＬＳＮが付与されたアクセス要求は、付与されている要求ＬＳＮ以下のＬＳＮが付与されている全てのログ情報を、ログ記録媒体１０６に記録する要求である。上述のように、要求ＬＳＮは、見記録ログ情報に付与されているＬＳＮのうち、最も大きいＬＳＭである。言い換えると、要求ＬＳＮが付与されたアクセス要求は、そのアクセス要求が作成されたときに存在する全ての未記録ログ情報を記録する要求である。要求部１０４は、例えば、起床されたプロセスによって実現される。
【００３８】
媒体記録部１０５は、受信した、ＬＳＮが付与されたアクセス要求によって記録が要求されたログ情報を、ログ記録媒体１０６に記録する。すなわち、媒体記録部１０５は、例えば、アクセス要求に付与されているＬＳＮ以下のＬＳＮが付与されているログ記録を、ログ記録媒体１０６に記録する。媒体記録部１０５は、アクセス要求によって記録が要求されたログ情報の記録が完了すると、そのアクセス要求によって記録が要求されたログ情報の記録の完了を、完了待ち部１０７に通知する。媒体記録部１０５は、例えば、そのアクセス要求に付与されていたＬＳＮを完了待ち部１０７に送信することによって、そのアクセス要求によって記録が要求されたログ情報の記録の完了を、完了待ち部１０７に通知すればよい。以下では、アクセス要求によって記録が要求されたログ情報の記録の完了を、「アクセス要求に基づくログ情報の記録の完了」又は「アクセス要求に基づく記録の完了」とも表記する。
【００３９】
完了待ち部１０７は、アクセス要求に基づくログ情報の記録の完了を検出する。完了待ち部１０７は、アクセス要求に基づくログ情報の記録の完了が検出されるまで待機する。完了待ち部１０７は、アクセス要求に基づくログ情報の記録の完了が検出された場合、そのアクセス要求に付与されているＬＳＮ以下のＬＳＮが付与されているログ情報の記録を要求したプロセスを起床させる。
【００４０】
完了待ち部１０７は、アクセス要求に基づくログ情報の記録の完了が検出された際に、未記録ログ情報が存在する場合、要求部１０４に、新しくアクセス要求を生成する指示を送信してもよい。その場合、完了待ち部１０７は、例えば、その未記録ログ情報のうち、付与されているＬＳＮが最大である未記録ログ情報の記録を要求したプロセスを起床させてもよい。その場合、起床させたプロセスが要求部１０４として動作することによって、そのプロセスが、上述のアクセス要求を生成し、生成したアクセス要求を媒体記録部１０５に送信する。
【００４１】
次に、本実施形態の動作について、図面を参照して詳細に説明する。
【００４２】
図４及び図５は、本実施形態の情報処理装置１００の動作の例を表すフローチャートである。
【００４３】
図４を参照すると、まず、受付部１０２が、プロセス実行部１０１が実行するプロセスによる、ログ情報の生成を検出する（ステップＳ３０１）。ログ情報が生成されていない場合、すなわち、ログ情報の生成が検出されない場合（ステップＳ３０２においてＮＯ）、受付部１０２は、ステップＳ３０１における、ログ情報の生成の検出を継続する。
ログ情報が生成された場合、すなわち、ログ情報の生成が検出された場合（ステップＳ３０２においてＹＥＳ）、付与部１０８が、生成が検出されたログ情報に、ＬＳＮを付与する（ステップＳ３０３）。さらに、受付部１０２が、ログ情報に関する情報を状態保持部１０３に格納する（ステップＳ３０４）。ログ情報に関する情報は、上述のように、付与されたＬＳＮと、そのログ情報を生成した（すなわち、そのログ情報の記録を要求した）プロセスを特定する情報（すなわち、識別子）である。受付部１０２は、さらに、ステップＳ３０３においてログ情報に付与したＬＳＮを、要求ＬＳＮとして状態保持部１０３に格納する。状態保持部１０３に要求ＬＳＮが格納されている場合、受付部１０２は、その要求ＬＳＮをステップＳ３０３においてログ情報に付与したＬＳＮに変更すればよい。さらに、受付部１０２は、生成が検出されたログ情報の記録を要求する（ステップＳ３０５）。その際、媒体記録部１０５がログ情報の記録を実行中である場合（ステップＳ３０６においてＹＥＳ）、受付部１０２は、ステップＳ３０１においてログ情報の生成の検出を継続する。媒体記録部１０５がログ情報の記録を実行中でない場合（ステップＳ３０６においてＮＯ）、情報処理装置１００は、次に、図５に示すステップＳ３０６の動作を行う。
【００４４】
なお、プロセス実行部１０１が実行する複数のプロセスが受付部１０２である場合、ログ情報を記録する必要があるプロセスが、図４に示すステップＳ３０３以降の動作を行えばよい。そして、媒体記録部１０５がログ情報の記録を実行中である場合（ステップＳ３０６においてＹＥＳ）、ステップＳ３０３以降の動作を行ったプロセスは休眠する。そして、他の動作中のプロセスが、ステップＳ３０１の動作を継続する。図５に示す動作が行われている間も、図４に示す動作は行われる。要求部１０４が、ログ情報の記録を要求したプロセスによって実現される場合、媒体記録部１０５がログ情報の記録を実行中でない間に、ログ情報の記録を要求したプロセスが、要求部１０４としてステップＳ３０６の動作を行えばよい。
【００４５】
次に、図５に示す動作について説明する。
【００４６】
媒体記録部１０５がログ情報の記録を実行中でない場合（図４に示すステップＳ３０６においてＮＯ）、要求部１０４が、アクセス要求を生成する（ステップＳ３０６）。そして、要求部１０４は、生成したアクセス要求に、要求ＬＳＮを付与する（ステップＳ３０６）。要求部１０４は、要求ＬＳＮを含むアクセス要求を生成してもよい。要求部１０４が生成するアクセス要求は、上述のように、要求ＬＳＮ以下のＬＳＮが付与されている、未処理ログ記録要求によって記録が要求されているログ情報を、ログ記録媒体１０６に記録する要求である。アクセス要求に付与される要求ＬＳＮは、上述のように、そのアクセス要求を生成する時点で記録の要求が行われたログ情報に付与されているＬＳＮのうち、最大のＬＳＮである。本発明の各実施形態の説明において、要求ＬＳＮは、最大順序番号とも表記される。要求部１０４は、要求ＬＳＮが付与されたアクセス要求を、媒体記録部１０５に送信する（ステップＳ３０８）。要求部１０４が、ログ情報の記録を要求したプロセスによって実現される場合、そのプロセスは、ステップＳ３０８の後、休眠する。
【００４７】
媒体記録部１０５は、アクセス要求に基づく、ログ情報の記録を実行する（ステップＳ３０９）。すなわち、媒体記録部１０５は、受信したアクセス要求によって記録が要求されているログ情報を、ログ」記録媒体１０６にまとめて記録する。
【００４８】
完了待ち部１０７は、媒体記録部１０５によって実行されている、アクセス要求に基づくログ情報の記録が完了したか検出する（ステップＳ３１０）。媒体記録部１０５は、アクセス要求に基づくログ情報の記録が完了した場合、例えば、そのアクセス要求に付与されていたＬＳＮを、完了待ち部１０７に通知してもよい。上述のように、アクセス要求に付与されているＬＳＮは、そのアクセス要求が生成された際の要求ＬＳＮである。完了待ち部１０７は、ＬＳＮが通知された場合、アクセス要求に基づくログ情報の記録が完了したと判定すればよい。媒体記録部１０５は、アクセス要求に基づくログ情報の記録が完了した場合、例えば、そのアクセス要求に付与されていたＬＳＮを、完了待ち部１０７が読み出せるようにしてもよい。具体的には、媒体記録部１０５は、ログ情報の記録が完了したクセス要求に付与されていたＬＳＮを、例えば、完了待ち部１０７が読み出せる、メモリのあらかじめ定められた場所に格納すればよい。完了待ち部１０７は、例えば、状態保持部１０３に格納されている完了ＬＳＮと異なるＬＳＮが読み出された場合、アクセス要求に基づくログ情報の記録が完了したと判定すればよい。
【００４９】
アクセス要求に基づくログ情報の記録の完了が検出されない場合（ステップＳ３１１においてＮＯ）、完了待ち部１０７は、ステップＳ３１０において、アクセス要求に基づくログ情報の記録の完了の検出を継続する。アクセス要求に基づくログ情報の記録の完了が検出された場合（ステップＳ３１１においてＹＥＳ）、完了待ち部１０７は、アクセス要求に基づく記録が完了したログ情報の記録を要求したプロセスを起床させる（ステップＳ３１３）。完了待ち部１０７は、例えば、状態保持部１０３に格納されている完了ＬＳＮより大きく、記録が完了したアクセス要求に付与されていたＬＳＮ以下のＬＳＮが付与されているログ情報の記録を要求したプロセスを、順次起床させればよい。
【００５０】
さらに、完了待ち部１０７は、状態保持部１０３に格納されている完了ＬＳＮを、記録の完了が検出されたアクセス情報に付与されていたＬＳＮに変更する（ステップＳ３１２）。さらに、完了待ち部１０７は、記録が完了したログ情報に関する情報を、状態保持部１０３から削除する。具体的には、例えば、完了部待ち１０７は、完了ＬＳＮ以下のＬＳＮが付与されているログ情報の待ち行列エントリを、状態保持部１０３から削除する。
【００５１】
そして、未記録ログ情報が存在しない場合（ステップＳ３１４においてＮＯ）、情報処理装置１００は、図４及び図５に示す動作を終了する。そして、情報処理装置１００は、図４及び図５に示す動作を、再び繰り返せばよい。
【００５２】
媒体記録部１０５がアクセス要求に基づくログ情報の記録を行っている間に、新たにログ情報を記録する要求が行われた場合、そのログ情報は記録されないので、新たな未記録ログ情報が存在する。未記録ログ情報が存在する場合（ステップＳ３１４においてＹＥＳ）、情報処理装置１００は、ステップＳ３０６以降の動作を繰り返す。
【００５３】
要求部１０４が、ログ情報の記録を要求したプロセスによって実現されている場合、未記録ログ情報が存在すれば（ステップＳ３１４においてＹＥＳ）、完了待ち部１０７は、要求ＬＳＮが付与されているログ情報の記録を要求したプロセスを起床させればよい。そして、ステップＳ３０６において、起床したプロセスが、要求部１０４として動作すればよい。
【００５４】
＜第１の実施形態の実装例＞
次に、第１の実施形態に基づく実装例について説明する。
【００５５】
図６は、本実装例の情報処理装置１００Ａの構成の例を表すブロック図である。
【００５６】
図６を参照すると、本実装例の情報処理装置１００Ａは、プロセス実行部１０１と、状態保持部１０３と、媒体記録部１０５と、ログ記録媒体１０６と、完了待ち部１０７とを含む。状態保持部１０３、媒体記録部１０５、ログ記録媒体１０６、及び、完了待ち部１０７は、それぞれ、第１の実施形態における同じ名称が付与されている部と同じである。
【００５７】
プロセス実行部１０１は、１以上のトランザクション処理プロセスを実行する。第１の実施形態の説明と同様に、本変形例の説明でも、トランザクション処理プロセスは、単に「プロセス」と表記される。プロセス実行部１０１が実行するプロセスが、第１の実施形態における付与部１０８と、受付部１０２と、要求部１０４として動作する。
【００５８】
状態保持部１０３は、待ち行列リスト、完了ＬＳＮ、及び、要求ＬＳＮを記憶する。待ち行列リストの要素である待ち行列エントリは、休眠するプロセスに関する情報を記録するためのデータ構造である。待ち行列エントリは、連結リスト構造を形成するためのリストポインタ、休眠するプロセスを特定できるプロセス情報、ＬＳＮの３種類の変数を含んでいる。上述のように、本発明の各実施形態では、待ち行列リストと待ち行列エントリで形成する連結リスト構造のデータは、プロセス待ち管理用待ち行列と呼ばれる。
【００５９】
ログ記録制御部１１０は、媒体記録部１０５と、完了待ち部１０７とを含む。ログ記録制御部１１０は、トランザクション処理プロセスからのログ書き込み要求に応じてログ記録を行なう。媒体記録部１０５は、完了ＬＳＮの次のＬＳＮから要求されたＬＳＮの最大値までＬＳＮが付与されているログ情報をログ記録媒体１０６に格納する操作を行う。完了待ち部１０７は、トランザクション処理プロセスがログを記録する要求を行ったとき、ログ記録媒体１０６がアクセス中である場合に、そのアクセスが完了するまで待ち合わせる。完了待ち部１０７は、ログ記録媒体１０６への書き込みアクセスが完了したときに、アクセス完了を通知する。
【００６０】
次に、本実装例の動作について、図面を参照して詳細に説明する。
【００６１】
まず、本実装例の情報処理装置１００Ａの、ログ情報の記録を要求する動作について説明する。
【００６２】
図７は、本実装例の情報処理装置１００Ａの、ログ情報の記録を要求する動作の例を表すフローチャートである。
【００６３】
図７を参照すると、プロセスは、ログ情報の書き込みを要求する際、まず、ログ情報を生成する（ステップＳ１０１）。次に、プロセスは、生成したログ情報にＬＳＮを付与する（ステップＳ１０２）。プロセスは、付与したＬＳＮとそのプロセスを特定する情報（例えばプロセス識別子）とを、状態保持部１０３に格納する（ステップＳ１０３）。プロセスは、例えば、ＬＳＮとプロセス識別子とを含む、図３に示すような待ち行列エントリを生成する。そして、プロセスは、生成した待ち行列エントリを待ち行列リストに連結する。さらに、プロセスは、ログ記録制御部１１０に対して、媒体へのログ情報の記録を要求する（ステップＳ１０４）。そして、プロセスは、ログ記録媒体１０６への記録が行われているか否かを判定する（ステップＳ１０５）。ログ記録媒体１０６へのログ情報の記録が実行中である場合（ステップＳ１０５においてＹＥＳ）、プロセスは休眠し、ログ情報の記録の完了を待つ（ステップＳ１０８）。
【００６４】
ログ記録媒体１０６へのログ情報の記録が実行中でない場合（ステップＳ１０５においてＮＯ）、プロセスは、記録が完了していないログ情報をログ記録媒体１０６に記録する操作を起動する。具体的には、例えば、プロセスは、記録が完了していないログ情報をログ記録媒体１０６に記録する要求であるアクセス要求を生成する。そして、プロセスは、生成したアクセス要求に、状態保持部１０３に格納されている要求ＬＳＮを付与する。プロセスは、要求ＬＳＮを含むアクセス要求を生成してもよい。すなわち、プロセスは、状態保持部１０３に格納されている要求ＬＳＮが付与された、記録が完了していないログ情報をログ記録媒体１０６に記録する要求であるアクセス要求を生成する（ステップＳ１０６）。プロセスは、生成したアクセス要求を、例えば媒体記録部１０５に送信する（ステップＳ１０７）。そして、プロセスは休眠し、ログ情報の記録の完了を待つ（ステップＳ１０８）。
【００６５】
アクセス要求の生成は、ログ情報を記録する操作を起動する準備（例えば、媒体記録部１０５にログ情報を記録する操作を行わせる処理の開始する準備）であってもよい。アクセス要求の送信は、ログ情報を記録する操作の起動であってもよい。
【００６６】
媒体記録部１０５によるログ情報の記録が完了すると、完了待ち部１０７によって、記録が完了したログ情報の記録を要求したプロセスは起床される。
【００６７】
プロセスが起床されない場合（ステップＳ１０９においてＮＯ）、プロセスはステップＳ１０８における休眠を継続する。プロセスが起床された場合（ステップＳ１０９においてＹＥＳ）、プロセスは、記録を要求したログ情報に付与したＬＳＮと、状態保持部１０３に格納されている完了ＬＳＮとを比較する（ステップＳ１１０）。付与したＬＳＮが完了ＬＳＮ以下である場合（ステップＳ１１０においてＮＯ）、そのプロセスが要求した、ログ情報の記録は完了している。その場合、プロセスは、図７に示す動作を終了する。付与したＬＳＮが完了ＬＳＮより大きい場合（ステップＳ１１０においてＹＥＳ）、未記録ログ情報が存在する。その場合、プロセスは、ステップＳ１０６以降の動作を繰り返す。
【００６８】
次に、本実装例の情報処理装置１００Ａの、ログ情報を記録する動作について、図面を参照して詳細に説明する。
【００６９】
図８は、本実装例の情報処理装置１００Ａの、ログ情報を記録する動作の例を表すフローチャートである。図８に示す動作は、図７に示す動作と並列に行われる。
【００７０】
媒体記録部１０５は、ＬＳＮが付与されたアクセス要求を受信する（ステップＳ２０１）。媒体記録部１０５は、受信したアクセス要求に基づくログ情報の記録を実行する（ステップＳ２０２）。すなわち、媒体記録部１０５は、付与されているＬＳＮが、完了ＬＳＮより大きく、受信したアクセス要求に付与されているＬＳＮ以下である、ログ情報をログ記録媒体１０６に記録する。アクセス要求に付与されていたＬＳＮは、例えば、完了待ち部１０７がアクセスできる記憶部（図示されない）に格納される。媒体記録部１０５によるログ情報の記録の終了の、完了待ち部１０７への通知は、例えば、ディスク装置であるログ記録媒体１０６へのＩ／Ｏ処理が完了した際に起動される割り込み処理によって実装される。
【００７１】
完了待ち部１０７は、ログ情報の記録が完了したか検出する（ステップＳ２０３）。ログ情報の記録の完了が検出されない場合（ステップＳ２０４においてＮＯ）、完了待ち部１０７は、ログ情報の記録の完了を待つ。すなわち、完了待ち部１０７は、ステップＳ２０３におけるログ情報の記録の完了の検出を継続する。
【００７２】
ログ情報の記録の完了が検出された場合（ステップＳ２０４においてＹＥＳ）、完了待ち部１０７は、アクセス情報に付与されていたＬＳＮを特定する。そして、完了待ち部１０７は、アクセス情報に付与されていたＬＳＮを、完了ＬＳＮに設定する（ステップＳ２０５）。例えば、ログ記録媒体１０６へのＩ／Ｏ処理が完了した際に起動される割り込み処理が行われるのに応じて、完了待ち部１０７は、アクセス要求に付与されていたＬＳＮが格納されている記憶部からそのＬＳＮを読み出す。そして、完了待ち部１０７は、アクセス要求に付与されていたＬＳＮを、完了ＬＳＮとして状態保持部１０３に格納する。
【００７３】
完了待ち部１０７は、記録が完了したログ情報の記録を要求したプロセスを起床させる（ステップＳ２０６）。記録が完了したログ情報は、付与されているＬＳＮが完了ＬＳＮより小さい又は等しいログ情報である。完了待ち部１０７は、そのようなログ情報の記録を要求したプロセスを起床させる。そして、完了待ち部１０７は、プロセス待ち管理用待ち行列（すなわち待ち行列）を更新する（ステップＳ２０７）。完了待ち部１０７は、完了待ち行列以下のＬＳＮを含む待ち行列エントリを、待ち行列から取り外すことによって、待ち行列を更新する。
【００７４】
具体的には、例えば、完了待ち部１０７は、アクセス要求に付与されていたＬＳＮと、プロセス待ち管理用待ち行列に連結されている待ち行列エントリの各々のＬＳＮとを比較する。完了ＬＳＮの方が待ち行列エントリのＬＳＮより大きい場合、及び、それらのＬＳＮが等しい場合、完了待ち部１０７は、その待ち行列エントリにプロセス識別子が含まれるプロセスを起床させる。さらに、完了待ち部１０７は、その待ち行列エントリを、待ち行列から取り外す。ステップＳ２０６の動作によって起床したプロセスは、図７に示すステップＳ１１０の動作を行う。すなわち、ステップＳ２０６の動作によって起床したプロセスは、そのプロセスが記録を要求したログ情報に付与したＬＳＮと、状態保持部１０３に格納されている完了ＬＳＮとを比較する。ステップＳ２０６の動作によって起床したプロセスが記録を要求したログ情報の記録は完了しているので、それらのプロセスは記録を要求する処理（すなわち図７に示す動作）を終了する。
【００７５】
完了待ち部１０７は、さらに、未記録ログ情報が存在するか否かを判定する。完了待ち部１０７は、状態保持部１０３に待ち行列が存在するか否かを判定することによって、未記録ログ情報が存在するか否かを判定すればよい。状態保持部１０３に待ち行列が存在すれば、未記録ログ情報が存在する。完了待ち部１０７は、要求ＬＳＮと完了ＬＳＮとを比較することによって、未記録ログ情報が存在するか否かを判定してもよい。要求ＬＳＮが完了ＬＳＮより大きければ、未記録ログ情報は存在する。要求ＬＳＮと完了ＬＳＮが等しければ、未記録ログ情報は存在しない。状態保持部１０３に待ち行列が存在しなければ、未記録ログ情報が存在しない。
【００７６】
未記録ログ情報が存在しない場合（ステップＳ２０８においてＮＯ）、情報処理装置１００Ａは、図８に示す動作を終了する。未記録ログ情報が存在する場合（ステップＳ２０８においてＹＥＳ）、完了待ち部１０７は、未記録ログ情報に付与されたＬＳＮの中で、最も大きいＬＳＮを特定する。完了待ち部１０７は、要求ＬＳＮを読み出してもよい。待ち行列に残っている待ち行列エントリに含まれるＬＳＮの中で、最も大きいＬＳＮを特定してもよい。そして、完了待ち部１０７は、特定したＬＳＮ、すなわち、最も大きいＬＳＮが付与されている未記録ログ情報の記録を要求したプロセスを起床させる（ステップＳ２０９）。そして、情報処理装置１００Ａは、図８に示す動作を終了する。ステップＳ２０９の動作によって起床したプロセスは、図７に示すステップＳ１０６以降の動作を行う。すなわち、そのプロセスが記録を要求したログ情報に付与されているＬＳＮ以下のＬＳＮが付与されているログ情報を記録するアクセス要求を送信する。送信されたアクセス要求によって、図８に示す動作が再び行われる。
【００７７】
本発明の第１の実施形態には、複数のプロセスによる同じ記録媒体に対するログの記録を高速化することができるという効果がある。その理由は、完了待ち部１０７が、アクセス要求に基づくログ情報の記録が完了するのに応じて、そのアクセス要求に付与されていたＬＳＮ以下のＬＳＮが付与されているログ情報の記録を要求したプロセスを起床させるからである。
【００７８】
図９は、本発明の第１の実施形態の情報処理装置１００によるログ情報を記録する動作のタイミングを模式的に表す図である。図９に示す例では、ログ記録制御部１１０が図９に示すカーネルに相当する。ログ記録媒体１０６が、図９に示すディスクに相当する。トランザクション１、及び、トランザクション２−１〜トランザクション２−４が、プロセス実行部１０１によって実行されるプロセスである。図９に示す例では、トランザクション２−１が起床されてから動作を開始するまでに時間がかかっている。しかし、本実施形態では、トランザクション２−１ではなく、完了待ち部１０７が、記録を要求したログ情報の記録が完了したプロセスを起床させる。従って、最初に起床されたプロセスが再開するのに時間がかかる場合であっても、そのために他のプロセスが起床されるまでの時間が延びることはない。図９と図１４とを比較すると、図１４では、トランザクション２−１のプロセスが動作を再開した後に、トランザクション２−２からトランザクション２−４までのプロセスが起床されている。それに対して、図９に示す本実施形態に係るタイミングでは、トランザクション２−１のプロセスが動作を再開する前に、トランザクション２−２からトランザクション２−４までのプロセスが起床されている。以上のように、本実施形態によると、複数のプロセスによる同じ記録媒体に対するログの記録を高速化することができる。
【００７９】
＜第２の実施形態＞
次に、本発明の第２の実施形態について、図面を参照して詳細に説明する。本実施形態は、上述の実施形態の最小構成を表す。
【００８０】
図１０は、本発明の第２の実施形態の情報処理装置１００Ｂの構成を表すブロック図である。
【００８１】
図１１を参照すると、本実施形態の情報処理装置１００Ｂは、要求部１０４と、完了待ち部１０７と、を備える。要求部１０４は、プロセスによって記録が要求されたログ情報の記録をまとめて要求するアクセス要求を行う。前記ログ情報には、当該ログ情報の記録が要求された順番を表す順序番号が付与されている。前記要求部１０４は、前記アクセス要求によって記録が要求された前記ログ情報に付与されている前記順序番号の中で、最も大きい前記順序番号を、前記アクセス要求に付与する。起床させる完了待ち部１０７は、前記アクセス要求に基づく前記ログ情報の記録が完了するのに応じて、前記アクセス要求によって記録が要求された前記ログ情報の記録を要求した前記プロセスである記録完了プロセスを起床させる。具体的には、前記完了待ち部１０７は、前記アクセス要求に付与されている前記順序番号以下の前記順序番号が付与されている前記ログ情報の記録を要求した前記プロセスを起床させることによって、前記記録完了プロセスを起床させる。
【００８２】
以上で説明した本実施形態には、第１の実施形態と同じ効果がある。その理由は、第１の実施形態の効果が生じる理由と同じである。
【００８３】
＜他の実施形態＞
情報処理装置１００及び１００Ａは、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。
【００８４】
図１１は、情報処理装置１００及び１００Ａを実現することができる、コンピュータ１０００のハードウェア構成の一例を表す図である。図１１を参照すると、コンピュータ１０００は、プロセッサ１００１と、メモリ１００２と、記憶装置１００３と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インタフェース１００４とを含む。また、コンピュータ１０００は、記録媒体１００５にアクセスすることができる。メモリ１００２と記憶装置１００３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ハードディスクなどの記憶装置である。記録媒体１００５は、例えば、ＲＡＭ、ハードディスクなどの記憶装置、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、可搬記録媒体である。記憶装置１００３が記録媒体１００５であってもよい。プロセッサ１００１は、メモリ１００２と、記憶装置１００３に対して、データやプログラムの読み出しと書き込みを行うことができる。プロセッサ１００１は、Ｉ／Ｏインタフェース１００４を介して、例えば、ログ記録媒体１０６にアクセスすることができる。プロセッサ１００１は、記録媒体１００５にアクセスすることができる。記録媒体１００５には、コンピュータ１０００を、情報処理装置１００又は１００Ａとして動作させるプログラムが格納されている。
【００８５】
プロセッサ１００１は、記録媒体１００５に格納されている、コンピュータ１０００を、情報処理装置１００又は１００Ａとして動作させるプログラムを、メモリ１００２にロードする。そして、プロセッサ１００１が、メモリ１００２にロードされたプログラムを実行することにより、コンピュータ１０００は、情報処理装置１００又は１００Ａとして動作する。
【００８６】
第１のグループに含まれる部は、例えば、プログラムを記憶する記録媒体１００５からメモリ１００２に読み込まれた、各部の機能を実現することができる専用のプログラムと、そのプログラムを実行するプロセッサ１００１により実現することができる。第１のグループは、プロセス実行部１０１、受付部１０２、要求部１０４、媒体記録部１０５、完了待ち部１０７、及び、付与部１０８である。また、第２のグループに含まれる部は、コンピュータ１０００が含むメモリ１００２やハードディスク装置等の記憶装置１００３により実現することができる。第２のグループは、状態保持部１０３、及び、ログ記録媒体１０６である。あるいは、第１のグループに含まれる部及び第２のグループに含まれる部の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
【００８７】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００８８】
１００    情報処理装置
１００Ａ    情報処理装置
１００Ｂ    情報処理装置
１０１    プロセス実行部
１０２    受付部
１０３    状態保持部
１０４    要求部
１０５    媒体記録部
１０６    ログ記録媒体
１０７    完了待ち部
１０８    付与部
１０００    コンピュータ
１００１    プロセッサ
１００２    メモリ
１００３    記憶装置
１００４    Ｉ／Ｏインタフェース
１００５    記録媒体
【図１】
2016162356.tif 000003
【図２】
2016162356.tif 000004
【図３】
2016162356.tif 000005
【図４】
2016162356.tif 000006
【図５】
2016162356.tif 000007
【図６】
2016162356.tif 000008
【図７】
2016162356.tif 000009
【図８】
2016162356.tif 000010
【図９】
2016162356.tif 000011
【図１０】
2016162356.tif 000012
【図１１】
2016162356.tif 000013
【図１２】
2016162356.tif 000014
【図１３】
2016162356.tif 000015
【図１４】
2016162356.tif 000016