JP2016184432A - データベースの管理方法 - Google Patents
データベースの管理方法 Download PDFInfo
- Publication number
- JP2016184432A JP2016184432A JP2016123887A JP2016123887A JP2016184432A JP 2016184432 A JP2016184432 A JP 2016184432A JP 2016123887 A JP2016123887 A JP 2016123887A JP 2016123887 A JP2016123887 A JP 2016123887A JP 2016184432 A JP2016184432 A JP 2016184432A
- Authority
- JP
- Japan
- Prior art keywords
- master node
- lock
- database
- node
- write
- 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.)
- Granted
Links
- 238000007726 management method Methods 0.000 claims abstract description 19
- 238000000034 method Methods 0.000 claims description 42
- 238000012545 processing Methods 0.000 abstract description 50
- 230000000875 corresponding effect Effects 0.000 description 59
- 230000008569 process Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 12
- 238000012217 deletion Methods 0.000 description 10
- 230000037430 deletion Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000010076 replication Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000010365 information processing Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 241000283080 Proboscidea <mammal> Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】マルチマスタ方式のデータベース構造において、上位マスタノードが下位マスタノードからのシャドウコピーに依存しない更新を自らのデータベースで実行したときに特権トランザクション命令を含むログを生成して、このログを下位マスタノードに配信する。下位マスタノードではこの特権トランザクション命令によってタプルに対するロックを優先的に獲得し更新処理を行い更新結果の最小値を上位マスタノードにロックリプライとして返信する。
【選択図】図15
Description
ータベースの管理方法を実現することを技術的課題とする。
本発明の第1の側面は、レコード更新が可能な上位と下位のマスタノードを階層的に有する追記型データベースの管理方法であって、所定の下位マスタノードでデータベースの複数テーブルに対する更新命令が生じたときに、当該下位マスタノードのデータベース処理部が上位マスタノードに対して、自身のメモリ上に展開されたデータベースのテーブル毎のシャドウコピーとヒープタプルマップとの組み合わせを束にしたテーブル別書込セットとして生成・送信するステップと、前記上位マスタノードにおいて、前記下位マスタノードから受信した前記テーブル別書込セット中のテーブル毎のヒープタプルマップと自身のデータベースとを比較して、ターゲットとして登録されているデータベースの該当するテーブルの該当行が別のテーブル別書込セット等で更新されているか否かを検証するステップと、前記更新がなされているときには前記所定の下位マスタノードから送信されたテーブル別書込セット全体をアボートし、更新がなされていないときには前記テーブル別書込セット中のテーブル毎の前記シャドウコピーを用いて上位マスタノードのデータベースの該当テーブルの該当行を更新するとともに、上位マスタノードのテーブル番号を含む更新記録をトランザクションログとして生成するステップと、前記トランザクションログを前記送信元の下位マスタノードを含む下位マスタノードに配信するステップと、前記下位マスタノードのトランザクションログ処理部は、前記で受信したトランザクションログに基づいて自身のデータベースの該当テーブルの該当行を更新するステップとからなるデータベースの管理方法である。
たとき、前記下位マスタノードのデータベース処理部は、前記マスタデータベースのテーブルを参照するステップと、前記テーブルに対応するヒープタプルマップを参照して検索処理において該当行番号がエントリされているか否かを判定し、エントリされていないときには前記マスタデータベースのテーブルを直接の検索対象とし、前記該当行番号がエントリされているときには、前記エントリが削除指示であるか更新指示であるかを判定し、削除指示であるときには該当行番号を検索対象から除外し、更新指示である場合には前記ヒープタプルマップ内の前記テーブルに対応するシャドウコピーのエントリを検索対象とするステップを実行する第1または第3の側面に記載のデータベースの管理方法である。
本発明を図に基づいて説明する。
ていてもよいし、メインメモリ(MM)上に構築されていてもよい。要するにマスタデータベース(11a)の構築場所は限定されるものではない。
、前記更新命令にともなってトランザクションログ処理部(11c)を起動してトランザクションログの生成を開始する。そして、前記で受信した書込セットからヒープタプルマップ(HTM)を読み出して、自身のマスタデータベース(11a)と比較する。ここで、ターゲットとなっているタプル(ここでは行番号4,5および7)の内容がマスタデータベース(11a)上で更新されているか否かを検証する。図5では、行番号4〜6については未更新であるため、行番号4に削除ポインタを付与し、書き換えられる旧番号5にも削除ポインタを付与する。そして、新たな行番号7に新しい命令(sc1)が書き込まれる。
シャドウコピー(SC)の組み合わせ中にテーブル番号を記入して単一の書込セット(以下、「統合書込セット」という)として上位マスタノードに送信する方法を示している。
わせが生成され、この束がテーブル別書込セットとなる。
テーブルの該当行がすでに別の統合書込セット等(通常の書込セットまたは前述のテーブ
ル別書込セット)により更新されていないかをチェックする。このとき、更新されていな
い場合は、この統合書込セットのシャドウコピーを参照して、当該テーブルの当該タプルを更新する。他方、すでに更新されていることを検出した場合には、この統合書込セット全体をアボートする。たとえばテーブルT1のヒープタプルマップ(HTM)の該当行が既に他の統合書込セット等(通常の書込セットまたは前述のテーブル別書込セットを含む)により更新されているときは、この統合書込セット全体がアボートされる。
、上位マスタノードで生成されるトランザクションログもテーブル番号が付加されたフォーマットとなる。図9はその一例を示したものである。
下位マスタノード(たとえばMS201)でマスタデータベースの更新命令が発生した場合の処理については、図2で説明したように、バックエンドメモリ(BEM)上でヒープタプルマップ(HTM、ヒープファイル)とシャドウコピー(SC)とからなる書込セット(複数テーブルの場合には図7に示すテーブル別書込セットまたは図8に示す統合書込セット)が生成されるが、上位マスタノード(MS101)でマスタデータベースの更新命令が発生した場合には、上位ノードに通知する必要がないため、書込セットは生成されない。すなわち、このような場合、上位ノード(MS101)では、図5の左図に示すようにマスタデータベース(11a)に対して直接更新データの書込が行われるとともに、図6に示すトランザクションログ(複数テーブルの場合には図9に示すトランザクションログ)が生成される。このトランザクションログは下位マスタノードに配信され、前記トランザクションログを受信した下位マスタノードでは、当該トランザクションログを自身のマスタデータベースにレプリケーションする。
下位マスタノード(たとえばMS201)において、図4に示すような書込セットを生成している段階で、当該下位マスタノードのマスタデータベースに対して検索が実行されたとき、書込セットの生成された行番号以外の行番号を対象とした検索であれば問題はないが、該当行(ここでは行番号4および行番号5)に対する検索が実行された場合、これらの行番号は既に削除されているため、検索対象にはできない。
第1の類型は、データベース処理部(11b)は、マスタデータベース(11a)を参照した後に、ヒープタプルマップ(HTM)を参照する。そしてこのヒープタプルマップ(HTM)上で検索該当行番号がエントリされているか否かをチェックする。そしてエントリがあった場合には当該エントリが削除か更新かを判定し、更新の場合にはさらにシャドウコピー(SC)を参照して当該シャドウコピー(SC)のエントリ(sc1)を検索対象とする。たとえば図4に示す例で、検索対象が行番号3である場合、データベース処理部(11b)は、メインメモリ(MM)上に構築されたバックエンドメモリ(BEM)上の書込セット内のヒープタプルマップ(HTM)を参照して、該当行(行番号3)がエントリされているか否かを判定する。図4の例では、該当行はエントリされていない。その場合には、マスタデータベース11aに直接アクセスして該当行(行番号3)を検索する。
テーブルに対応するヒープタプルマップ(HTM)のエントリを参照し、検索該当行番号が含まれているか否かをチェックする。エントリが含まれていない場合には、マスタデータベースの検索対象テーブルの該当行を検索対象とする。そしてエントリが含まれている場合には当該エントリが削除か更新かを判定し、更新の場合にはさらに上記で取り出したシャドウコピー(SC)のエントリを参照して当該エントリを検索対象とする。また、削除の場合には、該当行を検索対象とはしない。
上位マスタから配信されたトランザクションログによって下位マスタノードのデータベースにレプリケーションが行われているときに、該当行に対して下位マスタのデータベースの更新命令が実行されている場合、競合が発生することになる。
具体的には、トランザクションログ処理部11cは、前記バックエンドメモリ(BEM)を参照して、この更新命令によって更新しようとしている該当行がヒープタプルマップ(HTM)に含まれている場合には、当該ヒープタプルマップ(HTM)を生成しているトランザクションをアボートさせる。
本発明の別の実施形態(実施形態2)を図に基づいて説明する。
更新を行う点が特徴だった。しかしこれらの先行技術では上位マスタノードでテーブル自体を削除したりテーブル構造に変更を加えるような場合は想定していなかった。そのために書込セットによる更新によってデータベースの整合性がとれなくなる事態を生じる可能性があった。本実施形態はこのような場合にデータベースのロック機能を利用してマルチマスタノード構造全体で整合性を保つ技術である。以下に説明する。
シャドウコピー(SC)とからなる書込セットが生成される。
るものではない。つまり、前述の比較ステップに先立って、書込セットに格納されたノードロック番号(NLKN)を読み出しておき、ノードロック番号(NLKN)よりも大きなロック番号に該当するロック獲得情報を参照し、そのロック獲得情報と書込セットが修正しようとしているテーブルとが競合していないかどうかを検証する。競合している場合には書込セットをアボートして当該書込セットを比較対象から除外する。このような検証を行う理由は、上位マスタノード(MS101)でロックが獲得されているにもかかわらず、下位マスタノードで前記ロックの獲得前のテーブルに基づいてそのテーブルに対してタプルの更新を行いその情報が書込セットとして上位マスタノード(MS101)に届いて当該タプルを含むテーブルを更新してしまった場合、上位マスタノード(MS101)がロック獲得中に行ったテーブルの構造の変更や削除と競合してマスタデータベース(11a)の整合性が損なわれてしまうためである。
して、そのロック獲得結果情報を得る。ここでは、具体的にはロック獲得命令順に付与されたロック獲得命令番号で管理すればよい。すなわちテーブル1のロック獲得命令(LT1)のロック獲得命令番号は「1」、次のテーブル3のロック獲得命令(LT3)のロック獲得命令番号は「2」、次のテーブル2のロック獲得命令(LT2)のロック獲得命令番号は「3」、さらに次のテーブル4のロック獲得命令(LT4)のロック番号は「4」
となる。
SL スレーブ
MS201,MS202・・・MS20n 下位マスタノード(中位マスタノード)
MS301,MS302・・・MS30n 下位マスタノード
CL クライアント端末
11a マスタデータベース
11b データベース処理部
11c トランザクションログ処理部
11d 通信モジュール
CPU 中央処理装置
MM 主記憶装置
BUS バス
HD 大規模記憶装置
I/O 通信インターフェース
HTM ヒープタプルマップ
SC シャドウコピー
Claims (12)
- 更新が可能な上位と下位のマスタノードを階層的に有する追記型データベースの管理方法であって、
いずれかの下位マスタノードのセッションにおいて、上位マスタノードに対して、当該下位のマスタノードのデータベースの更新対象となったテーブル情報を書込セットに登録して上位マスタノードに送信するステップと、
前記上位マスタノードにおいて、データベースのテーブルに対するロック獲得命令が発生したときには、当該ロック獲得情報を下位マスタノードに通知するとともに、そのロック獲得情報を上位マスタノードに保持するステップと、
前記上位マスタノードにおいて、前記下位マスタノードから受信した前記書込セット中のテーブル情報と前記で保持されたロック獲得情報とを比較して、競合するときには、前記書込セットをアボートするステップと、
前記上位マスタノードからロック獲得情報を受信した前記下位マスタノードでは、ロック獲得情報が対象としているテーブルに対するトランザクションが存在しているときには、前記下位マスタノードにおいて当該トランザクションを廃棄するステップと、
前記下位マスタノードにおいて前記上位マスタノードからのロック獲得情報に基づいて対象となるテーブルのロックを獲得するステップと
が実行される、追記型データベースの管理方法。 - 前記書込セットは、下位マスタノードのデータベースのシャドウコピーと、自身のメモリ上に展開されたテーブルとタプルとの組み合わせ情報を含むヒープタプルマップとからなり、
上位マスタノードが前記書込セットを受信すると、前記ロック獲得情報との比較によってアボートされなかったときに、当該書込セット中のヒープタプルマップと自身のデータベースとを比較して、ターゲットとして登録されているタプルのデータベースにおける更新の有無を検証するステップと、
前記で更新がなされているときには書込セットをアボートするステップと、
前記で更新がなされていないときには前記シャドウコピーを用いて自身のデータベースを更新するとともに、この更新記録をトランザクションログとして生成し、このトランザクションログを下位マスタノードに送信するステップと、
前記トランザクションログを受信した下位マスタノードにおいて前記トランザクションログに基づいて自身のデータベースを更新するステップと
が実行される、請求項1記載の追記型データベースの管理方法。 - 前記下位マスタノードは、前記上位マスタノードからのロック獲得情報に基づいて当該テーブルに対するロックを獲得したときには、ロック獲得結果情報として前記上位マスタノードに通知する、
請求項1または2に記載の追記型データベースの管理方法。 - 前記上位マスタノードで発生したロック獲得情報はトランザクションログに格納されて下位マスタノードに通知される、
請求項1から3のいずれか1項に記載の追記型データベースの管理方法。 - 前記上位マスタノードから送信されるロック獲得情報はシーケンシャルに管理されたロック番号がそれぞれ付与されており、
前記下位マスタノードでの前記ロックの獲得結果情報は、当該下位マスタノードにおいてロックが獲得された最大値のロック番号をノードロック番号として前記上位マスタノードに通知する、
請求項4記載の追記型データベースの管理方法。 - 前記上位マスタノードと、前記下位マスタノードとの間に1または2以上の中位マスタノードが構築された階層構造を有しており、
前記各中位マスタノードは、1または2以上の下位マスタノードからノードロック番号の通知を受領すると、受領した各ノードロック番号を、自身が保持するノードロック番号と比較して、その中の最小値をツリーロック番号として更新するとともに、該ツリーロック番号をさらに上層の中位マスタノードまたは上位マスタノードに通知し、
前記1または2以上の中位マスタノードから前記通知を受領した前記上層の中位マスタノードは、受領した各ツリーロック番号を自身が保持するノードロック番号と比較して、その中の最小値を新たなツリーロック番号として更新するとともに、該ツリーロック番号をさらに上層の上位マスタノードに通知し、
前記下位マスタノードまたは前記上層の中位マスタノードから通知を受領した上位マスタノードは、通知された前記ツリーロック番号の中の最小値を新たなクラスタロック番号として更新し、当該クラスタロック番号よりも等しいか小さいロック番号に該当するロック獲得命令がクラスタ全体で完了したことを認識する、
請求項4記載の追記型データベースの管理方法。 - 前記中位マスタノードは1階層または2以上の階層で構成されている、
請求項6記載の追記型データベースの管理方法。 - 前記中位マスタノードが存在せずに、上位マスタノードと下位マスタノードとの2階層で構成されている、
請求項6または7のいずれかに記載の追記型データベースの管理方法。 - 前記ロック獲得情報に基づくノードロック番号は前記書込セットに格納されて中位マスタノードまたは上位マスタノードに通知される、
請求項1から8のいずれか1項に記載の追記型データベースの管理方法。 - 前記書込セットを受領した上位マスタノードは、当該書込セットからノードロック番号を読み出して、自身が保持するロック獲得命令に対応するロック番号と比較して、当該ノードロック番号よりも大きいロック番号に該当するロック獲得情報のみを前記書込セット中のテーブル情報との比較対象とする、
請求項9記載の追記型データベースの管理方法。 - 前記シーケンシャルに管理されたロック番号は、上位マスタノードで生成されるトランザクションログに付与されるログシーケンス番号を用いることを特徴とする、
請求項5から10のいずれか1項に記載の追記型データベースの管理方法。 - レコード更新が可能な上位と下位のマスタノードを階層的に有する追記型データベースの管理方法であって、
上位マスタノードのデータベースに対して更新または削除命令が発生したときに、当該命令の対象となるテーブルに対するロックを獲得するステップと、
前記ロック獲得情報を下位マスタノードに通知するステップと、
前記ロック獲得情報に基づいて下位マスタノードで当該テーブルに対するロックを獲得するステップと
が実行される、追記型データベースの管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016123887A JP6239697B2 (ja) | 2016-06-22 | 2016-06-22 | データベースの管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016123887A JP6239697B2 (ja) | 2016-06-22 | 2016-06-22 | データベースの管理方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014503377A Division JP5960798B2 (ja) | 2012-03-08 | 2012-03-08 | データベースの管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016184432A true JP2016184432A (ja) | 2016-10-20 |
JP6239697B2 JP6239697B2 (ja) | 2017-11-29 |
Family
ID=57242035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016123887A Active JP6239697B2 (ja) | 2016-06-22 | 2016-06-22 | データベースの管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6239697B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021077366A (ja) * | 2019-11-12 | 2021-05-20 | 株式会社アーリーワークス | 情報処理装置及びプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006164097A (ja) * | 2004-12-10 | 2006-06-22 | Nec Corp | レプリケーション制御システム、基幹サーバ、部門サーバ、更新ロック管理装置およびプログラム |
JP4719318B2 (ja) * | 2009-03-19 | 2011-07-06 | 株式会社Murakumo | データの複製管理方法及びシステム |
-
2016
- 2016-06-22 JP JP2016123887A patent/JP6239697B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006164097A (ja) * | 2004-12-10 | 2006-06-22 | Nec Corp | レプリケーション制御システム、基幹サーバ、部門サーバ、更新ロック管理装置およびプログラム |
JP4719318B2 (ja) * | 2009-03-19 | 2011-07-06 | 株式会社Murakumo | データの複製管理方法及びシステム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021077366A (ja) * | 2019-11-12 | 2021-05-20 | 株式会社アーリーワークス | 情報処理装置及びプログラム |
JP7231909B2 (ja) | 2019-11-12 | 2023-03-02 | 株式会社アーリーワークス | 情報処理装置及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP6239697B2 (ja) | 2017-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4951138B2 (ja) | データベースの管理方法 | |
US11151157B2 (en) | Database management method | |
JP6008947B2 (ja) | データベースの管理方法、データベースシステム、及び、プログラム | |
JP6239697B2 (ja) | データベースの管理方法 | |
JP5283768B2 (ja) | データベースの管理方法、データベース管理システム、およびプログラム | |
WO2013076819A1 (ja) | データベースの管理方法 | |
WO2012169080A1 (ja) | データベースの管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160722 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160802 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170710 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170725 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170829 |
|
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: 20171003 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171101 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6239697 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |