(57)【要約】【課題】高速な稼動を実現しつつ、利便性の高いデータベースシステムを提供すること。【解決手段】メモリに記憶されたデータベースに対する処理を行うデータベース処理装置であって、データベースに対する処理要求情報を受け付けて、予め設定された解析基準に基づいて、当該処理要求情報からデータベースに対する処理内容を特定するよう解析すると共に、当該処理要求情報に含まれるデータベースに対する操作命令を特定する解析手段と、データベースに対して解析手段にて特定された操作命令を実行し、当該解析手段にて解析された処理内容の処理を実行するデータベース処理手段と、解析手段にて解析された処理内容と共に、当該解析手段にて特定された操作命令を、当該データベースの処理履歴を表すジャーナルとして、処理内容と操作命令とが分離した状態で、他の記憶装置に書き出すジャーナル書出手段と、を備えた。【選択図】図１
2009193284.tif 000002
【特許請求の範囲】
【請求項１】
メモリに記憶されたデータベースに対する処理を行うデータベース処理装置であって、
前記データベースに対する処理要求情報を受け付けて、予め設定された解析基準に基づいて、当該処理要求情報から前記データベースに対する処理内容を特定するよう解析すると共に、当該処理要求情報に含まれる前記データベースに対する操作命令を特定する解析手段と、
前記データベースに対して前記解析手段にて特定された前記操作命令を実行し、当該解析手段にて解析された前記処理内容の処理を実行するデータベース処理手段と、
前記解析手段にて解析された前記処理内容と共に、当該解析手段にて特定された前記操作命令を、当該データベースの処理履歴を表すジャーナルとして、前記処理内容と前記操作命令とが分離した状態で、他の記憶装置に記憶するよう書き出すジャーナル書出手段と、
を備えたことを特徴とするデータベース処理装置。
【請求項２】
前記ジャーナル書出手段は、前記解析手段にて解析した前記操作命令が前記データベースの内容を更新する操作を行う命令である場合に、前記ジャーナルを書き出す、
ことを特徴とする請求項１記載のデータベース処理装置。
【請求項３】
前記ジャーナル書出手段は、前記データベース処理手段による処理開始順序を特定する順序特定情報を前記ジャーナルに含めて書き出す、
ことを特徴とする請求項１又は２記載のデータベース処理装置。
【請求項４】
前記ジャーナルが書き出された前記他の記憶装置から当該ジャーナルを読み出して、当該ジャーナルに含まれる前記操作命令を、前記処理内容と前記操作命令とが分離した状態で出力するジャーナル読出手段を備えた、
ことを特徴とする請求項１，２又は３記載のデータベース処理装置。
【請求項５】
前記ジャーナル読出手段にて前記他の記憶装置から読み出した前記ジャーナルに含まれる前記処理内容に基づいて、当該ジャーナルに含まれる前記操作命令を再実行して、前記データベースを復旧する復旧処理手段を備えた、
ことを特徴とする請求項４記載のデータベース処理装置。
【請求項６】
前記復旧処理手段は、前記ジャーナルに含まれる前記順序特定情報に基づいて前記操作命令を再実行して、前記データベースを復旧する、
ことを特徴とする請求項５記載のデータベース処理装置。
【請求項７】
メモリと、このメモリに記憶されたデータベースに対する処理を行うデータベース処理部と、を備えたコンピュータであって、
前記データベース処理部は、
前記データベースに対する処理要求情報を受け付けて、予め設定された解析基準に基づいて、当該処理要求情報から前記データベースに対する処理内容を特定するよう解析すると共に、当該処理要求情報に含まれる前記データベースに対する操作命令を特定する解析手段と、
前記データベースに対して前記解析手段にて特定された前記操作命令を実行し、当該解析手段にて解析された前記処理内容の処理を実行するデータベース処理手段と、
前記解析手段にて解析された前記処理内容と共に、当該解析手段にて特定された前記操作命令を、当該データベースの処理履歴を表すジャーナルとして、前記処理内容と前記操作命令とが分離した状態で、外部記憶装置に記憶するよう書き出すジャーナル書出手段と、
を備えたことを特徴とするコンピュータ。
【請求項８】
前記データベース処理部は、
前記ジャーナルが書き出された前記外部記憶装置から当該ジャーナルを読み出して、当該ジャーナルに含まれる前記操作命令を、前記処理内容と前記操作命令とが分離した状態で出力するジャーナル読出手段を備えた、
ことを特徴とする請求項７記載のコンピュータ。
【請求項９】
前記ジャーナル読出手段にて前記外部記憶装置から読み出した前記ジャーナルに含まれる前記処理内容に基づいて、当該ジャーナルに含まれる前記操作命令を再実行して、前記データベースを復旧する復旧処理手段を備えた、
ことを特徴とする請求項８記載のコンピュータ。
【請求項１０】
メモリを備えたコンピュータに、
前記メモリに記憶されたデータベースに対する処理要求情報を受け付けて、予め設定された解析基準に基づいて、当該処理要求情報から前記データベースに対する処理内容を特定するよう解析すると共に、当該処理要求情報に含まれる前記データベースに対する操作命令を特定する解析手段と、
前記データベースに対して前記解析手段にて特定された前記操作命令を実行し、当該解析手段にて解析された前記処理内容の処理を実行するデータベース処理手段と、
前記解析手段にて解析された前記処理内容と共に、当該解析手段にて特定された前記操作命令を、当該データベースの処理履歴を表すジャーナルとして、前記処理内容と前記操作命令とが分離した状態で、他の記憶装置に記憶するよう書き出すジャーナル書出手段と、
を実現させるためのプログラム。
【請求項１１】
前記コンピュータに、さらに、
前記ジャーナルが書き出された前記他の記憶装置から当該ジャーナルを読み出して、当該ジャーナルに含まれる前記操作命令を、前記処理内容と前記操作命令とが分離した状態で出力するジャーナル読出手段、
を実現させるための請求項１０記載のプログラム。
【請求項１２】
前記コンピュータに、さらに、
前記ジャーナル読出手段にて前記他の記憶装置から読み出した前記ジャーナルに含まれる前記処理内容に基づいて、当該ジャーナルに含まれる前記操作命令を再実行して、前記データベースを復旧する復旧処理手段、
を実現させるための請求項１１記載のプログラム。
【請求項１３】
メモリに記憶されたデータベースに対する処理を行うデータベース処理方法であって、
前記データベースに対する処理要求情報を受け付けて、予め設定された解析基準に基づいて、当該処理要求情報から前記データベースに対する処理内容を特定するよう解析すると共に、当該処理要求情報に含まれる前記データベースに対する操作命令を特定する解析工程と、
前記データベースに対して前記解析工程にて特定された前記操作命令を実行し、当該解析工程にて解析された前記処理内容の処理を実行するデータベース処理工程と、
前記解析工程にて解析された前記処理内容と共に、当該解析工程にて特定された前記操作命令を、当該データベースの処理履歴を表すジャーナルとして、前記処理内容と前記操作命令とが分離した状態で他の記憶装置に記憶するよう書き出すジャーナル書出工程と、
を有することを特徴とするデータベース処理方法。
【請求項１４】
前記ジャーナル書出工程にて前記ジャーナルが書き出された前記他の記憶装置から当該ジャーナルを読み出して、当該ジャーナルに含まれる前記操作命令を、前記処理内容と前記操作命令とが分離した状態で出力するジャーナル読出工程を有する、
ことを特徴とする請求項１３記載のデータベース処理方法。
【請求項１５】
前記ジャーナル読出工程にて前記他の記憶装置から読み出した前記ジャーナルに含まれる前記処理内容に基づいて、当該ジャーナルに含まれる前記操作命令を再実行して、前記データベースを復旧する復旧処理工程を有する、
ことを特徴とする請求項１４記載のデータベース処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース処理装置にかかり、特に、メモリ上にデータを記憶してデータベースが構築されたオンメモリデータベースの処理を実行するデータベース処理装置に関する。
【背景技術】
【０００２】
データベースシステムの１つに、全てのデータを揮発性のメモリ上に記憶したオンメモリデータベースがある（特許文献１参照）。このようなオンメモリデータベースでは、メモリ上でデータの参照、更新を行うため、ディスク型データベースシステムと比較して、より高速にデータアクセス及び処理が実現可能である。一方で、データベースとして、高信頼性や高可用性を維持するためには、チェックポイントファイルの出力とジャーナルの出力が必要であり、かかる処理を行うことで、データの永続性を保証している。
【０００３】
ところが、上述したようなオンメモリデータベースでは、ジャーナルをディスク装置などの外部記憶装置に出力する必要がある。すると、かかる出力処理に時間がかかるため、高速であるオンメモリデータベースの有効性が損なわれてしまう、という問題がある。
【０００４】
これに対して、データを保障するための処理、つまり、ジャーナルを記憶する処理を短時間にする様々な仕組みが検討されている。例えば、ジャーナルを共有メモリ空間に格納し、他のプロセスで非同期にファイルに書き出す、という手法がある。また、可用性を高めるためにデータを別サーバに送信して、そのサーバにて、ジャーナルを出力する、という手法がある。
【０００５】
【特許文献１】特開２００６−１３９６９６号公報
【特許文献２】特開２００４−０６２７５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところが、データベース内の全レコードの所定の列を更新するなど、更新量が多い場合には、ファイル書き出しデータ送信にかなりの時間を要し、依然としてデータベースシステム全体の動作の高速化を図ることができない、という問題があった。
【０００７】
ここで、特許文献２では、ジャーナル出力量を削減する仕組みを開示している。具体的には、データベースに関する更新前データを取得し、更新後データとの差分データを作成する。そして、この差分データが更新後データよりも小さいときには、差分データを更新後ジャーナルへ出力することで、ジャーナル出力量を削減している。
【０００８】
しかしながら、上記特許文献２に開示の技術では、次のような問題点があった。まず、レコード単位に更新後ジャーナル量を削減するので、更新後レコードが同一であってもレコード単位に出力してしまう。その結果、更新対象のレコード件数に応じてジャーナル出力量が増加するため、ジャーナル出力量を軽減することが困難な場合が生じる。また、更新後ジャーナルに更新差分が含まれているので、対象となる更新前のレコードが必要であり、復旧時にバックアップ以降の全ての更新後ジャーナルが必要となる。このため、ユーザが任意のバックアップから戻す際における利便性が損なわれてしまう。さらに、更新後データが混在するので、ユーザが容易に復旧時点を判断することが困難であり、ユーザの利便性の向上を図ることができない、という問題があった。
【０００９】
このため、本発明の目的は、上述した課題である、高速な稼動を実現しつつ、ユーザにとって利便性の高いデータベースシステムを提供することにある。
【課題を解決するための手段】
【００１０】
そこで、本発明の一形態であるデータベース処理装置は、
メモリに記憶されたデータベースに対する処理を行うデータベース処理装置であって、
データベースに対する処理要求情報を受け付けて、予め設定された解析基準に基づいて、当該処理要求情報からデータベースに対する処理内容を特定するよう解析すると共に、当該処理要求情報に含まれるデータベースに対する操作命令を特定する解析手段と、
データベースに対して解析手段にて特定された操作命令を実行し、当該解析手段にて解析された処理内容の処理を実行するデータベース処理手段と、
解析手段にて解析された処理内容と共に、当該解析手段にて特定された操作命令を、当該データベースの処理履歴を表すジャーナルとして、処理内容と操作命令とが分離した状態で、他の記憶装置に書き出すジャーナル書出手段と、
を備えた、という構成を採る。
【００１１】
また、本発明の他の形態であるコンピュータは、
メモリと、このメモリに記憶されたデータベースに対する処理を行うデータベース処理部と、を備えたコンピュータであって、
データベース処理部は、
データベースに対する処理要求情報を受け付けて、予め設定された解析基準に基づいて、当該処理要求情報からデータベースに対する処理内容を特定するよう解析すると共に、当該処理要求情報に含まれるデータベースに対する操作命令を特定する解析手段と、
データベースに対して解析手段にて特定された操作命令を実行し、当該解析手段にて解析された処理内容の処理を実行するデータベース処理手段と、
解析手段にて解析された処理内容と共に、当該解析手段にて特定された操作命令を、当該データベースの処理履歴を表すジャーナルとして、処理内容と操作命令とが分離した状態で、外部記憶装置に書き出すジャーナル書出手段と、
を備えた、という構成を採る。
【００１２】
また、本発明の他の形態であるプログラムは、
メモリを備えたコンピュータに、
メモリに記憶されたデータベースに対する処理要求情報を受け付けて、予め設定された解析基準に基づいて、当該処理要求情報からデータベースに対する処理内容を特定するよう解析すると共に、当該処理要求情報に含まれるデータベースに対する操作命令を特定する解析手段と、
データベースに対して解析手段にて特定された操作命令を実行し、当該解析手段にて解析された処理内容の処理を実行するデータベース処理手段と、
解析手段にて解析された処理内容と共に、当該解析手段にて特定された操作命令を、当該データベースの処理履歴を表すジャーナルとして、処理内容と操作命令とが分離した状態で、他の記憶装置に書き出すジャーナル書出手段と、
を実現させる、という構成を採る。
【００１３】
さらに、本発明の他の形態であるデータベース処理方法は、
メモリに記憶されたデータベースに対する処理を行うデータベース処理方法であって、
データベースに対する処理要求情報を受け付けて、予め設定された解析基準に基づいて、当該処理要求情報からデータベースに対する処理内容を特定するよう解析すると共に、当該処理要求情報に含まれるデータベースに対する操作命令を特定する解析工程と、
データベースに対して解析工程にて特定された操作命令を実行し、当該解析工程にて解析された処理内容の処理を実行するデータベース処理工程と、
解析工程にて解析された処理内容と共に、当該解析工程にて特定された操作命令を、当該データベースの処理履歴を表すジャーナルとして、処理内容と操作命令とが分離した状態で、他の記憶装置に書き出すジャーナル書出工程と、
を有する、という構成を採る。
【発明の効果】
【００１４】
本発明は、以上のように構成されるため、ジャーナル出力量を削減でき、データベースシステムの稼動の高速化を図ることができ、また、後にユーザがジャーナルを参照する際におけるジャーナルの可読性が向上し、さらには、データベースの復旧処理の高速化を図ることができる、という優れた効果を有する。
【発明を実施するための最良の形態】
【００１５】
本発明は、すべてのデータがメモリ上に配置していることを前提としたオンメモリデータベースシステムにて、より高速な稼動を実現するための構成を採る。
【００１６】
そして、本発明の一形態であるデータベース処理装置は、
メモリに記憶されたデータベースに対する処理を行うデータベース処理装置であって、
データベースに対する処理要求情報を受け付けて、予め設定された解析基準に基づいて、当該処理要求情報からデータベースに対する処理内容を特定するよう解析すると共に、当該処理要求情報に含まれるデータベースに対する操作命令を特定する解析手段と、
データベースに対して解析手段にて特定された操作命令を実行し、当該解析手段にて解析された処理内容の処理を実行するデータベース処理手段と、
解析手段にて解析された処理内容と共に、当該解析手段にて特定された操作命令を、当該データベースの処理履歴を表すジャーナルとして、処理内容と操作命令とが分離した状態で、他の記憶装置に書き出すジャーナル書出手段と、
を備えた、という構成を採る。
【００１７】
上記発明によると、まず、データベース処理装置は、処理要求情報を受け付けると、この処理要求情報を予めデータベース処理装置に記憶された解析ルールを表す解析基準データに基づいて解析して、データベースに対する処理内容を特定すると共に、ＡＰＩなどの操作命令を特定する。そして、データベース処理装置は、解析結果に基づいて、操作命令を実行して、データベースに対する処理を実行する。さらに、データベース処理装置は、上記解析により特定された操作命令を、処理内容と共にジャーナルとして、当該処理内容と操作命令とが分離した状態で、他の記憶装置に書き出す。これにより、他の記憶装置へのジャーナルの書き出しは、処理対象となるデータベース内のレコード数に限らず、処理内容と、操作命令だけであるため、ジャーナル出力量を削減でき、データベースシステムの稼動の高速化を図ることができる。また、ジャーナルに操作命令が付加され、かつ、処理内容と操作命令とが分離した状態で記憶されているため、後にユーザがジャーナルを参照する際にジャーナルの可読性が向上し、ユーザの利便性の向上を図ることができる。さらに、ジャーナルに基づく復旧時には、ジャーナルを再度解析する必要は無く、記憶されている操作命令を実行すればよいため、復旧処理の高速化を図ることができる。
【００１８】
そして、上記ジャーナル書出手段は、解析手段にて解析した操作命令がデータベースの内容を更新する操作を行う命令である場合に、ジャーナルを書き出す、という構成を採る。これにより、データベースが更新された場合のみつまり、データベースの内容が変更されるような操作が行われるときにのみ、復旧時に必要な処理履歴をジャーナルとして書き出す。従って、ジャーナルの書き出し処理を最小限とすることができ、データベースの稼動のさらなる高速化を図ることができる。
【００１９】
また、上記ジャーナル書出手段は、データベース処理手段による処理開始順序を特定する順序特定情報をジャーナルに含めて書き出す、という構成を採る。これにより、ジャーナルの書き出し順序が、当該ジャーナルに対応する実際のデータベースの処理順序と前後したとしても、その開始順序と共にジャーナルが書き出される。従って、復旧処理の際に、処理開始順序に基づいて復旧処理を行うことで、実際に処理した順序でジャーナルを再実行でき、データベースをより確実に復旧させることができる。
【００２０】
また、上記データベース処理装置は、ジャーナルが書き出された他の記憶装置から当該ジャーナルを読み出して、当該ジャーナルに含まれる操作命令を処理内容と操作命令とが分離した状態で出力するジャーナル読出手段を備えた、という構成を採る。これにより、ユーザがジャーナルを確認する際には、データベースに対して実行された各処理における操作命令が他の情報から分離されて出力されるため、ユーザによるジャーナルのうち操作命令部分の可読性が高まる。従って、ユーザの利便性の向上を図ることができる。
【００２１】
また、上記データベース処理装置は、上記ジャーナル読出手段にて他の記憶装置から読み出したジャーナルに含まれる処理内容に基づいて、当該ジャーナルに含まれる操作命令を再実行して、データベースを復旧する復旧処理手段を備えた、という構成を採る。これにより、データベースの復旧時には、既にジャーナルに操作命令が含まれているため、ジャーナルを再度解析する必要が無く、当該操作命令を再実行してデータベースの復旧を行うことができる。従って、データベースの高速な復旧を図ることができる。
【００２２】
また、上記復旧処理手段は、ジャーナルに含まれる順序特定情報に基づいて操作命令を再実行して、データベースを復旧する、という構成を採る。これにより、ジャーナルの書き出し順序が当該ジャーナルに対応する実際のデータベース処理順序と前後したとしても、その開始順序と共にジャーナルが書き出されているため、実際に処理された順序でデータベースの復旧処理を実行することができる。従って、データベースをより確実に復旧させることができる。
【００２３】
また、本発明の他の形態であるデータベース処理方法は、
メモリに記憶されたデータベースに対する処理を行うデータベース処理方法であって、
データベースに対する処理要求情報を受け付けて、予め設定された解析基準に基づいて、当該処理要求情報からデータベースに対する処理内容を特定するよう解析すると共に、当該処理要求情報に含まれるデータベースに対する操作命令を特定する解析工程と、
データベースに対して解析工程にて特定された操作命令を実行し、当該解析工程にて解析された処理内容の処理を実行するデータベース処理工程と、
解析工程にて解析された処理内容と共に、当該解析工程にて特定された操作命令を、当該データベースの処理履歴を表すジャーナルとして、処理内容と操作命令とが分離した状態で、他の記憶装置に書き出すジャーナル書出工程と、
を有する、という構成を採る。
【００２４】
そして、上記データベース処理方法は、上記ジャーナル書出工程にてジャーナルが書き出された他の記憶装置から当該ジャーナルを読み出して、当該ジャーナルに含まれる操作命令を処理内容と操作命令とが分離した状態で出力するジャーナル読出工程を有する、という構成を採る。また、上記ジャーナル読出工程にて他の記憶装置から読み出したジャーナルに含まれる処理内容に基づいて、当該ジャーナルに含まれる操作命令を再実行して、データベースを復旧する復旧処理工程を有する、という構成を採る。
【００２５】
＜実施形態１＞
本発明の第１の実施形態を、図１乃至図７を参照して説明する。図１は、オンメモリデータベースシステムの構成を示すブロック図である。図２は、オンメモリデータベースシステムで処理されるデータの一例を示す図である。図３乃至図４は、オンメモリデータベースシステムにおける処理例を示す図である。図５乃至図７は、オンメモリデータベースの動作を示すフローチャートである。
【００２６】
［構成］
図１に、本実施形態におけるオンメモリデータベース（ＤＢ）システム１の構成を示す。本実施形態におけるオンメモリＤＢシステム１は、主記憶装置である揮発性のメモリ３と、ＣＰＵといった演算装置（図示しないが、ＤＢ処理部２が該当する）と、不揮発性の外部記憶装置（図示しないが、バックアップ５とジャーナルファイル６が該当する）と、を備えた一般的なコンピュータである。そして、本実施形態では、メモリ３内にデータベースを記憶しており、演算装置に組み込まれたプログラムによって実現されたデータベース（ＤＢ）処理部２が、当該メモリ３上でデータベースを処理している。
【００２７】
具体的に、演算装置にプログラムが組み込まれることによって構築されたデータベース（ＤＢ）処理部２（データベース処理装置）は、図１に示すように、ＳＱＬ解析部２１と、プロセス制御部２２と、ＡＰＩ実行部２３と、ジャーナル登録部２４と、ＤＢ更新部２５と、ジャーナル書出部２６と、ジャーナル読込部２７と、を備えている。これら各部２１〜２７は、それぞれ以下の機能を有する。
【００２８】
まず、ＳＱＬ解析部２１（解析手段）は、データベースの処理を要求するユーザの各端末１０，２０，３０から、データベースに対するリクエストであるＳＱＬ（処理要求情報）を受け付けて、当該ＳＱＬを解析する。なお、図１では、ＡＰプロセス１（ＳＱＬ実行）１１と示したものが、ＳＱＬに相当する。具体的には、ＳＱＬ解析部２１は、図示しないが、予めオンメモリＤＢシステム１や外部記憶装置に記憶された解析ルールを表す解析基準データに基づいて、要求されたＳＱＬ文の解析を実施し、インデックスやデータのアクセス経路を特定する。次に、アクセス経路情報を元に、データベースに対する操作命令であるＡＰＩ命令を決定する。ここで、例えば、ＡＰＩ命令は、「ＵＰＤＡＴＥ」や「ＤＥＬＥＴＥ」、さらには、「ＳＥＬＥＣＴ」などである。これにより、ＳＱＬから、ＡＰＩ命令を特定すると共に、データベースに対する処理内容を特定する。また、ＳＱＬ解析部２１は、ＡＰＩ命令が、「ＳＥＬＥＣＴ」などのデータベース内のレコードの内容を参照する参照命令であれば、ＡＰＩ実行部２１５を起動する。一方、「ＵＰＤＡＴＥ」や「ＤＥＬＥＴＥ」などのデータベース内のレコードの内容を更新する操作を行う命令である更新命令であれば、プロセス制御部段２１４を起動する。
【００２９】
また、上記プロセス制御部２２で、各プロセスの解析結果を基にプロセスの実行制御を行うが、まず、図２（ａ）に示すように、ジョブ名２２２、ユーザ名２２３、プロセス番号２２４、対象資源２２５を含むプロセス管理表２２１を、メモリ３内のプロセス情報３１に登録する。ここで、新たに登録するプロセス管理表２２１の対象資源２２５に該当する資源が、既存のプロセス管理表２２１に登録されていた場合には、当該既存のプロセス管理表２２１の終了時刻２２７が未登録であれば、待ち合わせを行う。一方、該当する資源が登録されていない場合、もしくは、実行していたプロセスが終了し終了時刻２２７が登録された場合には、プロセス管理表２２１に開始時刻２２６を登録してＡＰＩ実行部２３を起動する。ここで、開始時刻２２６は、各プロセスの処理開始順序を特定する順序特定情報としての役割を果たしている。
【００３０】
また、ＡＰＩ実行部２３（データベース処理手段）は、指定されたＡＰＩが、上記解析基準データに基づく解析の結果、上述したように、ＵＰＤＡＴＥやＤＥＬＥＴＥなどの更新系であれば、ジャーナル登録部２４を起動する。そして、更新系及び参照系のいずれであっても、ＡＰＩを実行する。特に、ＡＰＩが更新系である場合には、ＳＱＬにて特定されたＡＰＩ命令を実行して、ＳＱＬによるデータベースに対する処理内容を実行し、オンメモリＤＢ内の処理対象となっているレコードの値を更新する。
【００３１】
また、ＤＢ更新部２５は、上記ＡＰＩ実行部２３の延長として機能し、ＡＰＩが実行されたことに伴い、データベース（テーブルデータ３２）を更新し、プロセス管理表２２１に終了時刻２２７を登録する。
【００３２】
また、上記ジャーナル登録部２４は、図２（ｂ）に示すように、上記プロセス制御部２２にて設定したプロセス管理表２２１の情報に、上述ＳＱＬ解析部２１による解析にて特定された操作命令であるＡＰＩ情報２３８を加えて、ジャーナルキャッシュ空間４にプロセスレコード２３１として登録する。このとき、具体的には、プロセスレコード２３１からＡＰＩ情報２３８を区別できるよう、処理内容とＡＰＩ情報（操作命令）とが分離した状態で登録する。この登録が終了すると、ＤＢ更新部２５を起動する。
【００３３】
また、上記ジャーナル書出部２６は、ユーザ端末１０等から「ＣＯＭＭＩＴ命令」が実行された場合、プロセス制御部２２にて設定したプロセス管理表を確認して、同一のプロセス番号２２４があれば、ジャーナルキャッシュ空間４に登録された該当するプロセスレコード２３１を、ジャーナルファイル６に書き出す。なお、上述したように、プロセスレコード２３１には、操作命令であるＡＰＩ情報２３８が含まれている。つまり、プロセスレコード２３１には、ＡＰＩ情報がわかるように他の情報と区別されており、さらに換言すると、処理内容などの他の情報とＡＰＩ情報とが分離した状態で含まれている。以上のように、ジャーナル登録部２４とジャーナル書出部２６とは、上述したようにＡＰＩ情報２３８を含むプロセスレコード２３１をデータベースの処理履歴を表すジャーナルとして他の記憶装置に記憶するよう書き出すジャーナル書出手段として機能する。なお、ジャーナルファイル６への書き出しが完了すれば、プロセス制御部２２にて管理しているプロセス管理表２２１や、ジャーナルキャッシュ空間４のプロセスレコードを削除する。
【００３４】
また、上記ジャーナル読込部２４（ジャーナル読出手段）は、障害発生時に、データベースのバックアップから任意の地点へ戻す処理を行う際に、ジャーナルファイル６に記憶されたジャーナルレコードを読み出す。このとき、ジャーナルレコードをオンメモリＤＢシステム１自身の表示部やユーザ端末１０等の表示部に表示するよう出力するが、各ジャーナルレコードに含まれるＡＰＩ情報（操作命令）を表示して出力する。つまり、ユーザにて一目で各ジャーナルレコードのＡＰＩ情報を認識できるよう、他の情報とＡＰＩ情報とを分離して出力する。そして、ジャーナル読込部２４は、ユーザ端末から指定された復旧ポイントの選択を受け付ける。そして、選択されたポイントにおけるデータベースの復旧に必要なデータ、例えば、当該ポイントよりも前のバックアップデータ及び当該バックアップ以降のジャーナルレコードを読み出して、ＤＢ更新部２５を起動する。
【００３５】
そして、ＤＢ更新部２５は、読み出したジャーナルレコード２３１の開始時刻２３６の情報を元に、当該開始時刻２３６の順序で、各ジャーナルレコードのＡＰＩ命令を再実行し、メモリ３内のデータベースを任意の時点まで復旧する。つまり、ＤＢ更新部２５は、上記ジャーナルファイル６に記憶したジャーナルに基づいてデータベースを復旧する復旧処理手段としても機能する。
【００３６】
［動作］
次に、上記オンメモリＤＢシステム１の動作を図３乃至図７を参照して説明する。図３は、ジャーナルの書き出し及び読み出しを説明する図であり、図４は、オンメモリデータベースにおける具体的な処理例を示す図である。また、図５乃至図７は、オンメモリデータベースの動作を示すフローチャートである。
【００３７】
はじめに、図５のフローチャートを参照して、データベースの処理動作について説明する。まず、図４に示すように、オンメモリＤＢデータベース１に対して、複数のＳＱＬ命令が実行されたとする（ステップＳ１）。ここでは、図４に示すように、ユーザ端末１０からＡＰプロセス１に示す「ＵＰＤＡＴＥ」のＳＱＬ文１１が要求され、ユーザ端末２０からＡＰプロセス２に示す「ＤＥＬＥＴＥ」のＳＱＬ文１２が要求されたとする。
【００３８】
続いて、オンメモリＤＢシステム１は、クライアントからの要求でコネクションを確立した後に、ＳＱＬ解析部２１を起動する。そして、ＳＱＬ解析部２１では、予め記憶されている解析基準データに基づいて、要求されたＳＱＬ文の解析を実施し（ステップＳ２、解析工程）、インデックスやデータのアクセス経路を決定する。次にアクセス経路情報を元に、ＡＰＩ命令を決定する。つまり、ＳＱＬ文によるＡＰＩ命令と処理内容を特定する。ここで、ＡＰＩ命令が参照命令であれば（ステップＳ３でＮＯ）、ＡＰＩ実行部２３を起動する。更新命令であれば（ステップＳ３でＹＥＳ）、プロセス制御部２２を起動する。なお、図４の例では、プロセス１，２は、それぞれ「ＵＰＤＡＴＥ」、「ＤＥＬＥＴＥ」がＡＰＩ命令であり、共に更新命令である。
【００３９】
続いて、プロセス制御部２２では、ジョブ名２２２、ユーザ名２２３、プロセス番号２２４、対象資源２２５を含むプロセス管理表２２１を、プロセス情報３１に登録する（ステップＳ４）。このとき、プロセス情報３１内に、既に同一の対象資源を含む他のプロセス管理表２２１が登録されていた場合には、終了時刻２２７が未登録であれば待ち合わせを行う。一方、同一の対象資源のプロセス管理情報が登録されていない場合、もしくは実行していたプロセスが終了し終了時刻２２７が登録された場合には、プロセス管理表２２１に開始時刻２２６を登録してＡＰＩ実行手段２１５を起動する。具体的に、ＡＰプロセス１については、プロセス管理表にプロセス１の情報を登録する。一方、プロセス２では、図４に示すように、同一資源に対する要求であるプロセス１の情報が既に登録されているので、当該プロセス１の終了時刻の登録を待ち合わせる。
【００４０】
続いて、ＡＰＩ実行部２３では、ＳＱＬ解析にて解析されたＡＰＩ命令が更新系であれば、ジャーナル登録部２４を起動し、参照系であればＡＰＩを実行する（ステップＳ５）。具体的に、図４の例では、いずれも更新系であるため、この段階ではＡＰＩを実行せず、ジャーナル登録部２４を起動する。
【００４１】
続いて、ジャーナル登録部２４では、図３及び図４に示すように、プロセス管理表２２１に、ＳＱＬ解析部２１にて解析されたＡＰＩ情報を加えて、当該ＡＰＩ情報を区別できるよう、他の情報とＡＰＩ情報とが分離された状態で、ジャーナルキャッシュ空間４に登録する（ステップＳ６）。登録が終了すれば、ＤＢ更新部２５を起動する。
【００４２】
続いて、ＤＢ更新部２５では、各ＡＰプロセスのＡＰＩを実行してデータベースを更新する（ステップＳ７、データベース処理工程）。そして、更新が完了すると、プロセス制御部２２にて設定したプロセス管理表２２１、及び、ジャーナルキャッシュ空間４に登録したプロセス管理表２２１に、終了時刻２２７を登録する。なお、プロセス２は、プロセス１の終了時刻が登録されたされた時点で、データベースの更新処理が開始される。具体的には、プロセス１で、図４に示すように、更新対象である１２個のレコードに対して更新処理を実行し、その後、プロセス２で、プロセス１と一部が重なる更新対象である９個のレコードを削除する。
【００４３】
次に、図６のフローチャートを参照して、ユーザからトランザクション処理が完了したことを指示するＣＯＭＭＩＴ命令が実行された場合を説明する。まず、ＣＯＭＭＩＴ命令のＳＱＬ文の要求があると（ステップＳ１１）、ＡＰＩ実行部２３は、プロセス制御部２２にて管理されているプロセス管理表２２を確認し、同一のプロセス番号２２４のプロセス管理表があれば、ジャーナル書出部２６を起動する（ステップＳ１２）。
【００４４】
そして、ジャーナル書出部２６では、図３及び図４に示すように、上述したようにジャーナルキャッシュ空間４に登録したプロセスレコードを、ジャーナルファイル６に記憶するよう書き出す（ステップＳ１３、ジャーナル書出工程）。その後、ジャーナルファイル６に書き出しが完了すれば、該当するプロセスレコードを、ジャーナルキャッシュ空間４から削除し、また、プロセス管理表２２もプロセス情報３１から削除する。なお、図４に示すように、プロセス２がプロセス１よりも先にＣＯＭＭＩＴ要求した場合には、プロセス２の情報がジャーナルファイル６へ先に書き出される。
【００４５】
以上のように、本実施形態では、ＳＱＬのＡＰＩ情報が他の情報から区別された状態のジャーナルが、ジャーナルファイルに書き出される。すると、図４の例の場合には、プロセス１の更新対象はレコード件数が１２件、プロセス２の更新対象は９件であるが、ジャーナルファイルへの出力イメージはそれぞれ１件である。その結果、ジャーナル出力量を削減でき、データベースシステムの稼動の高速化を図ることができる。
【００４６】
なお、上記処理と平行して、任意のタイミングで、当該タイミングにおけるポイントのデータベースのバックアップ処理が実行されており、かかるバックアップデータは、バックアップ記憶部５に格納されている。
【００４７】
次に、図７を参照して、復旧時の動作について説明する。媒体障害やサーバダウンなどにより、バックアップからオンメモリデータベースを復旧することが必要になった場合（ステップＳ２１）、バックアップデータ５を元に、オンメモリＤＢを起動して、ジャーナル読込部２７を起動する。
【００４８】
ジャーナル読込部２７では、ジャーナルファイル６に記憶されたジャーナルを読み出して、各プロセスレコードに含まれるＡＰＩ情報を認識できるよう、他の情報と分離して表示する（ステップＳ２２、ジャーナル読出工程）。そして、ユーザに復旧ポイントを選択させ（ステップＳ２３）、選択された区間のジャーナル情報からＤＢ更新部２７を起動する。なお、ジャーナルファイルのデータが不要であれば、ジャーナルファイル削除部（図示せず）を起動する。
【００４９】
そして、ＤＢ更新部２７では、ジャーナルファイル上の開始時刻３２６の情報を元に、プロセスレコードに含まれるＡＰＩを再実行する（ステップＳ２４、復旧処理工程）。このとき、再実行は、各プロセスレコードに含まれる開始時刻の早い順に実行する。例えば、図４の例の場合には、ジャーナルファイル６への格納はプロセス２，１の順であったが、開始時国はプロセス１の方が早いため、プロセス１→２の順に、ＡＰＩを再実行する。これにより、適切に、オンメモリＤＢを任意の時点までの状態に戻すことができる。その後、ジャーナルファイル削除部が、ユーザが指定した開始時刻２３６と終了時刻２３７を元に、ユーザが指定した任意の時点のジャーナルを削除する。
【００５０】
以上により、復旧時に、まず蓄積されたジャーナルをユーザに出力するが、このときジャーナルにＡＰＩ情報が、他の情報と分離された状態で出力されるため、ジャーナルを参照する際におけるジャーナルの可読性が向上する。そして、ジャーナルに基づく復旧時には、ジャーナルを再度解析する必要は無く、ジャーナルに付加されているＡＰＩを実行すればよいため、復旧処理の高速化を図ることができる。
【産業上の利用可能性】
【００５１】
本発明は、メモリ上でデータベースを可動するオンメモリデータベースシステムを構成するコンピュータに適用でき、産業上の利用可能性を有する。
【図面の簡単な説明】
【００５２】
【図１】オンメモリデータベースシステムの構成を示すブロック図である。
【図２】オンメモリデータベースシステムで処理されるデータの一例を示す図である。
【図３】オンメモリデータベースシステムにおける処理例を示す図である。
【図４】オンメモリデータベースシステムにおける処理例を示す図である。
【図５】オンメモリデータベースの動作を示すフローチャートである。
【図６】オンメモリデータベースの動作を示すフローチャートである。
【図７】オンメモリデータベースの動作を示すフローチャートである。
【符号の説明】
【００５３】
１  オンメモリＤＢシステム
２  ＤＢ処理部
３  メモリ
４  ジャーナルキャッシュ空間
５  バックアップ
６  ジャーナルファイル
２１  ＳＱＬ解析部
２２  プロセス制御部
２３  ＡＰＩ実行部
２４  ジャーナル登録部
２５  ＤＢ登録部
２６  ジャーナル書出部
２７  ジャーナル読込部
【図１】
2009193284.tif 000003
【図２】
2009193284.tif 000004
【図３】
2009193284.tif 000005
【図４】
2009193284.tif 000006
【図５】
2009193284.tif 000007
【図６】
2009193284.tif 000008
【図７】
2009193284.tif 000009