JP6158361B2 - 情報処理装置及び方法 - Google Patents

情報処理装置及び方法 Download PDF

Info

Publication number
JP6158361B2
JP6158361B2 JP2015561117A JP2015561117A JP6158361B2 JP 6158361 B2 JP6158361 B2 JP 6158361B2 JP 2015561117 A JP2015561117 A JP 2015561117A JP 2015561117 A JP2015561117 A JP 2015561117A JP 6158361 B2 JP6158361 B2 JP 6158361B2
Authority
JP
Japan
Prior art keywords
update
data
storage medium
request
column
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
JP2015561117A
Other languages
English (en)
Other versions
JPWO2015118662A1 (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
Publication of JPWO2015118662A1 publication Critical patent/JPWO2015118662A1/ja
Application granted granted Critical
Publication of JP6158361B2 publication Critical patent/JP6158361B2/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/2379Updates performed during online database operations; commit processing
    • 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

Landscapes

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

Description

本発明の実施形態は、一般的に情報処理装置及び方法に関する。
近年、データの管理方法として、リレーショナルデータベース(RDB: Relational Database)とインメモリのキーバリューストア(KVS: Key Value Store)とを組み合せて使用するデータ管理方法が普及しつつある。このデータ管理方法によれば、RDBだけを使用したデータ管理方法にくらべて、クライアント端末が所望のデータを取得するまでに要する時間を短縮することができる。
一般に、RDBだけを使用したデータ管理方法の場合、クライアント端末からのアクセスに応じて、RDBに格納された多量のテーブルの中から所望のデータを含むテーブルを検索し、このテーブルから所望のデータを取得する必要があり、クライアント端末が所望のデータを取得するまでに時間がかかってしまう。
一方で、RDBとインメモリのKVSとを組み合せて使用するデータ管理方法の場合、まずインメモリのKVSに所望のデータがキャッシュとして格納されているか否かを確認する。インメモリのKVSには、所望のデータを取得するためのキーと所望のデータとが1対1に対応付けられて格納されているため、所望のデータがキャッシュとして格納されている場合は、クライアント端末は、RDBだけを使用したデータ管理方法にくらべて格段に早く所望のデータを取得することができる。また、所望のデータがキャッシュとして格納されていない場合は、クライアント端末は、アクセス対象をRDBに変更して、RDBから所望のデータを取得することになるが、このときに取得した所望のデータをインメモリのKVSのキャッシュとして登録しておくことにより、クライアント端末が所望のデータを取得するまでにかかる次回以降の時間を短縮することができる。
以上のように、RDBとインメモリのKVSとを組み合せて使用するデータ管理方法によれば、RDBだけを使用したデータ管理方法にくらべて、クライアント端末が所望のデータを取得するまでに要する時間を短縮することができる。
しかしながら、上述したように、RDBとインメモリのKVSとを組み合せて使用する場合であって、インメモリのKVSにキャッシュとして所望のデータが格納されていない場合に、クライアント端末自身が、アクセス対象をRDBに変更する必要があるという不都合がある。すなわち、アクセス対象をインメモリのKVSからRDBに変更するというクライアント端末の動作の記述を、クライアント端末を操作するユーザが行う必要があるという不都合がある。
また、RDBとインメモリのKVSとを組み合せて使用するデータ管理方法の場合、RDBに格納されたデータを更新した際に不都合が生じる恐れがある。一般に、RDBに格納されたデータを更新した際には、もし更新前のデータがインメモリのKVSにキャッシュとして格納されている場合はこのキャッシュのデータも更新する必要がある。しかしながら、RDBに格納されたデータの更新に応じて、インメモリのKVSのキャッシュの更新を行わせるという動作の記述は複雑であり、この動作が一般的には行われていないという現状がある。これにより、RDBに格納されたデータが更新されているにも関わらず、インメモリのKVSのキャッシュのデータが更新されていないことに起因して、クライアント端末に更新前のデータを取得させてしまう恐れがある。
特開2013−152557号公報
本発明の一形態の目的は、RDBとインメモリのKVSとを組み合せて使用する好適なデータ管理方法を実現し得る情報処理装置及び方法を提供することである。
実施形態によれば、情報処理装置は、クライアント端末と、複数のカラム名と各カラム名に対応するカラムとを有してテーブル名により識別される複数のテーブルを備えた第1記憶媒体と、前記第1記憶媒体に格納された各テーブル内の一部のデータと当該データを読み出す際に用いるキーとを対応付けて格納する第2記憶媒体とに通信可能に接続され、データ管理システムに適用される。この情報処理装置は、前記クライアント端末から前記第1記憶媒体に格納された各テーブル内のデータを書きかえる旨の更新要求を受けると、前記第1記憶媒体を検索して、前記更新要求による更新対象のデータのカラム名とカラムとを取得する取得手段と、前記取得されたカラム名とカラムとが対応付けられたデータを一時メモリに書き込む第1書込手段と、前記受信された更新要求にしたがって、前記更新対象のデータのカラムを更新する更新手段と、更新の後に、前記クライアント端末から前記更新を確定させる旨の更新確定要求を受けると、前記第1記憶媒体に格納された前記更新対象のデータのカラムへの更新を確定させると共に、前記一時メモリに格納された前記更新対象のデータのカラムを含むデータに対して更新を確定させた旨の更新確定情報を付与する更新確定手段と、前記第2記憶媒体に格納されたデータ群から、前記更新確定情報が付与されたデータのカラム名とカラムとを含むデータを削除する削除手段とを具備する。
図1は、第1実施形態に係る情報処理装置を適用するデータ管理システムの概略構成例を示すブロック図である。 図2は、同実施形態に係る情報処理装置によって実行されるデータ更新処理の手順の一例を示すフローチャートである。 図3は、第2実施形態に係る情報処理装置を適用するデータ管理システムの概略構成例を示すブロック図である。 図4は、同実施形態に係る情報処理装置によって実行されるデータ更新処理の手順の一例を示すフローチャートである。
以下、実施の形態について図面を参照して説明する。
[第1実施形態]
図1は、第1実施形態に係る情報処理装置を適用するデータ管理システムの概略構成例を示すブロック図である。データ管理システム1は、RDB11、インメモリKVS12、クライアント端末13及び情報処理装置14等を備えている。
RDB11は、複数のカラム名と、各カラム名に対応するカラムとを有してテーブル名により識別される複数のテーブルを備えており、クライアント端末13から情報処理装置14を介して受けた取得要求SQLを受けると、この取得要求SQLに応じた戻り値を送出する機能をもっている。RDB11は、所謂ハードディスクドライブ(HDD: Hard Disk Drive)等によって構成される。
インメモリKVS12は、データを識別するためのキー(例えば、取得要求SQL等)とデータとを1対1に対応付けて格納する記憶媒体である。尚、本実施形態では、インメモリKVS12はデータ保存領域として所謂HDDを使用するKVSではなく、データ保存領域をメモリ上に置くことにより高速に処理が可能なKVSを想定する。
クライアント端末13は、RDB11に格納されたデータを取得するための取得要求SQLを発行し、この取得要求SQLに応じた戻り値を受信する機能をもっている。また、クライアント端末13は、RDB11に格納されたデータを更新するための更新要求SQL(例えば、変更要求SQL、挿入要求SQL等)を発行する機能をもっている。さらに、クライアント端末13は、更新要求SQLにしたがって実行された更新を確定させるための確定要求SQLや、上述の更新を元に戻すための巻き戻し要求SQLを発行する機能をもっている。
情報処理装置14は、図1に示すように、クライアント通信部141、キャッシュ制御部142、RDB通信部143及び更新用ワークメモリ144等をさらに含む。以下の説明では、まずデータ取得処理時に使用される情報処理装置14内の各部141〜144の機能について述べた後に、データ更新処理時に使用される情報処理装置14内の各部141〜144の機能について説明する。
まずデータ取得処理時に使用される情報処理装置14内の各部141〜144の機能について説明する。
クライアント通信部141は、クライアント端末13によって発行された取得要求SQLを受信し、この取得要求SQLをキャッシュ制御部142に送出する機能と、取得要求SQLに応じた戻り値をクライアント端末13に送出する機能とをもっている。
キャッシュ制御部142は、クライアント通信部141から送出された取得要求SQLを受けると、当該取得要求SQLをキーとしてインメモリKVS12を検索する機能をもっている。また、キャッシュ制御部142は、検索の結果、取得要求SQLに応じた戻り値がインメモリKVS12から得られた場合に、当該戻り値をクライアント通信部141に送出する機能をもっている。さらに、キャッシュ制御部142は、検索の結果、取得要求SQLに応じた戻り値がインメモリKVS12から得られなかった場合に、当該取得要求SQLをRDB通信部143に送出(転送)する機能をもっている。
RDB通信部143は、キャッシュ制御部142から送出された取得要求SQLを受けると、当該取得要求SQLをRDB11に送出して、当該取得要求SQLに応じた戻り値を取得すると共に、キャッシュ制御部142を介して、当該取得した戻り値を当該取得要求SQLをキーとしてインメモリKVS12に登録する。取得された戻り値はクライアント通信部141に送出される。
尚、更新用ワークメモリ144は、データ取得処理時には使用されないものとする。
次に、データ更新処理時に使用される情報処理装置14内の各部141〜144の機能について説明する。尚、データ更新処理には、変更要求SQLにしたがって実行されるデータ更新処理と、挿入要求SQLにしたがって実行されるデータ更新処理とがある。以下の説明では、まず変更要求SQLにしたがって実行されるデータ更新処理時に使用される情報処理装置14内の各部141〜144の機能について説明した後に、挿入要求SQLにしたがって実行されるデータ更新処理時に使用される情報処理装置14内の各部141〜144の機能について説明する。
まず変更要求SQLにしたがって実行されるデータ更新処理時に使用される情報処理装置14内の各部141〜144の機能について説明する。
クライアント通信部141は、クライアント端末13によって発行された行ロック要求SQLを受信し、この行ロック要求SQLをRDB通信部143に送出する機能をもっている。行ロック要求SQLとは、主に、RDB11に格納されたデータを変更(更新)する前にクライアント端末13から発行される要求SQLであり、更新対象のデータを含む行(又はテーブル)への他のリソースのアクセスを制限することを要求するものである。尚、RDB通信部143は、クライアント通信部141から送出された行ロック要求SQLを受けると、当該行ロック要求SQLをRDB11に送出して、更新対象のデータを含む行への他のリソースのアクセスを制限する(当該行をロックする)と共に、ロックした行を示すロック情報を更新用ワークメモリ144に書き込む。
また、クライアント通信部141は、クライアント端末13によって発行された変更要求SQLを受信し、この変更要求SQLをRDB通信部143に送出する機能をもっている。
RDB通信部143は、クライアント通信部141から送出された変更要求SQLを受けると、更新用ワークメモリ144を参照して、当該変更要求SQLにしたがって更新する(RDB11内の)データを含む行(又はテーブル)が事前にロックされているか否かを確認する機能をもっている。
確認の結果、事前にロックされていない場合には、RDB通信部143は、変更要求SQLにしたがって更新するデータを含む行への他のリソースのアクセスを制限した後に、RDB11に格納された複数のテーブルから更新対象のデータを含む行を検索する。このとき、RDB通信部143は、ロックした行を示すロック情報を更新用ワークメモリ144に書き込む。一方で、確認の結果、事前にロックされている場合には、RDB通信部143は、更新対象のデータを含む行を検索する処理だけを実行する。
RDB通信部143は、更新対象のデータを含む行を検索すると、当該更新対象のデータのカラム名とカラムとを更新用ワークメモリ144に書き込む機能をもっている。また、RDB通信部143は、変更要求SQLをRDB11に送出して、更新対象のデータを更新する機能をもっている。
さらに、RDB通信部143は、クライアント端末13から発行された確定要求SQLをクライアント通信部141を介して受けると、上述の変更要求SQLにしたがって実行された更新を確定させる処理を実行すると共に、更新用ワークメモリ144に格納された更新前のデータのカラム名とカラムとに対して更新が確定された旨を示す更新確定情報を付与する処理を実行する。一方で、RDB通信部143は、クライアント端末13から発行された巻き戻し要求SQLをクライアント通信部141を介して受けると、上述の変更要求SQLにしたがって実行された更新を元に戻す処理を実行する。
キャッシュ制御部142は、インメモリKVS12に格納されたデータ群から、更新用ワークメモリ144内で更新確定情報が付与されたカラム名とカラムとを含むデータを削除する機能をもっている。また、キャッシュ制御部142は、更新用ワークメモリ144に格納されたロック情報と更新確定情報が付与されたデータとを適宜削除する機能をもっている。尚、上述のような更新用ワークメモリ144に格納された各種データを削除する機能は、RDB通信部143が有していてもよい。
次に、挿入要求SQLにしたがって実行されるデータ更新処理時に使用される情報処理装置14内の各部141〜144の機能について説明する。
クライアント通信部141は、クライアント端末13によって発行された挿入要求SQLを受信し、この挿入要求SQLをRDB通信部143に送出する機能をもっている。
RDB通信部143は、クライアント通信部141から送出された挿入要求SQLを受けると、当該挿入要求SQLをRDB11に送出して、挿入対象のデータをRDB11に格納された所望のテーブルに挿入する機能をもっている。また、RDB通信部143は、挿入対象のデータを挿入要求SQLにしたがって挿入すると(挿入が成功すると)、挿入されたデータのカラム名とカラムとを全て更新用ワークメモリ144に書き込む機能をもっている。
さらに、RDB通信部143は、クライアント端末13から発行された確定要求SQLをクライアント通信部141を介して受けると、上述の挿入要求SQLにしたがって実行された更新を確定させる処理を実行すると共に、更新用ワークメモリ144に格納された挿入対象のデータのカラム名とカラムとに対して更新が確定された旨を示す更新確定情報を付与する処理を実行する。一方で、RDB通信部143は、クライアント端末13から発行された巻き戻し要求SQLをクライアント通信部141を介して受けると、上述の挿入要求SQLにしたがって実行された更新を元に戻す処理を実行する。
キャッシュ制御部142は、更新用ワークメモリ144に格納された更新確定情報が付与されたデータを適宜削除する機能をもっている。尚、上述のような更新用ワークメモリ144に格納された各種データを削除する機能は、RDB通信部143が有していてもよい。
次に、以上のように構成された情報処理装置14によって実行されるデータ更新処理の手順の一例について、図2のフローチャートを参照しながら説明する。ここでは、変更要求SQLにしたがって実行されるデータ更新処理の手順について説明する。
始めに、クライアント通信部141は、クライアント端末13によって発行された変更要求SQLを受信し、この変更要求SQLをRDB通信部143に送出する(ステップS1)。
次に、RDB通信部143は、クライアント通信部141から送出された変更要求SQLを受けると、更新用ワークメモリ144を参照して、当該変更要求SQLにしたがって更新する(RDB11内の)データを含む行(又はテーブル)が事前にロックされているか否かを確認する(ステップS2)。
ステップS2の確認の結果が事前にロックされている旨を示す場合(ステップS2のYES)、RDB通信部143は、RDB11に格納された複数のテーブルから更新対象のデータを含む行を検索する(ステップS3)。尚、ステップS3の処理が終了すると、後述するステップS5の処理に進む。
一方、ステップS2の確認の結果が否を示す場合(ステップS2のNO)、RDB通信部143は、変更要求SQLにしたがって更新するデータを含む行をロックした後に、RDB11に格納された複数のテーブルから更新対象のデータを含む行を検索する。そして、RDB通信部143は、ロックした行を示すロック情報を更新用ワークメモリ144に書き込む(ステップS4)。
続いて、RDB通信部143は、更新対象のデータを含む行を検索すると、当該更新対象のデータのカラム名とカラムとを更新用ワークメモリ144に書き込む(ステップS5)。次に、RDB通信部143は、変更要求SQLをRDB11に送出して、更新対象のデータを更新する(ステップS6)。
上述のステップS1〜S6の処理が実行されると、クライアント通信部141は、クライアント端末13に応答する(ステップS7)。すなわち、クライアント通信部141は、変更要求SQLにしたがって実行する処理が終了した旨をクライアント端末13に通知する。
続いて、クライアント通信部141は、クライアント端末13から発行された要求SQLを受信し、当該要求SQLが巻き戻し要求SQL又は確定要求SQLのどちらであるかを確認する(ステップS8)。尚、ステップS8の確認の結果が確定要求SQLである場合は、後述するステップS13の処理に進む。
ステップS8の確認の結果が巻き戻し要求SQLである場合(ステップS8の巻き戻し要求SQL)、クライアント通信部141は、この巻き戻し要求SQLをRDB通信部143に送出する(ステップS9)。
次に、RDB通信部143は、クライアント通信部141から送出された巻き戻し要求SQLを受けると、当該巻き戻し要求SQLをRDB11に送出して、変更要求SQLにしたがって実行された更新を元に戻す処理を実行する。なお、巻き戻し要求SQLにしたがって更新を元に戻す処理が実行されると、RDB11側では、更新対象のデータを含む行に対して行われたロックが自動的に解放される(ステップS10)。続いて、RDB通信部143は、更新用ワークメモリ144に格納されたロック情報及び更新対象のデータのカラム名とカラムとを削除する(ステップS11)。
しかる後、クライアント通信部141は、クライアント端末13に応答する、すなわち、巻き戻し要求SQLにしたがって実行する処理が終了した旨をクライアント端末13に通知し(ステップS12)、データ更新処理を終了させる。
ステップS8の確認の結果が確定要求SQLである場合(ステップS7の確定要求SQL)、クライアント通信部141は、この確定要求SQLをRDB通信部143に送出する(ステップS13)。
続いて、RDB通信部143は、クライアント通信部141から送出された確定要求SQLを受けると、当該確定要求SQLをRDB11に送出して、変更要求SQLにしたがって実行された更新を確定させる処理を実行する。なお、確定要求SQLにしたがって更新を確定させる処理が実行されると、RDB11側では、更新対象のデータを含む行に対して行われたロックが自動的に解放される(ステップS14)。次に、RDB通信部143は、更新用ワークメモリ144に格納された更新対象のデータのカラム名とカラムとに対して更新が確定された旨を示す更新確定情報を付与する(ステップS15)。
上述のステップS8,S13〜S15の処理が実行されると、クライアント通信部141は、クライアント端末13に応答する(ステップS16)。すなわち、クライアント通信部141は、確定要求SQLにしたがって実行する処理が終了した旨をクライアント端末13に通知する。
続いて、キャッシュ制御部142は、インメモリKVS12に格納されたデータ群から、更新用ワークメモリ144内で更新確定情報が付与されたカラム名とカラムとを含むデータを削除する(ステップS17)。
しかる後、キャッシュ制御部142は、更新用ワークメモリ144に格納されたロック情報及び更新確定情報が付与されたデータのカラム名とカラムとを削除し(ステップS18)、データ更新処理を終了させる。
以上説明した第1実施形態によれば、データ取得処理時に、まずインメモリKVS12を確認し、インメモリKVS12から所望のデータが得られない場合にはRDB11にアクセスするという処理を情報処理装置14が実行するため、クライアント端末13を操作するユーザがわざわざアクセス対象を変更しなくても所望のデータを素早く取得することができる。
また、本実施形態によれば、データ更新処理時に、インメモリKVS12に格納された更新前のデータを削除するという処理を情報処理装置14が実行するため、データ更新処理後に、クライアント端末13がインメモリKVS12から更新前のデータを取得してしまうことを防ぐことができる。
[第2実施形態]
図3は、第2実施形態に係る情報処理装置を適用するデータ管理システムの概略構成例を示すブロック図である。図3のデータ管理システム1は、図1に示した構成に加えて、KVSジャーナル15をさらに備えると共に、情報処理装置14が遅延更新処理部145をさらに含む構成になっている。ここでは主に、上述した第1実施形態とは異なる機能について説明する。
まずKVSジャーナル15について説明する。
KVSジャーナル15は、情報処理装置14によって実行されるデータ更新処理に関するログファイルを格納する記憶媒体であり、インメモリKVS12と通信可能に接続される。尚、KVSジャーナル15は、RDB11と同様に、所謂HDD等によって構成される。このため、データ管理システム1の停止等に起因して、インメモリKVS12に格納されたデータが削除されてしまったとしても、KVSジャーナル15に格納されたログファイルが削除されることはない。本実施形態では、KVSジャーナル15は情報処理装置14外に設けられるとしたが、KVSジャーナル15は情報処理装置14内に設けられるとしてもよい。
遅延更新処理部145は、データ管理システム1が停止した際に、クライアント端末13から既に発行されて、インメモリKVS12に一度格納された各種要求SQL(例えば、変更要求SQL、確定要求SQL等)を、KVSジャーナル15に格納されたログファイルに基づいて再構成するようインメモリKVS12に要求する機能をもっている。また、遅延更新処理部145は、インメモリKVS12により再構成された各種要求SQLにしたがって、データ管理システム1の停止に起因して中断されてしまったデータ更新処理を再度実行する機能をもっている。
次に、本実施形態に係る情報処理装置14によって実行されるデータ更新処理の手順の一例について、図4のフローチャートを参照しながら説明する。ここでは、変更要求SQLにしたがって実行されるデータ更新処理の手順について説明する。
始めに、クライアント通信部141は、クライアント端末13によって発行された変更要求SQLを受信し、この変更要求SQLをRDB通信部143に送出する(ステップS21)。尚、ここでは、クライアント通信部141は、受信した変更要求SQLをキャッシュ制御部142にも適宜送出するものとする。
次に、RDB通信部143は、クライアント通信部141から送出された変更要求SQLを受けると、更新用ワークメモリ144を参照して、当該変更要求SQLにしたがって更新する(RDB11内の)データを含む行(又はテーブル)が事前にロックされているか否かを確認する(ステップS22)。
ステップS22の確認の結果が事前にロックされている旨を示す場合(ステップS22のYES)、RDB通信部143は、RDB11に格納された複数のテーブルから更新対象のデータを含む行を検索する(ステップS23)。尚、ステップS23の処理が終了すると、後述するステップS25の処理に進む。
一方、ステップS22の確認の結果が否を示す場合(ステップS22のNO)、RDB通信部143は、変更要求SQLにしたがって更新するデータを含む行をロックした後に、RDB11に格納された複数のテーブルから更新対象のデータを含む行を検索する。そして、RDB通信部143は、ロックした行を示すロック情報を更新用ワークメモリ144に書き込む(ステップS24)。
続いて、RDB通信部143は、更新対象のデータを含む行を検索すると、当該更新対象のデータのカラム名とカラムとを更新用ワークメモリ144に書き込む(ステップS25)。
更新対象のデータのカラム名とカラムとが更新用ワークメモリ144に書き込まれると、キャッシュ制御部142は、クライアント通信部141から送出され、受信した変更要求SQLをインメモリKVS12に書き込む(ステップS26)。尚、インメモリKVS12に変更要求SQLが書き込まれると、KVSジャーナル15には、変更要求SQLがインメモリKVS12に書き込まれた旨のログファイルが適宜記録される。
上述のステップS21〜S26の処理が実行されると、クライアント通信部141は、クライアント端末13に応答する(ステップS27)。すなわち、クライアント通信部141は、変更要求SQLにしたがって実行する処理が終了した旨をクライアント端末13に通知する。
次に、クライアント通信部141は、クライアント端末13から発行された要求SQLを受信し、当該要求SQLが巻き戻し要求SQL又は確定要求SQLのどちらであるかを確認する(ステップS28)。尚、ステップS28の確認の結果が確定要求SQLである場合、後述するステップS33の処理に進む。
ステップS28の確認の結果が巻き戻し要求SQLである場合(ステップS28の巻き戻し要求SQL)、クライアント通信部141は、この巻き戻し要求SQLをRDB通信部143に送出する。なお、巻き戻し要求SQLがRDB通信部143に送出されると、RDB11側では、更新対象のデータを含む行に対して行われたロックが自動的に解放される(ステップS29)。
続いて、RDB通信部143は、クライアント通信部141から送出された巻き戻し要求SQLを受けると、当該巻き戻し要求SQLにしたがって、更新用ワークメモリ144に格納されたロック情報及び更新対象のデータのカラム名とカラムとを削除する(ステップS30)。
更新用ワークメモリ144に格納された各種データが削除されると、キャッシュ制御部142は、インメモリKVS12に格納された変更要求SQLを削除する(ステップS31)。
しかる後、クライアント通信部141は、クライアント端末13に応答する、すなわち、巻き戻し要求SQLにしたがって実行する処理が終了した旨をクライアント端末13に通知し(ステップS32)、データ更新処理を終了させる。
上述したステップS28の確認の結果が確定要求SQLである場合(ステップS28の確定要求SQL)、クライアント通信部141は、この確定要求SQLをキャッシュ制御部142に送出する(ステップS33)。
次に、キャッシュ制御部142は、クライアント通信部141から送出された確定要求SQLを受けると、当該確定要求SQLをインメモリKVS12に書き込む(ステップS34)。尚、インメモリKVS12に確定要求SQLが書き込まれると、KVSジャーナル15には、確定要求SQLがインメモリKVS12に書き込まれた旨のログファイルが適宜記録される。
確定要求SQLがインメモリKVS12に書き込まれると、RDB通信部143は、更新用ワークメモリ144に格納された更新対象のデータのカラム名とカラムとに対して更新が確定された旨を示す更新確定情報を付与する(ステップS35)。
上述のステップS28,S33〜S35の処理が実行されると、クライアント通信部141は、クライアント端末13に応答する(ステップS36)。すなわち、クライアント通信部141は、確定要求SQLにしたがって実行する処理が終了した旨をクライアント端末13に通知する。
続いて、遅延更新処理部145は、上述したクライアント端末13への応答とは非同期に、キャッシュ制御部142を介して、インメモリKVS12に格納された変更要求SQL及び確定要求SQLを取得し、これら要求SQLをRDB11に送出して、RDB11に格納された更新対象のデータを更新し、この更新を確定させる処理を実行する。なお、確定要求SQLにしたがって更新を確定させる処理が実行されると、RDB11側では、更新対象のデータを含む行に対して行われたロックが自動的に解放される(ステップS37)。
更新対象のデータの更新処理及び更新確定処理が実行されると、遅延更新処理部145は、インメモリKVS12に格納された変更要求SQL及び確定要求SQLを削除する(ステップS38)。また、遅延更新処理部145は、インメモリKVSに格納されたデータ群から、更新用ワークメモリ144内で更新確定情報が付与されたデータのカラム名とカラムとを含むデータを削除する(ステップS39)。
しかる後、遅延更新処理部145は、更新用ワークメモリ144に格納されたロック情報及び更新確定情報が付与されたデータのカラム名とカラムとを削除し(ステップS40)、データ更新処理を終了させる。
以上説明した第2実施形態によれば、データ更新処理の途中でデータ管理システム1が停止したとしても、システム再起動後に、KVSジャーナル15に格納されたログファイルに基づいて、インメモリKVS12に格納されていた変更要求SQLや確定要求SQLを再構成することができる。これに伴い、クライアント端末13から各種要求SQLを再度発行し直してもらわなくても、データ更新処理を再度実行することができる。また、RDB11に対するデータ更新として最も応答時間がかかるデータ更新処理とデータ更新確定処理とを、データの変更を保障したまま、クライアント端末13に対する応答の後に実行させることにより、クライアント端末13への応答時間を早めることができる。
以上説明した少なくとも1つの実施形態によれば、RDB11とインメモリのKVS12とを組み合せて使用する好適なデータ管理方法を実現させることができる。
なお、本実施形態の処理は、コンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (8)

  1. クライアント端末と、複数のカラム名と各カラム名に対応するカラムとを有してテーブル名により識別される複数のテーブルを備えた第1記憶媒体と、前記第1記憶媒体に格納された各テーブル内の一部のデータと当該データを読み出す際に用いるキーとを対応付けて格納する第2記憶媒体とに通信可能に接続され、データ管理システムに適用される情報処理装置であって、
    前記クライアント端末から前記第1記憶媒体に格納された各テーブル内のデータを書きかえる旨の更新要求を受けると、前記第1記憶媒体を検索して、前記更新要求による更新対象のデータのカラム名とカラムとを取得する取得手段と、
    前記取得されたカラム名とカラムとが対応付けられたデータを一時メモリに書き込む第1書込手段と、
    前記受信された更新要求にしたがって、前記更新対象のデータのカラムを更新する更新手段と、
    更新の後に、前記クライアント端末から前記更新を確定させる旨の更新確定要求を受けると、前記第1記憶媒体に格納された前記更新対象のデータのカラムへの更新を確定させると共に、前記一時メモリに格納された前記更新対象のデータのカラムを含むデータに対して更新を確定させた旨の更新確定情報を付与する更新確定手段と、
    前記第2記憶媒体に格納されたデータ群から、前記更新確定情報が付与されたデータのカラム名とカラムとを含むデータを削除する削除手段と
    を具備する情報処理装置。
  2. 更新の後に、前記クライアント端末から前記更新を巻き戻す旨の巻き戻し要求を受けると、前記更新対象のデータのカラムを更新前のカラムに戻す巻き戻し手段をさらに具備する請求項1に記載の情報処理装置。
  3. 前記データ管理システムは、データ更新処理に関するログファイルを格納する第3記憶媒体をさらに含み、
    前記情報処理装置は、
    前記更新要求及び前記更新確定要求を受信した際に、当該更新要求及び当該更新確定要求を前記第2記憶媒体に各々書き込む第2書込手段と、
    前記データ管理システムが停止した際に、前記第2記憶媒体に前記更新要求及び前記更新確定要求を書き込んだ旨の前記第3記憶媒体内のログファイルに基づいて、当該更新要求及び当該更新確定要求を再構成する再構成手段と、
    前記再構成された更新要求及び更新確定要求にしたがってデータ更新処理を再度実行する再実行手段と
    をさらに具備する請求項1に記載の情報処理装置。
  4. 前記クライアント端末からの取得要求を受けると、当該取得要求を前記キーとして前記第2記憶媒体を検索する検索手段と、
    検索の結果、前記取得要求に応じた戻り値が前記第2記憶媒体から得られた場合、当該戻り値を前記クライアント端末に送出する送出手段と、
    検索の結果、前記取得要求に応じた戻り値が前記第2記憶媒体から得られなかった場合、当該戻り値を前記第1記憶媒体から取得して、前記クライアント端末に送出すると共に、当該戻り値を前記取得要求と対応付けて前記第2記憶媒体に書き込む第3書込手段と
    をさらに具備する請求項1に記載の情報処理装置。
  5. クライアント端末と、複数のカラム名と各カラム名に対応するカラムとを有してテーブル名により識別される複数のテーブルを備えた第1記憶媒体と、前記第1記憶媒体に格納された各テーブル内の一部のデータと当該データを読み出す際に用いるキーとを対応付けて格納する第2記憶媒体とに通信可能に接続され、データ管理システムに適用される情報処理装置が実行する方法であって、
    前記クライアント端末から前記第1記憶媒体に格納された各テーブル内のデータを書きかえる旨の更新要求を受けると、前記第1記憶媒体を検索して、前記更新要求による更新対象のデータのカラム名とカラムとを取得することと、
    前記取得されたカラム名とカラムとが対応付けられたデータを一時メモリに書き込むことと、
    前記受信された更新要求にしたがって、前記更新対象のデータのカラムを更新することと、
    更新の後に、前記クライアント端末から前記更新を確定させる旨の更新確定要求を受けると、前記第1記憶媒体に格納された前記更新対象のデータのカラムへの更新を確定させると共に、前記一時メモリに格納された前記更新対象のデータのカラムを含むデータに対して更新を確定させた旨の更新確定情報を付与することと、
    前記第2記憶媒体に格納されたデータ群から、前記更新確定情報が付与されたデータのカラム名とカラムとを含むデータを削除することと
    を具備する方法。
  6. 更新の後に、前記クライアント端末から前記更新を巻き戻す旨の巻き戻し要求を受けると、前記更新対象のデータのカラムを更新前のカラムに戻すことをさらに具備する請求項5に記載の方法。
  7. 前記データ管理システムは、データ更新処理に関するログファイルを格納する第3記憶媒体をさらに含み、
    前記更新要求及び前記更新確定要求を受信した際に、当該更新要求及び当該更新確定要求を前記第2記憶媒体に各々書き込むことと、
    前記データ管理システムが停止した際に、前記第2記憶媒体に前記更新要求及び前記更新確定要求を書き込んだ旨の前記第3記憶媒体内のログファイルに基づいて、当該更新要求及び当該更新確定要求を再構成することと、
    前記再構成された更新要求及び更新確定要求にしたがってデータ更新処理を再度実行することと
    をさらに具備する請求項5に記載の方法。
  8. 前記クライアント端末からの取得要求を受けると、当該取得要求を前記キーとして前記第2記憶媒体を検索することと、
    検索の結果、前記取得要求に応じた戻り値が前記第2記憶媒体から得られた場合、当該戻り値を前記クライアント端末に送出することと、
    検索の結果、前記取得要求に応じた戻り値が前記第2記憶媒体から得られなかった場合、当該戻り値を前記第1記憶媒体から取得して、前記クライアント端末に送出すると共に、当該戻り値を前記取得要求と対応付けて前記第2記憶媒体に書き込むことと
    をさらに具備する請求項5に記載の方法。
JP2015561117A 2014-02-07 2014-02-07 情報処理装置及び方法 Active JP6158361B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/052918 WO2015118662A1 (ja) 2014-02-07 2014-02-07 情報処理装置及び方法

Publications (2)

Publication Number Publication Date
JPWO2015118662A1 JPWO2015118662A1 (ja) 2017-03-23
JP6158361B2 true JP6158361B2 (ja) 2017-07-05

Family

ID=53777492

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015561117A Active JP6158361B2 (ja) 2014-02-07 2014-02-07 情報処理装置及び方法

Country Status (3)

Country Link
US (1) US10303680B2 (ja)
JP (1) JP6158361B2 (ja)
WO (1) WO2015118662A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442558B (zh) * 2019-07-30 2023-12-29 深信服科技股份有限公司 数据处理方法、分片服务器、存储介质及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6564215B1 (en) * 1999-12-16 2003-05-13 International Business Machines Corporation Update support in database content management
US7321898B1 (en) * 2002-04-04 2008-01-22 Ncr Corp. Locking mechanism for materialized views in a database system
JP2006059191A (ja) * 2004-08-20 2006-03-02 Canon Inc データ処理装置、データ処理方法及びプログラム
JP4313845B2 (ja) * 2004-09-27 2009-08-12 修平 西山 マルチインスタンス・インメモリ・データベース
JP2010198200A (ja) * 2009-02-24 2010-09-09 Nippon Telegr & Teleph Corp <Ntt> プロファイル情報管理装置、プロファイル情報管理方法、及びプログラム
JP4392676B1 (ja) * 2009-06-25 2010-01-06 修平 西山 キー・バリュー・ストアによるデータベース・キャッシュ装置
JP4385387B1 (ja) 2009-07-02 2009-12-16 修平 西山 属性付きキー・バリュー・ストアによるデータベース・システム
US8495044B2 (en) * 2009-09-02 2013-07-23 Microsoft Corporation File system node updates
JP5454201B2 (ja) 2010-02-15 2014-03-26 富士通株式会社 データストア切替装置、データストア切替方法およびデータストア切替プログラム
JP5811703B2 (ja) 2011-09-02 2015-11-11 富士通株式会社 分散制御プログラム、分散制御方法、および情報処理装置
JP2013152557A (ja) 2012-01-24 2013-08-08 Nippon Telegr & Teleph Corp <Ntt> メタデータ付与装置、メタデータ付与方法およびメタデータ付与プログラム
US9165010B2 (en) * 2012-04-30 2015-10-20 Sap Se Logless atomic data movement

Also Published As

Publication number Publication date
JPWO2015118662A1 (ja) 2017-03-23
US20160335313A1 (en) 2016-11-17
US10303680B2 (en) 2019-05-28
WO2015118662A1 (ja) 2015-08-13

Similar Documents

Publication Publication Date Title
US10706036B2 (en) Systems and methods to optimize multi-version support in indexes
US9779127B2 (en) Integrating database management system and external cache
US10409864B2 (en) Transaction control block for multiversion concurrency commit status
US9892183B2 (en) Computer system, computer system management method, and program
US9020916B2 (en) Database server apparatus, method for updating database, and recording medium for database update program
US20120259863A1 (en) Low Level Object Version Tracking Using Non-Volatile Memory Write Generations
US10025710B2 (en) Pattern for integrating primary and secondary data stores in a sharded data domain
JP2020503588A (ja) コミットされていないトランザクションを有するデータベース・レコードのマルチバージョン同時制御
US9514041B2 (en) Memory controller and memory system
US8832022B2 (en) Transaction processing device, transaction processing method and transaction processing program
US20200034472A1 (en) Asynchronous cache coherency for mvcc based database systems
US11061889B2 (en) Systems and methods of managing manifest refresh in a database
JP2018005299A (ja) データベース管理装置、データベース管理方法、およびデータベース管理プログラム
US20170357680A1 (en) System and method for maintaining a multi-level data structure
US20140006348A1 (en) Opportunistic clearing of sync states associated with a database
JP6158361B2 (ja) 情報処理装置及び方法
US20170177615A1 (en) TRANSACTION MANAGEMENT METHOD FOR ENHANCING DATA STABILITY OF NoSQL DATABASE BASED ON DISTRIBUTED FILE SYSTEM
JP2017167654A (ja) データ管理装置及びデータベースの管理方法
US10685014B1 (en) Method of sharing read-only data pages among transactions in a database management system
US20220382712A1 (en) Minimizing data volume growth under encryption changes
JP2016194826A (ja) データベースの処理制御方法、処理制御プロラム及びデータベースサーバ
US9846695B2 (en) Information processing apparatus, control method, and storage medium storing program
KR101542299B1 (ko) 하둡 기반의 질의 처리 방법 및 장치
US8521776B2 (en) Accessing data in a multi-generation database
JP5316015B2 (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: 20170509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170607

R151 Written notification of patent or utility model registration

Ref document number: 6158361

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313114

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350