JP5012628B2 - メモリデータベース、メモリデータベースシステム及びメモリデータベース更新方法 - Google Patents

メモリデータベース、メモリデータベースシステム及びメモリデータベース更新方法 Download PDF

Info

Publication number
JP5012628B2
JP5012628B2 JP2008097870A JP2008097870A JP5012628B2 JP 5012628 B2 JP5012628 B2 JP 5012628B2 JP 2008097870 A JP2008097870 A JP 2008097870A JP 2008097870 A JP2008097870 A JP 2008097870A JP 5012628 B2 JP5012628 B2 JP 5012628B2
Authority
JP
Japan
Prior art keywords
update
area
data
application program
user application
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.)
Expired - Fee Related
Application number
JP2008097870A
Other languages
English (en)
Other versions
JP2009251853A (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.)
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 JP2008097870A priority Critical patent/JP5012628B2/ja
Priority to CN200980111727.4A priority patent/CN101981550B/zh
Priority to US12/922,051 priority patent/US8380660B2/en
Priority to PCT/JP2009/057033 priority patent/WO2009123342A1/ja
Publication of JP2009251853A publication Critical patent/JP2009251853A/ja
Application granted granted Critical
Publication of JP5012628B2 publication Critical patent/JP5012628B2/ja
Expired - Fee Related 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results

Description

本発明は、ユーザアプリケーションプログラムが共有メモリ上に置かれたデータ領域を直接更新するメモリデータベースとメモリデータベースシステム及びメモリデータベース更新方法に関する。
ユーザアプリケーションプログラムが共有メモリ上に置かれたデータ領域を直接更新するようなメモリデータベースシステムでは、図13に示すように、ユーザアプリケーションプログラムがデータを更新する際に、ユーザアプリケーションプログラムの不具合により共有メモリ上のデータ領域を容易に破壊できてしまうという問題がある。
メモリデータベースシステムのジャーナルファイルシステムにおいては、データ破壊が発生した場合、図14に示すように、
1.メモリ上の破壊されたデータを破棄、
2.ディスク装置からマスタデータを再ロード、
3.メタデータを保持・管理しているジャーナルファイルから更新データをロールフォワード
という手順を踏んでデータを復旧させる必要がある。
しかし、手順2、3はディスク装置からのデータ読込が必要となるが、通常ディスク装置へのアクセスはメモリへのアクセスに比べて読み書きするために必要な時間が極端に遅く、性能が大きく劣るため、メモリ破壊発生時の復旧にかかるコストが大きい。
メモリデータベースシステムにおいて、ユーザアプリケーションプログラムによるデータ破壊を防ぐ方法として、クライアント/サーバ方式がある。クライアント/サーバ方式では、図15に示すように、サーバデーモンを設け、ユーザアプリケーションプログラムがデータにアクセスする場合、必ずサーバデーモンを介してアクセスするようにする。共有メモリにはサーバデーモンのみがアクセスし、ユーザアプリケーションプログラム自身には直接共有メモリをアクセスできないようにすることで、ユーザアプリケーションプログラムが共有メモリ上のデータを破壊できないようにしている。
別の方法として、CVS(Concurrent Versions System)に用いられている手法が知られている。CVSは複数人で同時にファイルを操作するための版管理システムで、図16に示すように、ユーザがマスタデータ(この場合、マスタファイル)を更新する際には、まずリポジトリと呼ばれる領域からローカル領域にマスタファイル全体をコピーし、それを更新する。その後、更新内容をまとめてマスタファイルに反映する。ユーザ自身には直接マスタファイルを更新できないようにすることで、ユーザがマスタファイルを破壊できないようにしている。
また、特許文献1では、図17に示すように、データベースシステムにおいて、アプリケーションプロセスからは共有メモリを読み出し専用とした上で、アプリケーションプロセス毎に更新用メモリをブロック単位(文献1の例では64KB)またはページ単位(同4〜8KB)で用意し、データ更新時にはまず共有メモリの該当ブロックを更新用メモリにコピーしてから、更新用メモリに対してデータの更新を行い、最後にマネージャプロセスが上記更新用メモリの内容を共有メモリにコピーする方法が提案されている。アプリケーションプロセスがマスタデータを直接アクセスできないようにすることで、ユーザがマスタファイルを破壊できないようにしている。
特開平10−031604号公報
しかしながら、クライアント/サーバ方式では、ユーザアプリケーションプログラムがデータにアクセスする際に常にユーザアプリケーションプログラムとサーバデーモン間のプロセス間通信が必要となるため、共有メモリを直接アクセスする場合に比べプロセス間通信のオーバーヘッドによるデータ更新性能の劣化により、データアクセスのコストが高くなり、トランザクション性能が悪化する。
この点は、高いトランザクション性能を求められるメモリデータベースでは大きな問題となる。
また、データ更新処理を始める前に、CVS方式ではマスタデータの完全なコピーを、また特許文献1で示された方法はブロック単位またはページ単位で別領域にマスタデータの一部をコピーする必要がある。
メモリ間のデータのコピー処理は、コピーするサイズに比例してCPUリソースを消費するため、データ更新を始めるたびに毎回マスタデータをコピーするこれらの方法は、CPUリソースをコピー処理に奪われてトランザクション性能が悪化するという課題がある。
同時に、これらの方法は、データを更新するプロセス数分マスタデータのコピーを持つことになるため、その分システムに必要なメモリリソースも増加するという課題もある。
本発明の目的は、ユーザによるデータ破壊を防ぐことができるとともに、データアクセス性能の劣化およびCPUリソース、メモリリソースの消費を最小限に抑えることができるメモリデータベースを提供することにある。
上記目的を達成するため、本発明のメモリデータベースは、データを配置する共有メモリ領域を有するメモリデータベースであって、前記共有メモリ領域が、ユーザアプリケーションプログラムが参照のみできる参照用領域と、ユーザアプリケーションプログラムが参照及び更新が可能な更新用領域と、を備える構成としてある。
また、本発明のメモリデータベースシステムは、ユーザアプリケーションプログラムと、データを配置する共有メモリ領域と、マスタデータを格納するディスク装置と、を備えたメモリデータベースシステムであって、前記共有メモリ領域が、ユーザアプリケーションプログラムが参照のみできる参照用領域と、ユーザアプリケーションプログラムが参照及び更新が可能な更新用領域と、を備えるとともに、前記共有メモリ領域の前記参照用領域及び前記更新用領域の両方を参照及び更新が可能なコミット実行デーモンを備える構成としてある。
また、本発明のメモリデータベース更新方法は、共有メモリ領域に格納されたマスタデータを更新するためのメモリデータベース更新方法であって、前記共有メモリ領域を、ユーザアプリケーションプログラムが参照のみできる参照用領域と、ユーザアプリケーションプログラムが参照及び更新が可能な更新用領域とに分割するステップと、前記参照用領域にマスタデータを格納するステップと、前記更新用領域に前記ユーザアプリケーションプログラムが前記マスタデータを更新する差分データを格納するステップと、前記差分データを前記マスタデータに適用して、当該マスタデータを更新するステップと、を有する方法としてある。
本発明によれば、共有メモリ領域にユーザアプリケーションプログラムが参照のみできる参照用領域とユーザアプリケーションプログラムが参照及び更新が可能な更新用領域とを設けることにより、マスタデータを参照用領域に格納しておけば、ユーザアプリケーションプログラムはマスタデータを格納している参照用領域にアクセスできないので、ユーザアプリケーションプログラムの不具合により、マスタデータが破壊されることがなくなる。
以下、本発明の好ましい実施形態について図面を参照して説明する。
なお、以下に示す本実施形態のメモリデータベースにおける各処理、動作は、プログラム(ソフトウェア)の命令によりコンピュータで実行される処理,手段,機能によって実現される。プログラムは、コンピュータの各構成要素に指令を送り、以下に示すような所定の処理・機能を行わせる。すなわち、本実施形態のメモリデータベースにおける各処理・手段は、プログラムとコンピュータとが協働した具体的手段によって実現される。
なお、プログラムの全部又は一部は、例えば、磁気ディスク,光ディスク,半導体メモリ,その他任意のコンピュータで読取り可能な記録媒体により提供され、記録媒体から読み出されたプログラムがコンピュータにインストールされて実行される。また、プログラムは、記録媒体を介さず、通信回線を通じて直接にコンピュータにロードし実行することもできる。
図1は、本発明のメモリデータベースシステムの一実施形態を示すシステム図である。
同図に示す本実施形態のメモリデータベースシステム1は、パーソナルコンピュータやワークステーションなどの情報処理装置により構成されており、具体的には、データベースのデータを格納する共有メモリ100と、ユーザが独自に作成したユーザアプリケーションプログラム200と、コミット実行デーモン300と、マスタデータを格納しているディスク装置400の各部を備えている。
共有メモリ100は、参照用領域110と、更新用領域120に分割されている。
参照用領域110には、マスタデータ111が格納される。
マスタデータ111は、メモリデータベースシステム1の動作開始時に、ディスク装置400から読み込まれる。
マスタデータ111は、本データとしてのレコード112と、参照用インデックスとしてのインデックスツリー113から構成される。
インデックスツリー113は、高速にレコードを検索するために用いる木構造であり、葉の部分に参照用ポインタ格納領域114を有する。
参照用ポインタ格納領域114は、それぞれ対応するレコード112を指す参照用ポインタ115の値と、更新用領域120に設けられる対応する更新用インデックスとしての更新用ポインタ格納領域124へのリンクを格納する。
参照用領域110は、ユーザアプリケーションプログラム200からは参照のみ可能で、更新はできないようにアクセス制限が設定され、コミット実行デーモン300からは参照および更新が可能なようにアクセス制限が設定される。
更新用領域120には、更新データ121が格納される。
ユーザアプリケーションプログラムがマスタデータ111を更新しようとしたタイミングで更新データ121を作成する。
更新データ121は、更新前と更新後の差分データとしての差分レコード122と、更新用インデックスとしての更新用ポインタ格納領域124から構成される。
更新用ポインタ格納領域124は、参照用領域110にマスタデータ111が読み込まれたタイミングで、自動的に参照用ポインタ格納領域114の内容がコピーされ、参照用ポインタ格納領域114からリンクが張られる。
したがって、初期状態では、更新用ポインタ格納領域124は、それぞれ対応するマスタデータ111上のレコード112を指す更新用ポインタ125の値を格納する。
その後、ユーザアプリケーションプログラム200がマスタデータ111を更新しようとして差分レコード122が作成されると、更新用ポインタ125がその差分レコード122を指すように更新用ポインタ格納領域124の値が更新される。
更新用領域120は、ユーザアプリケーションプログラム200からもコミット実行デーモン300からも参照および更新が可能なようにアクセス制限が設定される。
ユーザアプリケーションプログラム200は、メモリデータベースシステム1を使用するユーザが独自に作成し、参照用領域110に置かれたマスタデータ111を参照する機能と、マスタデータ111を更新しようとする際に差分レコード122を作成し、更新用領域120を排他した上で作成した差分レコード122を更新用領域120に格納し、更新用ポインタ125をその差分レコード122を指すように張り替える機能を持つ。
また、データ更新後、コミット実行デーモン300にコミット要求を送信することで、コミット処理を実行させる機能を有する。
コミット実行デーモン300は、メモリデータベースシステム1内で動作し、ユーザアプリケーションプログラム200からのコミット要求を受信したら、参照用領域110および更新用領域120を排他した上で、更新用領域120に格納された差分レコード122を、参照用領域110に格納されたマスタデータ111に反映させ、かつ更新用ポインタ125を全てマスタデータ111のレコード112を指すように張り替える機能を有する。
次に、図2〜図12を参照しながら上記メモリデータベースシステム1の動作について説明する。
まず準備として、メモリデータベースシステム1の起動時に、図2に示すように、共有メモリ100上に参照用領域110と更新用領域120を作成する。
次に、図3に示すように、ディスク装置400から読み込んだマスタデータ111を参照用領域110上にロードする。マスタデータ111は、本データとしてのレコード112と、参照用インデックスとしてのインデックスツリー113から構成される。インデックスツリー113は、葉の部分に参照用ポインタ格納領域114を持つ。
同時に、図4に示すように、更新用領域120上に、参照用ポインタ格納領域114を、更新用ポインタ格納領域124としてコピーする。
参照用ポインタ格納領域114は、対応するレコード112を指す参照用ポインタ115の値を格納する共に、更新用領域120に設けられる対応する更新用インデックスとしての更新用ポインタ格納領域124へのリンクを格納する。
更新用ポインタ格納領域124は、差分レコード222を指す更新用ポインタ125の値を格納する。
但し、初期状態として、各更新用ポインタ125は、図4に示すように、マスタデータ111上の参照用ポインタ115と同じレコードを指す。
次に、ユーザアプリケーションプログラム200が共有メモリ100上に置かれたマスタデータ111を更新する方法について説明する。
ユーザアプリケーションプログラム200は、マスタデータ111のレコード112を更新しようとした場合、まず、図5に示すように、更新用領域120を、他のユーザアプリケーションプログラムやコミット実行デーモン300が参照できないように排他する。
次に、更新しようとするレコードを、インデックスツリー113から更新用ポインタをたどることにより特定する。
その後、図6に示すように、先ほど位置を特定した更新前のレコードイメージと、更新後のレコードイメージからなる差分レコードイメージ122を、更新用領域120に格納した上で、更新用ポインタ125が差分レコードイメージ122を指すように更新用ポインタ格納領域124を書き換える。
全ての処理が終わった後、更新用領域120に対する排他を解除する。
ユーザアプリケーションプログラム200による特定回数(1回でもよいし、複数回でもよい)の更新が終わった後、更新用領域120に蓄積された更新データ121をマスタデータ111に反映するために、図7に示すように、ユーザアプリケーションプログラム200は、コミット実行デーモン300に対してプロセス間通信を用いてコミット要求を送信する。
コミット実行デーモン300は、コミット要求を受け取ると、まず参照用領域110と更新用領域120を排他する。
次に、更新用領域120に蓄積された差分レコード122を、まとめて参照用領域110のマスタデータ111に反映する。
差分レコード122でマスタデータ111を書き換えた後、図8に示すように、差分レコード122を削除し、差分レコード122を指していた更新用ポインタ125がマスタデータ111上の対応するレコード112を指すように、更新用ポインタ格納領域124を書き換える。
全ての処理が終わった後、参照用領域110および更新用領域120に対する排他を解除する。
次に、ユーザアプリケーションプログラム200によって更新が行われたレコードを、さらに別のユーザアプリケーションプログラム210が更新する方法について説明する。
ユーザアプリケーションプログラム200により、マスタデータ111に対して更新が行われ、図6に示したように、差分レコード122が更新用領域120に格納され、更新用ポインタ125が差分レコード122を指すように更新用ポインタ格納領域124が書き換えられ、更新用領域120の排他が解除された状態であるとする。
ユーザアプリケーションプログラム210が、再度レコード112に対して更新しようとした場合、まず、図9に示すように、更新用領域120を、他のユーザアプリケーションプログラムやコミット実行デーモン300が参照できないように排他する。
次に、更新しようとするレコードを、更新用ポインタ125をたどることにより特定する。この場合、更新用ポインタ125は差分レコード122内を指しており、現在の実更新対象レコードは更新後レコード128であると判断する。
その後、図10に示すように、この更新後レコード128と、さらに今回更新した後のレコードからなる差分レコードを更新用領域120に格納した上で、更新用ポインタ125が今作成した差分レコードを指すように更新用ポインタ125を張り替える。全ての処理が終わった後、更新用領域120に対する排他を解除する。
ユーザアプリケーションプログラム210による更新が終わった後の、コミット実行デーモン300によるマスタデータ111への反映処理については、先ほどと全く同様である。
すなわち、ユーザアプリケーションプログラム210からコミット要求を受け取ったコミット実行デーモン300は、参照用領域110と更新用領域120を排他し、更新用領域120に蓄積された差分レコード122を、まとめて参照用領域110のマスタデータ111に反映し、差分レコード122でマスタデータ111を書き換えた後、差分レコード122を削除し、更新用ポインタ格納領域124を書き換えた後、参照用領域110および更新用領域120に対する排他を解除する。
次に、ユーザアプリケーションプログラム200によりマスタデータ111を更新しようとしている最中に、別のユーザアプリケーションプログラム210がマスタデータ111を参照する場合について説明する。
ユーザアプリケーションプログラム200がマスタデータ111を更新しようとしている最中は、図11に示すように、更新用領域120は排他されており、他のユーザアプリケーションプログラムやコミット実行デーモン300が参照することはできないが、参照用領域110はデータ更新が一切なく、排他が不要であるため、他のユーザアプリケーションプログラムから常に参照が可能である。
ただし、ユーザアプリケーションプログラム200の更新処理が完了し、コミット実行デーモン300にコミット要求を出した後、コミット実行デーモン300が更新データ121をマスタデータ111に反映している間は、参照用領域110と更新用領域120の両方が排他されているため、どのユーザアプリケーションプログラムもマスタデータ111を参照することはできない。
もちろん、どのユーザアプリケーションプログラムもマスタデータ111を更新していないときは、どのユーザアプリケーションプログラムもマスタデータ111を参照可能であることは言うまでもない。
本実施形態のデータベースシステムは、複数のユーザアプリケーションプログラムに「同じ」データを「同時に」「矛盾無く」読み書きできる機能が確保されている。
また、データベースシステムにはデータを障害から保護する機能が必要である。
ユーザアプリケーションプログラム200の不具合によりメモリ破壊が発生した場合の、共有メモリ100上のデータを復旧する方法について説明する。
ユーザアプリケーションプログラム200の不具合によりメモリ破壊が発生した場合、破壊され得るメモリ領域は、ユーザアプリケーションプログラム自身が持つメモリ(ローカルメモリと呼ぶ)と、メモリデータベースシステム1上の共有メモリ100のうち、ユーザアプリケーションプログラム200が更新権限を持つ更新用領域120に限定され、更新権限を持たない参照用領域110が破壊されることはない。
更新用領域120上の更新データ121が破壊されたことを検出した場合、図12に示すように、更新用領域120を排他した上で、差分レコード122を全て破棄し、かつ参照用ポインタ格納領域114の内容を再度更新用領域120にコピーし、更新用領域120の排他を解除することで、速やかに直近のコミットされたデータ状態に戻すことができる。
この間、参照用領域110は更新されず、排他されないため、どのユーザアプリケーションプログラムもマスタデータ111を参照することが可能である。
更新データが破壊されたことを検出する方法としては、更新データ作成時に、そのデータのチェックサムを計算、格納しておき、次にその更新データが参照されるときに再度チェックサムを計算して、格納されている値と比較するという方法が考えられる。
また、破壊の検出を行うプロセスは、ユーザアプリケーションプログラム200でもよいし、コミット実行デーモン300でもよいし、データ破壊検出専用のプロセスを新たに用意してもよい。
このように、本実施形態のメモリデータベースシステム1によれば、データを配置する共有メモリ100を、ユーザアプリケーションプログラム200が参照のみ可能な参照用領域110と参照および更新が可能な更新用領域120に分割することで、ユーザアプリケーションプログラムにメモリを破壊するような不具合があった場合としても、データ破壊の影響をユーザアプリケーションプログラム200が更新権限を有する更新用領域120上の更新データ121のみに局所化することができる。
これにより、メモリ破壊が発生した場合でも、マスタデータ111は参照用領域110で保全されているため、更新用領域120上の更新データ121を全て破棄し、更新用ポインタ124が指す先を書き直すだけで、直近のコミットされたデータ状態に戻すことが可能になる。
その結果、従来の復旧手順である、(1)メモリ上のデータ破棄、(2)ディスク装置からのデータ再ロード、(3)ジャーナルファイルからのロールフォワードに比べ、本発明ではディスクアクセスを要する手順がなくなるため、データリカバリにかかる時間が大幅に短縮される。
また、本実施形態では、上記メモリ破壊の局所化を実現した上で、オーバーヘッドの原因となるプロセス間通信は、ユーザアプリケーションプログラム200がコミット実行デーモン300にコミット要求を出すときだけであり、その他はユーザアプリケーションプログラムが共有メモリ100に直接アクセスするため、データアクセス性能の劣化を最小限とし、トランザクション性能が向上する。
また、データ更新毎にメモリにマスタデータをコピーすることはせず、差分データを作成するだけであるので、CPUリソースおよびメモリリソースの余分な消費を防ぐことが可能になる。
また、これまではユーザアプリケーションプログラムによるデータ更新中はデータの参照ができなかったが、本実施形態では、参照用領域110の排他をコミット実行デーモン300がコミット処理実行中のみとし、データ更新中は参照用領域110を排他しないことで、データ参照が可能な区間を延ばすことができる。
これにより、データ参照を行うユーザアプリケーションプログラムが排他待ちにより処理時間を無駄に消費する可能性が低くなり、データの処理効率を向上させることができる。
以上説明したように、本実施形態に係るメモリデータベースによれば、共有メモリ領域にユーザアプリケーションプログラムが参照のみできる参照用領域とユーザアプリケーションプログラムが参照及び更新が可能な更新用領域とを設けることにより、マスタデータを参照用領域に格納しておけば、ユーザアプリケーションプログラムはマスタデータを格納している参照用領域にアクセスできないので、ユーザアプリケーションプログラムの不具合により、マスタデータが破壊されることがなくなる。
また、参照用領域及び前記更新用領域の両方を参照及び更新が可能なコミット実行デーモンを有することにより、マスタデータを参照用領域に格納し、マスタデータを更新した差分データを更新領域に格納し、コミット実行デーモンが差分データでマスタデータを更新すれば、ユーザアプリケーションプログラムはマスタデータを格納している参照用領域にアクセスできないので、ユーザアプリケーションプログラムの不具合により、マスタデータが破壊されることがなくなる。
しかも、ユーザアプリケーションプログラムが共有メモリ領域にアクセスできるので、プロセス間通信のオーバーヘッドによるデータ更新性能の劣化を防ぐことができるとともに、マスタデータ自身のコピー処理によるCPUリソースとメモリリソースの消費を抑えることができる。
本発明のメモリデータベースは、上記実施形態に限定されるものではない。例えば、上記実施形態では、マスタデータの本データとしてレコードを示したが、データベースを構成するその他の概念であっても良い。
本発明のメモリデータベースは、例えば大量の顧客データや統計データ等のデータ分析を行う分野に利用することができる。
本発明のメモリデータベースシステムの一実施形態を示すシステム構成図である。 共有メモリを参照用領域と更新用領域に分割する動作の説明図である。 マスタデータをロードする動作の説明図である。 更新用領域にインデックスを設ける動作の説明図である。 マスタデータの差分データを作成する初期動作の説明図である。 マスタデータの差分データを作成する後期動作の説明図である。 差分データでマスタデータを更新する初期動作の説明図である。 差分データでマスタデータを更新する後期動作の説明図である。 他のユーザによって差分データが作成される初期動作の説明図である。 他のユーザによって差分データが作成される後期動作の説明図である。 マスタデータの差分データ作成時の参照用領域の参照動作の説明図である。 データ復旧の動作の説明図である。 メモリデータベースシステムにおけるデータ破壊の説明図である。 ジャーナルファイルシステムにおけるデータ復旧の動作の説明図である。 クライアント/サーバ方式のメモリデータベースシステムの説明図である。 CVS方式のメモリデータベースシステムの説明図である。 特許文献1で提案された方式の説明図である。
符号の説明
1 メモリデータベースシステム
100 共有メモリ
110 参照用領域
111 マスタデータ
112 レコード
113 インデックスツリー
114 参照用ポインタ格納領域
115 参照用ポインタ
120 更新用領域
121 更新データ
122 差分レコード
124 更新用ポインタ格納領域
125 更新用ポインタ
200 ユーザアプリケーションプログラム
300 コミット実行デーモン
400 ディスク装置

Claims (4)

  1. ユーザアプリケーションプログラムと、データを配置する共有メモリ領域と、マスタデータを格納するディスク装置と、を備えたメモリデータベースシステムであって、
    前記共有メモリ領域が、ユーザアプリケーションプログラムが参照のみできる参照用領域と、ユーザアプリケーションプログラムが参照及び更新が可能な更新用領域と、を備えるとともに、
    前記共有メモリ領域の前記参照用領域及び前記更新用領域の両方を参照及び更新が可能なコミット実行デーモンを備え、
    前記参照用領域が、前記ディスク装置からロードした本データ及びその参照用インデックスを有するマスタデータを格納し、
    前記更新用領域が、前記ユーザアプリケーションプログラムが前記マスタデータを更新したときの差分データ及びそのインデックスとなる、前記参照用インデックスとリンクした更新用インデックスを格納し、
    前記コミット実行デーモンが、前記差分データによって前記マスタデータを更新する
    ことを特徴とするメモリデータベースシステム。
  2. 前記更新用領域が、前記更新用インデックスとして、前記参照用インデックスをコピーして格納する
    ことを特徴とする請求項記載のメモリデータベースシステム
  3. 共有メモリ領域に格納されたマスタデータを更新するためのメモリデータベース更新方法であって、
    前記共有メモリ領域を、ユーザアプリケーションプログラムが参照のみできる参照用領域と、ユーザアプリケーションプログラムが参照及び更新が可能な更新用領域とに分割するステップと、
    前記参照用領域に本データ及びその参照用インデックスを有するマスタデータを格納するステップと、
    前記更新用領域に前記ユーザアプリケーションプログラムが前記マスタデータを更新する差分データ及びそのインデックスとなる、前記参照用インデックスとリンクした更新用インデックスを格納するステップと、
    前記差分データを前記マスタデータに適用して、当該マスタデータを更新するステップと、
    を有することを特徴とするメモリデータベース更新方法。
  4. 前記更新用領域に、前記更新用インデックスとして、前記参照用インデックスをコピーして格納する
    ことを特徴とする請求項記載のメモリデータベース更新方法
JP2008097870A 2008-04-04 2008-04-04 メモリデータベース、メモリデータベースシステム及びメモリデータベース更新方法 Expired - Fee Related JP5012628B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008097870A JP5012628B2 (ja) 2008-04-04 2008-04-04 メモリデータベース、メモリデータベースシステム及びメモリデータベース更新方法
CN200980111727.4A CN101981550B (zh) 2008-04-04 2009-03-31 数据库系统、数据库更新方法、数据库以及数据库更新程序
US12/922,051 US8380660B2 (en) 2008-04-04 2009-03-31 Database system, database update method, database, and database update program
PCT/JP2009/057033 WO2009123342A1 (ja) 2008-04-04 2009-03-31 データベースシステム、データベース更新方法、データベース、及びデータベース更新プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008097870A JP5012628B2 (ja) 2008-04-04 2008-04-04 メモリデータベース、メモリデータベースシステム及びメモリデータベース更新方法

Publications (2)

Publication Number Publication Date
JP2009251853A JP2009251853A (ja) 2009-10-29
JP5012628B2 true JP5012628B2 (ja) 2012-08-29

Family

ID=41135691

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008097870A Expired - Fee Related JP5012628B2 (ja) 2008-04-04 2008-04-04 メモリデータベース、メモリデータベースシステム及びメモリデータベース更新方法

Country Status (4)

Country Link
US (1) US8380660B2 (ja)
JP (1) JP5012628B2 (ja)
CN (1) CN101981550B (ja)
WO (1) WO2009123342A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011052510A1 (de) * 2011-08-09 2013-02-14 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zur Verarbeitung von Daten eines Steuergeräts in einem Datenkommunikationsgerät
GB2505185A (en) 2012-08-21 2014-02-26 Ibm Creating a backup image of a first memory space in a second memory space.
CN103020149B (zh) * 2012-11-22 2016-01-20 用友网络科技股份有限公司 共享数据更新装置和共享数据更新方法
ES2627574T3 (es) * 2014-03-27 2017-07-28 Kapsch Trafficcom Ag Unidad de a bordo y procedimiento para la actualización de geodatos en su interior
US11768707B2 (en) 2018-08-27 2023-09-26 Box, Inc. Workflow selection
US11669793B2 (en) * 2019-10-01 2023-06-06 Box, Inc. Inter-application workflow performance analytics
US11681572B2 (en) 2019-12-23 2023-06-20 Box, Inc. Extensible workflow access
US20220083679A1 (en) 2020-09-14 2022-03-17 Box, Inc. Broker-assisted workflows
CN113885804A (zh) * 2021-10-09 2022-01-04 湖南国科微电子股份有限公司 一种数据更新方法、装置及计算机设备
WO2023100289A1 (ja) * 2021-12-01 2023-06-08 日本電信電話株式会社 データベース管理装置、データベース管理方法およびデータベース管理プログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5617537A (en) * 1993-10-05 1997-04-01 Nippon Telegraph And Telephone Corporation Message passing system for distributed shared memory multiprocessor system and message passing method using the same
JP3146276B2 (ja) * 1994-03-10 2001-03-12 富士通株式会社 共有メモリの更新及び参照管理方式並びに参照タイミング制御方式
US5548728A (en) * 1994-11-04 1996-08-20 Canon Information Systems, Inc. System for reducing bus contention using counter of outstanding acknowledgement in sending processor and issuing of acknowledgement signal by receiving processor to indicate available space in shared memory
JPH1031604A (ja) * 1996-07-15 1998-02-03 Meidensha Corp 共有メモリシステム並びにデータベースシステム
US5914730A (en) * 1997-09-09 1999-06-22 Compaq Computer Corp. System and method for invalidating and updating individual GART table entries for accelerated graphics port transaction requests
US6243788B1 (en) * 1998-06-17 2001-06-05 International Business Machines Corporation Cache architecture to enable accurate cache sensitivity
US6463439B1 (en) * 1999-07-15 2002-10-08 American Management Systems, Incorporated System for accessing database tables mapped into memory for high performance data retrieval
US6810464B1 (en) * 2001-08-09 2004-10-26 Unisys Corporation Multiprocessor computer system for processing communal locks employing mid-level caches
US6678799B2 (en) * 2001-10-18 2004-01-13 Hewlett-Packard Development Company, Lp. Aggregation of cache-updates in a multi-processor, shared-memory system
US7222138B2 (en) * 2002-02-20 2007-05-22 Sun Microsystems, Inc. Versioning application programming interface and method for using versioning functionality
JP2006066009A (ja) * 2004-08-30 2006-03-09 Renesas Technology Corp 半導体集積回路
JP4758666B2 (ja) * 2005-03-17 2011-08-31 株式会社日立製作所 記憶制御システム及び記憶制御方法
JP4757066B2 (ja) * 2006-03-15 2011-08-24 株式会社日立ソリューションズ 利用者端末における二次記憶装置の管理方法及び利用者端末
JP2007280323A (ja) * 2006-04-12 2007-10-25 Hitachi Ltd 記憶システム及びデータ管理方法
JP4945200B2 (ja) * 2006-08-29 2012-06-06 株式会社日立製作所 計算機システム及びプロセッサの制御方法
JP4415071B2 (ja) * 2007-06-22 2010-02-17 富士通マイクロエレクトロニクス株式会社 メモリ共有システム装置

Also Published As

Publication number Publication date
US8380660B2 (en) 2013-02-19
WO2009123342A1 (ja) 2009-10-08
JP2009251853A (ja) 2009-10-29
US20110004583A1 (en) 2011-01-06
CN101981550B (zh) 2014-11-05
CN101981550A (zh) 2011-02-23

Similar Documents

Publication Publication Date Title
JP5012628B2 (ja) メモリデータベース、メモリデータベースシステム及びメモリデータベース更新方法
US9183236B2 (en) Low level object version tracking using non-volatile memory write generations
US7472129B2 (en) Lossless recovery for computer systems with map assisted state transfer
US7433898B1 (en) Methods and apparatus for shared storage journaling
US8572039B2 (en) Focused backup scanning
US7360111B2 (en) Lossless recovery for computer systems with remotely dependent data recovery
JP4363676B2 (ja) コンピュータシステム
US7613743B1 (en) Methods and apparatuses for data protection
US8732121B1 (en) Method and system for backup to a hidden backup storage
US9665304B2 (en) Storage system with fast snapshot tree search
JP4620457B2 (ja) 複数の同時にアクティブなファイルシステム
US8510597B2 (en) Providing restartable file systems within computing devices
US6779001B1 (en) Transactional file system for realizing atomic update of plural files by transactions
CN108701048B (zh) 数据加载方法及装置
US8856467B2 (en) Management of metadata in a storage subsystem
US20130339569A1 (en) Storage System and Method for Operating Thereof
US20070061540A1 (en) Data storage system using segmentable virtual volumes
US20080172423A1 (en) Hsm control program, hsm control apparatus, and hsm control method
US8990159B2 (en) Systems and methods for durable database operations in a memory-mapped environment
US7761424B2 (en) Recording notations per file of changed blocks coherent with a draining agent
US9335941B1 (en) Crash consistency
US7996370B2 (en) System restoration apparatus and method for management of dependencies, ordering sensitivities, and database index rebuilds
US20230244649A1 (en) Skip-List Checkpoint Creation
US20170010834A1 (en) Integrated Systems and Methods for the Transactional Management of Main Memory and Data Storage
JP2004062473A (ja) データベース管理方法およびシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111004

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120406

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: 20120508

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120521

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees