JP6189488B1 - データベース管理装置、データベース管理方法、およびデータベース管理プログラム - Google Patents

データベース管理装置、データベース管理方法、およびデータベース管理プログラム Download PDF

Info

Publication number
JP6189488B1
JP6189488B1 JP2016126977A JP2016126977A JP6189488B1 JP 6189488 B1 JP6189488 B1 JP 6189488B1 JP 2016126977 A JP2016126977 A JP 2016126977A JP 2016126977 A JP2016126977 A JP 2016126977A JP 6189488 B1 JP6189488 B1 JP 6189488B1
Authority
JP
Japan
Prior art keywords
data
wal
write
management unit
client
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
JP2016126977A
Other languages
English (en)
Other versions
JP2018005299A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2016126977A priority Critical patent/JP6189488B1/ja
Priority to US15/622,717 priority patent/US20170371916A1/en
Application granted granted Critical
Publication of JP6189488B1 publication Critical patent/JP6189488B1/ja
Publication of JP2018005299A publication Critical patent/JP2018005299A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/2365Ensuring data consistency and integrity
    • 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/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Abstract

【課題】利便性を向上させることができるデータベース管理装置、データベース管理方法、およびデータベース管理プログラムを提供することである。【解決手段】データベース管理装置の第1の書込管理部は、クライアントから書き込みが指示されたデータを記憶部の第1の記憶領域に書き込む。第2の書込管理部は前記クライアントからの書き込み指示に対応したWALデータを、前記記憶部の第2の記憶領域における任意のアドレスに書き込む。判定部は前記トランザクション処理ごとに前記第2の記憶領域に前記WALデータを書き込むか否かを判定する。トランザクション管理部は前記判定部により前記WALデータの書き込みを行うと判定された場合に、前記第1および第2の書込管理部に前記データおよび前記WALデータを書き込ませ、前記判定部により前記WALデータの書き込みを行わないと判定された場合に前記第1の書込管理部に前記データを書き込ませる。【選択図】図1

Description

本発明の実施形態は、データベース管理装置、データベース管理方法、およびデータベース管理プログラムに関する。
データベースへのデータの書き込み処理において、WAL(Write Ahead Logging)と称される書き込み処理が行われている。WAL処理とは、ディスク上のテーブルやインデックスのファイルに対するデータの書き込みに先立って、WALファイルに更新内容を書き出す処理である。これにより、データベースシステムがダウンした場合に、WALファイルに基づいてデータを復旧させることができる。従来の技術では、データベース単位またはテーブル単位でWAL処理を行うか否かが決定されており、利便性が十分でなかった。
国際公開第2011/033635号
本発明が解決しようとする課題は、利便性を向上させることができるデータベース管理装置、データベース管理方法、およびデータベース管理プログラムを提供することである。
実施形態のデータベース管理装置は、第1の書込管理部と、第2の書込管理部と、判定部と、トランザクション管理部とを持つ。第1の書込管理部は、クライアントから書き込みが指示されたデータを、記憶部の第1の記憶領域における、前記クライアントの指示する論理アドレスに対応したアドレスに書き込む。第2の書込管理部は、前記クライアントからの書き込み指示に対応したWALデータを、前記記憶部の第2の記憶領域における任意のアドレスに書き込む。判定部は、前記クライアントから指示される情報に基づいて、前記書き込み指示に対応したトランザクション処理ごとに、前記第2の記憶領域に前記WALデータを書き込むか否かを判定する。トランザクション管理部は、前記クライアントからの指示に基づいて、前記判定部により前記WALデータの書き込みを行うと判定された場合に、前記第1の書込管理部に前記データを書き込ませるとともに、前記第2の書込管理部に前記WALデータを書き込ませ、前記判定部により前記WALデータの書き込みを行わないと判定された場合に、前記第1の書込管理部に前記データを書き込ませる。
第1の実施形態におけるデータベース管理装置の機能構成例を示す図。 第1の実施形態におけるデータベース管理装置のハードウェア構成例を示す図。 WALモードを用いたデータの書き込み例を示す図。 WALデータを用いたデータ復旧の様子を説明するための図。 第1の実施形態におけるWALモードの切り替え処理の一例を示すフローチャート。 第1の実施形態におけるトランザクション開始処理の一例を示すフローチャート。 第1の実施形態におけるWALデータの書き込み処理の一例を示すフローチャート。 第1の実施形態におけるテーブルファイルへの書き込み処理の一例を示すフローチャート。 第1の実施形態における復旧処理の一例を示すフローチャート。 第1の実施形態における書き込み処理の第1の実施例を説明するための図。 第1の実施形態における書き込み処理の第2の実施例を説明するための図。 サービス開始タイミングによる処理の流れを説明するための図。 第2の実施形態におけるデータベース管理装置の機能構成例を示す図。 トランザクション管理部32が有するWAL使用表の一例を示す図。 第2の実施形態におけるWALモードの切り替え処理の一例を示すフローチャート。 第2の実施形態におけるWALデータの書き込み処理の一例を示すフローチャート。 第2の実施形態における書き込み処理の第1の実施例を説明するための図。 第2の実施形態における書き込み処理の第2の実施例を説明するための図。
以下、実施形態のデータベース管理装置、データベース管理方法、およびデータベース管理プログラムを、図面を参照して説明する。
(第1の実施形態)
図1は、第1の実施形態におけるデータベース管理装置の機能構成例を示す図である。図1に示すデータベース管理装置10は、フロントエンド部(判定部)11と、トランザクション管理部12と、テーブル管理部(第1の書込管理部)13と、WAL管理部(第2の書込管理部)14と、テーブルファイル(第1の記憶領域)15と、WALファイル(第2の記憶領域)16とを有する。これらの各機能部のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)等のハードウェアで実現されてもよい。また、データベース管理装置10は、例えばDBMS(DataBase Management System)等の機能を有する。また、テーブル管理部13およびWAL管理部14は、揮発性メモリを有する。また、テーブルファイル15およびWALファイル16は、不揮発性メモリを有する。
また、図1の例では、データベース管理装置10を利用するクライアント20として、2つのクライアント(クライアント20−1,20−2)を示しているが、クライアントの数については、これに限定されるものではない。クライアント20は、データベース管理装置10の利用者(ユーザ)によって使用される情報処理装置であってもよいし、さらに別の装置から受信したコマンド等に基づいて、データベース管理装置10に各種コマンドを送信する装置であってもよい。また、クライアント20は、内部において情報処理した結果に基づいて、各種コマンドを生成してデータベース管理装置10に送信する装置であってもよい。
クライアント20は、データベース管理装置10に対してデータの書き込みを指示するライトコマンド、データの読み出しを指示するリードコマンド、データの削除を指示する削除コマンド等を、フロントエンド部11に送信する。また、クライアント20は、WALファイル16に対してデータの書き込みを行うか否かを切り替える切替要求をフロントエンド部11に送信する。なお、データベース管理装置10とクライアント20とは、例えばインターネットやLAN(Local Area Network)等に代表される通信ネットワークにより、データの送受信が可能な状態で接続されている。通信ネットワークは、有線でも無線でもよく、またこれらの組み合わせであってもよい。
フロントエンド部11は、クライアント20から送信された指示に基づいて、トランザクション処理の実行や管理を行うトランザクション管理部12を生成したり、トランザクション処理ごとに実行されるWALモード(書き込みモード)の切り替えの可否を判定する。ここで、「トランザクション処理」とは、クライアント20から受信した複数のライトコマンド(例えば、データの書き込み処理を実行するために指示されたコマンド)を、一連の処理として実行する処理である。また、「一連の処理」とは、ひとまとまりの処理である。「一連の処理」は、複数のライトコマンドを含む情報を一括して受信してもよく、一連の処理であることを示す情報(例えば、トランザクションの識別情報)が共通して付された複数のライトコマンドを受信して実行することであってもよい。なお、第1の実施形態におけるトランザクションとは、例えばデータベース(例えば、図1に示すテーブルファイル15やWALファイル16等)に対する操作命令を、ACID(Atomicity:原子性、Consistency:一貫性、Isolation:隔離性、及びDurability:耐久性)特性を持つようにひとまとめにしたものである。また、トランザクション管理部12の生成とは、例えばトランザクションごとに、処理を実行するモジュール等を起動させることをいう。
また、フロントエンド部11は、クライアント20(図1の例では、クライアント20−1,20−2)から指示されたトランザクション処理ごとに、WALの使用フラグを管理する。例えば、フロントエンド部11は、クライアント20からのWALモード切替要求を受け付ける。WALモード切替要求とは、例えばクライアント20から指示される情報に基づいて、トランザクション処理ごとにWALファイル16にWALデータを書き込むか否かを示す情報である。フロントエンド部11は、WALを使用する要求を受信した場合には、WALを使用した書き込み処理(ライト処理)をトランザクション管理部12に実行させ、WALを使用しない要求を受信した場合には、WALを使用せずに書き込み処理をトランザクション管理部12に実行させる。
例えば、図1に示すデータベース管理装置10は、クライアント20からのWALモード切替要求がない場合、初期設定として全てのトランザクションに対して、WALを使用した書き込み処理を実行するように設定してもよい。WALを使用しないトランザクション処理を実行する場合、クライアント20は、WALモード切替要求をフロントエンド部11に送信する。これにより、フロントエンド部11は、切替要求を受け付けた場合にWAL使用フラグを「使用しない」に切り替え、対応する書き込み処理を実行するようにトランザクション管理部12に指示する。
なお、上述した初期設定は、これに限定されるものではなく、例えばWALを使用しない書き込み処理を行うように初期設定されてもよい。また、フロントエンド部11は、トランザクション管理部12により対応するトランザクション処理が実行された後、自動的にWAL使用フラグを元の「使用する」に切り替える制御を行ってもよく、「使用しない」に切り替えたままの設定にしてもよい。なお、WAL使用フラグは、WALモードを「使用する/使用しない」の情報に限定されず、「TRUE/FALSE」または「1/0」等の識別情報であってもよい。
また、フロントエンド部11は、クライアント20から受け付けた切替要求に対し、すでにトランザクションを実行中か否かにより、切替要求を許可するか否かを判定する。フロントエンド部11は、判定結果に基づく切り替え可否に関する情報をクライアント20に出力する。
また、フロントエンド部11は、クライアント20からのオブジェクト処理の実行指示ごとにフロントエンド部11を生成してもよい。フロントエンド部11の生成とは、例えばフロントエンド部11における処理を実行するモジュールを起動することである。この場合、フロントエンド部11は、起動したモジュールが上述した各種処理を終了した後、その起動したモジュールを停止してもよい。
図1では、クライアント20−1が1つのオブジェクト処理の実行指示を行い、クライアント20−2が2つのオブジェクト処理の実行指示を行った例を示している。この場合、図1に示すように、3つのフロントエンド部11a〜11cが生成され、それぞれのトランザクションに対するWALモードの使用の有無を管理する。また、フロントエンド部11は、WAL使用フラグとして、「使用する」または「使用しない」の何れかの情報を設定し、その情報を対象のトランザクション管理部12に出力する。
トランザクション管理部12は、フロントエンド部11からの指示により、クライアント20−1、20−2から指示されるトランザクションごとにトランザクション管理部12を生成する。また、生成したトランザクション管理部12は、それぞれに設定された書き込み条件で、対応するトランザクションを実行する。図1の例では、3つのトランザクション管理部12a〜12cが生成されている。トランザクション管理部12a〜12cは、例えばモジュールとして起動されたものでもよく、その場合には、トランザクション処理の実行後に、モジュールを停止してもよい。
また、トランザクション管理部12は、処理結果のデータ(例えば、書き込みが指示されたデータ)やWALデータを記憶部(テーブルファイル15、WALファイル16)に記憶する。「書き込みが指示されたデータ」とは、例えばデータの追加、修正、削除等により更新されるデータ等である。また、「WALデータ」とは、例えばデータベース管理装置10のシステムがダウンした場合に、ダウン直前のデータまで復旧させるための情報であり、例えば書き込みが指示されたデータや処理の実行に関するログ情報等を含む。
例えば、フロントエンド部11から得られるWAL使用フラグが「使用する」である場合、トランザクション管理部12は、処理結果のデータをテーブル管理部13に出力するとともに、WALデータをWAL管理部14に出力する。また、フロントエンド部11から得られるWAL使用フラグが「使用しない」である場合、トランザクション管理部12は、処理データのデータをテーブル管理部13に出力する。
テーブル管理部13は、クライアント20から書き込みが指示されたデータを、テーブルファイル15における、クライアント20の指示する論理アドレスに対応したアドレスに書き込む。テーブル管理部13は、例えばテーブル共有キャッシュメモリを有する。テーブル管理部13は、トランザクション管理部12から得られるデータを一時的に記憶しておき、チェックポイントごとに繰り返し、記憶したデータを用いてテーブルファイル15を更新する。なお、チェックポイントは、例えば時間を基準にした周期でもよく、書き込んだデータ量が閾値を超えたタイミングでもよい。また、WALを使用するトランザクションにおいて、チェックポイントは、テーブルファイル15との差分情報をWALファイル16に記憶していく起点となるポイントである。チェックポイントでテーブルファイル15の更新が完了すると、WALファイル16に記憶されたデータは、削除されてもよく、また削除されなくてもよい。
WAL管理部14は、クライアント20からの書き込み指示に対応したWALデータを、WALファイル16における任意のアドレスに書き込む。WAL管理部14は、例えばWALデータを一時的に記憶しておくバッファ(WALバッファ)を有する。WAL管理部14は、例えばトランザクション管理部12からデータが送られてきたタイミングで、WALファイル16にWALデータを記憶する。
ここで、上述したテーブル管理部13およびWAL管理部14は、例えばデータの書き込み時に、データクラッシュや電源断等のエラー発生によりシステムがダウンした場合、データの復旧処理を実行する。例えば、WAL管理部14は、テーブル管理部13からの要求により、WALファイル16に記憶されたデータ等をテーブル管理部13に出力する。テーブル管理部13は、WAL管理部14から得られたWALデータに基づいて、データの復旧を行い、テーブルファイル15にデータを記憶する。これにより、WALファイル16に書き込まれていたシステムダウン直前のデータまで復旧することができる。
テーブルファイル15およびWALファイル16は、データベースの一例である。データベースとは、例えば文字、数値、画像、映像、その他の情報の集合物であり、それらの情報を検索できるように体系的に構成したものである。なお、テーブルファイル15およびWALファイル16は、記憶部として一体に形成されていてもよく、またクラウドデータベースのようにデータベース管理装置10とは別体の記憶装置として設けられてもよい。
テーブルファイル15は、データを読み出しや書き込みを行う。テーブルファイル15は、1又は複数のテーブルファイルを有する。図1の例では、2つのテーブルファイルT1、T2を有している。各テーブルファイルは、メモリ上にある論理アドレスと物理アドレスとで管理されたランダムアクセス方式のデータベースである。テーブルファイル15は、トランザクション管理部12から送られてきたデータに論理アドレスのアドレス情報を割り当て、そのアドレス情報に対応する物理アドレスのメモリ空間上にデータを記憶する。また、テーブルファイル15は、データの読み出し命令を受け付けた場合には、その論理アドレス上からそのデータの記憶場所を検索し、抽出されたアドレス情報先に記憶されたデータを取得する。テーブルファイル15は、ランダムアクセス方式であるため、迅速なデータの読み出しが可能である。
WALファイル16は、シーケンシャルアクセス方式のデータベースである。WALファイル16は、1又は複数のWALファイルを有する。図1の例では、2つのWALファイルL1、L2を有している。WALファイル16は、トランザクション管理部12から送られてきたWALデータをシーケンシャルに書き込む。「シーケンシャルに書き込む」とは、例えばWALファイル16の物理アドレスのアドレス順に、データを順次書き込むことである。また、WALファイル16に記憶されたデータは、上述したチェックポイントのタイミングでテーブルファイル15への書き込みが終了した後、または書き込みが終了してから所定の時間経過後に削除されてもよく、また削除されなくてもよい。
図2は、第1の実施形態におけるデータベース管理装置のハードウェア構成例を示す図である。データベース管理装置10は、例えば、CPU(Central Processing Unit)10Aと、RAM(Random Access Memory)10Bと、不揮発性記憶装置10Cと、可搬型記憶媒体ドライブ装置10Dと、入出力装置10Eと、通信インターフェース10Fとを備える。データベース管理装置10は、CPU10Aに代えて、任意の形態のプロセッサを備えてもよいし、図2に示した各構成要素のうち一部を省略してもよい。
CPU10Aは、不揮発性記憶装置10Cに格納され、または可搬型記憶媒体ドライブ装置10Dに装着された可搬型記憶媒体に格納されたプログラムをRAM10Bに展開して実行することで、以下に説明する種々の処理を行う。なお、データベース管理装置10は、CPUに代えて、他の種類のプロセッサを備えてもよい。RAM10Bは、揮発性メモリの一例であり、CPU10Aによってワーキングエリアとして使用される。不揮発性記憶装置10Cは、例えば、HDD(Hard Disk Drive)やフラッシュメモリ、ROM(Read Only Memory)等である。可搬型記憶媒体ドライブ装置10Dには、DVD(Digital Versatile Disc)やCD(Compact Disc)、SDカード等の可搬型記憶媒体が装着される。入出力装置10Eは、例えば、キーボードやマウス、タッチパネル、表示装置等を含む。通信インターフェース10Fは、データベース管理装置10が通信ネットワークを介して、他装置と通信を行う場合のインターフェースとして機能する。データベース管理装置10のコンピュータに対して、図2に示すようなハードウェアと、プログラム等からなるソフトウェアとを協働させることで、本実施形態における各種処理を実現させることができる。
図3は、WALモードを用いたデータの書き込み例を示す図である。図3の例では、上述したデータベース管理装置10のうち、トランザクション管理部12と、テーブル管理部13と、WAL管理部14と、テーブルファイル15と、WALファイル16とを示している。また、図3の例では、複数の書き込み要求(ライト要求)を含むトランザクション処理において、時間経過に基づくデータ更新の流れを示している。
図3の処理では、書き込み要求により、トランザクション管理部12がテーブル管理部13にデータを書き込む処理(図3に示す(1))、トランザクション管理部12がWAL管理部14にWALデータを書き込む処理(図3に示す(2))、およびWAL管理部14が上記(2)の処理によりWALバッファに書き込まれたデータをWALファイル16に書き込む処理を、一連の処理として実行している。上述した複数の書き込み要求に基づく書き込み処理が完了したことを「コミット(COMMIT)」と称する。
また、WALモードを用いたデータの更新では、図3に示すように、時間の経過とともに複数のトランザクション処理が実行されるとともに、一定または任意の時間ごとに設けられたチェックポイントで、テーブル管理部13のテーブル共有キャッシュに記憶されたデータをテーブルファイル15に書き込む処理が実行される。つまり、WALモードでは、トランザクション管理部12が、データを定期的にWALファイル16に書き込み続け、チェックポイントの到達時にテーブルファイル15を更新するとともに、WALファイル16のデータを削除する。
ここで、図4は、WALデータを用いたデータ復旧の様子を説明するための図である。図4の例では、上述した図3に示すトランザクション処理においてエラー(例えば、データクラッシュや電源断)が発生した場合のデータ復旧の様子を説明するものである。例えば、WALモードによる書き込み処理を実行している場合には、図4に示すようにトランザクションの実行中にエラーが発生しても、最後に完了したCOMMIT時点のデータがWALファイル16に記憶されている。そのため、データベース管理装置10は、WALファイル16のデータを利用して、チェックポイント時点よりも先のエラー発生直前の状態まで、データを復旧させることができる。この手法は、一般にロールフォワード手法と呼ばれる。
ここで、データベースシステムにおいて、WALモードの使用を選択できる既存の機能として、例えば「PostgreSQL」、「SQLite」等がある。「PostgreSQL」の場合には、WALを使用しないUNLOGGEDテーブルを作成することができるが、テーブル作成時にWALモードを使用するか否かを指定する必要がある。また、「SQLite」の場合、例えば“PRAGMA journal_mode = WAL”コマンドで、データベース全体でのWALモードの切り替えを行うことができる。上述した例では、データの書き込み時にWALモードを使用しない「UNLOGGED」と、WALモードを使用する「LOGGED」との切り替えは、データベース単位またはテーブル単位での選択となる。そのため、従来では、データベースに接続しているクライアント全てで、モードが共有されてしまうため、利便性が十分ではなかった。
そこで、第1の実施形態では、上述したWALの使用または不使用をトランザクション単位で制御できるようにすることで、例えばデータの重要度等によるWALモードの使い分けができたり、並列してトランザクションを実行できるため、トランザクション処理を高速化することができる。したがって、データベースの利便性を向上させることができる。
図5は、第1の実施形態におけるWALモードの切り替え処理の一例を示すフローチャートである。図5の例において、フロントエンド部11は、クライアント20からのWALモードの切り替え要求を受信する(ステップS100)。次に、フロントエンド部11は、トランザクション管理部12を参照し、クライアント20が指示したトランザクションを実行中か否か判定する(ステップS102)。クライアント20が指示したトランザクションを実行中の場合、フロントエンド部11は、WALモードの切り替えを行わずに、切り替えができない旨を示す情報をクライアントに送信する(ステップS104)。これにより、1つのトランザクション処理の途中でWALモードの切り替えを行わないようにすることができる。
また、クライアント20が指示したトランザクションを実行中でない場合、フロントエンド部11は、WALモードの使用フラグをWALモード切替要求に含まれる値に設定し(ステップS106)、設定が成功したことを示す情報をクライアント20に送信する(ステップS108)。これにより、上述した本フローチャートの処理を終了する。
図6は、第1の実施形態におけるトランザクション開始処理の一例を示すフローチャートである。図6の例において、フロントエンド部11は、クライアント20からトランザクション処理の開始要求を受信する(ステップS200)。次に、フロントエンド部11は、クライアント20が指示したトランザクションを実行中か否かを判定する(ステップS202)。
クライアント20が指示したトランザクションを実行中の場合、フロントエンド部11は、トランザクション処理が実行できない旨を示す情報をクライアント20に送信する(ステップS204)。
また、クライアント20が指示したトランザクションを実行中でない場合、フロントエンド部11は、WAL使用フラグに基づいてトランザクション管理部12を生成し(ステップS206)、トランザクション管理部12の生成が成功したことを示す情報をクライアント20に送信する(ステップS208)。これにより、上述した本フローチャートの処理を終了する。
図7は、第1の実施形態におけるWALデータの書き込み処理の一例を示すフローチャートである。図7の例において、トランザクション管理部12は、フロントエンド部11からの指示に基づいてトランザクション処理を実行する(ステップS300)。このとき、トランザクション管理部12は、フロントエンド部11により指示されたWAL使用フラグが「使用する」であるか否かを判定する(ステップS302)。
WAL使用フラグが「使用する」に設定されている場合、トランザクション管理部12は、WAL管理部14に更新内容を示すWALデータを出力し、出力したWALデータを書き込むように、WAL管理部14に通知する(ステップS304)。次に、トランザクション管理部12は、書き込み指示されたデータをテーブル管理部13に出力する(ステップS306)。なお、上述したステップS302において、WAL使用フラグが「使用しない」である場合、トランザクション管理部12は、WAL管理部14へWALデータを出力したり、WALデータを書き込む通知を行わずに、書き込み指示されたデータをテーブル管理部13に出力する。
次に、上述したチェックポイント時におけるテーブルファイル15へのデータの書き込み処理について、図を用いて説明する。図8は、第1の実施形態におけるテーブルファイルへの書き込み処理の一例を示すフローチャートである。図8の例において、テーブル管理部13は、少なくとも1つのクライアント20がトランザクションを実行中か否かを判定する(ステップS400)。トランザクションを実行中である場合、テーブル管理部13は、実行中のトランザクションに対するCOMMITを禁止する(ステップS402)。ここで、「COMMITを禁止する」とは、例えば現在処理中のトランザクションの結果を確定することを禁止することである。
上述したステップS402の処理後、または少なくとも1つのクライアントがトランザクションを実行中でない場合、テーブル管理部13は、テーブル共有キャッシュに記憶されたデータをテーブルファイル15に書き込む(ステップS404)。次に、WAL管理部14は、テーブルファイル15への書き込み完了後に、テーブル管理部13からの指示等により、WALファイル16に記憶されたデータ(WALデータ)を削除する(ステップS406)。なお、削除するデータは、テーブルファイル15に書き込まれたデータに対応するWALデータである。これにより、WALファイル16内に不要なデータが記憶され続けることを防止することができる。
次に、トランザクション管理部12は、上述したステップS402の処理において、実行中のトランザクションに対するCOMMITを禁止している場合に、実行中のトランザクションのCOMMITを許可する(ステップS408)。これにより、本フローチャートの処理を終了する。
次に、データベースに対する障害発生時におけるデータベース管理装置10のデータ復旧処理について、図を用いて説明する。図9は、第1の実施形態における復旧処理の一例を示すフローチャートである。図9の例において、WAL管理部14は、変数Nに初期値1を設定(N=1)し(ステップS500)、WALファイル16のトランザクションエントリN番目を選択する(ステップS502)。ここで、トランザクションエントリとは、1回のトランザクションで更新される1又は複数のレコードである。トランザクションエントリは、WALファイル16に記憶されるWALデータに含まれ、1つのヘッダに対して1または複数の更新レコードが関連付けられたデータである。
次に、WAL管理部14は、トランザクションエントリに含まれる更新レコードをテーブル管理部13に出力し(ステップS504)、更新レコードをテーブル管理部13のキャッシュ(テーブル共有キャッシュ)に記憶させる(ステップS506)。
次に、WAL管理部14は、WALファイル16の全てのトランザクションエントリを処理したか否かを判定する(ステップS508)。全てのトランザクションエントリを処理していない場合、WAL管理部14は、変数Nを1増加(N=N+1)し(ステップS510)、ステップS502の処理に戻る。また、WALファイル16の全てのトランザクションエントリを処理した場合、本フローチャートの処理を終了する。
次に、第1の実施形態におけるデータ書き込み処理の第1の実施例について、図を用いて説明する。図10は、第1の実施形態における書き込み処理の第1の実施例を説明するための図である。第1の実施例では、データベース(テーブルファイル15)に記憶するデータの重要度に応じて、モードを使い分ける。
図10の例では、クライアント20−1〜20−3を有する。クライアント20−1〜20−3は、それぞれが所定の情報を検知するセンサを含む。クライアント20−1〜20−3は、各センサから得られる検知結果等からデータベースとして蓄積可能なセンサデータを生成し、生成したセンサデータをデータベース管理装置10に出力する。
ここで、第1の実施例では、センサデータを大量にテーブルファイル15に記憶する場合に、そのデータの重要度に応じて、WALを使用するか否かを使い分ける。例えば、重要なデータは、WALを使用してデータの書き込みを行い、それ以外のデータは、WALを使用せずにデータの書き込みを行う。これにより、重要なデータを保証することができ、全てのデータの書き込みにWALを使用する場合に比べて、書き込みのスループットを高めることができる。
例えば、図10に示すクライアント20−1、20−2から得られるデータの重要度が低く、クライアント20−3から得られるデータの重要度が高いものとする。この場合、クライアント20−1、20−2は、WALを使用しないWALモード切替要求をデータベース管理装置10に送信する。また、クライアント20−3は、WALを使用するWALモード切替要求をデータベース管理装置10に送信する。なお、WALを使用しないモードは、上述したUNLOGGEDモードに対応し、WALを使用するモードは、上述したLOGGEDモードに対応する。
なお、WALモードの使い分けについては、上述した例に限定されるものではなく、例えばセンサから検知結果を取得する時間間隔に応じて重要度を設定し、設定した重要度に応じてWALモードの切り替えを行ってもよい。例えば、クライアント20は、センサの検知結果を毎秒取得する場合には、そのセンサデータをUNLOGGEDモードで書き込ませるようにモードの切り替えを行う。また、クライアント20は、センサの検知結果を5秒ごとに取得する場合には、そのセンサデータをLOGGEDモードで書き込ませるようにモードの切り替えを行う。
また、図10の例において、データベース管理装置10は、各クライアント20−1〜20−3からのトランザクション処理に対応したフロントエンド部11a〜11cを有する。各フロントエンド部11a〜11cは、トランザクションに対応するトランザクション管理部12a〜12cを生成し、生成したトランザクション管理部12に対するWALデータの書き込みの有無をWAL使用フラグにより管理する。図10の例では、トランザクション管理部12cは、クライアント20−3から書き込み指示のあった重要度の高いセンサデータのWALデータをWAL管理部14に出力するとともに、書き込む対象のセンサデータをテーブル管理部13に出力する。トランザクション管理部12a、12bは、クライアント20−1,20−2から書き込み指示があった重要度の低い(重要度が高くない)センサデータをテーブル管理部13に出力する。テーブル管理部13は、所定周期(チェックポイントの周期)でセンサデータをテーブルファイル15に書き込む。
次に、第1の実施形態におけるデータ書き込み処理の第2の実施例について、図を用いて説明する。図11は、第1の実施形態における書き込み処理の第2の実施例を説明するための図である。第2の実施例では、システム復旧におけるバックアップデータのインポート中に、サービス(例えば、データ収集サービス)を開始する場合を示している。図11の例では、バックアップデータインポートプロセスを有するクライアント20−1と、サービスプロセスを有するクライアント20−2とを有する。各プロセスは、モジュールやプログラム等により実行される。各クライアント20−1、20−2は、各プロセスで実行される書き込み処理のトランザクションに応じてWALモードの設定(切替要求)を行う。また、図11に示すデータベース管理装置10は、各トランザクションに対応させたフロントエンド部11a、11bと、トランザクション管理部12a、12bとを有する。トランザクション管理部12は、クライアント20−1、20−2からそれぞれ指示されたWAL使用フラグに基づいて、バックアップデータのテーブルファイル15へのインポートおよびサービスの開始を行う。
ここで、図12は、サービス開始タイミングによる処理の流れを説明するための図である。なお、図12(A)および図12(B)は、従来手法によるサービス開始タイミングによる処理の流れを示し、図12(C)は、第2の実施例におけるサービス開始タイミングによる処理の流れを示している。
例えば、従来手法において、バックアップデータインポートおよびサービスの各プロセスにおけるトランザクション処理が、ともにLOGGEDモード(WALを使用するモード)である場合、バックアップデータインポートプロセスとサービスプロセスとを同時に開始すると、バックアップデータのデータ量が膨大であるため、WALデータの書き込み処理の影響で、図12(A)に示すようにインポートの完了が遅くなる。
また、従来手法において、バックアップデータインポートをUNLOGGEDモード(WALを使用しないモード)処理し、サービスプロセスにおけるトランザクション処理をLOGGEDモードで行う場合には、データベースごとまたはテーブルごとにモードの切り替えが必要であるため、図12(B)に示すようにバックアップデータのインポートが完了した時点でサービスプロセスを実行しなければならない。そのため、サービスの開始が遅くなる。
一方、第2の実施例では、トランザクションごとにLOGGEDモードまたはUNLOGGEDモードを切り替えることができるため、図12(C)に示すように、UNLOGGEDモードでバックアップデータのインポートを行いつつ、そのトランザクションに並列させてLOGGEDモードでサービスを開始することができる。そのため、第2の実施例によれば、早いタイミングでサービスを開始することができ、またサービス開始後のデータも保証されるため、電源断等の障害が発生しても直前のデータまで復旧させることができる。
上述したように、第1の実施形態では、クライアント20から指示されるトランザクションごとにWALを使用するか否かを設定することで、WALの使用または不使用をトランザクション単位で制御することができるため、利便性を向上させることができる。また、第1の実施形態によれば、例えばデータの重要度によるWALモードの使い分けや、データベースへの書き込み処理のトランザクションを高速化することができる。また、バックアップデータのインポート中のサービス開始が可能になるため、ダウンタイムを削減することができる。
(第2の実施形態)
次に、データベース管理装置の第2の実施形態について、図を用いて説明する。図13は、第2の実施形態におけるデータベース管理装置の機能構成例を示す図である。なお、図13に示すデータベース管理装置30において、上述した第1の実施形態におけるデータベース管理装置10と同様の処理を行う構成部分には、同様の符号を付するものとし、ここでの具体的な説明は省略する。
図13に示すデータベース管理装置30は、フロントエンド部(判定部)31と、トランザクション管理部32と、テーブル管理部13と、WAL管理部14と、テーブルファイル15と、WALファイル16とを有する。また、図13の例では、データベース管理装置30を利用するクライアント20として、2つのクライアント(クライアント20−1,20−2)を示しているが、クライアントの数についてこれに限定されるものではない。また、図13の例では、クライアント20−1から1つのトランザクションによる書き込み処理が実行され、クライアント20−2から2つのトランザクションによる書き込み処理が実行される。図13の例では、それぞれのトランザクションを実行するためのフロントエンド部31a〜31cを有するとともに、各フロントエンド部31a〜31cに対応して生成されたトランザクション管理部32a〜32cを有する。
第2の実施形態では、クライアント20からデータベース管理装置30に送信されるWALモード切替要求として、各トランザクションにおけるデータの書き込み先のテーブルファイルごとにWALを使用するか否かを設定する。トランザクション管理部32a〜32cは、それぞれのトランザクション処理でデータの書き込みが行われる対象のテーブルファイルごとに、WALを使用するか否かを示す情報が記憶されたWAL使用表W1〜W3を有する。
図14は、トランザクション管理部32が有するWAL使用表の一例を示す図である。図14(A)は、図13に示すトランザクション管理部32a、32bが有するWAL使用表W1、W2を示し、図14(B)は、図13に示すトランザクション管理部32cが有するWAL使用表W3を示している。WAL使用表の項目は、例えば「テーブルファイル名」、および「WAL使用フラグ」等である。WAL使用表には、各トランザクションにおける書き込み対象のテーブルファイルごとに、WALモードの使用/不使用の情報が設定されている。
ここで、第2の実施形態では、WAL使用表の初期設定として、WALを使用した書き込み処理を行うものとする。したがって、WAL使用表W1〜W3は、クライアント20からWALモード切替要求が送信されていない場合、図14(A)に示すように、各テーブルファイルT1、T2のWAL使用フラグが「使用する」に設定される。なお、初期設定は、これに限定されるものではなく、例えばWALを使用しない書き込み処理を行うように初期設定されてもよい。
フロントエンド部31は、クライアント20からWALモード切替要求を受け付けた場合、トランザクション管理部32に対してWAL使用表の更新指示を行う。トランザクション管理部32は、フロントエンド部31からの指示に基づいて、WALモード切替要求に基づくWAL使用表の更新を行い、更新された使用表を用いてデータの書き込みを含むトランザクション処理を実行する。
図13の例において、クライアント20−2は、実行するトランザクションで書き込みを行う対象のテーブル(テーブルファイル)ごとに、WALモードの切替要求を行う。例えば、トランザクション管理部32cが管理するトランザクションにおいて、テーブルファイルT1、T2にデータの書き込みを行う場合、クライアント20−2は、テーブルファイルT1に対してWALを使用したデータの書き込みを行い、テーブルファイルT2に対してWALを使用しないデータの書き込みを行うように切替要求を出力する。なお、クライアント20は、実行指示するトランザクションごとに、どのテーブルファイル15を使用するかに関する情報を有している。そのため、クライアント20は、各トランザクションで使用するテーブルファイルごとに、WALを使用するか否かを設定することができる。
なお、上述の例では、書き込み処理で使用するテーブルファイルごとに、WALモードを使用するか否かを設定したが、例えばWALモードを切り替えるテーブルファイル(例えば、図13に示すテーブルファイルT2)のみの切替要求を出力してもよい。トランザクション管理部32cは、指示された切替要求に基づいて、WAL使用表W3を、図14(B)に示す内容に更新する。
これにより、トランザクション管理部32aおよびトランザクション管理部32bは、図14(A)に示すWAL使用表の情報に基づき、それぞれで書き込みデータをテーブル管理部13に出力し、WALデータをWAL管理部14に出力する。また、トランザクション管理部32cは、実行するトランザクションにおいて、テーブルファイルT1、T2にデータを書き込む場合、更新されたWAL使用表W3に基づく書き込み処理を行う。具体的には、トランザクション管理部32cは、テーブルファイルT1にデータの書き込む場合に、テーブル管理部13に書き込みデータを出力するとともに、WAL管理部14にWALデータを出力し、出力したWALデータをWALファイル16に書き込ませる。また、トランザクション管理部32cは、テーブルファイルT2にデータの書き込む場合に、テーブル管理部13にのみ、書き込みデータを出力する。
図15は、第2の実施形態におけるWALモードの切り替え処理の一例を示すフローチャートである。図15の例において、フロントエンド部31は、クライアント20からのWALモード切替要求を受信し(ステップS600)、そのクライアントが指示したトランザクションを実行中か否かを判定する(ステップS602)。クライアント20が指示したトランザクションを実行中の場合、フロントエンド部31は、実行中のトランザクションについて切り替えができない旨を示す情報をクライアント20に出力する(ステップS604)。
また、クライアント20が指示したトランザクションを実行中でない場合、トランザクション管理部32は、受信した切替要求に含まれるテーブルファイル名のテーブルを選択し(ステップS606)、WAL使用表に記憶された同一のテーブルのWAL使用フラグに、要求のあったフラグを書き込む(ステップS608)。
次に、フロントエンド部31は、切り替えが成功したことを示す情報をクライアント20に送信する(ステップS610)。これにより、本フローチャートの処理を終了する。
図16は、第2の実施形態におけるWALデータの書き込み処理の一例を示すフローチャートである。図16の例において、トランザクション管理部32は、変数Nに初期値1を設定(N=1)し(ステップS700)、トランザクションで更新したテーブルからN番目のテーブルを選択する(ステップS702)。
次に、トランザクション管理部32は、WAL使用表から、選択したテーブルに対応するWAL使用フラグを取得し(ステップS704)、取得した使用フラグから、選択したテーブルのWAL使用フラグが「使用する」であるか否かを判定する(ステップS706)。
WAL使用フラグが「使用する」に設定されている場合、トランザクション管理部32は、選択したテーブルに対応する更新内容を示すWALデータを出力し、出力したWALデータを書き込むように、WAL管理部14に通知する(ステップS708)。ステップS708の処理後、またはWAL使用フラグが「使用する」に設定されていない場合、トランザクション管理部32は、選択したテーブルのデータをテーブル管理部13に出力する(ステップS710)。
次に、トランザクション管理部32は、トランザクションで更新した全てのテーブルを処理したか否かを判定する(ステップS712)。全てのテーブルを処理していない場合、変数Nを1増加(N=N+1)し(ステップS714)、ステップS702の処理に戻る。また、全てのテーブルを処理した場合、本フローチャートの処理を終了する。
なお、第2の実施形態におけるチェックポイント時のテーブル管理部13におけるテーブルファイル15への書き込み処理、および、障害発生時におけるデータ復旧処理については、上述した第1の実施形態と同様の処理を行うため、ここでの具体的な説明は省略する。
次に、第2の実施形態における書き込み処理の第1の実施例について、図を用いて説明する。図17は、第2の実施形態における書き込み処理の第1の実施例を説明するための図である。第1の実施例では、データベース(テーブルファイル15)に記憶するデータの重要度に応じて、モードを使い分ける。
図17に示す第1の実施例では、上述した図10と同様に、クライアント20−1〜20−3を有し、クライアント20−1〜20−3のそれぞれが所定の情報を検知するセンサを含む。クライアント20−1〜20−3は、各センサから得られるセンサデータをデータベース管理装置30に出力する。
ここで、第1の実施例では、センサデータを大量にテーブルファイル15に記憶する場合に、そのデータの重要度に応じて、各トランザクションで使用するテーブルファイルごとに、WALを使用するか否かを使い分ける。例えば、重要なデータは、WALを使用してデータの書き込みを行い、それ以外のデータは、WALを使用せずにデータの書き込みを行う。
また、図17の例において、データベース管理装置30は、各クライアント20−1〜20−3からのトランザクション処理に対応したフロントエンド部31a〜31cを有する。各フロントエンド部31a〜31cは、トランザクションに対応するトランザクション管理部32a〜32cを生成し、生成したトランザクション管理部32に対するWALデータの書き込みの有無をWAL使用フラグにより管理する。図17の例では、トランザクション管理部32cは、クライアント20−3から書き込み指示のあった重要度の高いセンサデータのWALデータをWAL管理部14に出力するとともに、書き込む対象のセンサデータをテーブル管理部13に出力する。トランザクション管理部32a、32bは、クライアント20−1,20−2から書き込み指示があった重要度の低い(重要度が高くない)センサデータをテーブル管理部13に出力する。テーブル管理部13は、所定周期(チェックポイントの周期)でセンサデータをテーブルファイル15に書き込む。この場合、図17に示すように、テーブルファイル(センサデータ)15には、クライアント20−1〜20−3のそれぞれからのセンサデータが各テーブルとして記憶される。このとき、クライアント20−3からのセンサデータのみがWALデータによりデータ保証されることになる。これにより、重要なデータを保証することができ、全てのデータの書き込みにWALモードを使用する場合に比べて、書き込みのスループットを高めることができる。
次に、第2の実施形態におけるデータ書き込み処理の第2の実施例について、図を用いて説明する。図18は、第2の実施形態における書き込み処理の第2の実施例を説明するための図である。第2の実施例では、上述した図11と同様に、第2の実施例では、システム復旧におけるバックアップデータのインポート中に、サービスを開始する場合を示している。図18の例では、バックアップデータインポートプロセスを有するクライアント20−1と、サービスプロセスを有するクライアント20−2とを有する。各クライアント20−1、20−2は、各プロセスで実行される書き込み処理のトランザクションに応じてWALモードの設定(切替要求)を行う。
また、図18に示すデータベース管理装置30は、各トランザクションに対応させたフロントエンド部31a、31bと、トランザクション管理部32a、32bとを有する。トランザクション管理部32は、クライアント20−1、20−2からそれぞれ指示されたテーブルごとのWAL使用フラグに基づいて、バックアップデータのテーブルファイル15へのインポートおよびサービスの開始を行う。
具体的には、図18の例では、トランザクション管理部32aは、クライアント20−1から書き込み指示があったサービスデータをテーブル管理部13に出力する。また、トランザクション管理部32bは、クライアント20−2から書き込み指示のあったサービスデータのWALデータをWAL管理部14に出力するとともに、書き込む対象のサービスデータをテーブル管理部13に出力する。テーブル管理部13は、所定周期(チェックポイントの周期)でサービスデータをテーブルファイル15に書き込む。この場合、図18に示すように、テーブルファイル(サービスデータ)15には、クライアント20−1、20−2のそれぞれからのサービスデータが各テーブルとして記憶される。このとき、クライアント20−2からのサービスデータのみがWALデータによりデータ保証されることになる。
上述したように、第2の実施形態では、クライアント20から指示される各トランザクションによりデータが書き込まれるテーブルごとにWALを使用するか否かを設定することで、WALの使用または不使用を各トランザクションのテーブル単位で制御することができるため、利便性をさらに向上させることができる。また、第2の実施形態によれば、例えばデータの重要度によるWALモードの使い分けや、データベースへの書き込み処理のトランザクションを高速化することができる。また、バックアップデータのインポート中のサービス開始が可能になるため、ダウンタイムを削減することができる。
以上説明した少なくとも一つの実施形態によれば、書き込み指示に対応したトランザクション処理ごとに、WALデータを書き込むか否かを判定するフロントエンド部(判定部)と、WALデータの書き込みを行うと判定された場合に、テーブル管理部にデータを書き込ませるとともに、WAL管理部にWALデータを書き込ませ、WALデータの書き込みを行わないと判定された場合に、テーブル管理部にデータを書き込ませるトランザクション管理部とを持つことにより、利便性を向上させることができる。
より具体的には、例えばデータの重要度によるWALモードの使い分けや、必要なデータのWALデータのみをWALファイルに書き込ませるため、全てのデータに対してWALデータを生成してWALファイルに書き込ませるよりも、データベースへの書き込み処理のトランザクションを高速化することができる。また、バックアップデータのインポート中のサービス開始が可能になるため、ダウンタイムを削減することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
10、30…データベース管理装置、11、31…フロントエンド部(判定部)、12、32…トランザクション管理部、13…テーブル管理部(第1の書込管理部)、14…WAL管理部(第2の書込管理部)、15…テーブルファイル(第1の記憶領域)、16…WALファイル(第2の記憶領域)

Claims (7)

  1. クライアントから書き込みが指示されたデータを、記憶部の第1の記憶領域における、前記クライアントの指示する論理アドレスに対応したアドレスに書き込む第1の書込管理部と、
    前記クライアントからの書き込み指示に対応したWAL(Write Ahead Logging)データを、前記記憶部の第2の記憶領域における任意のアドレスに書き込む第2の書込管理部と、
    前記クライアントから指示される情報に基づいて、前記書き込み指示に対応したトランザクション処理ごとに、前記第2の記憶領域に前記WALデータを書き込むか否かを判定する判定部と、
    前記クライアントからの指示に基づいて、前記判定部により前記WALデータの書き込みを行うと判定された場合に、前記第1の書込管理部に前記データを書き込ませるとともに、前記第2の書込管理部に前記WALデータを書き込ませ、前記判定部により前記WALデータの書き込みを行わないと判定された場合に、前記第1の書込管理部に前記データを書き込ませるトランザクション管理部と、
    を備えるデータベース管理装置。
  2. 前記トランザクション処理は、
    前記クライアントから指示された複数の書き込み処理をひとまとまりの処理として実行する処理である、
    請求項1に記載のデータベース管理装置。
  3. 前記第2の書込管理部は、
    前記WALデータを、前記第2の記憶領域の物理アドレスにシーケンシャルに書き込む、
    請求項1または2に記載のデータベース管理装置。
  4. 前記判定部は、
    前記クライアントから指示される書き込みモードの切替要求に基づいて、前記第2の書込管理部に前記WALデータを書き込ませるが否かを判定する、
    請求項1乃至3のうち、いずれか1項に記載のデータベース管理装置。
  5. 前記書き込みモードには、前記トランザクション処理によりデータが書き込まれる前記第1の記憶領域に記憶されたテーブルごとの書き込みモードが含まれ、
    前記判定部は、
    前記クライアントから指示される前記書き込みモードの切替要求に基づいて、前記テーブルごとに、前記WALデータを前記第2の記憶領域に記憶させるか否かを判定する、
    請求項4に記載のデータベース管理装置。
  6. データベース管理装置のコンピュータが、
    クライアントから書き込みが指示されたデータを、第1の書込管理部により、記憶部の第1の記憶領域における、前記クライアントの指示する論理アドレスに対応したアドレスに書き込み、
    前記クライアントからの書き込み指示に対応したWALデータを、第2の書込管理部により、前記記憶部の第2の記憶領域における任意のアドレスに書き込み、
    前記クライアントから指示される情報に基づいて、前記書き込み指示に対応したトランザクション処理ごとに、前記第2の記憶領域に前記WALデータを書き込むか否かを判定し、
    前記クライアントからの指示に基づいて、前記WALデータの書き込みを行うと判定された場合に、前記第1の書込管理部に前記データを書き込ませるとともに、前記第2の書込管理部に前記WALデータを書き込ませ、前記WALデータの書き込みを行わないと判定された場合に、前記第1の書込管理部に前記データを書き込ませる、
    データベース管理方法。
  7. データベース管理装置のコンピュータに、
    クライアントから書き込みが指示されたデータを、第1の書込管理部により、記憶部の第1の記憶領域における、前記クライアントの指示する論理アドレスに対応したアドレスに書き込ませ、
    前記クライアントからの書き込み指示に対応したWALデータを、第2の書込管理部により、前記記憶部の第2の記憶領域における任意のアドレスに書き込ませ、
    前記クライアントから指示される情報に基づいて、前記書き込み指示に対応したトランザクション処理ごとに、前記第2の記憶領域に前記WALデータを書き込むか否かを判定させ、
    前記クライアントからの指示に基づいて、前記WALデータの書き込みを行うと判定された場合に、前記第1の書込管理部に前記データを書き込ませるとともに、前記第2の書込管理部に前記WALデータを書き込ませ、前記WALデータの書き込みを行わないと判定された場合に、前記第1の書込管理部に前記データを書き込ませる、
    データベース管理プログラム。
JP2016126977A 2016-06-27 2016-06-27 データベース管理装置、データベース管理方法、およびデータベース管理プログラム Active JP6189488B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016126977A JP6189488B1 (ja) 2016-06-27 2016-06-27 データベース管理装置、データベース管理方法、およびデータベース管理プログラム
US15/622,717 US20170371916A1 (en) 2016-06-27 2017-06-14 Database management device, database management method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016126977A JP6189488B1 (ja) 2016-06-27 2016-06-27 データベース管理装置、データベース管理方法、およびデータベース管理プログラム

Publications (2)

Publication Number Publication Date
JP6189488B1 true JP6189488B1 (ja) 2017-08-30
JP2018005299A JP2018005299A (ja) 2018-01-11

Family

ID=59720358

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016126977A Active JP6189488B1 (ja) 2016-06-27 2016-06-27 データベース管理装置、データベース管理方法、およびデータベース管理プログラム

Country Status (2)

Country Link
US (1) US20170371916A1 (ja)
JP (1) JP6189488B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190021773A (ko) * 2017-08-23 2019-03-06 삼성전자주식회사 전자 장치 및 그의 데이터 운용 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11016707B2 (en) * 2017-06-08 2021-05-25 Nippon Telegraph And Telephone Corporation Control device, control method, and recording medium to detect a state of access to table data and set a writing destination
US20190102262A1 (en) * 2017-09-29 2019-04-04 Intel Corporation Automated continuous checkpointing
US10754785B2 (en) 2018-06-28 2020-08-25 Intel Corporation Checkpointing for DRAM-less SSD
KR20200101217A (ko) * 2019-02-19 2020-08-27 삼성전자주식회사 데이터베이스를 관리하기 위한 전자 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097725A (ja) * 2011-11-04 2013-05-20 Canon Inc データベース装置、データベース方法、及びプログラム
US20150006591A1 (en) * 2013-07-01 2015-01-01 Research & Business Foundation Sungkyunkwan University Memory storage apparatus, method of supporting transaction function for database, and memory system
JP2015191307A (ja) * 2014-03-27 2015-11-02 日本電気株式会社 トランザクションシステム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6035379A (en) * 1997-01-09 2000-03-07 Microsoft Corporation Transaction processing for user data employing both logging and shadow copying
US6173292B1 (en) * 1998-03-04 2001-01-09 International Business Machines Corporation Data recovery in a transactional database using write-ahead logging and file caching
US6535997B1 (en) * 1999-05-19 2003-03-18 International Business Machines Corporation Data integrity in smartcard transactions
US7620660B2 (en) * 2005-06-30 2009-11-17 Microsoft Corporation Pre-image logging for database recovery
US8706687B2 (en) * 2007-01-24 2014-04-22 Hewlett-Packard Development Company, L.P. Log driven storage controller with network persistent memory
US20080250074A1 (en) * 2007-04-04 2008-10-09 Oracle International Corporation Recoverable last resource commit
US8909996B2 (en) * 2011-08-12 2014-12-09 Oracle International Corporation Utilizing multiple storage devices to reduce write latency for database logging
US20150286671A1 (en) * 2012-10-29 2015-10-08 Nec Corporation Transaction system
US11188427B2 (en) * 2014-09-26 2021-11-30 Oracle International Corporation System and method for transaction recovery in a multitenant application server environment
US10282364B2 (en) * 2015-04-28 2019-05-07 Microsoft Technology Licensing, Llc. Transactional replicator
US10599630B2 (en) * 2015-05-29 2020-03-24 Oracle International Corporation Elimination of log file synchronization delay at transaction commit time
US10374868B2 (en) * 2015-10-29 2019-08-06 Pure Storage, Inc. Distributed command processing in a flash storage system
US11003621B2 (en) * 2015-11-11 2021-05-11 International Business Machines Corporation Scalable enterprise content management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097725A (ja) * 2011-11-04 2013-05-20 Canon Inc データベース装置、データベース方法、及びプログラム
US20150006591A1 (en) * 2013-07-01 2015-01-01 Research & Business Foundation Sungkyunkwan University Memory storage apparatus, method of supporting transaction function for database, and memory system
JP2015191307A (ja) * 2014-03-27 2015-11-02 日本電気株式会社 トランザクションシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190021773A (ko) * 2017-08-23 2019-03-06 삼성전자주식회사 전자 장치 및 그의 데이터 운용 방법

Also Published As

Publication number Publication date
US20170371916A1 (en) 2017-12-28
JP2018005299A (ja) 2018-01-11

Similar Documents

Publication Publication Date Title
JP6189488B1 (ja) データベース管理装置、データベース管理方法、およびデータベース管理プログラム
EP3724770B1 (en) Systems and methods for database management using append-only storage devices
US9372908B2 (en) Merging an out of synchronization indicator and a change recording indicator in response to a failure in consistency group formation
US10534547B2 (en) Consistent transition from asynchronous to synchronous replication in hash-based storage systems
JP2008217209A (ja) 差分スナップショット管理方法、計算機システム及びnas計算機
JP2019519025A (ja) 分散システムにおける範囲の分割および移動
US10891074B2 (en) Key-value storage device supporting snapshot function and operating method thereof
US10007548B2 (en) Transaction system
CN107451013B (zh) 基于分布式系统的数据恢复方法、装置及系统
US9286320B2 (en) System and method for maintaining consistency among metadata elements of filesystem's logical objects
JP6870466B2 (ja) 制御プログラム、制御方法、制御装置、及びデータベースサーバ
US10949401B2 (en) Data replication in site recovery environment
US20150178030A1 (en) Network device, control method for network device, and storage medium thereof
US10379977B2 (en) Data management method, node, and system for database cluster
CN107329704B (zh) 一种缓存镜像方法及控制器
CN108475201B (zh) 一种虚拟机启动过程中的数据获取方法和云计算系统
JP2014044553A (ja) プログラム、情報処理装置および情報処理システム
JP5721056B2 (ja) トランザクション処理装置、トランザクション処理方法およびトランザクション処理プログラム
US20140279943A1 (en) File system verification method and information processing apparatus
JP2008129678A (ja) ファイル圧縮自動判定方式および方法、並びに、プログラム
EP3264254B1 (en) System and method for a simulation of a block storage system on an object storage system
CN111971667A (zh) 可恢复的合并排序
CN111767284B (zh) 数据处理方法、装置、存储介质和服务器
CN109254870B (zh) 数据备份的方法和装置
JP5718974B2 (ja) 情報処理装置、情報処理方法、および、情報処理プログラム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170704

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170802

R151 Written notification of patent or utility model registration

Ref document number: 6189488

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151