JPWO2016117322A1 - 処理要求装置、処理装置、データベースシステム、データベース更新方法およびプログラム - Google Patents

処理要求装置、処理装置、データベースシステム、データベース更新方法およびプログラム Download PDF

Info

Publication number
JPWO2016117322A1
JPWO2016117322A1 JP2016570545A JP2016570545A JPWO2016117322A1 JP WO2016117322 A1 JPWO2016117322 A1 JP WO2016117322A1 JP 2016570545 A JP2016570545 A JP 2016570545A JP 2016570545 A JP2016570545 A JP 2016570545A JP WO2016117322 A1 JPWO2016117322 A1 JP WO2016117322A1
Authority
JP
Japan
Prior art keywords
information
processing
storage device
order
update
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.)
Pending
Application number
JP2016570545A
Other languages
English (en)
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2016117322A1 publication Critical patent/JPWO2016117322A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

整合性のとれたバックアップの取得を可能とする処理要求装置等が開示される。係る処理要求装置は、記憶装置の更新を要求する更新要求手段と、関連する情報をそれぞれが格納する複数の処理装置が、前記要求に応じて、前記情報に基づいて前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報に基づいて前記記憶装置を更新した結果から、前記情報に関する処理の順と、前記記憶装置が更新された順とに不整合があるか否かを判断する不整合判断手段とを備え、前記更新要求手段は、前記不整合がある場合、整合に必要な情報に基づく前記記憶装置の更新を要求する。

Description

本発明は、整合性のとれたバックアップの取得技術に関する。
近年、Webアプリケーションの実行基盤として、データセンター内の多数のコンピュータを用いるクラウドコンピューティングが注目されている。このクラウドコンピューティングのインフラストラクチャの一つとして、Key−Value Storeが知られている。Key−Value Storeは、キーと値とのペアで構成されるレコードを管理するデータベースである。
Key−Value Storeでは、単一のレコードに対するデータ操作についてはアトミック性がサポートされている。したがって、Key−Value Storeを用いてトランザクション処理を実行する場合、アトミック性を担保するためには単一のレコードごとにトランザクション処理が実行される必要がある。そのため、処理効率が低下してしまう。
これに対して、例えば、特許文献1には、Key−Value Storeに格納される値を、特定の値ごとにグループ分けすると共に、同じグループごとのトランザクション処理をサポートする技術が開示される。
このような技術を実現するために、例えば、SQL処理とデータの取得・更新を行う層(以降、「SQLエンジン」と称する)、トランザクションのWAL(Write Ahead Log)の記録と排他を行う層(以降、「トランザクションエンジン」と称する)、および永続データを保存するKey−Value Store層(以降、「KVS」と称する)を構成するノードを備えたデータベースシステムがある。
上記システムは、データを格納するテーブルの特定列の値(すなわちトランザクションキー)を元にデータをグループ分けし、そのグループごとの整合性を保証するトランザクション処理を提供している。
ここで、トランザクションエンジンを担うノードが分散される場合に上記のようなグループごとの整合性を保証するために、トランザクションキー値ごとに、どのノードがそのトランザクションキー値に関するグループの排他処理を担当するかが決められている。
SQLエンジンは、データ更新時に、トランザクションエンジンからトランザクションキー値ごとに一つのKVペアをなすWALを取得する。あるいは、トランザクションエンジンにWALが存在しない場合は、SQLエンジンは、KVSからデータを取得する。SQLエンジンは、データを更新したあと、トランザクションキー値ごとに一つのKVペアを、そのトランザクションキー値の排他を担当するトランザクションエンジンに、格納する。
トランザクションエンジンは、上記KVペアであるWALをアトミックに更新する。トランザクションエンジンに格納されたWALは、非同期でKVSに書き込まれる。このKVSに書き込む処理や、最後にこのような書き込み処理が行われた時点を、一般に、チェックポイントと称する。
ここで、上記のシステムは、トランザクションエンジンを担うノード(以降、「トランザクションエンジンノード」と称する)が分散されている。したがって、システム全体の順序を保ったまま、チェックポイントにおけるデータとしてWALをKVSに書き込むことができない。
すなわち、それぞれのSQLエンジンでコミットされた順序にしたがったSQLエンジンごとの順序関係と、トランザクションキー値により分けられたグループごとの順序関係は成立するのに対して、KVSに格納されるデータは常に整合性がとれているわけではない。つまり、システム全体のグローバルな順序関係は成立しない。よって、例えば特定時点においてKVSのスナップショットを取得したとしても、それがシステム全体の整合性のとれたバックアップである保証はない。
このように、KVSは、トランザクションキー値ごとに分けられたグループごとの整合性を保証する一方、システム全体的には結果整合性のみを保証する。
例えば、あるユーザが、物品データAに関する情報を挿入するトランザクションを実行し、そのあとに、物品データAに関わる取引内容を挿入するトランザクションを実行したとする。このとき、上記2つのトランザクションのトランザクションキーが異なる場合、KVSには、物品データAに関わる取引内容を示すデータは存在するが物品データAに関する情報はまだ存在しないという事態が生じうる。
このような不整合を防ぎ、システム全体で結果整合性を維持するためには、システムに対する問い合せの受け付けを停止すると共に、トランザクションエンジンにおける全てのWALを、KVSに書き込む必要がある。
しかしながら、ミッションクリティカルな分野で使われるシステムの場合、システムの停止が許されない場合が多いため、無停止で整合性がとれたバックアップの取得が必要である。
ここで、図5A乃至図5Cを参照して、KVSに格納されるデータに不整合が起こる場合について説明する。図5A乃至図5Cにおいて、a乃至dは、トランザクションキー値を示す。p1、p2は、SQLエンジンの識別情報を示す。T1乃至T4は、トランザクションエンジンの識別情報を示す。T1乃至T4により示されるトランザクションエンジンは、それぞれトランザクションキー値a乃至dに関するトランザクションを実行する。
図5Aは、SQLエンジンp1、p2がそれぞれ順にコミットするトランザクションの識別情報を示す図である。トランザクションの識別情報は、「SQLエンジンのノードID(IDentification)−実行順(キー値)」の形式で示される。例えば、「p1−c1(d)」は、SQLエンジン「p1」において「1」番目にコミットされたトランザクションキー値「d」に関するトランザクションであることを示す。図5Bは、トランザクションエンジンT1乃至T4に各トランザクションが格納された順を示す図である。
図5Cは、システム全体でコミットされたトランザクションを時系列で表現した図である。図5Cにおいて、”a”,”d”等は、その値をキーとするトランザクションのコミットのタイミングを示す。
図5Aおよび図5Bに網掛けで示すトランザクションは、KVSに書き込み済みであることを示す。各トランザクションエンジンがそれぞれKVSに書き込む場合、図5Aに示すように、複数のトランザクション間で、先にコミットされた方が、後にKVSに書き込まれるという状態が生じ得る。具体的には、図5Bに示すように、p1−c3(b)およびp2−c2(b)、p2−c1(c)、p1−c1(d)に関しては、それぞれT2、T3、T4によりKVSに書き込まれたが、p1−c2(a)に関しては、図5Aに示すようにp1において2番目にコミットされたにも関わらずT1によりKVSに書き込まれていない。
この場合、KVSには、図5Cの線Lを境として斜線で示したトランザクションまで書き込まれている。すなわち、SQLエンジンp1において実行された、キー値d、bに関するトランザクションはKVSに書き込まれたが、キー値aに関するトランザクションはKVSに書き込まれていない。つまり、SQLエンジンp1において実行されたトランザクションのKVSは、整合性が取れていない。
特開2012−238061号公報
上述のように、特許文献1では、テーブルの特定の列の値ごとにグループ分けし、グループごとに決められた、分散されたトランザクションエンジンノードにWALを記録すると共に、非同期でKVSに書き込むことでデータの結果整合性を保証している。このようなシステムでは、以下の課題がある。
すなわち、上記システムは、トランザクションエンジンノートが分散されているので、システム全体の順序関係を保ちながらWALをKVSに書き込むことができない。よって、特定時点のKVSのスナップショットを取得したとしても、それが整合性のとれたバックアップである保証がないという課題がある。
本願発明は、上記課題を鑑みてなされたものであり、整合性のとれたバックアップの取得が可能なデータベースシステム等を提供することを主要な目的とする。
本発明の第1の処理要求装置は、記憶装置の更新を要求する更新要求手段と、関連する情報をそれぞれが格納する複数の処理装置が、前記要求に応じて、前記情報に基づいて前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報に基づいて前記記憶装置を更新した結果から、前記情報に関する処理の順と、前記記憶装置が更新された順とに不整合があるか否かを判断する不整合判断手段とを備え、前記更新要求手段は、前記不整合がある場合、整合に必要な情報に基づく前記記憶装置の更新を要求する。
本発明の第1の処理装置は、関連する情報を格納する格納手段と、通信可能な処理要求装置から、前記格納手段に格納された情報に基づく記憶装置の更新の要求を受けると、前記情報に基づいて前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報に基づいて前記記憶装置を更新する更新制御手段とを備える。
本発明の第1のデータベースシステムは、処理要求装置と、該処理要求装置と通信可能であって関連する情報をそれぞれが格納する複数の処理装置とを備えたデータベースシステムであって、前記処理要求装置は、記憶装置の更新を要求する更新要求手段と、処理装置が、前記要求に応じて、前記情報に基づいて前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報に基づいて前記記憶装置を更新した結果から、前記情報に関する処理の順と、前記記憶装置が更新された順とに不整合があるか否かを判断する不整合判断手段とを備え、前記更新要求手段は、前記不整合がある場合、整合に必要な情報に基づく前記記憶装置の更新を要求し、前記処理装置は、前記関連する情報を格納する格納手段と、前記処理要求装置から、前記格納手段に格納された情報に基づく記憶装置の更新の要求を受け取ると、前記情報に基づいて前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報に基づいて前記記憶装置を更新する更新制御手段とを備える。
本発明の第2の処理装置は、通信可能な処理要求装置から、関連する情報を取得すると共に、該情報を格納する格納手段と、前記処理要求装置から、前記格納手段に格納された情報に基づく記憶装置の更新の要求を受けると、該情報を複製する順と前記情報に関する処理の順とが整合するように、前記情報を複製すると共に、該複製した情報をバックアップ装置に格納する複製制御手段とを備える。
本発明の第1の更新管理方法は、記憶装置の更新を要求し、関連する情報をそれぞれが格納する複数の処理装置が、前記要求に応じて、前記情報で前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報で前記記憶装置を更新した結果から、前記情報に関する処理の順と、前記記憶装置が更新された順とに不整合があるか否かを判断し、前記不整合がある場合、整合に必要な情報に基づく前記記憶装置の更新を要求する。
本発明の第1の更新方法は、通信可能な処理要求装置から、関連する情報を格納する格納手段に格納された情報に基づく記憶装置の更新の要求を受けると、前記情報に基づいて前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報に基づいて前記記憶装置を更新する。
本発明の第1のデータベース更新方法は、記憶装置の更新を要求し、前記要求に応じて、前記情報で前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報に基づいて前記記憶装置を更新し、前記更新した結果から、前記情報に関する処理の順と、前記記憶装置が更新された順とに不整合があるか否かを判断し、前記不整合がある場合、整合に必要な情報に基づく前記記憶装置の更新を要求する。
なお同目的は、上記の各構成を有する更新管理方法および更新方法を、それぞれコンピュータによって実現するコンピュータ・プログラム、およびそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
本願発明によれば、データベースシステムにおいて、整合性のとれたバックアップの取得が可能になるという効果が得られる。
本発明の第1の実施形態に係るデータベースシステムの構成を示す図である。 本発明の第1の実施形態に係るデータベースシステムに含まれるノードの構成を模式的に示す図である。 本発明の第1の実施形態に係るデータベースシステムがバックアップ準備命令を受けた際のコミットのタイミングについて説明する図である。 本発明の第1の実施形態に係るデータベースシステムがバックアップ準備命令を受けた際のチェックポイントのタイミングについて説明する図である。 本発明の第1の実施形態に係るデータベースシステムがバックアップ準備命令を受けた際のコミットとチェックポイントのタイミングについて説明する図である。 本発明の第1の実施形態に係るデータベースシステムがバックアップ準備命令を受けた際のコミットのタイミングについて説明する図である。 本発明の第1の実施形態に係るデータベースシステムがバックアップ準備命令を受けた際のチェックポイントのタイミングについて説明する図である。 本発明の第1の実施形態に係るデータベースシステムがバックアップ準備命令を受けた際のコミットとチェックポイントのタイミングについて説明する図である。 本発明の第1の実施形態に係るデータベースシステムがバックアップ準備命令を受けた際のコミットのタイミングについて説明する図である。 本発明の第1の実施形態に係るデータベースシステムがバックアップ準備命令を受けた際のチェックポイントのタイミングについて説明する図である。 本発明の第1の実施形態に係るデータベースシステムがバックアップ準備命令を受けた際のコミットとチェックポイントのタイミングについて説明する図である。 本発明の第1の実施形態に係るデータベースシステムがバックアップ準備命令を受けた際のコミットのタイミングについて説明する図である。 本発明の第1の実施形態に係るデータベースシステムがバックアップ準備命令を受けた際のチェックポイントのタイミングについて説明する図である。 本発明の第1の実施形態に係るデータベースシステムがバックアップ準備命令を受けた際のコミットとチェックポイントのタイミングについて説明する図である。 本発明の第1の実施形態に係るデータベースシステムにおいてバックアップ準備命令を受けたSQLエンジンの動作を示す図である。 本発明の第1の実施形態に係るデータベースシステムにおいてバックアップ準備命令を受けたSQLエンジンの動作を示す図である。 本発明の第1の実施形態に係るデータベースシステムにおいてバックアップ準備命令を受けていないSQLエンジンの動作を示す図である。 本発明の第1の実施形態に係るデータベースシステムにおけるトランザクションエンジンの動作を示す図である。 本発明の第2の実施形態に係るデータベースシステムの構成を示す図である。 本発明の第2の実施形態に係るデータベースシステムのバックアップ層の動作を示すフローチャートである。 本発明の第2の実施形態に係るデータベースシステムのトランザクションエンジンの動作を示すフローチャートである。 本発明の第3の実施形態に係るデータベースシステムの構成を示す図である。 本発明の第3の実施形態に係るデータベースシステムにおける各装置の構成を示すブロック図である。 本発明の第4の実施形態に係る情報処理装置の構成を示す図である。 本発明の各実施形態に係る情報処理装置のハードウエア構成を例示する図である。
以下、本発明の実施形態について図面を参照して詳細に説明する。
第1の実施形態
図1は、本発明の第1の実施形態に係るデータベースシステム100の構成を示す図である。データベースシステム100は、SQLエンジン120、トランザクションエンジン140、KVS160およびバックアップ層180を構成するノードを備える。図2は、データベースシステム100に含まれるノード(装置)の配置を示す図である。本実施形態では、SQLエンジン120となるノードp1,p2、トランザクションエンジン140となるノードT1,T2,T3,T4、KVS160となるノードが、分散配置されるシステムについて説明する。
SQLエンジン120は、問い合せを受け付け、必要に応じてデータを取得または更新する機能を持つ装置である。図1に示すように、SQLエンジン120は、SQL処理部130およびコミットログ記憶部137を備える。SQL処理部130は、データ取得部131、データ処理部132、コミット管理部133およびバックアップ制御部(更新要求手段)136を備える。コミット管理部133は、さらに、コミットログ管理部134および不整合判断部135を備える。
トランザクションエンジン140は、WALの排他チェック、管理を行う機能を持つ。トランザクションエンジン140は、また、後述する永続データ記憶部161にWALを書き込む機能を持つ。永続データ記憶部161にWALを書き込むとは、コミットされたトランザクションに関するログ(WAL)に基づくデータで、記憶領域(ここでは永続データ記憶部161)を更新する操作である。この更新の時点または更新の処理がチェックポイントである。トランザクションエンジン140は、トランザクション処理部150、WAL記憶部(格納手段)153およびWAL制御部(更新制御手段)154を備える。トランザクション処理部150は、WAL管理部151および排他チェック処理部152を備える。
KVS160は、キーと値とのペアで構成されるレコードを管理するデータベースである。KVS160は、そのレコードを格納する永続データ記憶部161を備える。バックアップ層180は、永続データ記憶部161に格納されるデータのバックアップを取得する装置である。バックアップ層180は、データ複製部181およびバックアップデータ記憶部(バックアップ格納手段)182を備える。
データベースシステム100は、SQLエンジン120から実行したクエリをテーブルの特定の列の値(トランザクションキー値)ごとにグループ分けする。そして、データベースシステム100は、グループ毎に、分散されたノードにWALの記録と排他を行うと共に、非同期でKVS160に書き込む。また、トランザクションキー値ごとに、どのトランザクションエンジンノードがそのキー値に関するグループの排他処理を担当するかが決められている。以下、データベースシステム100の構成について、具体的に説明する。
データベースシステム100の各構成要素の概要について説明する。
SQLエンジン120は、SQL処理部130において、問い合わせを受け付け、必要に応じてデータの取得または更新を行う。SQL処理部130のデータ取得部131は、問い合わせに応じて、トランザクションエンジン140のトランザクション処理部150を介してWAL記憶部153に格納されるWALを取得する。WAL記憶部153には、SQL処理部130によりトランザクションがコミットされる毎に、そのトランザクションに関するWAL(ログ)が格納される。WAL記憶部153に対象となるWALがない場合、データ取得部131は、KVS160の永続データ記憶部161から対象となるデータを取得する。
データ処理部132は、上記問い合わせが更新指示である場合、データ取得部131が取得したデータを更新すると共に、更新したデータをトランザクションエンジン140に通知する。このとき、データ処理部132は、更新したデータと共に、SQLエンジン120のノードIDを含むコミットID(詳細は後述する)を、トランザクションエンジン140に通知する。また、データ処理部132は、上記コミットIDを、コミット管理部133に通知する。
コミット管理部133は、コミットログ管理部134において、取得したコミットIDをコミットログ記憶部137に記録する。コミットログ管理部134は、また、WAL制御部154から受信した永続データ記憶部161への書き込み済みWALのリストに基づいて、WALが永続化されたコミットIDをコミットログ記憶部137に記録する。
バックアップ制御部136は、ユーザ等からの所定の命令に応じて、WAL制御部154に通常の書き込み(詳細は後述する)の中断メッセージを送信する。また、バックアップの終了に応じて、通常の書き込みの再開メッセージをWAL制御部154に送信する。ここで、所定の命令とは、バックアップ準備命令である。ユーザは、永続データ記憶部161に格納されるデータのバックアップを取得する際に、その取得の準備のためのバックアップ準備命令をSQLエンジン120に送る。
トランザクションエンジン140は、トランザクション処理部150においてWALの記録等を行う。トランザクション処理部150のWAL管理部151は、データ取得部131から受け付けた格納指示に応じてWALをWAL記憶部153に格納したり、データ処理部132から受け付けた更新指示に応じてWALを更新したりする。排他チェック処理部152は、WAL管理部151によるWALの格納および更新の際に、WAL記憶部153の排他制御を行う。
WAL制御部154は、WAL記憶部153に記録されたWALを、非同期でKVS160の永続データ記憶部161に書き込むことにより、WAL記憶部153に記録されたWALを永続化する。WAL制御部154は、書き込みを実施したら、SQLエンジン120のコミット管理部133に、書き込み済みWALのリストを送信する。
KVS160の永続データ記憶部161は、WAL制御部154により書き込まれたWALを永続データとして格納する。データ複製部181は、永続データ記憶部161からデータを読み出すと共にそのデータを複製し、記憶装置であるバックアップデータ記憶部182に格納する。
次に、データベースシステム100の動作について説明する。
図3Aないし図6Cは、データベースシステム100がバックアップ準備命令を受けた際のコミットと書き込み(チェックポイント)のタイミングについて説明する図である。バックアップ準備命令とは、永続データ記憶部161に格納されるデータのバックアップ取得の準備のためにユーザ等から送られる命令である。図3C、図4C、図5Cおよび図6Cは、システム全体で処理(コミット)された各キー値に関するトランザクションを時系列に表現した図である。図3C、図4C、図5Cおよび図6Cにおいて、”a”,”d”等は、その値をキーとするトランザクションのコミットのタイミングを示す。また、キー値ごとに分けられたトランザクションのグループ内の順序関係を点線で示す。
図3A、図4A、図5Aおよび図6Aは、SQLエンジンp1、p2がそれぞれ順にコミットするトランザクションの識別情報(コミットID)を示す図である。コミットIDは、「SQLエンジンのノードID−実行順(キー値)」の形式で示される。コミットIDは、SQLエンジン120のコミットログ記憶部137に格納される。
図3B、図4B、図5Bおよび図6Bは、SQLエンジン120で処理(コミット)されてトランザクションエンジンT1乃至T4に格納されたトランザクションの順を示す図である。
図7乃至図10は、データベースシステム100の動作に関するフローチャートである。図7および図8は、複数のSQLエンジンのうち、バックアップ準備命令を受けたSQLエンジンの動作を示す図である。図9は、バックアップ準備命令を受けていないSQLエンジンの動作を示す図である。図10は、トランザクションエンジンT1乃至T4の動作を示す図である。
図3Aないし図10を参照して、データベースシステム100の動作について説明する。なお、SQLエンジン120およびトランザクションエンジン140は互いにメッセージのやり取りを行うので、以降の説明において、データベースシステム100全体の動作を説明するために、図をまたいで説明する場合がある。図7ないし図10における符号H,I,Jは、SQLエンジン120とトランザクションエンジン140(T1乃至T4)との間の処理シーケンスの推移を明示するための結合子である。
図3Cに示すように、SQLエンジンp2がキー値c、bに関するトランザクションのコミット実行後にバックアップ準備命令を受けたと仮定する。図3Bは、このときの書き込み状況を示す。図3B、図4B、図5Bおよび図6Bでは、網掛けされたコミットIDは、書き込み済みであることを示す。なお、図4C、図5Cおよび図6Cでは、線Lを境として斜線で示したコミットまで書き込みされていることを示す。
ユーザがバックアップ準備命令をSQLエンジンp2に与えると、SQLエンジンp2は、SQL処理部130においてバックアップ準備命令を受け取る(図7のS201)。コミット管理部133のコミットログ管理部134は、バックアップ準備命令に応じて、バックアップ準備命令直前までにコミットしたトランザクションの識別情報、すなわちコミットIDをコミットログ記憶部137から読み出し、そのコミットIDのリスト(コミットIDリスト)を生成する。コミットログ記憶部137は、上述したように、コミットしたトランザクションの情報を保持している。ここでは、図4Aのp2−c1(c)、p2−c2(b)が、バックアップ準備命令直前までにコミットされたトランザクションである。図4Aおよび図5Aでは、コミットされたコミットIDを太字かつ下線で示す。
バックアップ制御部136は、バックアップ準備命令と、上記コミットIDリストを、すべてのトランザクションエンジンT1乃至T4に送信する(図7のS202から「H」を介して図10のS401へ)。
トランザクションエンジンT1乃至T4は、それぞれコミットIDリスト(および書き込み要求)とバックアップ準備命令を受信すると、WAL制御部154において、通常の書き込みを中断する(図10のS401)。ここで、WAL制御部154は、所定のタイミングでWAL記憶部153のWALを永続データ記憶部161に書き込んでおり、この書き込みを「通常の書き込み」と称する。トランザクションエンジンT1乃至T4は、バックアップ準備命令を受信すると、SQLエンジン120から要求される以外の書き込みを中断する。
そして、WAL制御部154は、コミットIDリストに含まれるトランザクションに関するWALを書き込む。このとき、WAL制御部154は、トランザクションのグループの整合性が保証されるように永続データ記憶部161に書き込む必要がある(図10のS402)。
ここで、整合性が保証されているとは、トランザクションが処理(コミット)された順(すなわちWALがWAL記憶部153に格納された順)と、WALが永続データ記憶部161に書き込まれた順との整合がとれていることを指す。
図3Bの例では、上記コミットIDリストに基づいて、トランザクションエンジンT3のWAL制御部154は、p2−c1(c)のWALを永続データ記憶部161に書き込む。トランザクションエンジンT2のWAL制御部154は、上記コミットIDリストに基づいて、p2−c2(b)のWALを永続データ記憶部161に書き込む。ここで、トランザクションエンジンT2のWAL制御部154は、グループの整合性を保証するために、p1−c3(b)も永続データ記憶部161に書き込む。つまり、WAL制御部154は、書き込みを要求されたWALよりも先にSQLエンジン120でコミットされ(WAL記憶部153に格納され)たWAL(未書き込みWAL)がある場合、書き込みを要求されたWALと共に未書き込みWALを永続データ記憶部161に書き込む。ここでは、トランザクションエンジンT2のWAL制御部154は、p1−c3(b)およびp2−c2(b)を書き込む。
WAL制御部154は、上記のように書き込みした結果を、書き込み済みリストとして、すべてのSQLエンジンに送信し(図10のS403)、メッセージ受信を待機する(図10のS404)。
各SQLエンジン120は、トランザクションエンジン140(図10に示すS403の「I」)からメッセージを受信すると(図7のS203)、メッセージを確認する。全メッセージが準備完了メッセージでない場合(図7のS204においてNo)、各SQLエンジン120は、書き込み済みリストを受信する(図7のS205)。なお、バックアップ準備命令を受信していないSQLエンジン120の動作を示した図9のS301に示すように、バックアップ準備命令を受信していないSQLエンジン120も、トランザクションエンジン140から書き込み済みリストを受信する。
SQLエンジン120のコミットログ管理部134は、受信した書き込み済みリストに含まれるコミットIDに基づいて、書き込み済みのコミットIDをコミットログ記憶部137に記録する(図7のS206、図9のS302)。ここでは、図5Aの網掛けに示すように、SQLエンジンp1はp1−c1(d)、p1−c3(b)を、SQLエンジンp2はp2−c1(c)、p2−c2(b)を、それぞれ書き込み済みとしてコミットログ記憶部137に記録する。また、各トランザクションエンジン140では、図5Bの網掛けに示すトランザクションが書き込み済みである。
続いて、コミット管理部133の不整合判断部135は、自SQLエンジン120における順序関係の整合処理を行う(図7のS207)。具体的には、図8に示すように、自SQLエンジン120における順序関係の整合性が保証されているか(不整合があるか否か)を調べる(図8のS211)。整合性が保証されているとは、SQLエンジン120においてトランザクションが処理(コミット)された順に、該トランザクションに関するWALが永続データ記憶部161に書き込みされていることを指す。
不整合判断部135は、上記整合性が保証されていない(不整合が有る)場合、整合のために書き込みの実施が必要なコミットIDのリストと、追加書き込み要求を、トランザクションエンジンT1乃至T4に送る(図8のS213から「J」を介して図10のS405へ)。整合のために書き込みの実施が必要なコミットIDとは、書き込みされたトランザクションよりも先に自SQLエンジン120でコミットされたトランザクションの識別情報を意味する。ここでは、図5Aに示すp1−c2(a)が該当する。
一方、SQLエンジン120における順序関係の整合性が保証される場合、不整合判断部135は、トランザクションエンジンT1乃至T4に、追加書き込み不要メッセージを送る(図8のS212から「J」を介して図10のS405へ)。続いて、不整合判断部135は、SQLエンジン120から書き込み済みリストの受信を待機する(図8のS214)。なお、図9に示すS303乃至S306は、図8に示すS211乃至S214と同様の処理である。
トランザクションエンジンT1乃至T4は、図10に示すように、図8または図9に示すS213、S304から「J」を介して送信されたメッセージを受信すると、そのメッセージが書き込み要求であるか否かを調べ、書き込み要求である場合(図10のS405においてYes)、S402以降の処理を上記と同様に行う。すなわち、SQLエンジン120における順序関係の整合性が保証されるまで、S203乃至S207およびS402乃至S405の処理が繰り返される。
ここでは、図6Bに示すように、SQLエンジン120からの追加書き込み要求に応じて、トランザクションエンジンT1が、p1−c2(a)を書き込むと共に、そのp1−c2(a)を書き込み済みリストとしてすべてのSQLエンジン120に送信する。
SQLエンジンp1は、コミットログ管理部134において、トランザクションエンジンT1から送信された書き込み済みリストに基づいて、図6Aに示すように、p1−c2(a)が書き込みされたことを、コミットログ記憶部137に記録する。
(バックアップ準備命令を受信していない)SQLエンジンp1は、順序関係の整合性がとれたので、図9のS305に示すように、不整合判断部135からトランザクションエンジンT1に、追加書き込み不要メッセージを送る。
上記手順で、トランザクションエンジンT1乃至T4は、WAL制御部154において、すべてのSQLエンジン120から追加書き込み不要メッセージ(図8、図9のS212、S305)を受けると(図10のS405においてNo)、バックアップ準備命令を送信したSQLエンジン120に、バックアップ準備完了メッセージを送信する(図10のS406)。そして、WAL制御部154は、SQLエンジン120からバックアップ完了メッセージを受信するまで、書き込みを中断する(図10のS407)。
一方、SQLエンジン120は、図7に示すように、すべてのトランザクションエンジンT1乃至T4からバックアップ準備完了メッセージを受信すると(S204においてYes)、ユーザ等から送られたバックアップ準備命令に対して、バックアップ準備完了メッセージを返す(S209)。
ユーザは、バックアップ準備完了メッセージに応じて、バックアップを実施する。すなわち、ユーザは、データ複製部181を用いて永続データ記憶部161から読み出したデータを複製し、バックアップデータ記憶部182に格納する。
ユーザは、上記バックアップが完了すると、バックアップ完了メッセージをSQLエンジン120に送信する。SQLエンジン120は、バックアップ制御部136においてバックアップ完了メッセージを受け取ると、すべてのトランザクションエンジンT1乃至T4に、バックアップ完了メッセージを送信する(S210)。
トランザクションエンジンT1乃至T4は、バックアップ完了メッセージを受信すると、S401において中断していた通常の書き込みを再開する。
以上のように、本第1の実施形態によれば、SQLエンジン120は、コミットしたトランザクションの書き込み要求をトランザクションエンジン140に送信する。トランザクションエンジン140は、要求された書き込みとトランザクショングループの整合性を保証するための書き込みを実施する。SQLエンジン120は、トランザクションエンジン140により実施された書き込みに基づいて、自装置における順序関係の不整合の有無を調べ、不整合が有る場合は整合に必要な追加書き込みをトランザクションエンジン140に要求する。上記処理を繰り返すことにより、コミットと永続データ記憶部161への書き込みの順序関係に関する不整合がなくなったらバックアップ準備完了とする。
上記構成を採用することにより、本第1の実施形態によれば、システム全体の順序関係を保ちながらWALをKVSに書き込むことができるので、システムを停止することなく整合性のとれたバックアップの取得が可能となるという効果が得られる。
第2の実施形態
次に、上述した第1の実施形態を基礎とする第2の実施形態について説明する。以下の説明では、第1の実施形態と同様の構成については同じ参照番号を付与することにより、重複する説明は省略する。
図11は、本発明の第2の実施形態に係るデータベースシステム200の構成を示す図である。データベースシステム200は、第1の実施形態において説明したデータベースシステム100に加えて、トランザクションエンジン140におけるWAL複製部(複製制御手段)210、バックアップ層(バックアップ装置)180におけるWALバックアップデータ記憶部(複製情報格納手段)220、WAL反映部(複製情報反映手段)230をそれぞれ備える。なお、図11に示すモジュール間の点線は、線の交差により各モジュール間の関係が不明確になることを防ぐために異ならせているが、点線ごとの特別な意味はない。
データベースシステム200は、第1の実施形態において説明したバックアップ準備命令に応じて中断する通常の書き込みの中断時間を短縮するシステムである。
各構成要素の動作の概要は以下の通りである。
WAL複製部210は、コミットログ管理部134からコミットIDリストと書き込み要求を受信し、コミットIDリストに含まれるコミットに関するWALを、WALバックアップデータ記憶部220に複製する。
WAL反映部230は、WALバックアップデータ記憶部220に格納されるWALを、バックアップデータ記憶部(バックアップ格納手段)182に書き込む。
図12は、本実施形態に係るデータベースシステム200のバックアップ層180の動作を示すフローチャートである。図13は、本実施形態に係るデータベースシステム200のトランザクションエンジン140の動作を示すフローチャートである。なお、SQLエンジン120は、以下に説明する動作以外は、第1の実施形態において説明した動作と同様に動作する。図11乃至図13を参照して、本実施形態に係るデータベースシステム200の動作について説明する。
データベースシステム200のSQLエンジン120およびトランザクションエンジン140は、第1の実施形態にて説明した通常の書き込みを中断させる動作まで、すなわち、図7のS201、図10のS401までは、第1の実施形態と同様の動作を行う。
SQLエンジン120のバックアップ制御部136は、バックアップ準備命令をトランザクションエンジン140に送信する際に、バックアップ層180のデータ複製部(バックアップ手段)181に、複製開始メッセージを送信する。
データ複製部181は、複製開始メッセージを受信すると(図12のS501)、KVS160の永続データ記憶部161から、バックアップデータ記憶部182にデータを複製する(図12のS502)。
一方、トランザクションエンジン140では、図13に示すように、WAL制御部154は、バックアップ準備命令を受信し、通常書き込みを中断し(図13のS401)、その後、既に書き込み済みのコミットのリストをSQLエンジン120に送信する(図13のS601)。
その後、トランザクションエンジン140はメッセージの受信を待機し(図13のS602)、コミットログ管理部134からトランザクションの書き込み要求が送信されると(図13のS603においてYes)、第1の実施形態ではWAL制御部154がその書き込み要求を受信したのに対して、本第2の実施形態では、WAL複製部210が受信する(図13のS606)。
WAL複製部210は、バックアップ層180のWALバックアップデータ記憶部220に、書き込み要求されたトランザクションに関するWALを複製する(図13のS607)。このとき、WAL複製部210は、図10のS402と同様に、トランザクションのグループの整合性が保証されるように複製する。すなわち、トランザクションエンジン140にトランザクションが格納された順と、上記複製を実施した順との整合がとれるように、複製を実施する。WAL複製部210は、WALを複製済みのトランザクションのリストを全SQLエンジン120に送信する(図13のS608)。そして、WAL複製部210はメッセージ受信を待機する(図13のS609)。
このように、本第2の実施形態では、永続データ記憶部161からバックアップデータ記憶部182へのデータ複製が行われる間、WAL制御部154は永続データ記憶部161へのWALの書き込みを行わない。それに代えて、WAL複製部210は、WALをWALバックアップデータ記憶部220に複製する。
ここで、図13のS401において中断されたWAL制御部154の通常書き込みは、永続データ記憶部161からバックアップデータ記憶部182へのデータの複製が終了すれば、再開可能となる。したがって、データ複製部181は、複製が終了すると(図12のS503においてYes)、SQLエンジン120に複製終了メッセージを送信する(図12のS504)。
SQLエンジン120は、バックアップ制御部136において複製終了メッセージを受信すると、トランザクションエンジン140のWAL制御部154に、書き込み再開メッセージを送信する(図13の「K」に示す)。バックアップ制御部136はまた、バックアップ層180のWAL反映部230に、WALの書き込み開始メッセージを送信する(図12の「M」に示す)。
トランザクションエンジン140のWAL制御部154は、上記書き込み再開メッセージを受信すると(図13のS604においてYes)、通常書き込みを再開する(図13のS605)。
バックアップ層180のWAL反映部230は、上記WALの書き込み開始メッセージを受信すると(図12のS505、およびS506においてYes)、WALバックアップデータ記憶部220のWALをバックアップデータ記憶部182に書き込む(図12のS507)。このように、本第2の実施形態では、WAL反映部230がバックアップデータ記憶部182に対して書き込みをするので、整合されたバックアップがバックアップデータ記憶部182において取得される。
バックアップは、データ複製部181による永続データ記憶部161からバックアップデータ記憶部182へのデータの複製、およびWAL反映部230によるWALバックアップデータ記憶部220からバックアップデータ記憶部182への書き込みが、それぞれ終了した時点で、完了する。
以上のように、本第2の実施形態によれば、WAL制御部154による通常書き込みの中断後、データ複製部181は、永続データ記憶部161のデータをバックアップデータ記憶部182に複製する。WAL複製部210は、WAL制御部154の代わりに整合処理を行う。したがって、永続データ記憶部161のデータの整合性が確定する前にデータ複製部181により複製が可能であると共に、当該複製が終了した時点で、WAL制御部154による通常書き込みの再開が可能である。よって、本第2の実施形態によれば、書き込みが中断される時間が短縮できるので、バックアップ取得に起因したシステムへの影響を削減できるという効果が得られる。
第3の実施形態
次に、上述した第1の実施形態を基礎とする第3の実施形態について説明する。上記第1の実施形態では、トランザクションを実施すると共にそのログに基づくデータのバックアップを、システムを停止することなく整合性を保ちながら取得する構成について説明した。本第3の実施形態では、分散された複数の処理装置により永続化されたデータのバックアップを、システムを停止することなく整合性を保ちながら取得する構成について説明する。
図14は、本発明の第3の実施形態に係るデータベースシステム300の構成を示す図である。図14に示すように、第3の実施形態に係るデータベースシステム300は、処理要求装置310a、310b、処理装置350a乃至350d、永続データ記憶部370およびバックアップ装置380を備える。処理装置350a乃至350dは、それぞれキャッシュ351a乃至351dを備える。バックアップ装置380は、バックアップ取得部381およびバックアップデータ記憶部382を備える。
処理要求装置310a、310bは、上記第1の実施形態において図2を参照して説明したSQLエンジンp1,p2にそれぞれ相当する。処理装置350a乃至350dは、同じくトランザクションエンジンT1乃至T4にそれぞれ相当する。
処理装置350a乃至350dは、第1の実施形態におけるトランザクションエンジン140のように、関連するデータのグループをそれぞれがキャッシュ351a乃至351dに保持する。処理要求装置310a、310bは、関連するデータのグループを保持するいずれかの処理装置に対して、データの取得、更新、削除等の処理要求を行う。ここで、関連するデータのグループとは、例えばヘッダデータと明細データのようにアトミックな操作が必要な複数のデータであってよい。
処理装置350a乃至350dは、所定のタイミングで、キャッシュ351a乃至351dに格納されるデータを、永続データ記憶部370に書き出すことにより、データを永続化する。
本実施形態に係るデータベースシステム300では、上記第1の実施形態と同様に、永続データ記憶部370に書き出されたデータのバックアップを、システムを停止することなく整合性を保ちながら、バックアップ装置380に取得することができる。
図15は、図14における処理要求装置310aおよび処理装置350aの詳細な構成を示すブロック図である。図15では、処理要求装置310a、処理装置350aの構成について示すが、処理要求装置310b、処理装置350b乃至350dも、それぞれ処理要求装置310a、処理装置350aと同様の構成を有する。
図15に示すように、処理要求装置310aは、処理部320、不整合判断部321および更新要求部322を備える。
処理装置350aは、キャッシュ351a、処理部352および更新制御部353を備える。
処理要求装置310a、310bは、処理部320または更新要求部322により、関連するデータのグループを保持するいずれかの処理装置に対して、データの取得、更新、削除等の処理要求を行う。
処理装置350a乃至350dは、更新制御部353により、キャッシュ351a乃至351dに格納されるデータで、永続データ記憶部370を更新する。この永続データ記憶部370の更新は、上記第1の実施形態における「書き込み」に相当する。この更新により、キャッシュ351a乃至351dに格納されるデータが永続化される。
バックアップ装置380は、永続データ記憶部370に格納されるデータのバックアップを格納する。すなわち、バックアップ取得部381は、永続データ記憶部370に格納されるデータを読み出すと共に複製し、複製したデータをバックアップデータ記憶部382に格納する。
永続データ記憶部370に格納されるデータのバックアップを取得する際のデータベースシステム300の動作について説明する。このバックアップの取得に際し、処理要求装置310aおよび処理装置350aは、それぞれ上記第1の実施形態において説明したSQLエンジン120およびトランザクションエンジン140と同様の動作を行う。
すなわち、処理要求装置310aの不整合判断部321、更新要求部322は、それぞれ上記第1の実施形態におけるSQLエンジン120の不整合判断部135、バックアップ制御部136に相当する動作を行う。処理装置350aのキャッシュ351a、更新制御部353は、それぞれ上記第1の実施形態におけるトランザクションエンジン140のWAL記憶部153、WAL制御部154に相当する動作を行う。そこで、本第3の実施形態では、第1の実施形態に相当する動作の詳細な説明は省略し、データベースシステム300における第1の実施形態とは異なる動作について説明する。
処理要求装置310aがバックアップ準備命令を受けたと仮定する。処理要求装置310aは、バックアップ準備命令に応じて、更新要求部322から処理装置350a乃至350dに対して、永続データ記憶部370への更新を中断する指示を出す。また更新要求部322は、バックアップ準備命令までに要求した処理に関するデータで永続データ記憶部370を更新することを、処理装置350a乃至350dに要求する。
なお、処理要求装置310a、310bは、処理装置350a乃至350dの更新制御部353が永続データ記憶部370を更新したデータ(すなわち永続化されたデータ)を示す情報を、図示しない記憶領域に保持している。
処理装置350a乃至350dは、それぞれ、更新制御部353により、更新を要求されたデータで永続データ記憶部370を更新する。このとき、更新制御部353は、データに関する処理の順(すなわち処理要求装置310aまたは処理要求装置310bから取得してキャッシュを更新した順)と、永続データ記憶部370を更新する順とが整合するように、永続データ記憶部370を更新する。つまり、更新を要求されたデータよりも先に処理されたが永続データ記憶部370を更新していないデータ(未更新データ)がある場合、更新制御部353は、更新を要求されたデータと共に、その未更新データで、永続データ記憶部370を更新する(上記第1の実施形態における図10のS402の動作に相当する)。
処理装置350a乃至350dは、それぞれ、更新制御部353により、更新済みのデータのリストを処理要求装置310a、310bに送る。処理要求装置310a、310bは、それぞれ、不整合判断部321により、更新済みのデータのリストに基づいて、順序関係の整合処理を行う(上記第1の実施形態における図8に示す動作に相当する)。すなわち、不整合判断部321は、自装置における処理の順(すなわち処理装置350a乃至350dに対して更新要求した順)と、永続データ記憶部370が更新された順とに不整合があるか否かを判断する。
不整合がある場合、不整合判断部321は、上記順が整合するように(整合に必要なデータで)永続データ記憶部370を更新することを、処理装置に要求する。すなわち、不整合判断部321は、永続データ記憶部370を更新したデータよりも先に処理された(処理装置350a乃至350dに対して更新要求された)データで、永続データ記憶部370をさらに更新することを、処理装置に要求する。
上記要求を受けた処理装置は、上記と同様に、更新制御部353により、要求されたデータで永続データ記憶部370を更新する。その際、更新制御部353は、上記と同様に、データに関する処理の順と、永続データ記憶部370を更新する順とが整合するように、永続データ記憶部370を更新する。このように、処理要求装置310a、310bにおける順序関係の整合性が保証されるまで、上記第1の実施形態における図7のS203乃至S207および図10のS402乃至S405に相当する処理が繰り返される。
上記手順で、順序関係の整合性が保証されると、処理要求装置310a、310bは、ユーザ等から送られたバックアップ準備命令に対して、バックアップ準備完了メッセージを返す。
ユーザは、バックアップ準備完了メッセージに応じて、バックアップ取得を実施する。すなわち、ユーザは、バックアップ取得部381を用いて永続データ記憶部370から読み出したデータを複製し、複製したデータをバックアップデータ記憶部382に格納する。
以上のように、本第3の実施形態によれば、永続データ記憶部370に格納されるデータのバックアップ取得に際し、処理装置350a乃至350dは、処理要求装置310a、310bからの要求に応じて、処理された順と、永続データ記憶部370を更新する順とが整合するように、キャッシュ351a乃至351dに格納されるデータで永続データ記憶部370を更新する。
処理要求装置310a、310bは、上記更新の結果、自装置における処理の順と、永続データ記憶部370を更新した順とに不整合がある場合、整合に必要なデータで永続データ記憶部370を更新することを、処理装置に要求する。
上記構成を採用することにより、本第3の実施形態によれば、分散された処理装置350a乃至350dが保持するデータが永続化された永続化データのバックアップを、システムを停止することなく整合性を保ちながら取得することができるという効果が得られる。
なお、更新要求部322および不整合判断部321は、処理要求装置310a、310bが備えてもよいし、処理要求装置310a、310bと通信可能な管理装置等が備えてもよい。
第4の実施形態
図16は、本発明の第4の実施形態に係る処理要求装置700の構成を示す図である。
図16に示すように、処理要求装置700は、更新要求部710および不整合判断部720を備える。
更新要求部710は、記憶装置の更新を要求する。
不整合判断部720は、関連する情報をそれぞれが格納する複数の処理装置が、要求に応じて、その情報に基づいて記憶装置を更新する順とその情報に関する処理の順とが整合するように、その情報に基づいて記憶装置を更新した結果から、その情報に関する処理の順と、記憶装置が更新された順とに不整合があるか否かを判断する。
更新要求部710は、不整合がある場合、整合に必要な情報に基づく記憶装置の更新を要求する。
なお、処理要求装置700は、第1の実施形態におけるSQLエンジン120に相当し、処理装置は、同じくトランザクションエンジン140に相当し、記憶装置は、同じくKVS160に相当する。また、更新要求部710は、同じくバックアップ制御部136に相当する。
また、処理装置が格納する情報は、第1の実施形態におけるトランザクションに関するWAL、および第3の実施形態における処理装置が処理要求装置から取得したデータに相当する。
上記構成を採用することにより、本第4の実施形態によれば、整合性のとれたバックアップの取得が可能となるという効果が得られる。
なお、図1等に示した各種装置の各部は、例えば図17に示すハードウエア資源において実現される。すなわち、図17に示す構成は、CPU(Central Processing Unit)10、RAM(Random Access Memory)11、ROM(Read Only Memory)12、外部接続インタフェース13および記憶媒体14を備える。CPU10は、ROM12または記憶媒体14に記憶された各種ソフトウエア・プログラム(コンピュータ・プログラム)を、RAM11に読み出して実行することにより、各種装置の全体的な動作を司る。すなわち、上記各実施形態において、CPU10は、ROM12または記憶媒体14を適宜参照しながら、装置が備える各機能(各部)を実行するソフトウエア・プログラムを実行する。
また、上述した各実施形態では、図1等に示した各種装置における各ブロックに示す機能を、図17に示すCPU10が実行する一例として、ソフトウエア・プログラムによって実現する場合について説明した。しかしながら、図1等に示した各ブロックに示す機能は、一部または全部を、ハードウエアとして実現してもよい。
また、各実施形態を例に説明した本発明は、各種装置に対して、上記説明した機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、CPU10がRAM11に読み出して実行することによって達成される。
また、係る供給されたコンピュータ・プログラムは、読み書き可能なメモリ(一時記憶媒体)またはハードディスク装置等のコンピュータ読み取り可能な記憶デバイスに格納すればよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムを表すコード或いは係るコンピュータ・プログラムを格納した記憶媒体によって構成されると捉えることができる。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2015年1月22日に出願された日本出願特願2015−010405を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、例えば、データやトランザクション処理に関するWALを格納する装置が分散配置されたデータベースシステム等に適用できる。
10 CPU
11 RAM
12 ROM
13 外部接続インタフェース
14 記憶媒体
100、200 データベースシステム
120 SQLエンジン
130 SQL処理部
131 データ取得部
132 データ処理部
133 コミット管理部
134 コミットログ管理部
135 不整合判断部
136 バックアップ制御部
137 コミットログ記憶部
140 トランザクションエンジン
150 トランザクション処理部
151 WAL管理部
152 排他チェック処理部
153 WAL記憶部
154 WAL制御部
160 KVS
161 永続データ記憶部
180 バックアップ層
181 データ複製部
182 バックアップデータ記憶部
210 WAL複製部
220 WALバックアップデータ記憶部
230 WAL反映部

Claims (16)

  1. 記憶装置の更新を要求する更新要求手段と、
    関連する情報をそれぞれが格納する複数の処理装置が、前記要求に応じて、前記情報に基づいて前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報に基づいて前記記憶装置を更新した結果から、前記情報に関する処理の順と、前記記憶装置が更新された順とに不整合があるか否かを判断する不整合判断手段とを備え、
    前記更新要求手段は、前記不整合がある場合、整合に必要な情報に基づく前記記憶装置の更新を要求する
    処理要求装置。
  2. 前記更新要求手段は、前記不整合がある場合、前記記憶装置を更新した情報よりも先に前記処理された情報に基づいて、前記記憶装置の更新を要求する
    請求項1記載の処理要求装置。
  3. 前記更新要求手段は、コミットされたトランザクションに関するログを格納する前記処理装置に対して、該処理装置が前記ログに基づいて前記記憶装置を更新することを要求し、
    前記不整合判断手段は、前記処理装置が前記ログに基づいて前記記憶装置を更新した結果から、トランザクションがコミットされた順と、該トランザクションに関するログに基づいて前記記憶装置が更新された順とに不整合があるか否かを判断する
    請求項1または請求項2記載の処理要求装置。
  4. 前記更新要求手段は、所定の命令に応じて、自装置から要求された以外の情報に基づく前記記憶装置の更新の中断を、前記処理装置に対して指示し、当該命令を受けるまでにコミットされたトランザクションに関するログに基づく前記記憶装置の更新を、前記処理装置に要求する
    請求項3記載の処理要求装置。
  5. 関連する情報を格納する格納手段と、
    通信可能な処理要求装置から、前記格納手段に格納された情報に基づく記憶装置の更新の要求を受けると、前記情報に基づいて前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報に基づいて前記記憶装置を更新する更新制御手段と
    を備えた処理装置。
  6. 前記更新制御手段は、前記更新を要求された情報よりも先に処理されたが前記記憶装置を更新していない未更新情報がある場合、前記更新を要求された情報と共に該未更新情報に基づいて、前記記憶装置を更新する
    請求項5記載の処理装置。
  7. 処理要求装置と、該処理要求装置と通信可能であって関連する情報をそれぞれが格納する複数の処理装置とを備えたデータベースシステムであって、
    前記処理要求装置は、
    記憶装置の更新を要求する更新要求手段と、
    前記処理装置が、前記要求に応じて、前記情報に基づいて前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報に基づいて前記記憶装置を更新した結果から、前記情報に関する処理の順と、前記記憶装置が更新された順とに不整合があるか否かを判断する不整合判断手段とを備え、
    前記更新要求手段は、前記不整合がある場合、整合に必要な情報に基づく前記記憶装置の更新を要求し、
    前記処理装置は、
    前記関連する情報を格納する格納手段と、
    前記処理要求装置から、前記格納手段に格納された情報に基づく記憶装置の更新の要求を受け取ると、前記情報に基づいて前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報に基づいて前記記憶装置を更新する更新制御手段と
    を備えた
    データベースシステム。
  8. 前記更新要求手段は、前記不整合がある場合、前記記憶装置を更新した情報よりも先に前記処理された情報に基づく前記記憶装置の更新を要求する
    請求項7記載のデータベースシステム。
  9. 通信可能な処理要求装置から、関連する情報を取得すると共に、該情報を格納する格納手段と、
    前記処理要求装置から、前記格納手段に格納された情報に基づく記憶装置の更新の要求を受けると、該情報を複製する順と前記情報に関する処理の順とが整合するように、前記情報を複製すると共に、該複製した情報をバックアップ装置に格納する複製制御手段とを備えた
    処理装置。
  10. 請求項9記載の処理装置と、
    前記処理装置により複製された情報を格納する複製情報格納手段と、
    所定の命令に応じて、前記処理装置の前記格納手段に格納される情報のバックアップを、自装置のバックアップ格納手段に格納するバックアップ手段と、
    前記バックアップの格納が終了すると、前記複製情報格納手段に格納された情報に基づいて、前記バックアップ格納手段を更新する複製情報反映手段とを備えた前記バックアップ装置と
    を備えたデータベースシステム。
  11. 記憶装置の更新を要求し、
    関連する情報をそれぞれが格納する複数の処理装置が、前記要求に応じて、前記情報で前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報に基づいて前記記憶装置を更新した結果から、前記情報に関する処理の順と、前記記憶装置が更新された順とに不整合があるか否かを判断し、
    前記不整合がある場合、整合に必要な情報に基づく前記記憶装置の更新を要求する
    更新管理方法。
  12. 通信可能な処理要求装置から、関連する情報を格納する格納手段に格納された情報に基づく記憶装置の更新の要求を受けると、前記情報に基づいて前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報に基づいて前記記憶装置を更新する
    更新方法。
  13. 記憶装置の更新を要求し、
    前記要求に応じて、前記情報で前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報に基づいて前記記憶装置を更新し、
    前記更新した結果から、前記情報に関する処理の順と、前記記憶装置が更新された順とに不整合があるか否かを判断し、
    前記不整合がある場合、整合に必要な情報に基づく前記記憶装置の更新を要求する
    データベース更新方法。
  14. 通信可能な処理要求装置から、関連する情報を取得すると共に、該情報を格納手段に格納し、
    前記処理要求装置から、前記格納手段に格納された情報に基づく記憶装置の更新の要求を受けると、該情報を複製する順と前記情報に関する処理の順とが整合するように、前記情報を複製すると共に、該複製した情報を複製情報格納手段に格納し、
    所定の命令に応じて、前記格納手段に格納される情報のバックアップを、バックアップ格納手段に格納し、
    前記バックアップの格納が終了すると、前記複製情報格納手段に格納された情報に基づいて、前記バックアップ格納手段を更新する
    データベース更新方法。
  15. 記憶装置の更新を要求する処理と、
    関連する情報をそれぞれが格納する複数の処理装置が、前記要求に応じて、前記情報に基づいて前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報に基づいて前記記憶装置を更新した結果から、前記情報に関する処理の順と、前記記憶装置が更新された順とに不整合があるか否かを判断する処理と、
    前記不整合がある場合、整合に必要な情報に基づく前記記憶装置の更新を要求する処理と
    を、コンピュータに実行させる更新管理プログラムを記録するプログラム記録媒体。
  16. 関連する情報を格納手段に格納する処理と、
    通信可能な処理要求装置から、前記格納手段に格納された情報で記憶装置を更新する要求を受けると、前記情報で前記記憶装置を更新する順と前記情報に関する処理の順とが整合するように、前記情報に基づいて前記記憶装置を更新する処理と
    を、コンピュータに実行させる更新プログラムを記録するプログラム記録媒体。
JP2016570545A 2015-01-22 2016-01-18 処理要求装置、処理装置、データベースシステム、データベース更新方法およびプログラム Pending JPWO2016117322A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015010405 2015-01-22
JP2015010405 2015-01-22
PCT/JP2016/000212 WO2016117322A1 (ja) 2015-01-22 2016-01-18 処理要求装置、処理装置、データベースシステム、データベース更新方法およびプログラム記録媒体

Publications (1)

Publication Number Publication Date
JPWO2016117322A1 true JPWO2016117322A1 (ja) 2017-11-02

Family

ID=56416876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016570545A Pending JPWO2016117322A1 (ja) 2015-01-22 2016-01-18 処理要求装置、処理装置、データベースシステム、データベース更新方法およびプログラム

Country Status (2)

Country Link
JP (1) JPWO2016117322A1 (ja)
WO (1) WO2016117322A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6404892B2 (ja) * 2016-12-19 2018-10-17 株式会社東芝 データベースシステムおよびデータ処理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005316632A (ja) * 2004-04-28 2005-11-10 Hitachi Ltd キャッシュ制御およびデータ処理システム並びにその処理プログラム
JP2005339236A (ja) * 2004-05-27 2005-12-08 Hitachi Ltd データベース管理方法及びデータベースシステム
JP2014044553A (ja) * 2012-08-27 2014-03-13 Fujitsu Ltd プログラム、情報処理装置および情報処理システム
WO2014141343A1 (ja) * 2013-03-13 2014-09-18 日本電気株式会社 データ多重化システム
WO2014170952A1 (ja) * 2013-04-16 2014-10-23 株式会社日立製作所 計算機システム、計算機システム管理方法及びプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005316632A (ja) * 2004-04-28 2005-11-10 Hitachi Ltd キャッシュ制御およびデータ処理システム並びにその処理プログラム
JP2005339236A (ja) * 2004-05-27 2005-12-08 Hitachi Ltd データベース管理方法及びデータベースシステム
JP2014044553A (ja) * 2012-08-27 2014-03-13 Fujitsu Ltd プログラム、情報処理装置および情報処理システム
WO2014141343A1 (ja) * 2013-03-13 2014-09-18 日本電気株式会社 データ多重化システム
WO2014170952A1 (ja) * 2013-04-16 2014-10-23 株式会社日立製作所 計算機システム、計算機システム管理方法及びプログラム

Also Published As

Publication number Publication date
WO2016117322A1 (ja) 2016-07-28

Similar Documents

Publication Publication Date Title
US20200356448A1 (en) Manifest-based snapshots in distributed computing environments
JP6553822B2 (ja) 分散システムにおける範囲の分割および移動
US7987158B2 (en) Method, system and article of manufacture for metadata replication and restoration
US20230100223A1 (en) Transaction processing method and apparatus, computer device, and storage medium
US6643671B2 (en) System and method for synchronizing a data copy using an accumulation remote copy trio consistency group
JP5192226B2 (ja) 待機系計算機の追加方法、計算機及び計算機システム
EP2795476B1 (en) Application consistent snapshots of a shared volume
US7299378B2 (en) Geographically distributed clusters
JP5952960B2 (ja) 計算機システム、計算機システム管理方法及びプログラム
JP4484618B2 (ja) ディザスタリカバリシステム、プログラム及びデータの複製方法
US7698319B2 (en) Database system management method, database system, database device, and backup program
US8572037B2 (en) Database server, replication server and method for replicating data of a database server by at least one replication server
KR100961739B1 (ko) 가상화를 이용한 원격 복제의 일관성 유지방법
US20150347250A1 (en) Database management system for providing partial re-synchronization and partial re-synchronization method of using the same
US20200019543A1 (en) Method, apparatus and device for updating data, and medium
JP4419884B2 (ja) データ複製装置、方法及びプログラム並びに記憶システム
US8412674B2 (en) Replication resynchronization
US10007548B2 (en) Transaction system
JP2004005358A (ja) 複製ボリューム間でのバックアップ・リストア管理方法およびこの方法に用いる記憶制御装置
JP5721056B2 (ja) トランザクション処理装置、トランザクション処理方法およびトランザクション処理プログラム
CN112384906A (zh) 基于mvcc的数据库系统的异步缓存一致性
US6859811B1 (en) Cluster database with remote data mirroring
US10671482B2 (en) Providing consistency in a distributed data store
US9563521B2 (en) Data transfers between cluster instances with delayed log file flush
JP4998010B2 (ja) データベースシステム管理、データベースシステム、プログラム及び処理装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170713

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190924

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200407