JP5578486B2 - データベースシステム、データベース更新方法およびデータベース更新プログラム - Google Patents

データベースシステム、データベース更新方法およびデータベース更新プログラム Download PDF

Info

Publication number
JP5578486B2
JP5578486B2 JP2010174316A JP2010174316A JP5578486B2 JP 5578486 B2 JP5578486 B2 JP 5578486B2 JP 2010174316 A JP2010174316 A JP 2010174316A JP 2010174316 A JP2010174316 A JP 2010174316A JP 5578486 B2 JP5578486 B2 JP 5578486B2
Authority
JP
Japan
Prior art keywords
data
update
shared memory
database
updated
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
JP2010174316A
Other languages
English (en)
Other versions
JP2012033126A (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 JP2010174316A priority Critical patent/JP5578486B2/ja
Publication of JP2012033126A publication Critical patent/JP2012033126A/ja
Application granted granted Critical
Publication of JP5578486B2 publication Critical patent/JP5578486B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、データベースシステム、データベース更新方法およびデータベース更新プログラムに関する。
業務処理を行うデータベースシステムのなかには、共有メモリを使用して業務アプリケーションを実行し、共有メモリの内容が更新されるたびに更新前後の情報をデータベースに格納するものがある。このようなシステムにおいて、共有メモリの更新処理とデータベースの更新処理とを一つのプロセスで同期させて行うと、例えば、ネットワーク障害等によりデータベースの更新処理が遅延した場合に、業務アプリケーションが関与する共有メモリの更新処理が終了しているにもかかわらず、データベースの更新処理を待機し続ける状態が生じ得る。このような場合には、プロセスの完了が遅延してしまう。
このような問題を解決するために、共有メモリの更新処理とデータベースの更新処理とを異なるプロセスで非同期に実行する技術がある(下記特許文献1参照)。しかしながら、非同期に実行する場合であっても、一つの更新要求に対するデータベースの更新処理に遅延が生ずると、この更新処理が完了するまでは後続の更新要求に対するデータベースの更新処理が待機し続けることになる。
特開平7−84882号公報
本発明は、上述した課題を解決するためになされたものであり、データの更新処理の効率を向上させることができるデータベースシステム、データベース更新方法およびデータベース更新プログラムを提供することを目的とする。
本発明のデータベースシステムは、業務アプリケーションで用いられるデータを格納する共有メモリと、前記共有メモリで更新の対象となるデータを格納するデータベースと、特定のデータの更新要求を受信した場合に、前記共有メモリに格納されているデータのうち、前記更新要求に対応するデータを更新する共有メモリ更新部と、前記共有メモリに格納されているデータが更新されたか否かを判定する共有メモリ監視部と、前記共有メモリ監視部によって前記共有メモリに格納されているデータのうち第1データが更新されたと判定された場合に、前記データベースに格納されているデータのうち、前記第1データに対応するデータを更新するデータベース更新部と、を備え、前記データベース更新部は、前記第1データとは異なる第2データが更新されたと判定された場合に、前記第1データに対応するデータの更新処理を実行している間は、当該第1データに対応するデータの更新処理と並行して前記第2データに対応するデータの更新処理を実行する。
本発明のデータベース更新方法は、業務アプリケーションで用いられるデータを格納する共有メモリと、前記共有メモリで更新の対象となるデータを格納するデータベースと、を有するデータベースシステムを制御するデータベース更新方法であって、特定のデータの更新要求を受信した場合に、前記共有メモリに格納されているデータのうち、前記更新要求に対応するデータを更新する共有メモリ更新ステップと、前記共有メモリに格納されているデータが更新されたか否かを判定する共有メモリ監視ステップと、前記共有メモリ監視ステップにおいて前記共有メモリに格納されているデータのうち第1データが更新されたと判定された場合に、前記データベースに格納されているデータのうち、前記第1データに対応するデータを更新するデータベース更新ステップと、を含み、前記データベース更新ステップは、前記第1データとは異なる第2データが更新されたと判定された場合に、前記第1データに対応するデータの更新処理を実行している間は、当該第1データに対応するデータの更新処理と並行して前記第2データに対応するデータの更新処理を実行する。
本発明のデータベース更新プログラムは、上記データベース更新方法に含まれる各ステップをコンピュータに実行させる。
本発明によれば、データの更新処理の効率を向上させることができる。
実施形態におけるデータベースシステムの構成を例示するブロック図である。 共有メモリに格納されるデータのデータ構成を例示する図である。 データベースに格納されるデータのデータ構成を例示する図である。 共有メモリの更新処理の流れを説明するためのフローチャートである。 共有メモリの監視処理の流れを説明するためのフローチャートである。 データベースの更新処理の流れを説明するためのフローチャートである。
以下、添付図面を参照して、本発明に係るデータベースシステム、データベース更新方法およびデータベース更新プログラムの好適な実施形態について説明する。
まず、図1を参照して、実施形態におけるデータベースシステムの構成について説明する。データベースシステム1は、共有メモリ20を使用して業務アプリケーションを実行するシステムであって、共有メモリ20の内容が更新された場合には、非同期でデータベース30の内容を更新するシステムである。データベースシステム1は、機能的には、例えば、共有メモリ更新部11と、共有メモリ監視部12と、データベース更新部13とを有する。各部の機能については後述する。
このデータベースシステム1は、物理的には、例えば、CPU(Central Processing Unit)と、記憶装置と、入出力インターフェースとを含んで構成される。記憶装置には、例えば、CPUで処理されるプログラムやデータを記憶するROM(Read Only Memory)やHDD(Hard Disk Drive)と、主として制御処理のための各種作業領域として使用されるRAM(Random Access Memory)とが含まれる。これらの要素は、互いにバスを介して接続されている。CPUが、ROMに記憶されたプログラムを実行し、入出力インターフェースを介して受信されるメッセージや、RAMに展開されるデータを処理することで、データベースシステム1における各部の機能を実現することができる。
図2を参照して、共有メモリ20に格納されるデータ(以下、「共有データ」という。)のデータ構成について説明する。共有データは、データ項目として、例えば、データID項目、世代番号項目およびデータ内容項目を有する。データID項目は、共有データを一意に特定する識別情報を格納する。世代番号項目は、共有データの更新回数を格納する。世代番号は、初期値が0に設定され、更新要求を受信するたびにインクリメントされる。データ内容項目は、共有データの本体であるデータ内容を格納する。
図3を参照して、データベース30に格納されるデータ(以下、「DBデータ」という。)のデータ構成について説明する。DBデータは、データ項目として、例えば、データID項目、世代番号項目、データ内容項目および起動状態項目を有する。データID項目、世代番号項目およびデータ内容項目については、上述した共有データの各データ項目と同様である。起動状態項目は、DBデータに対応するデータベース30の更新処理スレッドが“未起動”であるか“起動中”であるかを示す情報を格納する。
図1に示す共有メモリ更新部11は、特定の共有データを更新するように要求する更新要求コマンドを受信した場合に、更新要求コマンドで指定された共有データのデータ内容を、更新要求コマンドで指定されたデータ内容で更新する。更新要求コマンドは、例えば利用者によって発行される。更新要求コマンドには、例えば利用者によって指定された更新対象データのデータIDとデータ内容とが含まれる。更新要求コマンドが発行されると、共有メモリ20の更新プロセスが起動する。
共有メモリ更新部11は、共有データを更新した後に、その更新に対応する共有メモリ20の更新プロセスを終了させる。
共有メモリ監視部12は、定期的に、共有データが更新されたか否かを判定することで、共有メモリ20を監視する。判定する間隔は、利用者が任意に設定することができる。
共有メモリ監視部12は、共有メモリ20とデータベース30とを参照し、同一のデータIDを有する共有データの世代番号とDBデータの世代番号とを比較する。共有メモリ監視部12は、共有データの世代番号がDBデータの世代番号よりも大きい場合に、当該DBデータの起動状態が“未起動”であるか否かを判定する。共有メモリ監視部12は、DBデータの起動状態が“未起動”である場合に、データベース30の更新処理を要求する。
データベース更新部13は、共有メモリ監視部12によってデータベース30の更新処理が要求された場合に、更新処理の要求ごとにデータベース30の更新スレッドを起動する。データベース更新部13は、更新処理の要求に対応する共有データの世代番号およびデータ内容を、DBデータの世代番号およびデータ内容に反映させて更新する。データベース更新部13は、更新スレッドが複数起動された場合に、複数の更新スレッドを並行して動作させる。
データベース更新部13は、DBデータを更新した後に、その更新に対応するデータベース30の更新スレッドを終了させる。
次に、図面を参照して、データベースシステム1における動作を説明する。最初に、図4を参照して、共有メモリ20の更新処理の流れについて説明する。
最初に、共有メモリ更新部11は、更新要求コマンドを受信する(ステップS101)と、更新要求コマンドに基づいて共有データを更新する(ステップS102)。続いて、共有メモリ更新部11は、共有メモリ20の更新プロセスを終了させる(ステップS103)。
次に、図5を参照して、共有メモリ20の監視処理の流れについて説明する。この監視処理は、定期的に実行される。
最初に、共有メモリ監視部12は、同一のデータIDを有する共有データとDBデータとを抽出し、共有データの世代番号がDBデータの世代番号よりも大きいか否かを判定する(ステップS201)。この判定がNOである場合(ステップS201;NO)に、共有メモリ監視部12は、上記ステップS201の処理に移行して、次の比較対象となるデータを抽出する。
一方、上記ステップS201の判定で共有データの世代番号がDBデータの世代番号よりも大きいと判定した場合(ステップS201;YES)に、共有メモリ監視部12は、当該DBデータの起動状態が“未起動”であるか否かを判定する(ステップS202)。この判定がNOである場合(ステップS202;NO)に、共有メモリ監視部12は、上記ステップS201の処理に移行して、次の比較対象となるデータを抽出する。
一方、上記ステップS202の判定で起動状態が“未起動”であると判定した場合(ステップS202;YES)に、共有メモリ監視部12は、データベース更新部13にデータベース30の更新処理を要求する(ステップS203)。共有メモリ監視部12は、共有データおよびDBデータの全てを比較し終わるまで、上記ステップS201の処理に移行する。
次に、図6を参照して、データベース30の更新処理の流れについて説明する。
最初に、データベース更新部13は、更新処理の要求を受信する(ステップS301)と、この要求に対応するDBデータの更新スレッドを起動する(ステップS302)。
続いて、データベース更新部13は、更新処理の要求に対応するDBデータの起動状態を“起動中”に変更する(ステップS303)。
続いて、データベース更新部13は、更新開始ログを出力し(ステップS304)、更新処理の要求に基づいてDBデータを更新する(ステップS305)。
続いて、データベース更新部13は、更新終了ログを出力し(ステップS306)、更新処理の要求に対応するDBデータの起動状態を“未起動”に変更する(ステップS307)とともに、上記ステップS302で起動した更新スレッドを終了させる(ステップS308)。
上述したように、実施形態におけるデータベースシステム1によれば、データの更新要求コマンドを受信した場合に、共有メモリ20に格納されている共有データを更新し、この更新要求により起動されたプロセスを終了させることができ、共有メモリ20に格納されている共有データが更新された場合に、更新された共有データごとに更新スレッドを起動し、更新スレッドごとに並行して共有データに対応するDBデータを更新させることができる。
これにより、例えば一つの更新スレッドにおける更新処理が遅延した場合であっても、この遅延の影響を受けることなく更新要求のプロセスを実行して共有データを更新させることができ、他の更新スレッドにおける更新処理にも影響を来たすことなくDBデータを更新させることができる。それゆえに、データの更新処理の効率を向上させることができる。
また、更新スレッドごとに更新開始ログと更新終了ログとを出力することができるため、DBデータの更新状況を正確に把握することが可能となる。
なお、上述した実施形態は、単なる例示に過ぎず、実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。
例えば、上述した実施形態では、本発明に係るデータベースシステムを一つの装置に組み込んだ状態で説明しているが、本発明に係るデータベースシステムは複数の装置で実施することができる。この場合には、上述した実施形態におけるデータベースシステムが有する各機能を複数の装置に分散し、これら複数の装置群を上述した実施形態におけるデータベースシステムと同様に機能させればよい。
上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、本発明を以下に限定するものではない。
(付記1) 業務アプリケーションで用いられるデータを格納する共有メモリと、前記共有メモリで更新の対象となるデータを格納するデータベースと、特定のデータの更新要求を受信した場合に、前記共有メモリに格納されているデータのうち、前記更新要求に対応するデータを更新する共有メモリ更新部と、前記共有メモリに格納されているデータが更新されたか否かを判定する共有メモリ監視部と、前記共有メモリ監視部によって前記共有メモリに格納されているデータのうち第1データが更新されたと判定された場合に、前記データベースに格納されているデータのうち、前記第1データに対応するデータを更新するデータベース更新部と、を備え、前記データベース更新部は、前記第1データとは異なる第2データが更新されたと判定された場合に、前記第1データに対応するデータの更新処理を実行している間は、当該第1データに対応するデータの更新処理と並行して前記第2データに対応するデータの更新処理を実行する、ことを特徴とするデータベースシステム。
(付記2) 前記共有メモリに格納されるデータおよび前記データベースに格納されるデータは、データの更新回数を示す世代番号をそれぞれ有し、前記共有メモリ監視部は、それぞれのデータの世代番号同士を比較することで、前記共有メモリに格納されているデータが更新されたか否かを判定する、ことを特徴とする付記1記載のデータベースシステム。
(付記3) 業務アプリケーションで用いられるデータを格納する共有メモリと、前記共有メモリで更新の対象となるデータを格納するデータベースと、を有するデータベースシステムを制御するデータベース更新方法であって、特定のデータの更新要求を受信した場合に、前記共有メモリに格納されているデータのうち、前記更新要求に対応するデータを更新する共有メモリ更新ステップと、前記共有メモリに格納されているデータが更新されたか否かを判定する共有メモリ監視ステップと、前記共有メモリ監視ステップにおいて前記共有メモリに格納されているデータのうち第1データが更新されたと判定された場合に、前記データベースに格納されているデータのうち、前記第1データに対応するデータを更新するデータベース更新ステップと、を含み、前記データベース更新ステップは、前記第1データとは異なる第2データが更新されたと判定された場合に、前記第1データに対応するデータの更新処理を実行している間は、当該第1データに対応するデータの更新処理と並行して前記第2データに対応するデータの更新処理を実行する、ことを特徴とするデータベース更新方法。
(付記4) 付記3に記載の各ステップをコンピュータに実行させるためのデータベース更新プログラム。
1…データベースシステム、11…共有メモリ更新部、12…共有メモリ監視部、13…データベース更新部、20…共有メモリ、30…データベース。

Claims (4)

  1. 業務アプリケーションで用いられるデータを格納する共有メモリと、
    前記共有メモリで更新の対象となるデータを格納するデータベースと、
    特定のデータの更新要求を受信した場合に、前記共有メモリに格納されているデータのうち、前記更新要求に対応するデータを更新する共有メモリ更新部と、
    前記共有メモリに格納されているデータが更新されたか否かを判定する共有メモリ監視部と、
    前記共有メモリ監視部によって前記共有メモリに格納されているデータのうち第1データが更新されたと判定された場合に、前記データベースに格納されているデータのうち、前記第1データに対応するデータを更新するデータベース更新部と、を備え、
    前記共有メモリに格納されるデータおよび前記データベースに格納されるデータは、データの更新に伴って更新される番号をそれぞれ有し、
    前記共有メモリ監視部は、それぞれのデータの前記番号同士を比較することで、前記共有メモリに格納されているデータが更新されたか否かを判定し、
    前記データベース更新部は、前記第1データとは異なる第2データが更新されたと判定された場合に、前記第1データに対応するデータの更新処理を実行している間は、当該第1データに対応するデータの更新処理と並行して前記第2データに対応するデータの更新処理を実行する、
    ことを特徴とするデータベースシステム。
  2. 前記番号は、データの更新回数を示す世代番号である、ことを特徴とする請求項1記載のデータベースシステム。
  3. 業務アプリケーションで用いられるデータを格納する共有メモリと、前記共有メモリで更新の対象となるデータを格納するデータベースと、を有し、前記共有メモリに格納されるデータおよび前記データベースに格納されるデータは、データの更新に伴って更新される番号をそれぞれ有する、データベースシステムを制御するデータベース更新方法であって、
    特定のデータの更新要求を受信した場合に、前記共有メモリに格納されているデータのうち、前記更新要求に対応するデータを更新する共有メモリ更新ステップと、
    前記共有メモリおよび前記データベースにそれぞれ格納されるデータの前記番号同士を比較することで、前記共有メモリに格納されているデータが更新されたか否かを判定する共有メモリ監視ステップと、
    前記共有メモリ監視ステップにおいて前記共有メモリに格納されているデータのうち第1データが更新されたと判定された場合に、前記データベースに格納されているデータのうち、前記第1データに対応するデータを更新するデータベース更新ステップと、を含み、
    前記データベース更新ステップは、前記第1データとは異なる第2データが更新されたと判定された場合に、前記第1データに対応するデータの更新処理を実行している間は、当該第1データに対応するデータの更新処理と並行して前記第2データに対応するデータの更新処理を実行する、
    ことを特徴とするデータベース更新方法。
  4. 請求項3に記載の各ステップをコンピュータに実行させるためのデータベース更新プログラム。
JP2010174316A 2010-08-03 2010-08-03 データベースシステム、データベース更新方法およびデータベース更新プログラム Expired - Fee Related JP5578486B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010174316A JP5578486B2 (ja) 2010-08-03 2010-08-03 データベースシステム、データベース更新方法およびデータベース更新プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010174316A JP5578486B2 (ja) 2010-08-03 2010-08-03 データベースシステム、データベース更新方法およびデータベース更新プログラム

Publications (2)

Publication Number Publication Date
JP2012033126A JP2012033126A (ja) 2012-02-16
JP5578486B2 true JP5578486B2 (ja) 2014-08-27

Family

ID=45846420

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010174316A Expired - Fee Related JP5578486B2 (ja) 2010-08-03 2010-08-03 データベースシステム、データベース更新方法およびデータベース更新プログラム

Country Status (1)

Country Link
JP (1) JP5578486B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04170625A (ja) * 1990-11-05 1992-06-18 Hitachi Ltd ファイル回復処理システム
JP2507235B2 (ja) * 1994-06-24 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法
JP4391793B2 (ja) * 2002-10-17 2009-12-24 パナソニック株式会社 ファイル更新装置
JP4892812B2 (ja) * 2004-04-28 2012-03-07 株式会社日立製作所 キャッシュ制御およびデータ処理システム並びにその処理プログラム
JP2006139696A (ja) * 2004-11-15 2006-06-01 Nippon Telegr & Teleph Corp <Ntt> データ復元方法、及びデータ復元プログラム
JP4794571B2 (ja) * 2005-12-02 2011-10-19 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースに対するアクセスを効率化するシステム、および、その方法

Also Published As

Publication number Publication date
JP2012033126A (ja) 2012-02-16

Similar Documents

Publication Publication Date Title
US10013278B2 (en) Methods and systems for batch processing in an on-demand service environment
CN107370667B (zh) 多线程并行处理方法和装置、可读介质和存储控制器
RU2666245C1 (ru) Способ и устройство для сохранения данных с высокой степенью многопоточности
US8131983B2 (en) Method, apparatus and article of manufacture for timeout waits on locks
US8713571B2 (en) Asynchronous task execution
US8874643B2 (en) Redundant data requests with cancellation
US20090006520A1 (en) Multiple Thread Pools for Processing Requests
JP2007034414A5 (ja)
JP5949937B2 (ja) トランザクションシステム
JP2010500673A (ja) リモート・コピー・データの整合性を保持するストレージ管理システム、(ストレージ管理システム、ストレージ管理方法、およびコンピュータ・プログラム)
JP2018534675A (ja) 再マッピング同期によるタスクサブグラフの加速化
JP5686034B2 (ja) クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム
JP5733680B2 (ja) コマンド実行装置、コマンド実行システム、コマンド実行方法およびコマンド実行プログラム
US20210182246A1 (en) Efficient transaction log and database processing
JP2019114173A (ja) 情報処理装置、情報処理方法及びプログラム
US20130110782A1 (en) Oportunistic database duplex operations
US20150193268A1 (en) File lock and unlock mechanism
US10942821B1 (en) Method and apparatus for dynamic binding and unbinding thin logical storage volumes to snapshots of a file system
JP5578486B2 (ja) データベースシステム、データベース更新方法およびデータベース更新プログラム
CN111177032A (zh) 缓存空间申请方法、系统、装置及计算机可读存储介质
JP6046523B2 (ja) インメモリ型分散データベース、データ分散方法及びプログラム
US8615769B2 (en) Data processing system, data processing method, and data processing program
US9152451B2 (en) Method of distributing processor loading between real-time processor threads
CN110764710A (zh) 低延迟高iops的数据访问方法与存储系统
JP4336763B2 (ja) ジョブ管理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130712

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140529

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140629

R150 Certificate of patent or registration of utility model

Ref document number: 5578486

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees