JP6891533B2 - データベース装置 - Google Patents
データベース装置 Download PDFInfo
- Publication number
- JP6891533B2 JP6891533B2 JP2017031757A JP2017031757A JP6891533B2 JP 6891533 B2 JP6891533 B2 JP 6891533B2 JP 2017031757 A JP2017031757 A JP 2017031757A JP 2017031757 A JP2017031757 A JP 2017031757A JP 6891533 B2 JP6891533 B2 JP 6891533B2
- Authority
- JP
- Japan
- Prior art keywords
- savepoint
- transaction
- management table
- query
- progress
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
クライアントから発行されたバッチ処理に係るクエリを実行するデータベース装置であって、
前記クエリの実行計画を作成し、前記実行計画の各ステップの進捗状況をトランザクション進捗管理テーブルに記録しながら前記クエリを実行するトランザクション制御部と、
前記進捗状況を含むセーブポイントのデータをセーブポイント管理テーブルに記録する自動セーブポイント生成部と、
を含む。
クライアントから発行されたバッチ処理に係るクエリを実行するデータベース装置が実行するバッチ処理管理方法であって、
前記クエリの実行計画を作成し、前記実行計画の各ステップの進捗状況をトランザクション進捗管理テーブルに記録しながら前記クエリを実行し、
前記進捗状況を含むセーブポイントのデータをセーブポイント管理テーブルに記録する。
クライアントから発行されたバッチ処理に係るクエリを実行するコンピュータを、
前記クエリの実行計画を作成し、前記実行計画の各ステップの進捗状況をトランザクション進捗管理テーブルに記録しながら前記クエリを実行するトランザクション制御部と、
前記進捗状況を含むセーブポイントのデータをセーブポイント管理テーブルに記録する自動セーブポイント生成部と、
して機能させる。
次に本発明の第1の実施形態について図面を参照して詳細に説明する。
一般的なデータベースにおいて、長時間のバッチ処理が途中でアボートしてしまうと、大幅な時間のロスとなる。そのため、バッチ処理の途中でコミットし、バックアップを取り、やり直す場合はリストアを行う、といった運用がされてきた。あるいは、各処理の合間にテーブルのスナップショットを取り、これをセーブポイントとして発行し、途中でアボートした場合にセーブポイントから再実行できるようにするという運用がされてきた。しかし、処理の都度、バックアップを取ったり、セーブポイントを頻繁に発行するといった運用は煩雑になりがちである。そのうえ、バックアップやセーブポイントを取るタイミングはクエリが終わったタイミングでしか取れず、一つのクエリが長い時間かかる状況では、その直前のクエリが完了した時点までしかたどり着けない。メモリ不足や突然の電源断など、正しい処理にも関わらずデータベース外の要因によって強制的にアボートされてしまう場合に、再度同一のクエリを実行することになり大きな時間のロスが発生してしまう。これらのことは大量データのバッチ処理にも優れたFAST(Filter Array STructure)構造を用いた列指向データベースでも同様のことが言える。
本実施形態では、バッチ処理中に自動で不揮発なセーブポイントを生成する。これにより、手動でのバックアップやリストア、セーブポイントの発行を伴わずに簡単にバッチ処理が再開できる。また図2に示すように、バッチ処理の途中でアボートが起きてもバッチ処理を再開することが可能となる。
本実施形態の構成について、図1を用いて説明する。本実施形態のデータベースシステムの構成要素は、大きく分けてデータベース装置1、データベース装置1から見えるディスク装置2、およびクライアント3がある。
<自動セーブポイント概要>
クライアント3からデータベース装置1にバッチトランザクションを対話的に実行した場合の例を図6に示す。この図6の例は、クエリの実行途中でメモリ不足になってしまい、トランザクションが途中でアボートしたことを示している。ただし、自動セーブポイントがいくつか生成されており、図7に示すように自動セーブポイントからトランザクションを再開することが可能であることを示している。
バッチ処理が開始されるときの、トランザクション制御部11の動作を、図8を用いて説明する。まず、トランザクション制御部11は、トランザクションが開始されると、トランザクション進捗管理テーブル10に図9に示すようにステータスをWAITとしてレコードを追加する(ステップS1)。次にトランザクション制御部11は、クライアントからクエリが来たら、パースを行い、実行計画を生成する(ステップS2)。そして、トランザクション制御部11は、図10に示すように、先ほどトランザクション進捗管理テーブル10に追加したレコードを更新する(ステップS2)。即ち、実行計画をシリアライズしたデータ<Tree>に、実行計画の各処理に対応する進捗フラグをすべて0に、各処理にかかった時間を0に、ステータスをACCEPTEDに更新する。実行計画のシリアライズは、例えば図11に示すようにすることで実現できる。ここまででクエリ実行の準備ができたことになる。
自動セーブポイント生成部14は、自動セーブポイント作成命令を受けると、図16に示すような処理にしたがって自動セーブポイントの作成を行う。まず、自動セーブポイント生成部14は、トランザクション制御部11、トランザクション監視部13の処理を一時停止する(ステップS41)。そして、自動セーブポイント生成部14は、セーブポイント管理テーブル19を用いて、対象のトランザクションIDにおけるセーブポイントのIDを0から順に採番する(ステップS42)。そして、自動セーブポイント生成部14は、この時のトランザクションのステータス、実行計画、進捗フラグ、処理時間をトランザクション進捗管理テーブル10から取得する(ステップS43)。次に自動セーブポイント生成部14は、これらの取得した情報から自動セーブポイントの保存形式を決定する(ステップS44)。即ち、自動セーブポイント生成部14は、後述するコスト算出を行い、最もコストが小さくなる保存形式を選択する。自動セーブポイント生成部14は、保存形式が決まったら、その形式でデータファイル(セーブポイントファイル)を作成する(ステップS45)。また、このときの保存先、コストを取得する(ステップS45)。ここまで済んだところで、自動セーブポイント生成部14は、図3に示すセーブポイント管理テーブル19に新たにレコードを追加する(ステップS46)。このとき追加するレコードには、上記対象のトランザクションID、採番されたセーブポイントID、トランザクション進捗管理テーブルから取得されたステータス、実行計画、進捗フラグ、各処理にかかった時間、選択されたデータの種類、作成したデータファイルの保存先、コストが記録される。その後、自動セーブポイント生成部14は、トランザクション進捗管理テーブル10の前回の時刻のカラムに現在の時刻を設定し(ステップS47)、トランザクション制御部11、トランザクション監視部13の動作を再開させる(ステップS48)。
自動セーブポイント生成部14は、トランザクション制御部11から上述した自動セーブポイントの削除命令を受けると、自動セーブポイントの削除命令の対象となるトランザクションIDのセーブポイントファイルをすべて削除し、セーブポイント管理テーブル19の対象のトランザクションIDのレコードを削除することで、自動セーブポイントの削除を行う。
本実施形態では、セーブポイントの保存形式として、図18のデータの種類の欄に記載するように、「操作履歴」、「直前からの差分」、「開始時点からの差分」の3種類を用意する。
セーブポイントの保存形式を選択する際に行うコスト算出について説明する。トランザクション進捗管理テーブル10には、実行計画の各処理について、処理時間が図17に示すように記録されている。自動セーブポイント生成部14は、この各処理の処理時間等を参照し、図18に示すコスト計算方法に従って各保存形式のコスト(復帰に要する時間)を計算する。
セーブポイントからの再開処理について、図19に示すセーブポイント管理テーブル19の例を用いて説明する。まず、トランザクション復旧部12は、再開時に指定するトランザクションIDと一致するレコードをセーブポイント管理テーブル19から検索する。トランザクションIDが12346のトランザクションをセーブポイントID=4から再開する図19の場合、トランザクション復旧部12は、トランザクションIDが12346のレコードすべてを選択する。次にトランザクション復旧部12は、選択したレコードのうち、再開時に指定するセーブポイントIDより小さい中で、「開始時点からの差分」を保存しているもっとも大きいセーブポイントIDのレコードを探す。図19の場合はセーブポイントIDが2のレコードがこれに該当する。そして、トランザクション復旧部12は、そのレコードから再開時に指定しているセーブポイントIDまでのレコードの情報を元に、順番に復旧の処理を実行していく。図19の場合、トランザクション復旧部12は、先ずセーブポイントID=2のセーブポイントに復旧し、次にセーブポイントID=3のセーブポイントに復旧し、最後にセーブポイントID=4のセーブポイントに復旧することになる。もし再開時に指定するセーブポイントIDより小さいセーブポイントIDが、上記選択したレコードにない場合は、トランザクション復旧部12は、セーブポイントIDが0のレコードから順番に、再開時に指定しているセーブポイントIDまで実行する。
以上のように本実施形態は、以下の点を特徴とする。
(1)バッチ処理中に自動的にセーブポイント(バッチ処理の復帰点)を発行できる自動セーブポイント生成部14や関連する部品を有しているFAST構造のデータベース装置1である点。
(2)自動セーブポイント生成部14は、バッチ処理中のクエリが長い場合は、クエリの途中でもセーブポイントを発行する点。
(3)セーブポイントは、不揮発性のデータ(ディスクに書き込む)のため、電源断やクエリのアボートが起きても復帰が可能な点。
(4)セーブポイントは、「操作の履歴」、「開始時点との差分」、「直前との差分」の3種類の保存形式があり、再開時の実行時間が最短となるように自動的に決定される点。
(5)セーブポイントに用いる差分として、FAST構造の構成要素である値番号、値リスト、順序集合の変化する部分を差分として記録する点。このとき、順序集合と値番号はその配列を記録し、値リストは元となるテーブルの値リストに対して、追加・削除・更新されるところだけの差分を記録する値リスト変更バッファ15を利用する点。このようにすることで、FAST構造の構成要素の性質を活かし、セーブポイントの作成時間と再開時の処理時間の短縮を図る点。
本実施形態によれば、上記特徴を有することにより、バッチ処理中に予測していなかった電源断やアボートが発生しても、効率よくバッチ処理の再開が可能である。
本発明の第2の実施形態の構成を図23に示す。本実施形態では、第1の実施形態におけるデータベース装置1と同じものを2つ用意し、一方のデータベース装置1Aを稼働系、他方のデータベース装置1Bを待機系とし、また、ディスク装置2を共有ストレージ2Aに置き換えている。
図27は、本発明の第3の実施形態に係るデータベース装置100の構成図である。図27を参照すると、データベース装置100は、クライアント101から発行されたクエリを実行する機能を有する。データベース装置100は、トランザクション制御部102と自動セーブポイント生成部103とを含む。
1A…データベース装置(稼働系)
1B…データベース装置(待機系)
2…ディスク装置
2A…共有ストレージ
3…クライアント
10…トランザクション進捗管理テーブル
11…トランザクション制御部
12…トランザクション復旧部
13…トランザクション監視部
14…自動セーブポイント生成部
15…値リスト変更バッファ
16…作業用メモリ
17…ユーザテーブル
18…データベース管理テーブル
19…セーブポイント管理テーブル
21…FAST構造型データベース記憶領域
22…セーブポイント記憶領域
100…データベース装置
101…クライアント
102…トランザクション制御部
103…自動セーブポイント生成部
104…トランザクション進捗管理テーブル
105…セーブポイント管理テーブル
Claims (8)
- クライアントから発行されたバッチ処理に係るクエリを実行するデータベース装置であって、
前記クエリの実行計画を作成し、前記実行計画の各ステップの進捗状況をトランザクション進捗管理テーブルに記録しながら前記クエリを実行するトランザクション制御部と、
前記進捗状況を含むセーブポイントのデータをセーブポイント管理テーブルに記録し、前記記録では、前記セーブポイントのデータ形式として予め定められた複数種類の中から、セーブポイントへ復帰するまでに要する時間を計算して、最も短い時間で復帰できる種類を選択する自動セーブポイント生成部と、
を含むデータベース装置。 - セーブポイントを前回生成してから予め定められた時間が経過すると、クエリの実行中であるか否かを問わずに、セーブポイント生成命令を前記自動セーブポイント生成部に発行するトランザクション監視部を、更に含む、
請求項1に記載のデータベース装置。 - 前記種類の1つは、更新されたFAST構造の構成要素の差分をセーブポイントのデータとして保存するデータ形式である、
請求項1に記載のデータベース装置。 - 値リスト変更バッファを、更に有し、
前記自動セーブポイント生成部は、セーブポイントの書き出し、読み込みに前記値リスト変更バッファを利用する、
請求項3に記載のデータベース装置。 - 前記セーブポイントのデータを使用して、前記バッチ処理を前記セーブポイントから再開するトランザクション復旧部を、更に含む、
請求項1乃至4の何れかに記載のデータベース装置。 - 前記データベース装置に接続されたディスク装置を、更に有し、
前記ディスク装置に前記セーブポイント管理テーブルのコピーを記録する、
請求項1乃至5の何れかに記載のデータベース装置。 - クライアントから発行されたバッチ処理に係るクエリを実行するデータベース装置が実行するバッチ処理管理方法であって、
前記クエリの実行計画を作成し、前記実行計画の各ステップの進捗状況をトランザクション進捗管理テーブルに記録しながら前記クエリを実行し、
前記進捗状況を含むセーブポイントのデータをセーブポイント管理テーブルに記録し、
前記記録では、前記セーブポイントのデータ形式として予め定められた複数種類の中から、セーブポイントへ復帰するまでに要する時間を計算して、最も短い時間で復帰できる種類を選択する、
バッチ処理管理方法。 - クライアントから発行されたバッチ処理に係るクエリを実行するコンピュータを、
前記クエリの実行計画を作成し、前記実行計画の各ステップの進捗状況をトランザクション進捗管理テーブルに記録しながら前記クエリを実行するトランザクション制御部と、
前記進捗状況を含むセーブポイントのデータをセーブポイント管理テーブルに記録し、前記記録では、前記セーブポイントのデータ形式として予め定められた複数種類の中から、セーブポイントへ復帰するまでに要する時間を計算して、最も短い時間で復帰できる種類を選択する自動セーブポイント生成部と、
して機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017031757A JP6891533B2 (ja) | 2017-02-23 | 2017-02-23 | データベース装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017031757A JP6891533B2 (ja) | 2017-02-23 | 2017-02-23 | データベース装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018136815A JP2018136815A (ja) | 2018-08-30 |
JP6891533B2 true JP6891533B2 (ja) | 2021-06-18 |
Family
ID=63365563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017031757A Active JP6891533B2 (ja) | 2017-02-23 | 2017-02-23 | データベース装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6891533B2 (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003085021A (ja) * | 2001-09-07 | 2003-03-20 | Nippon Soken Holdings:Kk | リカバリ・リスタート機能を備えたバッチ処理システム、リカバリ・リスタート機能を備えたバッチ処理システム用プログラム、及びそのプログラムを記録した記録媒体 |
JP4859605B2 (ja) * | 2006-09-20 | 2012-01-25 | 株式会社日立製作所 | 情報処理システム |
JP6287441B2 (ja) * | 2014-03-26 | 2018-03-07 | 日本電気株式会社 | データベース装置 |
-
2017
- 2017-02-23 JP JP2017031757A patent/JP6891533B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018136815A (ja) | 2018-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9183236B2 (en) | Low level object version tracking using non-volatile memory write generations | |
EP2590086B1 (en) | Columnar database using virtual file data objects | |
US6018746A (en) | System and method for managing recovery information in a transaction processing system | |
US9223805B2 (en) | Durability implementation plan in an in-memory database system | |
US11132350B2 (en) | Replicable differential store data structure | |
US8949190B2 (en) | Point-in-time database recovery using log holes | |
JP5008991B2 (ja) | データのリカバリを制御する装置及び方法 | |
US9218377B2 (en) | Failure recovery and error correction techniques for data loading in information warehouses | |
JP4237354B2 (ja) | トランザクション処理方法及びトランザクション処理システム | |
US7996363B2 (en) | Real-time apply mechanism in standby database environments | |
US20170046231A1 (en) | Consistent backup of a distributed database system | |
EP2590087A1 (en) | Database log parallelization | |
EP3596619A1 (en) | Methods, devices and systems for maintaining consistency of metadata and data across data centers | |
EP2590078B1 (en) | Shadow paging based log segment directory | |
JPH07175700A (ja) | データベース管理方式 | |
US11531594B2 (en) | Data recovery method and apparatus, server, and computer-readable storage medium | |
JPS62206645A (ja) | データ・ベース・システムの動作を回復する方法 | |
JP2007200114A (ja) | データベース回復方法及び計算機システム | |
JPH06332778A (ja) | トランザクション管理方法 | |
US9652492B2 (en) | Out-of-order execution of strictly-ordered transactional workloads | |
CN110019469B (zh) | 分布式数据库数据处理方法、装置、存储介质及电子装置 | |
JP6891533B2 (ja) | データベース装置 | |
JP2008269408A (ja) | データ検索システム | |
US20240256398A1 (en) | Redo avoidance during database recovery | |
EP3944101B1 (en) | Information processing program, information processing method, and information processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201014 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201104 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201210 |
|
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: 20210427 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210510 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6891533 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |