JP2016149049A - 情報処理装置、情報処理システム、ペアデータ更新方法及びプログラム - Google Patents

情報処理装置、情報処理システム、ペアデータ更新方法及びプログラム Download PDF

Info

Publication number
JP2016149049A
JP2016149049A JP2015026202A JP2015026202A JP2016149049A JP 2016149049 A JP2016149049 A JP 2016149049A JP 2015026202 A JP2015026202 A JP 2015026202A JP 2015026202 A JP2015026202 A JP 2015026202A JP 2016149049 A JP2016149049 A JP 2016149049A
Authority
JP
Japan
Prior art keywords
log
conversion
update
storage unit
key
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
JP2015026202A
Other languages
English (en)
Inventor
皓 中山
Akira Nakayama
皓 中山
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
Priority to JP2015026202A priority Critical patent/JP2016149049A/ja
Publication of JP2016149049A publication Critical patent/JP2016149049A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】KVSに対する表形式データの新規レコードの追加要求におけるトランザクション処理の性能を向上すること。【解決手段】本発明にかかる情報処理装置は、キーとバリューの形式であるペアデータを記憶する外部のペアデータ記憶部に対する特定の属性値を含むレコードの追加要求に応じて、当該レコードから、当該特定の属性値を前記キーかつ当該レコードの少なくとも一部を前記バリューとした変換ログに変換し、当該変換ログをログ記憶部に格納する変換部と、前記変換部とは非同期に、前記特定の属性値を前記キーとした前記ペアデータの最新データに前記変換ログをマージし、更新前ログとして前記ログ記憶部に格納するログ更新部と、前記更新前ログを前記ペアデータとして前記ペアデータ記憶部を更新するペアデータ更新部と、を備える。【選択図】図1

Description

本発明は、情報処理装置、情報処理システム、ペアデータ更新方法及びプログラムに関し、特に、表形式データからKVS形式への変換を行う情報処理装置、情報処理システム、ペアデータ更新方法及びプログラムに関する。
近年、スケーラビリティの高いデータ永続化手段としてキーバリューストア(Key Value Store(KVS))が広く知られている。ここで、KVSとは、1レコードをキー(Key)と値(Value)のペアの形式(以下、「KVペア」という。)で管理するデータベースである。そのため、既存のRDB(Relational DataBase)形式(表形式)のレコードをKVSで管理するためには、所定の変換が必要となる。
ここで、特許文献1には、キーと値とのペアで構成されるレコードを管理する環境下でトランザクション処理を実行する場合であっても、簡易な構成で、複数のレコードに対するトランザクション処理を行う技術が開示されている。
また、特許文献2には、論理テーブル(表形式)について参照される属性の組合せを参照履歴として保持し、参照履歴に応じて、バリューとする属性の組合せを決定して、KVSの格納形式を変更する技術が開示されている。
特開2012−238061号公報 特開2014−228960号公報
上述した特許文献1及び2は、KVSに対する表形式データの新規レコードの追加要求におけるトランザクション処理に改良の余地がある。その理由は、表形式データの新規レコードの追加要求に対して、トランザクション処理内でログのマージ処理まで実行されているためである。
本発明は、このような問題点を解決するためになされたものであり、KVSに対する表形式データの新規レコードの追加要求におけるトランザクション処理の性能を向上するための情報処理装置、情報処理システム、ペアデータ更新方法及びプログラムを提供することを目的とする。
本発明の第1の態様にかかる情報処理装置は、
キーとバリューの形式であるペアデータを記憶する外部のペアデータ記憶部に対する特定の属性値を含むレコードの追加要求に応じて、当該レコードから、当該特定の属性値を前記キーかつ当該レコードの少なくとも一部を前記バリューとした変換ログに変換し、当該変換ログをログ記憶部に格納する変換部と、
前記変換部とは非同期に、前記特定の属性値を前記キーとした前記ペアデータの最新データに前記変換ログをマージし、更新前ログとして前記ログ記憶部に格納するログ更新部と、
前記更新前ログを前記ペアデータとして前記ペアデータ記憶部を更新するペアデータ更新部と、
を備える。
本発明の第2の態様にかかる情報処理システムは、
キーとバリューの形式であるペアデータを記憶するペアデータ記憶部と、
特定のキーにおける前記ペアデータの更新前のログである更新前ログを記憶するログ記憶部と、
前記ペアデータ記憶部に対する特定の属性値を含むレコードの追加要求に応じて、当該レコードから、当該特定の属性値を前記キーかつ当該レコードの少なくとも一部を前記バリューとした変換ログに変換し、当該変換ログを前記ログ記憶部に格納する変換部と、
前記変換部とは非同期に、前記特定の属性値を前記キーとした前記ペアデータの最新データに前記変換ログをマージし、前記更新前ログとして前記ログ記憶部を更新するログ更新部と、
前記更新前ログを前記ペアデータとして前記ペアデータ記憶部を更新するペアデータ更新部と、
を備える。
本発明の第3の態様にかかるペアデータ更新方法は、
キーとバリューの形式であるペアデータを記憶する外部のペアデータ記憶部に対する特定の属性値を含むレコードの追加要求を受け付け、
前記追加要求に応じて、前記レコードから、当該特定の属性値を前記キーかつ当該レコードの少なくとも一部を前記バリューとした変換ログに変換し、
前記変換した変換ログをログ記憶部に格納し、
前記変換とは非同期に、前記特定の属性値を前記キーとした前記ペアデータの最新データに前記変換ログをマージし、
前記マージしたデータを更新前ログとして前記ログ記憶部に格納し、
前記更新前ログを前記ペアデータとして前記ペアデータ記憶部を更新する。
本発明の第4の態様にかかるプログラムは、
キーとバリューの形式であるペアデータを記憶する外部のペアデータ記憶部に対する特定の属性値を含むレコードの追加要求を受け付ける処理と、
前記追加要求に応じて、前記レコードから、当該特定の属性値を前記キーかつ当該レコードの少なくとも一部を前記バリューとした変換ログに変換する処理と、
前記変換した変換ログをログ記憶部に格納する処理と、
前記変換とは非同期に、前記特定の属性値を前記キーとした前記ペアデータの最新データに前記変換ログをマージする処理と、
前記マージしたデータを更新前ログとして前記ログ記憶部に格納する処理と、
前記更新前ログを前記ペアデータとして前記ペアデータ記憶部を更新する処理と、
をコンピュータに実行させる。
本発明により、KVSに対する表形式データの新規レコードの追加要求におけるトランザクション処理の性能を向上するための情報処理装置、情報処理システム、ペアデータ更新方法及びプログラムを提供することができる。
本発明の実施の形態1にかかる情報処理装置及びシステムの構成を示すブロック図である。 本発明の実施の形態1にかかる変換処理の流れを示すフローチャートである。 本発明の実施の形態1にかかる更新処理の流れを示すフローチャートである。 表形式データの例を示す図である。 FLAT構造のKVペアの例を示す図である。 CLUSTER構造のKVペアの例を示す図である。 表形式データの主キーに対する商品分類列のインデックスの例を示す図である。 表形式データの商品分類列に対する主キーのインデックスの例を示す図である。 本発明の実施の形態2にかかるトランザクション処理システムの構成を示すブロック図である。 挿入対象の新規レコードの例を示す図である。 本発明の実施の形態2にかかる論理ログの例を示す図である。 本発明の実施の形態2にかかる物理ログの例を示す図である。 本発明の実施の形態2にかかるCLUSTER構造に対して新規レコードを挿入する処理の流れを示すフローチャートである。 本発明の実施の形態2にかかるCLUSTER構造の場合においてログ記憶部に格納されたログの例を示す図である。 本発明の実施の形態2にかかるFLAT構造の場合においてログ記憶部に格納されたログの例を示す図である。 本発明の実施の形態2にかかるトランザクションキー単位におけるログ記憶部に格納されたログのパターンごとに最新データの所在を整理した図である。 本発明の実施の形態2にかかる表形式データの既存レコードに対する更新要求に応じた、CLUSTER構造のログの更新処理の流れを示すフローチャート(1/2)である。 本発明の実施の形態2にかかる表形式データの既存レコードに対する更新要求に応じた、CLUSTER構造のログの更新処理の流れを示すフローチャート(2/2)である。 本発明の実施の形態2にかかるログ記憶部に格納されたログをKVSへ反映する処理(KVSの更新処理)の流れを示すフローチャート(1/2)である。 本発明の実施の形態2にかかるログ記憶部に格納されたログをKVSへ反映する処理(KVSの更新処理)の流れを示すフローチャート(2/2)である。
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
<実施の形態1>
図1は、本発明の実施の形態1にかかる情報処理装置10及び情報処理システム1の構成を示すブロック図である。情報処理システム1は、情報処理装置10とペアデータ記憶部20とを備える。ペアデータ記憶部20は、キーとバリューの形式であるペアデータ21を記憶する記憶装置である。ペアデータ21は、例えば、上述したKVペアのデータである。また、ペアデータ記憶部20は、例えば、上述したKVSであっても構わない。さらに、ペアデータ記憶部20は、複数の記憶装置により構成される分散型のストレージ又はデータベースシステムであっても構わない。
図1のペアデータ記憶部20は、情報処理装置10の外部に設置されている。ペアデータ記憶部20は、情報処理装置10とネットワーク等の通信回線を介して接続されている。尚、本実施の形態にかかるペアデータ記憶部20は、情報処理装置10に内蔵されていても構わない。
情報処理装置10は、変換部11と、ログ記憶部12と、ログ更新部13と、ペアデータ更新部14とを備える。変換部11は、所定のレコードの追加要求30に応じて、当該レコードから変換ログ121に変換し、変換ログ121をログ記憶部12に格納する。ここで、追加要求30は、ペアデータ記憶部20に対するレコードの追加を要求する命令である。追加要求30は、情報処理システム1の外部から入力される。例えば、追加要求30は、表形式データに対する新規レコードの追加命令(クエリ、例えば、SQLのinsert文)である。表形式データは、複数の属性が定義され、属性ごとに値を有するデータ構造である。また、レコードは、表形式データにおける一単位のデータであり、上記複数の属性のそれぞれに対応する値の集合である。特に、上記レコードは、特定の属性値を含むデータであるものとする。そして、特定の属性値は、表形式データにおける主キー以外とする。
また、変換部11は、レコードから変換ログ121に変換する際には、特定の属性値をキーとして、かつ、当該レコードの少なくとも一部の属性値をバリューとしたペアデータに変換するものとする。つまり、変換部11は、表形式データからペアデータ形式のデータに変換する。特に、変換部11は、表形式データでは主キーではない特定の属性値をペアデータ形式のキーとし、追加対象のレコード全体又は一部をペアデータ形式のバリューとする。
ログ記憶部12は、特定のキーにおけるペアデータの更新前のログである更新前ログ122を記憶する記憶装置である。また、ログ記憶部12は、変換部11により変換され格納される変換ログ121を記憶する。
ログ更新部13は、変換部11とは非同期に、特定の属性値をキーとしたペアデータ21の最新データに、変換ログ121をマージし、更新前ログ122としてログ記憶部12に格納する。尚、最新データは、ペアデータ21自体である必要はなく、特定の属性値をキーとした更新前ログ122が存在する場合(ペアデータ21に未反映である場合)には、更新前ログ122といえる。
ペアデータ更新部14は、更新前ログ122をペアデータ21としてペアデータ記憶部20を更新する。尚、ペアデータ更新部14もログ更新部13と同様、変換部11とは非同期であるのは勿論である。
ここで、図2及び図3を用いて本発明の実施の形態1にかかるペアデータ更新方法について説明する。
図2は、本発明の実施の形態1にかかる変換処理の流れを示すフローチャートである。まず、変換部11は、追加要求30を受け付ける(S11)。次に、変換部11は、追加要求30に指定されたレコードから、特定の属性値をキー、かつ、当該レコードの少なくとも一部をバリューとした変換ログ121に変換する(S12)。そして、変換部11は、変換ログ121をログ記憶部12に格納する(S13)。
図3は、本発明の実施の形態1にかかる更新処理の流れを示すフローチャートである。図3の更新処理は、図2の変換処理とは非同期に実行される。まず、ログ更新部13は、特定の属性値をキーとしたペアデータの最新データに、変換ログ121をマージする(S21)。次に、ログ更新部13は、更新前ログ122としてログ記憶部12を更新する(S22)。そして、ペアデータ更新部14は、更新前ログ122をペアデータ21としてペアデータ記憶部20を更新する(S23)。
このように、表形式データからペアデータ形式への変換を行ってペアデータ記憶部を更新する方式において、本実施の形態では、表形式データの新規レコードの追加要求について、変換部11により新規レコードの変換を行うだけで、要求元へ応答できる。すなわち、追加要求に対する応答に際しては、変換ログ121とキーが(特定の属性値として)共通する既存のペアデータ21又は更新前ログ122の最新データとのマージまでは行わない。そして、ログ更新部13及びペアデータ更新部14は、変換部11とは非同期に実行される。そのため、KVSに対する表形式データの新規レコードの追加要求におけるトランザクション処理の性能を向上することができる。
<実施の形態2>
本実施の形態2は、上述した実施の形態1の具体例である。
(KVペアの構造と課題)
ここで、本実施の形態で対象とするKVペアの構造について説明する。本実施の形態では、ユーザが定義する表形式のデータをKVペアに変換して分散KVSに格納する。表形式のデータをKVペアに変換する方式は、大きく分けて2種類存在する。1つはFLAT構造と呼び、もう1つはCLUSTER構造と呼ぶものとする。
図4は、表形式データの例を示す図である。図4に示すテーブルの主キー(Primary Key(PK))は、商品ID列であるとする。図5は、図4の表形式データに対してFLAT構造でKVペアに変換した場合の例を示す図である。つまり、FLAT構造は、キー値を主キーとし、バリュー値をその主キーのレコード全体とするKVペアとなる。
次に、CLUSTER構造について説明する。表形式のデータをCLUSTER構造で変換するためには、あらかじめCLUSTERを構成するためのキー列(クラスタキー列)を定義する必要がある。ここでは、「商品分類列」をクラスタキー列とするものとする。図6は、図4の表形式のデータに対して「商品分類列」をクラスタキー列とするCLUSTER構造でKVペアに変換した場合の例を示す図である。つまり、CLUSTER構造は、キー値をクラスタキー列の値とし、バリュー値をクラスタキー値が同じレコードの集合とするKVペアとなる。
次に、FLAT構造とCLUSTER構造の特性について説明する。FLAT構造は、上述の通り、1つのレコードがKVペアの1つに対応している。そのため、FLAT構造は、主キーなどのユニークな値を持つ列での検索や更新処理において効率が良い。一方、CLUSTER構造は、クラスタキー単位での検索や更新処理において効率が良い。
具体的には、図6のCLUSTER構造のデータに対して、商品分類が「パソコン」のデータを検索する場合には、図6に示すKVペアのうちキー値が「パソコン」のKVペアにアクセスする。つまり、CLUSTER構造の場合、クラスタキー単位での検索処理においてアクセスするKVペアは1つとなる。
一方、FLAT構造の場合、予め図7に示すような、表形式データの主キーに対する商品分類列のインデックスのKVペアを作成しておくことになる。そして、図5のFLAT構造のデータに対して、同じクエリ(商品分類が「パソコン」のデータを検索するクエリ)を実行する場合には、まず、図7に示すKVペアのうちキー値が「パソコン」のKVペアに対して1回目のアクセスを行う。その後、図5に示すKVペアのうちキー値が「i1」と「i2」の2つのKVペアに2回目と3回目のアクセスを行う。つまり、合計で3回、KVペアにアクセスを行うことになる。
しかしながら、主キー(商品ID)の特定値(例えば、「i2」)で検索する場合、FLAT構造では1回のアクセスにより必要なレコードのデータのみを取得できるが、CLUSTER構造では、2回のアクセスが必要となり、かつ、不必要なデータまでアクセスされてしまう。
具体的には、まず、CLUSTER構造の場合、予め図8に示すような、表形式データの商品分類列に対する主キーのインデックスのKVペアを作成しておくことになる。そして、図6のCLUSTER構造のデータに対して、商品IDが「i2」のデータを検索するクエリを実行する場合には、まず、図8に示すKVペアのうちキー値が「i2」のKVペアに対して1回目のアクセスを行う。その後、図6のKVペアのうちキー値が「パソコン」のKVペアに対して2回目のアクセスを行う。つまり、インデックスにアクセスしてからCLUSTER構造のデータにアクセスしなければならない。またCLUSTER構造の場合は、1つのKVペアに複数のレコードデータが含まれるため、クエリの処理に不必要なデータにまでアクセスすることになる。例えば、図6においてキー値が「パソコン」のKVペアのバリュー値は、{i1, ・・・}と{i2, ・・・}の2つであるが、ここでは、{i1, ・・・}のデータは不要にもかかわらずアクセスされることになる。
よって、1つのCLUSTER構造のKVペアに含まれるレコードが多くなるほど、主キー値やユニークな値など重複度が低いキー値でのクエリの処理は応答性能が悪くなるといえる。このため、主キー値やユニークな値など重複度が低いキー値での検索及び更新処理には、FLAT構造が向いていると言える。また、新規レコードの挿入(SQLにおけるINSERT文相当)においては、FLAT構造は常に新規のKVペアを作成するのに対し、CLUSTER構造は既存のKVペアにアクセスし、更新する処理が入るため、全面的に不利となる。
ここで、上記後半の課題は、言い換えると、表形式データへの新規レコードの挿入に伴い、CLUSTER構造の既存のKVペアが更新される場合における性能の低下するものといえる。その理由は、新規レコードを挿入するトランザクション処理において、挿入対象の新規レコード内の主キー以外の属性値であるクラスタキーをキーとする既存のKVペアを取得する処理と、取得したKVペアのバリューに新規レコードを追加するKVペアの更新処理と、更新後のKVペアをKVSへ格納する処理が必要となるためである。尚、この課題は、実施の形態1が解決する課題を具体化したものといえる。そして、本実施の形態2では、当該課題を解決するものである。
(構成の特徴)
本実施の形態2では、上述した実施の形態1の構成に加えて、さらに以下の構成を備えるものである。すなわち、前記変換部は、変換済みであることを示す変換済情報(論理ログ情報)を前記バリューに付加したものを前記変換ログ(論理ログ)としてログ記憶部に格納する。前記ログ更新部は、前記ログ記憶部から、前記特定の属性値を前記キーとし、かつ、前記変換済情報が前記バリューに付加された前記変換ログを取得し、前記取得した前記変換ログの前記バリューから前記変換済情報を除いた値を前記最新データのバリューにマージして前記更新前ログ(物理ログ)として前記ログ記憶部に格納する。これにより、ログ記憶部に複数のログが存在していても、論理ログを容易に識別して特定できる。
また、前記ログ更新部は、前記ログ記憶部内に、前記特定の属性値を前記キーとした前記更新前ログが存在する場合に、当該更新前ログを前記最新データとして前記変換ログをマージし、当該マージ後の更新前ログにより前記ログ記憶部を更新し、前記ログ記憶部内に、前記特定の属性値を前記キーとした前記更新前ログが存在しない場合に、前記ペアデータ記憶部から前記特定の属性値を前記キーとした前記ペアデータを前記最新データとして取得し、当該取得した最新データに対して前記変換ログをマージし、当該マージ後の前記更新前ログを前記ログ記憶部に格納することが望ましい。このように最新データの判定を行うことで、アトミック性をより保証できる。
さらに、前記変換部は、前記変換ログを前記ログ記憶部に格納する際に、楽観的排他制御を行い、当該楽観的排他制御の結果を前記追加要求の応答とすることが望ましい。
また、前記ログ更新部は、前記マージ後の前記更新前ログを前記ログ記憶部に格納する際に、前記マージ対象の前記変換ログが前記ログ記憶部に格納された以後に前記特定の属性値を前記キーとした前記更新前ログ又は前記変換ログが格納されていない場合に、前記ログ記憶部から当該マージ対象の前記変換ログを削除することが望ましい。
また、前記特定の属性値以外の属性値を更新するための更新要求に応じて、前記最新データの前記バリューに対して当該特定の属性値以外の属性値をマージするマージ部をさらに備えるとよい。そして、前記マージ部は、前記更新要求に応じて、前記ログ記憶部から前記特定の属性値を前記キーとするログを検索し、前記ログが検索されなかった場合、前記ペアデータ記憶部から前記特定の属性値を前記キーとした前記ペアデータを前記最新データとして取得し、前記更新前ログが検索されず、前記変換ログが検索された場合、前記ペアデータ記憶部から前記特定の属性値を前記キーとした前記ペアデータを取得し、当該取得したペアデータに当該検索された変換ログをマージして前記最新データとし、前記更新前ログが前記変換ログより新しいログとして検索された場合、当該検索された更新前ログを前記最新データとし、前記変換ログが前記更新前ログより新しいログとして検索された場合、当該検索された変換ログと当該検索された更新前ログとをマージして前記最新データとするとよい。
また、前記ペアデータの複数の形式を定義したカタログ記憶部をさらに備えるとよい。そして、前記変換部は、前記カタログ記憶部を参照し、前記追加要求に基づいて前記形式を判定し、前記判定した形式に応じて前記変換を行うとよい。これにより、例えば、FLAT構造及びCLUSTER構造といった、KVペアの複数の形式をサポートすることができる。
(構成例)
図9は、本発明の実施の形態2にかかるトランザクション処理システム100の構成を示すブロック図である。トランザクション処理システム100は、上述した実施の形態1の情報処理システム1の一例である。トランザクション処理システム100は、クエリ処理部110と、システムカタログ120と、トランザクション処理部130と、KVペアマージ更新部140と、分散KVS150とを備える。尚、クエリ処理部110、システムカタログ120、トランザクション処理部130、及びKVペアマージ更新部140は、1以上のコンピュータ装置で実現することができる。この場合、これらは、実施の形態1の情報処理装置10の一例といえる。
クエリ処理部110は、変換部11の一例である。また、クエリ処理部110は、上述したマージ部の一例でもある。クエリ処理部110は、クライアント200からのSQL等のクエリを受け付け、当該クエリを処理する手段である。ここで、クエリには、追加要求30の一例となるinsert文等も含まれる。クエリ処理部110は、クライアント200から既存のKVペアを更新するようなクエリが入力されると、トランザクション処理部130又は分散KVS150から取得された処理対象のKVペアを更新したログ(物理ログ又は論理ログ(後述))を生成し、ログをトランザクション処理部130に格納し、処理結果をクライアントに返信する。ここで、レコードをKVペアに変換する際、クエリ処理部110は、変換方式をシステムカタログ120から取得する。
ここで、物理ログとは、上述した更新前ログ122の一例である。本実施の形態にかかる物理ログは、FLAT構造又はCLUSTER構造のKVペアと同じ形式であり、バリューにタイムスタンプを付加する形式でもよい。論理ログとは、上述した変換ログ121の一例である。本実施の形態にかかる論理ログは、物理ログのバリューに論理ログであることを示す論理ログ情報を付加した形式である。つまり、論理ログは、論理ログ情報を含むKVペアといえる。ここで、論理ログ情報は、変換済みであることを示す変換済情報の一例である。尚、論理ログ情報は、KVペアが論理ログであることを識別できる情報であるならば、どのような形式でも構わない。例えば、フラグ等であっても構わない。また、本実施の形態では、CLUSTER構造の場合に論理ログを用いる場合を示すが、さらにFLAT構造においても用いても構わない。
システムカタログ120は、変換形式を保持する記憶装置である。変換形式は、外部の各データベースに存在するテーブルの情報とテーブルの各データを、どのようにKVペアに変換するかを定義した情報である。または、変換形式は、クエリに指定されたレコードの所属するテーブルがどのようなKVペア構造で定義されているかの情報ともいえる。
トランザクション処理部130は、排他制御処理部131と、ログ記憶部132とを備える。トランザクション処理部130は、クエリ処理部110で作成されたKVペア(ログ)を受け付け、排他制御処理部131と、ログ記憶部132とを用いて処理する。排他制御処理部131は、トランザクションキー値ごとに時系列で管理されたログから、タイムスタンプによる楽観的排他制御によってトランザクションの排他処理を行う。ログ記憶部132は、排他制御処理部131により排他違反がないと判定されたKVペアをログとしてトランザクションキー値ごとに時系列で管理する記憶装置である。ログ記憶部132は、上述したログ記憶部12の一例である。
KVペアマージ更新部140は、トランザクション処理部130のログ記憶部132に保持されているログを、クエリ処理部110とは非同期で処理する手段である。KVペアマージ更新部140は、クエリ処理部110とは非同期で、ログ記憶部132からログを取得し、取得したログが全て物理ログであった場合、分散KVS150に最新の物理ログを反映し、ログ記憶部132から取得したログを削除する。取得したログに論理ログが含まれていた場合、KVペアマージ更新部140は、論理ログから物理ログを作成し、トランザクション処理部に格納する。排他制御処理部131で排他違反がなければKVペアマージ更新部140は、取得ログをログ記憶部132から削除する。そのため、KVペアマージ更新部140は、上述したログ更新部13及びペアデータ更新部14の一例といえる。
分散KVS150は、FLAT構造又はCLUSTER構造のKVペアを管理するデータベースである。分散KVS150に格納されるKVペアは、キー値のハッシュ値等によりKVペアの格納先サーバを分散させ、各サーバに、ほぼ均一に分散配置される。また、1つのKVペアの処理(作成、更新、削除、および参照)に関してのみアトミック性を持って実行可能である。そして、複数の利用者が存在する場合でもCAS(Compare And Swap)機能によりアトミックに実行可能である。
(処理の流れ)
図13は、本発明の実施の形態2にかかるCLUSTER構造に対して新規レコードを挿入する処理の流れを示すフローチャートである。初めに、ユーザは、変換形式として、表形式のデータ(例えば、図4(以下、「テーブルA」とする。))から、クラスタキー列及びトランザクションキー列を商品分類列として定義したCLUSTER構造のKVペア(例えば、図6)への変換を定義しているものとする。そして、システムカタログ120には、当該変換形式が予め格納されているものとする。また、分散KVS150には、図6のKVペアが格納されているとする。
まず、クエリ処理部110は、クライアント200からテーブルAに新規レコード(図10)を挿入するクエリの入力を受け付ける(ステップS601)。当該クエリは、CLUSTER構造に対する表形式データへのレコードの追加要求である。次に、クエリ処理部110は、システムカタログ120からテーブルAの変換形式を取得する(ステップS602)。クエリ処理部110は、変換形式に基づきテーブルAがCLUSTER構造又はFLAT構造のいずれに変換されるかを判定する(ステップS603)。ここでは、テーブルAがCLUSTER構造のKVペアに変換されると判定される。
そのため、クエリ処理部110は、新規レコードからCLUSTER構造の論理ログを作成する(ステップS611)。ここで、関連技術の場合、クエリ処理部110は、新規レコードを挿入するために既存のCLUSTER構造のKVペアを分散KVS150から取得することとなる。一方、本実施の形態にかかるクエリ処理部110は、(FLAT構造と同じく)新規レコードからクラスタキー(商品分類列の値「パソコン」)をキー値とし、1レコード全体をバリューとしたKVペアに変換し、さらに論理ログ情報をバリューに付加する(図11)。そして、クエリ処理部110は、作成した論理ログをトランザクション処理部130のログ記憶部132に格納する(ステップS612)。
ここで、変換形式にFLAT構造が定義されていた場合、ステップS603においてテーブルAがFLAT構造のKVペアに変換されると判定される。そして、クエリ処理部110は、新規レコードからFLAT構造の物理ログ(図12)を作成する(ステップS621)。つまり、このとき、クエリ処理部110は、論理ログ情報を付加しない。そして、クエリ処理部110は、作成した物理ログをトランザクション処理部130のログ記憶部132に格納する(ステップS622)。
ステップS612又はS622の後、排他制御処理部131は、クエリ処理部110からログ記憶部132に格納された論理ログ又は物理ログについて、楽観的排他制御によって排他処理を行い、その結果をクエリ処理部110に通知する。そして、クエリ処理部110は、通知された結果をクライアント200へ返信する(ステップS604)。このとき、排他違反のなかったKVペア(ログ)は、ログ記憶部132で管理されることになる。ログ記憶部132は、上述した通り、ログをトランザクションキー値ごとに時系列で管理する。
(トランザクション処理とログの例、排他制御)
ここで、本実施の形態で想定する表形式データに対するトランザクション処理の例と、その際に生成及び格納されるログの例について説明する。まず、トランザクション処理の例として、図4のテーブルAに対して以下のようなSQL処理を順に実行し、コミットがすべて成功した場合が挙げられる。
(1)START TRANSACTION
(2)UPDATE テーブルA SET 在庫=在庫-1 WHERE 商品ID=i1
(3)COMMIT
(4)START TRANSACTION
(5)UPDATE テーブルA SET 在庫=在庫-1 WHERE 商品分類=パソコン
(6)COMMIT
(7)START TRANSACTION
(8)INSERT INTO テーブルA VALUES(i6, 商品F, タブレット, 50, 55,000)
(9)COMMIT
(10)START TRANSACTION
(11)INSERT INTO テーブルA VALUES(i7, 商品G, パソコン, 20, 110,000)
(12)COMMIT
そして、CLUSTER構造の場合、上記SQLによってクエリ処理部110で生成されたログ(KVペア)は、排他違反がなければ、トランザクションキー値=商品分類列の値ごとにログ記憶部132で管理される。ここで、前提として、上記同様、分散KVS150には図6のCLUSTER構造のKVペアが格納済みであるものとする。図14は、本発明の実施の形態2にかかるCLUSTER構造の場合においてログ記憶部に格納されたログの例を示す図である。上記(1)〜(3)及び(4)〜(6)により、それぞれ、トランザクションキー=パソコンのタイムスタンプ”1”及び”2”の物理ログがログ記憶部132に格納される。そして、上記(7)〜(9)により、トランザクションキー=タブレットのタイムスタンプ”1”の論理ログがログ記憶部132に格納される。その後、上記(10)〜(12)により、トランザクションキー=パソコンのタイムスタンプ“3”の論理ログがログ記憶部132に格納される。
また、分散KVS150に図5のFLAT構造のKVペアが格納済みである場合、図15に示すログ記憶部に格納されたログの例の通りとなる。つまり、上記(1)〜(3)及び(4)〜(6)により、それぞれ、トランザクションキー=パソコンのタイムスタンプ”1”及び”2”の物理ログがログ記憶部132に格納される。そして、上記(7)〜(9)により、トランザクションキー=タブレットのタイムスタンプ”1”の物理ログがログ記憶部132に格納される。その後、上記(10)〜(12)により、トランザクションキー=パソコンのタイムスタンプ“3”の物理ログがログ記憶部132に格納される。
また、排他制御処理について説明する。まず、クエリ処理部110は、トランザクションの開始時に、更新するレコードの所属するトランザクションキーの最新のタイムスタンプを取得する。例えば、上記(10)の開始時は、ログ記憶部132には、トランザクションキー=パソコンのタイムスタンプ“2”まで格納されているため、最新のタイムスタンプとして“3”が取得される。そして、クエリ処理部110は、取得したタイムスタンプを作成されたログ(KVペア)と共に、トランザクション処理部130へ送信する。そして、排他制御処理部131は、送信されたログのタイムスタンプから更新対象のKVペアに、その間の更新がないかを確認する。つまり、排他制御処理部131は、ログ記憶部132のトランザクションキー=パソコンのタイムスタンプに既に“3”が格納されていれば、他の更新があったこととなり、排他違反と判定する。排他違反と判定された場合、排他制御処理部131は、その旨をクエリ処理部110に送信し、送られてきたログをログ記憶部132から削除する。
(表形式データの既存レコードに対する更新要求)
本実施の形態にかかるトランザクション処理システム100は、表形式データの既存レコードに対する更新要求(SQLのUPDATE、DELETE文処理相当)があった場合には、CLUSTER構造の物理ログを生成するものとする。表形式データの既存レコードに対する更新要求では、更新対象のレコードが含まれる最新のKVペア(最新データ)を取得する必要がある。最新データの取得先は、ログ記憶部132に対象のデータのログがあるか否かに加え、そのログが論理ログか物理ログであるかにより、異なる。図16は、本発明の実施の形態2にかかるトランザクションキー単位におけるログ記憶部に格納されたログのパターンごとに最新データの所在を整理した図である。
(更新要求に対する処理の流れ)
図17及び図18は、本発明の実施の形態2にかかる表形式データの既存レコードに対する更新要求に応じた、CLUSTER構造のログの更新処理の流れを示すフローチャートである。まず、クエリ処理部110は、クライアント200からテーブルAの既存レコードに対する更新要求クエリの入力を受け付ける(ステップS1001)。具体的には、クエリ処理部110は、テーブルAの商品分類列が「パソコン」であるレコードに対して、在庫列を「0」に更新するクエリの入力を受け付けたものとする。
次に、クエリ処理部110は、システムカタログ120からテーブルAの変換形式を取得する(ステップS1002)。このとき、クエリ処理部110は、上述したように、変換形式に基づきテーブルAがCLUSTER構造に変換されると判定する。
そして、クエリ処理部110は、ログ記憶部132から、トランザクションキー値が「パソコン」であり、分散KVS150へ未反映のログを取得する(ステップS1003)。そして、クエリ処理部110は、ログ記憶部132にキー値が「パソコン」であるログが存在しない場合(ステップS1004でNO、パターン[4])、分散KVS150からキー値が「パソコン」であるKVペアを取得する(ステップS1006)。この場合、取得したKVペアが最新データとなる。
また、ログ記憶部132にキー値が「パソコン」であるログが存在する場合(ステップS1004でYES)、クエリ処理部110は、取得したログに、更新対象(キー値が「パソコン」)となるKVペアに対応する物理ログが含まれるか否かを判定する(ステップS1005)。ステップS1005でNOの場合、取得したログが論理ログのみである(パターン[2])といえる。よって、クエリ処理部110は、分散KVS150から更新対象のKVペアを取得し、取得したKVペアと論理ログとマージして物理ログを生成する(ステップS1008)。この場合、マージ後の物理ログが最新データとなる。尚、マージに際して、クエリ処理部110は、論理ログのバリューから論理ログ情報を除いたデータ(レコード相当)を取得したKVペアに反映させる。
ステップS1005でYESの場合、クエリ処理部110は、更新対象となるKVペアの物理ログが最新であるか否かを判定する(ステップS1007)。ログ記憶部132から取得した最新のログが物理ログである場合(ステップS1007でYES、パターン[1])、当該物理ログが最新のデータとなる。
ログ記憶部132から取得した最新のログが物理ログでない場合(ステップS1007でNO、パターン[3])、つまり、取得したログに物理ログが含まれ、かつ、最新のログが論理ログである場合、クエリ処理部110は、取得した物理ログのうち最新のログと、取得した論理ログとをマージして、物理ログを生成する(ステップS1009)。この場合、マージ後の物理ログが最新データとなる。尚、マージに際して、クエリ処理部110は、論理ログのバリューから論理ログ情報を除いたデータ(レコード相当)を取得した物理ログに反映させる。
ステップS1007でYES、S1009、S1008、又はS1006の後、クエリ処理部110は、取得したKVペア又はマージした物理ログ(最新データ)に対して、更新要求クエリで要求された内容で更新する(S1010)。具体的には、クエリ処理部110は、最新データのバリュー内の各レコードの在庫列が「0」となるように更新する。
その後、クエリ処理部110は、更新後の最新データを物理ログとしてトランザクション処理部130のログ記憶部132に格納する(ステップS1011)。
尚、上述した最新データの取得方法(ステップS1004〜S1009)は、クエリ処理部110が、所定のトランザクションキーを指定した参照クエリ(SQLのSELECT文相当)の入力を受け付けた場合も同様の処理で最新のデータの取得を行い、クライアントに結果を返すものとする。これにより、KVSに対する表形式データの新規レコードの追加要求におけるトランザクション処理の性能を維持しつつ、最新データを正確に特定することができる。
図19及び図20は、本発明の実施の形態2にかかるログ記憶部132に格納されたログを分散KVS150へ反映する処理(KVSの更新処理)の流れを示すフローチャートである。ここで、分散KVS150への反映は、KVペアマージ更新部140がクエリ処理部110とは非同期で行う。
まず、KVペアマージ更新部140は、ログ記憶部132に格納されたログの内、特定のトランザクションキー値のログを取得する(ステップS1101)。そして、KVペアマージ更新部140は、取得したログに論理ログが含まれているか否かを判定する(ステップS1102)。
取得したログに論理ログが含まれていない場合、つまり、取得したログが物理ログのみである場合(ステップS1102でNO)、KVペアマージ更新部140は、取得した物理ログを分散KVS150に反映する(ステップS1121)。そして、KVペアマージ更新部140は、反映が成功した物理ログをログ記憶部132から削除する(ステップS1122)。そして、当該更新処理を終了する。
また、取得したログに論理ログが含まれている場合(ステップS1102でYES)KVペアマージ更新部140は、取得したログに物理ログが含まれているか否かを判定する(ステップS1103)。取得したログに物理ログが含まれていない場合(ステップS1103でNO)、つまり、取得したログが論理ログのみである場合、KVペアマージ更新部140は、論理ログの更新対象となるKVペアを分散KVS150から取得する(ステップS1131)。
KVペアマージ更新部140は、ステップS1131で取得したKVペアと、ログ記憶部132から取得済みの論理ログをマージする(ステップS1132)。KVペアマージ更新部140は、マージしたKVペアを物理ログとしてトランザクション処理部130のログ記憶部132に格納する(ステップS1133)。
このとき、排他制御処理部131は、KVペアマージ更新部140から格納されるKVペアがステップS1101のログ取得以後、更新がないかを確認する。すなわち、排他制御処理部131は、格納対象のKVペアとトランザクションキーが共通する他のログのうちタイムスタンプが一致するかそれ以降を示すものがないかを確認する。そして、更新がない場合(S1104でNO)、排他制御処理部131は、ログ記憶部132に当該KVペアを物理ログとして格納する。そして、KVペアマージ更新部140は、ステップS1101で取得した論理ログをログ記憶部132から削除する(ステップS1105)。そして、当該更新処理を終了する。更新があった場合(S1104でYES)、ステップS1101に戻る。
また、ステップS1103において、取得したログに物理ログが含まれている場合(ステップS1103でYES)、つまり、取得したログに論理ログ及び物理ログの両方が含まれている場合、KVペアマージ更新部140は、ログ記憶部132から取得したログのうち、「論理ログの更新対象外の物理ログ」を分散KVS150に反映する。ここで、ログ記憶部132から取得したログには、1つの論理ログと1以上の物理ログが含まれている状況である。さらに、タイムスタンプで最新のログは(ステップS1131〜S1134の処理があることにより)論理ログであるといえる。よって、上述した「論理ログの更新対象外の物理ログ」とは、取得した物理ログのうち、タイムスタンプが最新以外の物理ログである。そして、KVペアマージ更新部140は、反映が成功した物理ログをログ記憶部132から削除する(ステップS1111)。
そして、KVペアマージ更新部140は、取得した論理ログと物理ログ(取得した物理ログのうちタイムスタンプが最新のもの)とをマージしたKVペアを作成する(ステップS1112)。マージしたKVペアを作成後は、論理ログのみを取得した場合と同じく、ステップS1133、S1134、S1104を実行する。そして、ステップS1105の後、当該更新処理を終了する。
以上のことから、本実施の形態により、クエリ処理部110におけるKVSに対する表形式データの新規レコードの追加要求に応じたトランザクション処理が、論理ログの生成及び論理ログのログ記憶部への格納という点で、FLAT構造と近い処理となる。そのため、追加要求に対する応答がこれまでと比べて速くなるため、トランザクション処理の性能を向上することができる。
さらに、論理ログと物理ログの両方が混在していても正確に最新データを取得することができ、一貫性を維持して分散KVSに反映することができる。
また、物理ログを作成するような分散KVSの関連技術における複数レコードをまとめたKVペアに対する新規レコード挿入処理は、既存レコードと新規レコードをマージした物理ログを作成し、非同期で分散KVSに反映するものであった。これに対して、本発明の実施の形態では、処理内容を記載したログ(論理ログ)を作成し、非同期で複数レコードをまとめたKVペア(物理ログ)に変換後、分散KVSに反映するものである。そのため、追加要求に対する応答性能を向上できる。
(その他の実施形態)
尚、上述した各実施の形態は、特許文献1で示されるような単一のKVペアの操作についてアトミック性を保証するKVSに対して、入力レコードの特定の属性値(トランザクションキー)ごとにグループ分けして同じグループごとのトランザクション処理をサポートする手法にも適用できる。但し、本発明の実施の形態は、特許文献1のトランザクション処理をサポートするシステムに限らず、表形式データをKVS形式に変換してKVSに格納し、KVSに格納されたKVペアに対して処理を行うような様々なシステムに適用が可能であり、有効である。
また、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、DVD(Digital Versatile Disc)、BD(Blu-ray(登録商標) Disc)、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
1 情報処理システム
10 情報処理装置
11 変換部
12 ログ記憶部
121 変換ログ
122 更新前ログ
13 ログ更新部
14 ペアデータ更新部
20 ペアデータ記憶部
21 ペアデータ
30 追加要求
100 トランザクション処理システム
110 クエリ処理部
120 システムカタログ
130 トランザクション処理部
131 排他制御処理部
132 ログ記憶部
140 KVペアマージ更新部
150 分散KVS
200 クライアント

Claims (10)

  1. キーとバリューの形式であるペアデータを記憶する外部のペアデータ記憶部に対する特定の属性値を含むレコードの追加要求に応じて、当該レコードから、当該特定の属性値を前記キーかつ当該レコードの少なくとも一部を前記バリューとした変換ログに変換し、当該変換ログをログ記憶部に格納する変換部と、
    前記変換部とは非同期に、前記特定の属性値を前記キーとした前記ペアデータの最新データに前記変換ログをマージし、更新前ログとして前記ログ記憶部に格納するログ更新部と、
    前記更新前ログを前記ペアデータとして前記ペアデータ記憶部を更新するペアデータ更新部と、
    を備える情報処理装置。
  2. 前記変換部は、変換済みであることを示す変換済情報を前記バリューに付加したものを前記変換ログとしてログ記憶部に格納し、
    前記ログ更新部は、
    前記ログ記憶部から、前記特定の属性値を前記キーとし、かつ、前記変換済情報が前記バリューに付加された前記変換ログを取得し、
    前記取得した前記変換ログの前記バリューから前記変換済情報を除いた値を前記最新データのバリューにマージして前記更新前ログとして前記ログ記憶部に格納する
    請求項1に記載の情報処理装置。
  3. 前記ログ更新部は、
    前記ログ記憶部内に、前記特定の属性値を前記キーとした前記更新前ログが存在する場合に、当該更新前ログを前記最新データとして前記変換ログをマージし、当該マージ後の更新前ログにより前記ログ記憶部を更新し、
    前記ログ記憶部内に、前記特定の属性値を前記キーとした前記更新前ログが存在しない場合に、前記ペアデータ記憶部から前記特定の属性値を前記キーとした前記ペアデータを前記最新データとして取得し、当該取得した最新データに対して前記変換ログをマージし、当該マージ後の前記更新前ログを前記ログ記憶部に格納する
    請求項1又は2に記載の情報処理装置。
  4. 前記変換部は、
    前記変換ログを前記ログ記憶部に格納する際に、楽観的排他制御を行い、当該楽観的排他制御の結果を前記追加要求の応答とする
    請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 前記ログ更新部は、
    前記マージ後の前記更新前ログを前記ログ記憶部に格納する際に、前記マージ対象の前記変換ログが前記ログ記憶部に格納された以後に前記特定の属性値を前記キーとした前記更新前ログ又は前記変換ログが格納されていない場合に、前記ログ記憶部から当該マージ対象の前記変換ログを削除する
    請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 前記特定の属性値以外の属性値を更新するための更新要求に応じて、前記最新データの前記バリューに対して当該特定の属性値以外の属性値をマージするマージ部をさらに備え、
    前記マージ部は、
    前記更新要求に応じて、前記ログ記憶部から前記特定の属性値を前記キーとするログを検索し、
    前記ログが検索されなかった場合、前記ペアデータ記憶部から前記特定の属性値を前記キーとした前記ペアデータを前記最新データとして取得し、
    前記更新前ログが検索されず、前記変換ログが検索された場合、前記ペアデータ記憶部から前記特定の属性値を前記キーとした前記ペアデータを取得し、当該取得したペアデータに当該検索された変換ログをマージして前記最新データとし、
    前記更新前ログが前記変換ログより新しいログとして検索された場合、当該検索された更新前ログを前記最新データとし、
    前記変換ログが前記更新前ログより新しいログとして検索された場合、当該検索された変換ログと当該検索された更新前ログとをマージして前記最新データとする
    請求項1乃至5のいずれか1項に記載の情報処理装置。
  7. 前記ペアデータの複数の形式を定義したカタログ記憶部をさらに備え、
    前記変換部は、
    前記カタログ記憶部を参照し、前記追加要求に基づいて前記形式を判定し、
    前記判定した形式に応じて前記変換を行う
    請求項1乃至6のいずれか1項に記載の情報処理装置。
  8. キーとバリューの形式であるペアデータを記憶するペアデータ記憶部と、
    特定のキーにおける前記ペアデータの更新前のログである更新前ログを記憶するログ記憶部と、
    前記ペアデータ記憶部に対する特定の属性値を含むレコードの追加要求に応じて、当該レコードから、当該特定の属性値を前記キーかつ当該レコードの少なくとも一部を前記バリューとした変換ログに変換し、当該変換ログを前記ログ記憶部に格納する変換部と、
    前記変換部とは非同期に、前記特定の属性値を前記キーとした前記ペアデータの最新データに前記変換ログをマージし、前記更新前ログとして前記ログ記憶部を更新するログ更新部と、
    前記更新前ログを前記ペアデータとして前記ペアデータ記憶部を更新するペアデータ更新部と、
    を備える情報処理システム。
  9. キーとバリューの形式であるペアデータを記憶する外部のペアデータ記憶部に対する特定の属性値を含むレコードの追加要求を受け付け、
    前記追加要求に応じて、前記レコードから、当該特定の属性値を前記キーかつ当該レコードの少なくとも一部を前記バリューとした変換ログに変換し、
    前記変換した変換ログをログ記憶部に格納し、
    前記変換とは非同期に、前記特定の属性値を前記キーとした前記ペアデータの最新データに前記変換ログをマージし、
    前記マージしたデータを更新前ログとして前記ログ記憶部に格納し、
    前記更新前ログを前記ペアデータとして前記ペアデータ記憶部を更新する
    ペアデータ更新方法。
  10. キーとバリューの形式であるペアデータを記憶する外部のペアデータ記憶部に対する特定の属性値を含むレコードの追加要求を受け付ける処理と、
    前記追加要求に応じて、前記レコードから、当該特定の属性値を前記キーかつ当該レコードの少なくとも一部を前記バリューとした変換ログに変換する処理と、
    前記変換した変換ログをログ記憶部に格納する処理と、
    前記変換とは非同期に、前記特定の属性値を前記キーとした前記ペアデータの最新データに前記変換ログをマージする処理と、
    前記マージしたデータを更新前ログとして前記ログ記憶部に格納する処理と、
    前記更新前ログを前記ペアデータとして前記ペアデータ記憶部を更新する処理と、
    をコンピュータに実行させるプログラム。
JP2015026202A 2015-02-13 2015-02-13 情報処理装置、情報処理システム、ペアデータ更新方法及びプログラム Pending JP2016149049A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015026202A JP2016149049A (ja) 2015-02-13 2015-02-13 情報処理装置、情報処理システム、ペアデータ更新方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015026202A JP2016149049A (ja) 2015-02-13 2015-02-13 情報処理装置、情報処理システム、ペアデータ更新方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2016149049A true JP2016149049A (ja) 2016-08-18

Family

ID=56691846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015026202A Pending JP2016149049A (ja) 2015-02-13 2015-02-13 情報処理装置、情報処理システム、ペアデータ更新方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2016149049A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018146716A1 (ja) * 2017-02-07 2018-08-16 株式会社日立製作所 データ管理方法及び計算機
JP2022543306A (ja) * 2019-09-17 2022-10-11 京▲東▼科技信息技▲術▼有限公司 ブロックチェーンデータ処理の方法、装置、機器及び可読記憶媒体
JP7508541B2 (ja) 2019-09-17 2024-07-01 京▲東▼科技信息技▲術▼有限公司 ブロックチェーンデータ処理の方法、装置、機器及び可読記憶媒体

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018146716A1 (ja) * 2017-02-07 2018-08-16 株式会社日立製作所 データ管理方法及び計算機
JPWO2018146716A1 (ja) * 2017-02-07 2019-07-04 株式会社日立製作所 データ管理方法及び計算機
JP2022543306A (ja) * 2019-09-17 2022-10-11 京▲東▼科技信息技▲術▼有限公司 ブロックチェーンデータ処理の方法、装置、機器及び可読記憶媒体
US11966412B2 (en) 2019-09-17 2024-04-23 Jingdong Technology Information Technology Co., Ltd. Blockchain data processing method and apparatus, device, and readable storage medium
JP7508541B2 (ja) 2019-09-17 2024-07-01 京▲東▼科技信息技▲術▼有限公司 ブロックチェーンデータ処理の方法、装置、機器及び可読記憶媒体

Similar Documents

Publication Publication Date Title
US10078682B2 (en) Differentiated secondary index maintenance in log structured NoSQL data stores
CN111797092B (zh) 在数据库系统内提供次级索引的方法和系统
CN111414403B (zh) 数据访问方法和装置、数据存储方法和装置
CN106874281B (zh) 实现数据库读写分离的方法和装置
JP5807777B2 (ja) トランザクション処理装置、トランザクション処理方法およびトランザクション処理プログラム
US10909086B2 (en) File lookup in a distributed file system
JP5721056B2 (ja) トランザクション処理装置、トランザクション処理方法およびトランザクション処理プログラム
WO2018133762A1 (zh) 文件合并方法和装置
US20160378735A1 (en) Metamorphic documents
US11157456B2 (en) Replication of data in a distributed file system using an arbiter
CN112334891A (zh) 用于搜索服务器的集中式存储
WO2017156855A1 (en) Database systems with re-ordered replicas and methods of accessing and backing up databases
JP2016149049A (ja) 情報処理装置、情報処理システム、ペアデータ更新方法及びプログラム
CN114297196B (zh) 元数据存储方法、装置、电子设备及存储介质
CN112115206A (zh) 一种处理对象存储元数据的方法和装置
CN116049306A (zh) 数据同步方法、装置、电子设备以及可读存储介质
US11016946B1 (en) Method and apparatus for processing object metadata
US11481378B1 (en) Method and system for servicing query requests using document-based metadata
CN112181899A (zh) 一种元数据的处理方法、装置及计算机可读存储介质
US10353920B2 (en) Efficient mirror data re-sync
JP4825504B2 (ja) データ登録・検索システムおよびデータ登録・検索方法
Singh NoSQL: A new horizon in big data
CN112527911B (zh) 一种数据存储方法、装置、设备及介质
US20240171827A1 (en) Bullet-screen comment processing method and system
CN114168685B (zh) 一种基于区块链系统的新型数据库架构及运行方法