(57)【要約】【課題】既存のデータベース管理システムを用い、簡易に、不揮発性メモリにログ情報を記録し、また復旧時に不揮発性メモリからログ情報を読み出す。【解決手段】格納手段１１は、データベース管理システム２０が管理するデータベース２１の更新履歴をログ情報１５として不揮発性メモリ１１３に格納する。設定手段１２は、ログ情報１５が格納された不揮発性メモリ１１３にアクセスするか否かを設定する。検索手段１３は、不揮発性メモリ１１３にアクセスする設定の場合、不揮発性メモリ１１３からログ情報１５を検索する。出力手段１４は、検索手段１３により検索された更新履歴をデータベース管理システム２０に出力する。【選択図】図１
2016170536.tif 000002
【特許請求の範囲】
【請求項１】
データベース管理システムが管理するデータベースの更新履歴をログ情報として不揮発性メモリに格納する格納手段と、
前記ログ情報を格納する前記不揮発性メモリにアクセスするか否かを設定する設定手段と、
前記不揮発性メモリにアクセスする設定の場合、前記不揮発性メモリから前記ログ情報を検索する検索手段と、
前記検索手段により検索された前記ログ情報を前記データベース管理システムに出力する出力手段と、
を備える情報処理装置。
【請求項２】
前記不揮発性メモリは、主記憶メモリと同じバスを介してプロセッサに接続される、
請求項１に記載の情報処理装置。
【請求項３】
前記格納手段は、前記ログ情報を、前記主記憶メモリに代えて、前記不揮発性メモリに記録する、
請求項２に記載の情報処理装置。
【請求項４】
前記格納手段は、さらに、前記ログ情報を前記不揮発性メモリとは異なる記録装置に格納し、
前記検索手段は、前記不揮発性メモリにアクセスする設定ではない場合、前記異なる記録装置から、前記ログ情報を検索する、
請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
データベース管理システムが管理するデータベースの更新履歴をログ情報として不揮発性メモリに格納する格納ステップと、
前記ログ情報を格納する前記不揮発性メモリにアクセスするか否かを設定する設定ステップと、
前記不揮発性メモリにアクセスする設定の場合、前記不揮発性メモリから前記ログ情報を検索する検索ステップと、
前記検索ステップで検索された前記ログ情報を前記データベース管理システムに出力する出力ステップと、
を備える情報処理方法。
【請求項６】
コンピュータを、
データベース管理システムが管理するデータベースの更新履歴をログ情報として不揮発性メモリに格納する格納手段、
前記ログ情報を格納する前記不揮発性メモリにアクセスするか否かを設定する設定手段、
前記不揮発性メモリにアクセスする設定の場合、前記不揮発性メモリから前記ログ情報を検索する検索手段、
前記検索手段により検索された前記ログ情報を前記データベース管理システムに出力する出力手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、情報を記録および参照するためにデータベースを用いたコンピュータシステムが多く存在する。データベースとは、集約したデータへの参照又は更新アクセスを的確かつ高速に実現し、また、データを適切に保護するために設計されたデータセットを指す。多くの場合、データベースは、そのデータベースを専門的に管理するためのシステムであるデータベース管理システムにより管理されている。
【０００３】
データベース管理システムは、データベースの情報を保護するために、データベースに記録されているデータが更新されると、更新内容をログ情報としてデータベースとは別に記録する。データベースに障害が生じ、データに不整合が生じた場合に、データベース管理システムは、記録されているログ情報を参照して内容データを復旧することができる。データベースおよびログ情報は、システムに障害があった場合や、コンピュータの電源がオフとなった状態でもデータを保全することが必要であり、これらは電源がオフとなってもデータを失わない記録媒体、例えばハードディスク等に記録される。
【０００４】
データベースへのアクセスを処理するうえで、ログ情報を出力する処理は、ボトルネックとなりうる。そのため、ログ情報を出力する処理を高速化することで、データベースへのアクセスを高速化しようとする試みがなされている。例えば、非特許文献１では、ログ情報の出力先を、主記憶メモリではなく、いわゆる不揮発性のメモリに記録することにより、データベースへのアクセスを高速化した例について開示している。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Ru Fang, Hui-I Hsiao, Bin He, C.Mohan, and Yun Wang, "High Performance Database Logging using Storage Class Memory", Data Engeneering (ICDE), 2011 IEEE 27th International Conference , pp 1221-1231.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献１では、ログ情報を不揮発性のメモリに記録できる機能を既存のデータベース管理システムに付け加え、そのパフォーマンスについて開示しただけである。不揮発性のメモリにログ情報を記録する構成についても既存のデータベース管理システムに備わっている機能をそのまま使用可能とする技術は、非特許文献１では開示されていなかった。
【０００７】
上述の文献で開示された技術を用いる場合、主記憶メモリと同様にアクセスできる不揮発性メモリを備え、その不揮発性メモリにログ情報を記録し、データベースの復旧時には不揮発性メモリからログ情報を読み出すことが必要となる。しかしながら、そのような不揮発性メモリを扱う場合、主記憶メモリとも、ハードディスク等の補助記憶装置とも異なる取り扱いが必要となる。そのため、既存のデータベース管理システムで同様の処理を実現する場合、データベース管理システムに修正を加え、不揮発性のメモリにログ情報を記録し、またデータベース復旧時に不揮発性メモリからログ情報を読み出すように変更する必要があった。そして、ログ情報の取り扱い（記録および復旧時の読み出し）は、データベース管理システムの根幹をなすものであり、この部分に変更を加えることは膨大なプログラム修正につながり、簡易に実現することはできなかった。
【０００８】
本発明は、以上の問題点に着目してなされたものであり、既存のデータベース管理システムを用い、簡易に、不揮発性メモリにログ情報を記録し、またデータベースの復旧時に不揮発性メモリからログ情報を読み出す情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するため、本発明の第１の観点にかかる情報処理装置は、
データベース管理システムが管理するデータベースの更新履歴をログ情報として不揮発性メモリに格納する格納手段と、
前記ログ情報を格納する前記不揮発性メモリにアクセスするか否かを設定する設定手段と、
前記不揮発性メモリにアクセスする設定の場合、前記不揮発性メモリから前記ログ情報を検索する検索手段と、
前記検索手段により検索された前記ログ情報を前記データベース管理システムに出力する出力手段と、
を備えることを特徴とする。
【００１０】
上記の目的を達成するため、本発明の第２の観点にかかる情報処理方法は、
データベース管理システムが管理するデータベースの更新履歴をログ情報として不揮発性メモリに格納する格納ステップと、
前記ログ情報を格納する前記不揮発性メモリにアクセスするか否かを設定する設定ステップと、
前記不揮発性メモリにアクセスする設定の場合、前記不揮発性メモリから前記ログ情報を検索する検索ステップと、
前記検索ステップで検索された前記ログ情報を前記データベース管理システムに出力する出力ステップと、
を備えることを特徴とする。
【００１１】
上記の目的を達成するため、本発明の第３の観点にかかるプログラムは、
コンピュータを、
データベース管理システムが管理するデータベースの更新履歴をログ情報として不揮発性メモリに格納する格納手段、
前記ログ情報を格納する前記不揮発性メモリにアクセスするか否かを設定する設定手段、
前記不揮発性メモリにアクセスする設定の場合、前記不揮発性メモリから前記ログ情報を検索する検索手段、
前記検索手段により検索された前記ログ情報を前記データベース管理システムに出力する出力手段、
として機能させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、既存のデータベース管理システムを用い、簡易に、不揮発性メモリにログ情報を記録し、またデータベースの復旧時に不揮発性メモリからログ情報を読み出す情報処理装置、情報処理方法およびプログラムを実現できる。
【図面の簡単な説明】
【００１３】
【図１】実施形態にかかる情報処理装置の機能構成を示したブロック図である。
【図２】実施形態にかかる情報処理装置のハードウェア構成を示した図である。
【図３】データベース管理システムにデータベースを更新するトランザクションがあった場合のデータフローの一例を示す図である。
【図４】データベース管理システムにデータベースを更新するトランザクションがあった場合のデータフローの一例を示す図である。
【図５】ログ情報格納プロセス起動処理の内容を示すフローチャートである。
【図６】データベース管理システムがデータベースを復旧する際のデータフローの一例を示す図である。
【図７】データベース復旧時処理の内容を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について、図面を参照しながら説明する。
【００１５】
（実施形態）
本発明の実施形態にかかる情報処理装置は、データベース管理システムから出力されるログ情報を不揮発性メモリに格納する機能を有する。また、この情報処理装置は、またデータベース管理システムがデータベースを復旧する際は、不揮発性メモリに格納しているログ情報をデータベース管理システムに出力する。そのため、データベース管理システムにはそれほど大きな変更を伴うことなく、ログ情報を不揮発性メモリに記録し、データベースへのアクセスを高速化することができる。
【００１６】
本実施形態にかかる情報処理装置１００は、図１に示すように、機能部として、格納手段１１、設定手段１２、検索手段１３、および出力手段１４を必須の要素として備え、さらに任意の要素としてデータベース管理システム２０、データベース２１およびログデータファイル２２を備える。他に情報処理装置１００は、ハードウェア要素として、不揮発性メモリ１１３を備える。
【００１７】
格納手段１１は、データベース管理システム２０が管理するデータベース２１の更新履歴をログ情報１５として不揮発性メモリ１１３に格納する。後述するように、データベース管理システム２０は、データベース２１を更新すると、その更新内容を示す情報としてログ情報を出力する。格納手段１１は、ログ情報を不揮発性メモリ１１３に記録する設定である場合、データベース管理システム２０が出力する更新履歴（ログ情報）を、ログ情報１５として不揮発性メモリ１１３に格納する。ログ情報１５に記録された更新履歴は、のちに非同期でログデータファイル２２にコピーされる。また、ログ情報を不揮発性メモリ１１３に記録する設定でない場合、格納手段１１は、ログ情報を直接ログデータファイル２２に記録する。
【００１８】
設定手段１２は、不揮発性メモリ１１３にアクセスするか否かを設定する。具体的には、設定手段１２は、不揮発性メモリ１１３にアクセスするか否かを示す情報を記録するフラグを備え、このフラグを切り替える機能を有する。情報処理装置１００は、設定手段１２により設定されるフラグがオンである場合、データベース管理システム２０から出力されるログ情報を、不揮発性メモリ１１３に格納する。一方、フラグがオフである場合、情報処理装置１００は、データベース管理システム２０から出力されるログ情報を、不揮発性メモリ１１３とは異なる他の記憶領域に存在するログデータファイル２２に格納する。
【００１９】
検索手段１３は、データベース管理システム２０がデータベース２１を復旧するとき、不揮発性メモリ１１３に、復旧に必要なログ情報１５があるか検索する。検索にあたっては、設定手段１２が不揮発性メモリ１１３にアクセスするように設定しているか検証し、そのように設定されている場合に、不揮発性メモリ１１３の検索を実行する。また、検索手段１３は、さらに、不揮発性メモリ１１３とは異なる記録装置（例えば、後述するハードディスク１２２など）に存在するログデータファイル２２からログ情報を検索する機能を備えるものであってもよい。
【００２０】
出力手段１４は、検索手段１３が検索したログ情報１５（およびログデータファイル２２）を、データベース管理システム２０に出力する。
【００２１】
不揮発性メモリ１１３は、データ保存の観点ではいわゆる不揮発性を有する記録媒体であり、情報処理装置１００が障害あるいはユーザによる電源断操作により電源オフ状態となっても、不揮発性メモリ１１３は記録しているデータを継続して保存する。詳細な動作については後述する。
【００２２】
データベース管理システム２０は、データベース２１を管理する機能を有する。データベース管理システム２０は、いわゆる一般的なデータベース管理ソフトウェア（例えば、ＰｏｓｔｇｒｅＳＱＬ（登録商標）またはＭｙＳＱＬ（登録商標）など）を情報処理装置１００にインストールし、プロセスを起動することで実現されてもよい。あるいは、情報処理装置１００の外部に存在する独立したコンピュータによって実現されてもよい。
【００２３】
データベース２１は、データベース管理システム２０により記録されたデータを保持するデータセットであり、ハードディスクその他の記録媒体に設置される。データベース２１は、データベース管理システム２０を介してデータを記録し、またデータベース管理システム２０を介してデータを出力する。
【００２４】
データベース管理システム２０は、データベース２１へトランザクションがあると、そのトランザクションを処理する機能を有する。具体的には、データベース管理システム２０は、データベース２１に記録されているデータを参照するトランザクションがあると、そのトランザクションに従ってデータベース２１にアクセスし、対象となるデータをトランザクションへの応答として出力する。また、データベース管理システム２０は、データベース２１に記録されているデータを更新するトランザクションがあると、そのトランザクションに従い、データベース２１に記録されている更新対象となるデータを更新する。
【００２５】
さらにデータベース管理システム２０は、データベース２１に記録されているデータを保全し、必要に応じて修復する機能を備える。前述のように、データベース２１に記録されているデータを更新するトランザクションがあると、そのトランザクションに応じてデータベース２１のデータを更新するだけでなく、更新されたデータの内容およびトランザクションのあった日時および時刻データを、ログ情報として出力し記録する。また、データベース管理システム２０は、情報処理装置１００の偶発的な電源断などの不慮の障害によりデータベース２１に不具合が生じた場合、データベース２１の内容と、出力したログ情報とを突合し、データベース２１を復旧する。
【００２６】
データベース管理システム２０が出力するログ情報は、このようにデータベース２１のデータを適切に保全するために必要なデータである。そのためログ情報は、障害によってデータベース２１に不整合が生じた場合、あるいはデータベース２１が失われた場合であっても、適切に参照できることが必要である。これを実現するため、情報処理装置１００は、ログ情報を、データベース２１が記録されているハードディスクとは別の記録媒体（不揮発メモリ１１３、あるいは他のハードディスク）に記録する。具体的には、情報処理装置１００は、ログ情報を、不揮発性メモリ１１３にあるログ情報１５、および、データベース２１が記録されているハードディスクとは異なるハードディスクにあるログデータファイル２２に記録する。
【００２７】
情報処理装置１００は、ここまで述べた各機能部がそれぞれ連携することにより、本願発明の目的を達成するものである。ここから、情報処理装置１００の具体的なハードウェア構成について、図２を参照しつつ説明する。
【００２８】
情報処理装置１００は、ハードウェアとしては、図２に示すように、制御部１１０、補助記憶デバイス１２０、操作部１３０、ディスプレイ１４０、ネットワークインターフェース１５０といった構成要素を備え、これらが内部バス１６０を介して接続されており、相互にデータを送受信することが可能となっている。
【００２９】
制御部１１０は、ＣＰＵ（Central Processing Unit）１１１、主記憶メモリ１１２、不揮発性メモリ１１３、ＲＯＭ（Read Only Memory）１１４を備え、これらがメモリーバス１１５を介して接続された構成を有する。ＣＰＵ１１１は、ＲＯＭ１１４などに記憶されている制御用のプログラムに従って、情報処理装置１００全体の動作を制御する。ＲＯＭ１１４は、制御用のプログラムを記憶する。主記憶メモリ１１２は、ＣＰＵ１１１が使用するデータを一時的に保存し、必要に応じてＣＰＵ１１１に伝達する。制御部１１０は、情報処理装置１００が備える他の構成要素との間で、内部バス１６０を介して信号を送受信し、他の構成要素を制御する。
【００３０】
本実施形態にかかる情報処理装置１００では、制御部１１０が備える不揮発性メモリ１１３は、ＣＰＵ１１１と、主記憶メモリ１１２と同じメモリーバス１１５を介して接続されている。そのため、ＣＰＵ１１１は、主記憶メモリ１１２に近い形態で不揮発性メモリ１１３にアクセスすることができ、例えば主記憶メモリ１１２にバイト単位アクセスが可能であれば、不揮発性メモリ１１３にもバイト単位アクセスが可能である。また、ＣＰＵ１１１から不揮発性メモリ１１３へは、主記憶メモリ１１２へのアクセスとほぼ同等の速度でアクセスすることができる。
【００３１】
ここで、ＣＰＵ１１１と主記憶メモリ１１２および不揮発性メモリ１１３とを接続するメモリーバス１１５は、必ずしも物理的に同一または単一のものであることを意味しない。例えば、メモリーバス１１５が二つの部分に分離されており、ＣＰＵ１１１と主記憶メモリ１１２はそのうち一方、ＣＰＵ１１１と不揮発性メモリ１１３は他方を介して接続されている形態も含まれる。
【００３２】
補助記憶デバイス１２０は、ハードディスク、ＳＳＤ（Solid State Drive）、あるいはＣＤ−ＲＯＭ（Compact Disc - Read Only Memory）等を備え、情報処理装置１００が稼動する上で必要な情報を記憶する。一例として補助記憶デバイス１２０は、データベース２１を記録するためのハードディスク１２１と、また、後述するログデータファイル２２を記録するためのハードディスク１２２を備える。
【００３３】
操作部１３０は、操作者の操作を入力として受けとり、制御部１１０に情報として伝達する。操作部１３０は、例えばマウスやキーボード、あるいはタッチパネルなどを備える。
【００３４】
ディスプレイ１４０は、制御部１１０の制御に基づき、操作画面や結果表示画面などの情報処理装置１００が操作者に対して表示すべき情報を表示する。ディスプレイ１４０は、液晶ディスプレイや有機エレクトロルミネセンスディスプレイ等で構成される。
【００３５】
ネットワークインターフェース１５０は、情報処理装置１００をネットワークに接続するインターフェースとして機能する。ネットワークインターフェース１５０は、ＷｉＦｉ（登録商標）などに代表される無線ＬＡＮ（Local Area Network）に接続するためのインターフェース、またはイーサネット（登録商標）に代表される有線によるネットワークに接続するためのインターフェースを備える。情報処理装置１００は、ネットワークインターフェース１５０を介してネットワークに接続し、他の情報機器に情報を送信し、または他の情報機器から送信された情報を受信する。特に、情報処理装置１００でデータベース管理システム２０が稼働している場合、データベース管理システム２０はネットワークインターフェース１５０を介し、データベース２１を参照または更新するトランザクションを受け付け、そのトランザクションに応答する。
【００３６】
本実施形態にかかる情報処理装置１００は、特徴的な点として、メモリーバス１１５を介してＣＰＵ１１１に接続された不揮発性メモリ１１３を備える。不揮発性メモリ１１３は、上述した通り、データを記録する際には、ＣＰＵ１１１から主記憶メモリ１１２に近い形態でアクセスが可能であると同時に、情報処理装置１００の電源が遮断されても内容のデータを失わないといった特性を持つ。そのため、情報処理装置１００の起動時に内容がリセットされてしまう主記憶メモリ１１２とは異なる取り扱いが必要となる。一方、不揮発メモリ１１３は、ＣＰＵ１１１からみて主記憶メモリ１１２と同じメモリーバス１１５を介して接続されており、内部バス１６０を介して接続されている補助記憶デバイス１２０とも異なる取り扱いが必要となる。そのため、不揮発性メモリ１１３にデータを記録する際の動作、および、不揮発性メモリ１１３からデータを読み出す際の動作は、主記憶メモリ１１２とも補助記憶デバイス１２０とも異なるものとなる。
【００３７】
ここから、データベース２１を更新するトランザクションがあった場合における情報処理装置１００の動作について説明する。情報処理装置１００は、前述のとおり不揮発性メモリ１１３にアクセスするか否かを設定する設定手段を備える。不揮発性メモリ１１３にアクセスする設定であれば、データベース管理システム２０がデータベース２１の更新に伴い出力するログ情報（更新履歴）は格納手段１１により不揮発性メモリ１１３に格納される。また、不揮発性メモリ１１３にアクセスする設定でなければ、情報処理装置１００は、同ログ情報（更新履歴）をハードディスク１２２にあるログデータファイル２２に格納する。
【００３８】
不揮発性メモリ１１３にアクセスする設定でない場合のデータフローを図３に示す。この場合、データベース管理システム２０が、データベース２１を更新するトランザクションＴ１を受けると、主記憶メモリ１１２に、データベース更新データＤ１と、ログ情報Ｄ２とを記録する。この時点では、データベース２１を更新するためのデータ（データベース更新データＤ１およびログ情報Ｄ２）はいずれも主記憶メモリ１１２にしかなく、このタイミングで情報処理装置１００に障害があると、トランザクションＴ１のデータは失われる。
【００３９】
次に、情報処理装置１００は、データベース更新データＤ１を用いてハードディスク１２１にあるデータベース２１の対象データを更新することにより、トランザクションＴ１の内容をデータベース２１に反映する。また、これと並行し、情報処理装置１００は、ログ情報Ｄ２を、ハードディスク１２２にあるログデータファイル２２に記録する。情報処理装置１００の電源断ではデータを失わない媒体（ハードディスク１２１およびハードディスク１２２）に、トランザクションＴ１の内容を示すデータ（データベース更新データＤ１およびログ情報Ｄ２の内容）が記録されたことを受け、トランザクションＴ１がコミット（確定）される。トランザクションＴ１がコミットされたことに伴い、主記憶メモリ１１２からデータベース更新データＤ１およびログ情報Ｄ２が削除される。
【００４０】
このように、不揮発性メモリ１１３にアクセスする設定でない場合には、ログ情報はいったん主記憶メモリ１１２に記録されたあと、ハードディスク１２２に出力される。言い換えると、不揮発メモリ１１３にアクセスする設定でない場合には、ログ情報が情報処理装置１００の電源断ではデータを失わない記録媒体に記録されるまでに、主記憶メモリ１１２に記録される工程と、ハードディスク１２２に記録される工程を要する。一方、不揮発性メモリ１１３にアクセスする設定であれば、情報処理装置１００はこの工程を一部省略し、トランザクション処理に要する時間を短縮することができる。
【００４１】
ここから、不揮発性メモリ１１３にアクセスする設定の場合のデータフローについて、図４を参照して説明する。この場合、データベース管理システム２０は、データベース２１を更新するトランザクションＴ２を受け、主記憶メモリ１１２にデータベース更新データＤ１を記録する。これと並行して、格納手段１１は、データベース管理システム２０から、データベース２１の更新内容を示すデータ（更新履歴）を受け取り、不揮発性メモリ１１３に、ログ情報１５として格納する。
【００４２】
次に、情報処理装置１００は、データベース更新データＤ１を用いてハードディスク１２１にあるデータベース２１の対象データを更新することにより、トランザクションＴ２の内容をデータベース２１に反映する。この時点で、トランザクションＴ２による更新内容は、ハードディスク１２１にあるデータベース２１と、不揮発性メモリ１１３にあるログ情報１５とが二重化して保持しており、情報処理装置１００の電源断ではデータは失われない。そのため、この時点で情報処理装置１００はトランザクションＴ２をコミットすることができる。
【００４３】
情報処理装置１００は、のちに、不揮発性メモリ１１３に記録されたログ情報１５を、非同期でハードディスク１２２にあるログデータファイル２２にコピーしたうえで、ログ情報１５を削除する。この処理は、不揮発性メモリ１１３の容量を空けるためのものであり、データベース管理システム２０によるトランザクション処理と非同期に行われる。そのため、この処理はトランザクションの速度に影響を与えない。
【００４４】
不揮発性メモリ１１３にアクセスする設定である場合、情報処理装置１００は、そうでない場合に比べ、データベース管理システム２０がトランザクションを受けてからコミットするまでの時間を短縮することができる。これは、更新履歴の内容を示すログ情報１５が不揮発性メモリ１１３に記録された時点でトランザクションをコミットできるため、ハードディスク１２２へデータを移動する工程を、トランザクションのコミット後の非同期処理にできるためである。また、この不揮発性メモリ１１３は、前述したようにＣＰＵ１１１とはメモリーバス１１５を介して接続されており、高速なアクセスが可能となっていることも、トランザクションがコミットされるまでの時間を短縮する効果がある。
【００４５】
このように、本実施形態にかかる情報処理装置１００では、ログ情報１５を、主記憶メモリ１１２に代えて不揮発性メモリ１１３に記録する。そのため、このようにデータベース２１へなされたトランザクションを高速で処理することができる。
【００４６】
ここまで説明したデータフローを実現するため、情報処理装置１００は、データベース管理システム２０と接続する際に、図５に示すログ情報格納プロセス起動処理を実行する。より具体的には、データベース管理システム２０として機能するプログラムがプロセスとして起動すると、情報処理装置１００は、このログ情報格納プロセス起動処理を実行することにより、ログ情報格納プロセス（不揮発性メモリへのもの、またはハードディスクへのもの）を起動する。不揮発性メモリへのログ情報格納プロセスは、データベース管理システム２０がトランザクションを受け入れたことにより発生する更新履歴を、不揮発性メモリ１１３に存在するログ情報１５に記録する。一方、ハードディスクへのログ情報格納プロセスは、データベース管理システム２０がトランザクションを受け入れたことにより発生するログ情報を、ハードディスク１２２に存在するログデータファイル２２に記録する。すなわち、データベース管理システム２０が稼働しトランザクションを受け入れている間は、これらのログ情報格納プロセスのうち一方が稼働することにより、出力されるログ情報を記録する。
【００４７】
ログ情報格納プロセス起動処理の最初に、情報処理装置１００は、不揮発性メモリ１１３にアクセスする設定であるか否かを検証する（ステップＳ１１０）。具体的には、設定手段１２が保持するフラグを参照し、それがオン（不揮発性メモリ１１３にアクセスする状態であることを示す情報）であるか、オフ（不揮発性メモリ１１３にアクセスする状態ではないことを示す情報）であるかを検証する。
【００４８】
不揮発性メモリ１１３にアクセスする設定であった場合（ステップＳ１１０：ＹＥＳ）、情報処理装置１００は、データベース管理システム２０からログデータファイル２２をオープンする指示を受け、不揮発性メモリ１１３の、ログ情報１５を記録する領域をオープンする（ステップＳ１２０）。オープンとは、記録媒体の特定の領域あるいはデータセットを、参照および記録が可能な領域として確保することをいう。ここで、データベース管理システム２０は、ハードディスク１２２にあるログデータファイル２２をオープンする指示を出しているが、情報処理装置１００は、ログデータファイル２２ではなく、不揮発メモリ１１３の領域をオープンしている点に注意する。
【００４９】
次に情報処理装置１００は、主記憶メモリ１１２に、ステップＳ１２０で確保された領域のリンク情報を展開する（ステップＳ１２１）。具体的には、ステップＳ１２０でオープンされた領域に対応する領域を主記憶メモリ１１２に確保し、不揮発性メモリ１１３のログ情報１５を記録する領域にアクセスするためのリンク情報を記録する。このステップで記録されたリンク情報を介してアクセスすることにより、情報処理装置１００は、更新履歴を示す情報を、主記憶メモリ１１２を経由せずに不揮発性メモリ１１３に記録することができる。
【００５０】
次に、情報処理装置１００は、不揮発性メモリへのログ情報格納プロセスを起動する（ステップＳ１２２）。不揮発性メモリへのログ情報格納プロセスにより、情報処理装置１００は、データベース管理システム２０から出力されるログ情報を、不揮発性メモリ１３３にログ情報として格納する。不揮発性メモリへのログ情報格納プロセスは、データベース管理システム２０の停止または情報処理装置１００の電源オフ操作などに伴って停止する。
【００５１】
一方、ステップＳ１１０で不揮発性メモリ１１３にアクセスしない設定であった場合（ステップＳ１１０：ＮＯ）、情報処理装置１００は、データベース管理システム２０からログデータファイル２２をオープンする指示を受け、ハードディスク１２２に存在するログデータファイル２２をオープンする（ステップＳ１３０）。これにより、情報処理装置１００は、ログデータファイル２２へデータを記録することが可能になる。
【００５２】
次に情報処理装置１００は、主記憶メモリ１１２に、ログデータファイル２２に対応する領域を確保する（ステップＳ１３１）。これにより、情報処理装置１００は、確保された領域を介してハードディスク１２２にあるログデータファイル２２にアクセスすることができるようになる。
【００５３】
次に、情報処理装置１００は、ハードディスクへのログ情報格納プロセスを起動する（ステップＳ１３２）。ハードディスクへのログ情報格納プロセスにより、情報処理装置１００は、データベース管理システム２０から出力されるログ情報を、ログデータファイル２２に格納する。すなわち、データベース管理システム２０は、データベース２１を更新するトランザクションを受けると、そのトランザクションにより示された更新履歴（ログ情報Ｄ２）をハードディスクへのログ情報格納プロセスにより主記憶メモリ１１２に記録する。その後、情報処理装置１００は、主記憶メモリ１１２に記録されたログ情報Ｄ２をログデータファイル２２に反映する。ハードディスクへのログ情報格納プロセスは、データベース管理システム２０の停止または情報処理装置１００の電源オフ操作などに伴って停止する。
【００５４】
ステップＳ１２２またはＳ１３２により、いずれかのログ情報格納プロセスを起動すると、情報処理装置１００は、ログ情報格納プロセス起動処理を終了する。
【００５５】
不揮発性メモリへのログ情報格納プロセスは、データベース管理システム２０が管理するデータベース２１の更新履歴をログ情報１５として不揮発性メモリ１１３に格納する。すなわち、この不揮発性メモリへのログ情報格納プロセスを実行することにより、情報処理装置１００は、格納手段１１としての機能を提供する。
【００５６】
ハードディスクへのログ情報格納プロセスでは、情報処理装置１００は、データベース管理システム２０が出力するログ情報を、いったん主記憶メモリ１１２にログ情報Ｄ２として記録する。さらに続けて、ログ情報Ｄ２を、ハードディスク１２２にあるログデータファイル２２にコピーする。ログ情報Ｄ２がログデータファイル２２にコピーされてはじめて、データベース管理システム２０は、当該トランザクションをコミットできる。
【００５７】
これに対し、不揮発性メモリへのログ情報格納プロセスでは、情報処理装置１００は、データベース管理システム２０が出力する更新履歴（ログ情報）を、（主記憶メモリ１１２に代えて、不揮発メモリ１１３にある）ログ情報１５に記録する。ログ情報１５は不揮発性メモリ１１３に存在するため、情報処理装置１００の電源がオフとなった場合も、保持するデータを失わない。そのため、データベース管理システム２０は、更新履歴をログ情報１５に記録した時点で当該トランザクションをコミットできる。そのため、トランザクションの完了までの時間から、ハードディスク１２２にあるログデータファイル２２へデータをコピーする時間を短縮できる。トランザクションがコミットされた後、情報処理装置１００は、ログ情報１５に記録された更新履歴を、トランザクションとは非同期で、ログデータファイル２２にコピーする。
【００５８】
情報処理装置１００は、ここまで述べたフローを介してログ情報を不揮発性メモリ１１３またはハードディスク１２２に記録する。ここで、ハードディスク１２２にログ情報を記録する場合も、不揮発性メモリ１１３にログ情報を記録する場合も、データベース管理システム２０は、いずれもハードディスク１２２にあるログデータファイル２２をオープンする指示を出す。すなわち、データベース管理システム２０は、一般的に備える機能（ハードディスクにあるログデータファイルにアクセスする機能）を介して不揮発性メモリ１１３にログ情報１５を記録するものである。そのため、データベース管理システム２０は、既存のもの、あるいは市販のものを用いる場合であっても、特段の修正を要さずに使用することができる。
【００５９】
なお、データベース管理システムの種類によっては、トランザクションをコミットする際、主記憶メモリ１１２にデータを記録した後、ハードディスク１２２から記録完了の応答を待機する場合がある。このようなデータベース管理システムを用いる場合、不揮発性メモリ１１３にデータを記録しただけでは記録完了の応答ができないため、データベース管理システムへの軽微な修正が必要となるケースが存在する。
【００６０】
ここから、データベース管理システム２０がデータベース２１を復旧する際における、情報処理装置１００の動作について図６を参照して説明する。データベース管理システム２０は、何らかの理由によりデータベース２１に不具合が生じた場合に、それまで記録したデータベースの更新履歴（ログ情報１５あるいはログデータファイル２２に記録されているログ情報）を参照し、データベース２１を復旧する機能を備える。情報処理装置１００は、データベース管理システム２０が復旧処理を行う際、データベース管理システム２０にログ情報を出力する機能を備える。
【００６１】
データベース管理システム２０が復旧処理を行う際、データベース管理システム２０は、出力手段１４を介し、ログ情報を記録したログデータファイル２２へのアクセスを試みる。この場合、データベース管理システム２０は、一般的なハードディスクに記録されているデータセットへのアクセス方式によるアクセス要求を、出力手段１４に出力する。
【００６２】
出力手段１４は、データベース管理システム２０からのアクセス要求を受け取ると、設定手段１２が設定した内容を検証し、不揮発性メモリ１１３にアクセスする設定であるかを確認する。不揮発性メモリ１１３にアクセスする設定であった場合、不揮発性メモリ１１３に記録されているログ情報１５に、復旧に必要な情報が含まれている可能性があるからである。
【００６３】
不揮発性メモリ１１３にアクセスする設定であった場合、検索手段１３は、不揮発性メモリ１１３に記録されているログ情報１５を検索する。検索の結果、ログ情報１５にログ情報が記録されていることが検出された場合は、出力手段１４は、検索されたログ情報１５からそのログ情報（更新履歴）を示すデータを読みだし、データベース管理システム２０に出力する。続いて出力手段１４は、ハードディスク１２２にあるログデータファイル２２から更新履歴を示すデータを読みだし、データベース管理システム２０に出力する。検索手段１３は、不揮発性メモリ１１３にあるログ情報１５だけでなく、ハードディスク１２２にあるログデータファイル２２も検索するものであってもよい。
【００６４】
出力手段１４は、不揮発性メモリ１１３にアクセスする設定でなかった場合、または、不揮発性メモリ１１３のログ情報１５を検索した結果、データベース管理システム２０に応答すべきデータがなかった場合は、ハードディスク１２２にあるログデータファイル２２に記録されている更新履歴を示すデータを読みだし、データベース管理システム２０に出力する。
【００６５】
このように、本実施形態にかかる情報処理装置１００は、データベース管理システム２０がハードディスク１２２に記録されたログデータファイル２２から更新履歴を読み出す場合に、自動的に不揮発性メモリ１１３からログ情報１５を検索し、検索された更新履歴を示すデータをデータベース管理システムに出力する。データベース管理システム２０は、ハードディスク１２２に記録されたログデータファイル２２にアクセスする要求により、不揮発性メモリ１１３にあるログ情報１５にもアクセスできるため、復旧時の処理に関するデータベース管理システム２０の修正が不要となる。
【００６６】
具体的には、情報処理装置１００は、図７に示すデータベース復旧時処理を実行することにより、上記の動作を実現する。データベース管理システム２０がデータベース２１の復旧処理を開始し、ログデータファイル２２へのアクセス要求を出力すると、情報処理装置１００は、データベース復旧時処理を開始する。
【００６７】
データベース復旧時処理の最初に、情報処理装置１００は、設定手段１２により、不揮発性メモリ１１３にアクセスするように設定されているか否かを検証する（ステップＳ２１０）。
【００６８】
不揮発性メモリ１１３にアクセスする設定であった場合（ステップＳ２１０：ＹＥＳ）、情報処理装置１００は、検索手段１３の機能により、不揮発性メモリ１１３からログ情報１５を検索する（ステップＳ２２０）。具体的には、情報処理装置１００は、不揮発性メモリ１１３を検索し、不揮発性メモリ１１３に存在するログ情報１５を抽出する。
【００６９】
続いて情報処理装置１００は、不揮発性メモリ１１３にログ情報１５があるか否かを判定する（ステップＳ２３０）。具体的には、ステップＳ２２０で抽出されたログ情報１５の個数が１以上であるか否かを検証し、１以上であれば、不揮発性メモリ１１３にログ情報１５があったと判定する。
【００７０】
ステップＳ２３０で、不揮発性メモリ１１３にログ情報１５が含まれていたと判定した場合（ステップＳ２３０：ＹＥＳ）、情報処理装置１００は、出力手段１４の機能により、検索されたログ情報１５をデータベース管理システム２０に出力する（ステップＳ２４０）。
【００７１】
続いて情報処理装置１００は、ハードディスク１２２にアクセスし、ログデータファイル２２を読み出し、記録されているログ情報をデータベース管理システム２０に出力する（ステップＳ２５０）。また、ステップＳ２１０で不揮発性メモリ１１３にアクセスする設定でなかった場合（ステップＳ２１０：ＮＯ）および、ステップＳ２３０で不揮発性メモリ１１３にログ情報１５がなかった場合も同様に、ログデータファイル２２に記録されているログ情報をデータベース管理システム２０に出力する。ステップＳ２５０を終えると、情報処理システム１００は、データベース復旧時処理を終了する。
【００７２】
このように、本実施形態にかかる情報処理装置１００は、データベース管理装置２０がハードディスク１２２のログ情報へのアクセスを要求した場合に、不揮発性メモリ１１３に存在するログ情報を合わせてデータベース管理装置２０に応答する。そのため、データベース管理システム２０は、既存のもの、あるいは市販のものを用いる場合であっても、特段の修正を要さずに使用することができる。
【００７３】
検索手段１３は、上記ステップＳ２２０で不揮発性メモリ１１３のログ情報１５を検索するが、その際にデータベース管理システム２０において復旧に用いるものであるか否かを判定することも可能である。例えば、データベース管理システム２０から要求されたログ情報の記録日時を判別し、その日時よりも後に記録されたログ情報を対象として不揮発性メモリ１１３を検索してもよい。さらに、検索手段１３が検索するのは不揮発性メモリ１１３に限られず、これとは異なる記録媒体、例えばハードディスク１２２を検索するものであってもよい。その場合、出力手段１４は、検索手段１３がハードディスク１２２から検索したログ情報をデータベース管理システム２０に出力する。
【００７４】
データベース管理システム２０が出力手段１４を介してログ情報１５およびログデータファイル２２にアクセスする際、データベース管理システム２０は、出力手段１４に、ログデータファイル２２の位置を示すファイル名およびファイルパスを提示する。出力手段１４は、提示されたファイル名およびファイルパスに対応する場所にあるデータセット（ログデータファイル２２）だけでなく、自動的にログ情報１５も読み出してデータベース管理システム２０に応答する。そのため、データベース管理システム２０は、一般的に備える機能（ハードディスクにあるログデータファイルにアクセスする機能）を備えるものであれば十分であり、データベース管理システム２０に修正を加える必要がない。
【００７５】
本実施形態にかかる情報処理装置１００においては、そのオペレーティングシステム（ＯＳ：Operating System）としては任意のものが可能である。発明に至る過程においては、一つの実施例として、ＯＳにＬｉｎｕｘ（登録商標）を用いて情報処理装置１００を実現したが、これに限られない。情報処理装置１００には任意のＯＳを用いることができるし、またＯＳは汎用のものでも、専用のものでもよい。
【００７６】
上述したように、設定手段１２はフラグを備え、このフラグを切り替えることにより、ログ情報１５を格納する不揮発性メモリ１１３にアクセスするか否かを設定する機能を持つ。ここで、設定手段１２が備えるフラグを実現するハードウェアは任意であり、例えば不揮発性メモリ１１３にフラグを備えてもよいし、または他の記録媒体に備えてもよい。また、設定手段１２は、フラグをユーザからの操作に応じて切り替えるものであってもよいし、または、他の条件（情報処理装置１００のパフォーマンスを含む稼働状況、または、データベース管理システム２０の設定）に応じて自動的にフラグを切り替えるものであってもよい。
【００７７】
また、本実施形態にかかる情報処理装置１００は、任意のデータベース管理システムに対して効果を発揮することができる。一つの実施例として、ＰｏｓｔｇｒｅＳＱＬ（登録商標）を用いて実現したが、これに限られず任意の形態のデータベース管理システムを用いることができる。
【００７８】
本実施形態においては、不揮発性メモリは、主記憶メモリと物理層では互換性を有するものを、情報処理装置の主記憶メモリと同じバスに接続する形態を採用したが、これに限られない。主記憶メモリと同様にアクセスできるものであれば、不揮発性メモリとして任意のものを採用することができる。
【００７９】
本実施形態にかかる不揮発性メモリにおいて、不揮発性を実現する技術に制限はなく任意の形態が可能である。例えば一つの実施例として、不揮発性メモリとして、主記憶メモリと同様に揮発性のメモリ素子と、そのメモリ素子からデータ移動可能な記憶素子（ＳＳＤ：Solid State Device）などとを組み合わせて実現してもよいし、またメモリ素子に電池（情報処理装置１００の電源から独立した電源）を接続し、電源から供給される電力によりデータを保持し、情報処理装置１００の電源がオフとなってもデータを失わないものを採用してもよい。本発明の実施の形態はこれに限られず、不揮発性を実現するアーキテクチャとしては任意のものを採用することができる。
【００８０】
なお、本実施の形態においては、不揮発性メモリとして３２メガバイトの容量を有するものを採用し、これに１６メガバイトのログ情報を格納する領域であるログ領域を二つ作成した。格納手段１１は、このログ領域を片方ずつ使用し、一方のログ領域の容量がログ情報で満たされると、他方のログ領域に切り替えて使用する運用を行っている。さらに、ログ情報で満たされたログ領域から、トランザクションとは非同期でログ情報を読み出し、ハードディスクに記録されているログデータファイルへのコピーを行う。このコピーによりログ情報の保全が完了すると、情報処理装置１００はそのログ領域をクリアし、再びログ情報を記録できる状態にする。
【００８１】
本発明の実施形態にかかる情報処理装置は、専用のシステムによらず、通常のコンピュータシステムを用いても実現可能である。例えば、コンピュータに、上記動作を実行するためのプログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto Optical Disk）などのコンピュータ読み取り可能な非一時的記録媒体に記録して配布し、これをコンピュータシステムにインストールすることにより、上述の処理を実行する情報処理装置を構成しても良い。さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを記憶しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【００８２】
なお、上記の実施例の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００８３】
（付記１）
データベース管理システムが管理するデータベースの更新履歴をログ情報として不揮発性メモリに格納する格納手段と、
前記ログ情報を格納する前記不揮発性メモリにアクセスするか否かを設定する設定手段と、
前記不揮発性メモリにアクセスする設定の場合、前記不揮発性メモリから前記ログ情報を検索する検索手段と、
前記検索手段により検索された前記ログ情報を前記データベース管理システムに出力する出力手段と、
を備える情報処理装置。
【００８４】
（付記２）
前記不揮発性メモリは、主記憶メモリと同じバスを介してプロセッサに接続される、
付記１に記載の情報処理装置。
【００８５】
（付記３）
前記格納手段は、前記ログ情報を、前記主記憶メモリに代えて、前記不揮発性メモリに記録する、
付記２に記載の情報処理装置。
【００８６】
（付記４）
前記格納手段は、さらに、前記ログ情報を前記不揮発性メモリとは異なる記録装置に格納し、
前記検索手段は、前記不揮発性メモリにアクセスする設定ではない場合、前記異なる記録装置から、前記ログ情報を検索する、
付記１から３のいずれか１つに記載の情報処理装置。
【００８７】
（付記５）
データベース管理システムが管理するデータベースの更新履歴をログ情報として不揮発性メモリに格納する格納ステップと、
前記ログ情報を格納する前記不揮発性メモリにアクセスするか否かを設定する設定ステップと、
前記不揮発性メモリにアクセスする設定の場合、前記不揮発性メモリから前記ログ情報を検索する検索ステップと、
前記検索ステップで検索された前記ログ情報を前記データベース管理システムに出力する出力ステップと、
を備える情報処理方法。
【００８８】
（付記６）
コンピュータを、
データベース管理システムが管理するデータベースの更新履歴をログ情報として不揮発性メモリに格納する格納手段、
前記ログ情報を格納する前記不揮発性メモリにアクセスするか否かを設定する設定手段、
前記不揮発性メモリにアクセスする設定の場合、前記不揮発性メモリから前記ログ情報を検索する検索手段、
前記検索手段により検索された前記ログ情報を前記データベース管理システムに出力する出力手段、
として機能させるためのプログラム。
【符号の説明】
【００８９】
１１  格納手段
１２  設定手段
１３  検索手段
１４  出力手段
１５  ログ情報
２０  データベース管理システム
２１  データベース
２２  ログデータファイル
１００  情報処理装置
１１０  制御部
１１１  ＣＰＵ
１１２  主記憶メモリ
１１３  不揮発性メモリ
１１４  ＲＯＭ
１１５  メモリーバス
１２０  補助記憶デバイス
１２１、１２２  ハードディスク
１３０  操作部
１４０  ディスプレイ
１５０  ネットワークインターフェース
１６０  内部バス
【図１】
2016170536.tif 000003
【図２】
2016170536.tif 000004
【図３】
2016170536.tif 000005
【図４】
2016170536.tif 000006
【図５】
2016170536.tif 000007
【図６】
2016170536.tif 000008
【図７】
2016170536.tif 000009