JP6784296B2 - データベース管理装置、データベース管理方法、及びプログラム - Google Patents
データベース管理装置、データベース管理方法、及びプログラム Download PDFInfo
- Publication number
- JP6784296B2 JP6784296B2 JP2018541071A JP2018541071A JP6784296B2 JP 6784296 B2 JP6784296 B2 JP 6784296B2 JP 2018541071 A JP2018541071 A JP 2018541071A JP 2018541071 A JP2018541071 A JP 2018541071A JP 6784296 B2 JP6784296 B2 JP 6784296B2
- Authority
- JP
- Japan
- Prior art keywords
- record
- application
- exclusive
- transaction
- control unit
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
前記データベースに格納されているレコードに対する前記アプリケーションプログラムからの要求を受け付ける、要求受付部と、
前記要求が特定のレコードに対する排他的使用である場合に、一定条件を満たすことを条件に、排他的使用を要求している前記アプリケーションプログラムに対して、排他的使用を許可する、アクセス処理制御部と、
を備え、
前記アクセス処理制御部は、使用を許可された前記アプリケーションプログラムが前記特定のレコードの更新を完了する旨を宣言した場合に、前記特定のレコードに対する排他的な使用を解除して、使用を許可した前記アプリケーションプログラム以外のアプリケーションプログラムに、前記特定のレコードの使用を許可する、
ことを特徴とする。
(a)前記データベースに格納されているレコードに対する前記アプリケーションプログラムからの要求を受け付ける、ステップと、
(b)前記要求が特定のレコードに対する排他的使用である場合に、一定条件を満たすことを条件に、排他的使用を要求している前記アプリケーションプログラムに対して、排他的使用を許可する、ステップと、
(c)使用を許可された前記アプリケーションプログラムが前記特定のレコードの更新を完了する旨を宣言した場合に、前記特定のレコードに対する排他的な使用を解除して、使用を許可した前記アプリケーションプログラム以外のアプリケーションプログラムに、前記特定のレコードの使用を許可する、ステップと、
を有することを特徴とする。
前記コンピュータに、
(a)前記データベースに格納されているレコードに対する前記アプリケーションプログラムからの要求を受け付ける、ステップと、
(b)前記要求が特定のレコードに対する排他的使用である場合に、一定条件を満たすことを条件に、排他的使用を要求している前記アプリケーションプログラムに対して、排他的使用を許可する、ステップと、
(c)使用を許可された前記アプリケーションプログラムが前記特定のレコードの更新を完了する旨を宣言した場合に、前記特定のレコードに対する排他的な使用を解除して、使用を許可した前記アプリケーションプログラム以外のアプリケーションプログラムに、前記特定のレコードの使用を許可する、ステップと、
を実行させる、ことを特徴とする。
本発明は、同一のレコードを排他的に使用して更新する複数のアプリケーションプログラム(以下「アプリケーション」と表記する)において、レコード排他待ちによる性能低下の影響を抑制して、各アプリケーションの並列実行性能を向上させる。具体的には、本発明では、トランザクション中にレコードの更新完了を宣言するステップが導入される。よって、レコードの更新完了の宣言によって、トランザクション中にレコードの排他的使用が解除され、他のアプリケーションの排他待ちも解除される。この時、両方のアプリケーションのトランザクションの依存関係を管理することで、トランザクションの原子性を保証しつつ、排他待ち時間を短縮することができる。
(b)アプリケーション1のトランザクションがロールバックした場合、アプリケーション2のトランザクションのコミットを拒絶し、アプリケーション2のトランザクションにロールバックさせる(図3参照)。
以下、本発明の実施の形態における、データベース管理装置、データベース管理方法、及びプログラムについて、図5〜図15を参照しながら説明する。
最初に、図5を用いて、本実施の形態におけるデータベース管理装置の概略構成について説明する。図5は、本発明の実施の形態におけるデータベース管理装置の概略構成を示す図である。
次に、本発明の実施の形態におけるデータベース管理装置300の動作について図10〜図14を用いて説明する。また、本実施の形態では、データベース管理装置300を動作させることによって、データベース管理方法が実施される。よって、本実施の形態におけるデータベース管理方法の説明は、以下のデータベース管理装置300の動作説明に代える。
最初に、図10を用いて、アプリケーション100が排他ありレコード読み込みを要求した場合のデータベース管理装置300の動作について説明する。図10は、アプリケーションによる要求が排他ありレコード読み込みである場合の本発明の実施の形態におけるデータベース管理装置の動作を示すフロー図である。以降においては、要求元であるアプリケーション100のアプリケーションIDを“AP001”として説明する。
パターン2:[排他状態]が“取得中”の制御レコードが存在し、[要求元]が要求元アプリケーション100(“AP001”)である。
パターン3:[排他状態]が“取得中”の制御レコードが存在し、[要求元]が要求元アプリケーション100(“AP001”)とは別のアプリケーション100である。
パターン4:[排他状態]が“更新完了”の制御レコードのみが存在し、排他取得者が要求元アプリケーション100(“AP001”)である。
パターン5:[排他状態]が“更新完了”の制御レコードのみが存在し、排他取得者が要求元アプリケーション100(“AP001”)とは別のアプリケーション100である。
パターン7:新規子ノード(“AP001”)に相当するノードが存在しない。
パターン8:新規子ノード(“AP001”)に相当するノードが存在するが、該当する依存関係は登録されていない。また、新規子ノードの子孫ノードとしても、新規親ノード(“AP002”)は存在していない。
パターン9:新規子ノード(“AP001”)に相当するノードが存在するが、該当する依存関係は登録されていない。但し、新規子ノードの子孫ノードとして、新規親ノード(“AP002”)が存在する。
パターン11:[直前要求元]に他のアプリケーション100のIDが設定されている。
次に、図11を用いて、アプリケーション100が排他あり読み込み中のレコードに対してレコード更新を要求した場合のデータベース管理装置300の動作について説明する。図11は、アプリケーションによる要求がレコード更新である場合の本発明の実施の形態におけるデータベース管理装置の動作を示すフロー図である。
次に、図12を用いて、アプリケーション100が排他あり読み込み中のレコードに対してレコードの更新完了を要求した場合のデータベース管理装置300の動作について説明する。図12は、アプリケーションによる要求がレコードの更新完了である場合の本発明の実施の形態におけるデータベース管理装置の動作を示すフロー図である。
次に、図13を用いて、アプリケーション100がトランザクションのコミットを要求した場合のデータベース管理装置300の動作について説明する。図13は、アプリケーションによる要求がコミットである場合の本発明の実施の形態におけるデータベース管理装置の動作を示すフロー図である。
最後に、図14を用いて、ロールバック時におけるデータベース管理装置300の動作について、説明する。図14は、アプリケーションによる要求がロールバックである場合の本発明の実施の形態におけるデータベース管理装置の動作を示すフロー図である。
以上のように、本実施の形態では、排他ありレコード読み込み時に、パターン5、及びパターン6〜8の条件が満たされた場合、同一のレコードを排他する複数のアプリケーション100において、排他取得中のアプリケーション100のトランザクションがコミットされる前に、別のアプリケーション100が排他を取得できるようになる。このため、本実施の形態によれば、排他待ち時間が短縮され、データベースシステムにおいて並列して処理を実行する複数のアプリケーション100の処理性能の低下が抑制される。
続いて、本実施の形態における変形例について説明する。本変形例によれば、同一レコードを排他する2つのトランザクションに対して、グループコミット機能を適用することが可能となる。
ここで、本実施の形態で発生する可能生のあるデッドロックとその回避策とについて説明する。上述した排他ありレコード読み込みにおけるパターン9は、トランザクション依存関係によるデッドロックが発生している状態である。
本実施の形態におけるプログラムは、コンピュータに、図10に示すステップA1〜A9、図11に示すステップB1〜B5、図12に示すステップC1〜C5、図13に示すステップD1〜D10、図14に示すステップE1〜E4を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態におけるデータベース管理装置300とデータベース管理方法とを実現することができる。この場合、コンピュータのCPU(Central Processing Unit)は、要求受付部301、アクセス処理制御部302、レコード排他制御部303、依存関係制御部304、及びストレージ処理部305として機能し、処理を行なう。
ここで、本実施の形態におけるプログラムを実行することによって、データベース管理装置300を実現するコンピュータについて図15を用いて説明する。図15は、本発明の実施の形態におけるデータベース管理装置を実現するコンピュータの一例を示すブロック図である。
複数のアプリケーションプログラムによってアクセスされるデータベースを管理するための装置であって、
前記データベースに格納されているレコードに対する前記アプリケーションプログラムからの要求を受け付ける、要求受付部と、
前記要求が特定のレコードに対する排他的使用である場合に、一定条件を満たすことを条件に、排他的使用を要求している前記アプリケーションプログラムに対して、排他的使用を許可する、アクセス処理制御部と、
を備え、
前記アクセス処理制御部は、使用を許可された前記アプリケーションプログラムが前記特定のレコードの更新を完了する旨を宣言した場合に、前記特定のレコードに対する排他的な使用を解除して、使用を許可した前記アプリケーションプログラム以外のアプリケーションプログラムに、前記特定のレコードの使用を許可する、
ことを特徴とするデータベース管理装置。
前記アクセス処理制御部は、使用を許可された前記アプリケーションプログラムが、トランザクションの途中で、前記特定のレコードの更新を完了する旨を宣言した場合でも、前記特定のレコードに対する排他的な使用を解除する、
付記1に記載のデータベース管理装置。
前記複数のアプリケーションプログラムそれぞれのトランザクションの依存関係を管理する、依存関係制御部を更に備え、
前記依存関係制御部は、前記アクセス処理制御部による処理の結果に応じて、前記依存関係を更新する、
付記2に記載のデータベース管理装置。
前記アクセス処理制御部が、前記要求がトランザクションのコミットである場合に、要求されたコミットの数が設定数以上であることを条件に、要求している前記アプリケーション全てのトランザクションをコミットする、
付記1〜3のいずれかに記載のデータベース管理装置。
複数のアプリケーションプログラムによってアクセスされるデータベースを管理するための方法であって、
(a)前記データベースに格納されているレコードに対する前記アプリケーションプログラムからの要求を受け付ける、ステップと、
(b)前記要求が特定のレコードに対する排他的使用である場合に、一定条件を満たすことを条件に、排他的使用を要求している前記アプリケーションプログラムに対して、排他的使用を許可する、ステップと、
(c)使用を許可された前記アプリケーションプログラムが前記特定のレコードの更新を完了する旨を宣言した場合に、前記特定のレコードに対する排他的な使用を解除して、使用を許可した前記アプリケーションプログラム以外のアプリケーションプログラムに、前記特定のレコードの使用を許可する、ステップと、
を有することを特徴とするデータベース管理方法。
前記(c)のステップにおいて、使用を許可された前記アプリケーションプログラムが、トランザクションの途中で、前記特定のレコードの更新を完了する旨を宣言した場合でも、前記特定のレコードに対する排他的な使用を解除する、
付記5に記載のデータベース管理方法。
(d)前記複数のアプリケーションプログラムそれぞれのトランザクションの依存関係を管理する、ステップを更に有し、
前記(d)のステップにおいて、前記(b)及び(c)のステップによる処理の結果に応じて、前記依存関係を更新する、
付記6に記載のデータベース管理方法。
(e)前記要求がトランザクションのコミットである場合に、要求されたコミットの数が設定数以上であることを条件に、要求している前記アプリケーション全てのトランザクションをコミットする、ステップを更に有する、
付記5〜7のいずれかに記載のデータベース管理方法。
コンピュータによって、複数のアプリケーションプログラムによってアクセスされるデータベースを管理するためのプログラムであって、
前記コンピュータに、
(a)前記データベースに格納されているレコードに対する前記アプリケーションプログラムからの要求を受け付ける、ステップと、
(b)前記要求が特定のレコードに対する排他的使用である場合に、一定条件を満たすことを条件に、排他的使用を要求している前記アプリケーションプログラムに対して、排他的使用を許可する、ステップと、
(c)使用を許可された前記アプリケーションプログラムが前記特定のレコードの更新を完了する旨を宣言した場合に、前記特定のレコードに対する排他的な使用を解除して、使用を許可した前記アプリケーションプログラム以外のアプリケーションプログラムに、前記特定のレコードの使用を許可する、ステップと、
を実行させる、プログラム。
前記(c)のステップにおいて、使用を許可された前記アプリケーションプログラムが、トランザクションの途中で、前記特定のレコードの更新を完了する旨を宣言した場合でも、前記特定のレコードに対する排他的な使用を解除する、
付記9に記載のプログラム。
前記コンピュータに、
(d)前記複数のアプリケーションプログラムそれぞれのトランザクションの依存関係を管理する、ステップを更に実行させ、
前記(d)のステップにおいて、前記(b)及び(c)のステップによる処理の結果に応じて、前記依存関係を更新する、
付記10に記載のプログラム。
前記コンピュータに、
(e)前記要求がトランザクションのコミットである場合に、要求されたコミットの数が設定数以上であることを条件に、要求している前記アプリケーション全てのトランザクションをコミットする、ステップを更に実行させる、
付記9〜11のいずれかに記載のプログラム。
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
200 データベース
300 データベース管理装置
301 要求受付部
302 アクセス処理制御部
303 レコード排他制御部
304 依存関係制御部
305 ストレージ処理部
306 トランザクション更新管理表
307 レコード排他管理表
308 トランザクション依存管理表
311 排他あり読み込み処理制御部
312 レコード更新処理制御部
313 更新完了処理制御部
314 コミット処理制御部
315 ロールバック処理制御部
Claims (4)
- 複数のアプリケーションプログラムによってアクセスされるデータベースを管理するための装置であって、
前記データベースに格納されているレコードに対する前記アプリケーションプログラムからの要求を受け付ける、要求受付部と、
前記要求が特定のレコードに対する排他的使用である場合であって、排他的使用を許可するための前提条件を満たす場合に、排他的使用を要求している前記アプリケーションプログラムに対して、排他的使用を許可する、アクセス処理制御部と、
前記複数のアプリケーションプログラムそれぞれのトランザクションの依存関係を管理する、依存関係制御部と、
を備え、
前記アクセス処理制御部は、使用を許可された前記アプリケーションプログラムが排他的使用によるトランザクションの続行中に、前記特定のレコードの更新を完了する旨を宣言した場合に、使用を許可された前記アプリケーションプログラムと、使用を許可された前記アプリケーションプログラム以外のアプリケーションプログラムとの関係を、新規の依存関係として、前記依存関係制御部に登録させ、そして、前記特定のレコードに対する排他的な使用を解除して、使用を許可した前記アプリケーションプログラム以外のアプリケーションプログラムに、前記特定のレコードの使用を許可する、
ことを特徴とするデータベース管理装置。 - 前記アクセス処理制御部が、前記要求がトランザクションのコミットである場合に、要求されたコミットの数が設定数以上であることを条件に、要求している前記アプリケーション全てのトランザクションをコミットする、
請求項1に記載のデータベース管理装置。 - 複数のアプリケーションプログラムによってアクセスされるデータベースを管理するための方法であって、
(a)前記データベースに格納されているレコードに対する前記アプリケーションプログラムからの要求を受け付ける、ステップと、
(b)前記要求が特定のレコードに対する排他的使用である場合に、排他的使用を許可するための前提条件を満たす場合に、排他的使用を要求している前記アプリケーションプログラムに対して、排他的使用を許可する、ステップと、
(c)前記複数のアプリケーションプログラムそれぞれのトランザクションの依存関係を管理する、ステップと、
(d)使用を許可された前記アプリケーションプログラムが排他的使用によるトランザクションの続行中に、前記特定のレコードの更新を完了する旨を宣言した場合に、使用を許可された前記アプリケーションプログラムと、使用を許可された前記アプリケーションプログラム以外のアプリケーションプログラムとの関係を、新規の依存関係として登録し、そして、前記特定のレコードに対する排他的な使用を解除して、使用を許可した前記アプリケーションプログラム以外のアプリケーションプログラムに、前記特定のレコードの使用を許可する、ステップと、
を有することを特徴とするデータベース管理方法。 - コンピュータによって、複数のアプリケーションプログラムによってアクセスされるデータベースを管理するためのプログラムであって、
前記コンピュータに、
(a)前記データベースに格納されているレコードに対する前記アプリケーションプログラムからの要求を受け付ける、ステップと、
(b)前記要求が特定のレコードに対する排他的使用である場合に、排他的使用を許可するための前提条件を満たす場合に、排他的使用を要求している前記アプリケーションプログラムに対して、排他的使用を許可する、ステップと、
(c)前記複数のアプリケーションプログラムそれぞれのトランザクションの依存関係を管理する、ステップと、
(d)使用を許可された前記アプリケーションプログラムが排他的使用によるトランザクションの続行中に、前記特定のレコードの更新を完了する旨を宣言した場合に、使用を許可された前記アプリケーションプログラムと、使用を許可された前記アプリケーションプログラム以外のアプリケーションプログラムとの関係を、新規の依存関係として登録し、そして、前記特定のレコードに対する排他的な使用を解除して、使用を許可した前記アプリケーションプログラム以外のアプリケーションプログラムに、前記特定のレコードの使用を許可する、ステップと、
を実行させる、プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016183492 | 2016-09-20 | ||
JP2016183492 | 2016-09-20 | ||
PCT/JP2017/033758 WO2018056267A1 (ja) | 2016-09-20 | 2017-09-19 | データベース管理装置、データベース管理方法、及びコンピュータ読み取り可能な記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2018056267A1 JPWO2018056267A1 (ja) | 2019-07-04 |
JP6784296B2 true JP6784296B2 (ja) | 2020-11-11 |
Family
ID=61689982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018541071A Active JP6784296B2 (ja) | 2016-09-20 | 2017-09-19 | データベース管理装置、データベース管理方法、及びプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6784296B2 (ja) |
WO (1) | WO2018056267A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7298145B2 (ja) | 2018-12-04 | 2023-06-27 | 富士通株式会社 | 証券取引装置、証券取引方法及び証券取引プログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4295333B2 (ja) * | 2007-05-18 | 2009-07-15 | 株式会社日立製作所 | データベースの制御方法及びプログラム |
JP2013200601A (ja) * | 2012-03-23 | 2013-10-03 | Nec Corp | データベースシステム、データベースシステムにおけるコミット方法、及びプログラム |
-
2017
- 2017-09-19 WO PCT/JP2017/033758 patent/WO2018056267A1/ja active Application Filing
- 2017-09-19 JP JP2018541071A patent/JP6784296B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JPWO2018056267A1 (ja) | 2019-07-04 |
WO2018056267A1 (ja) | 2018-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7912821B2 (en) | Apparatus and method for data management | |
US8473950B2 (en) | Parallel nested transactions | |
JP4833590B2 (ja) | 同時トランザクション(concurrenttransactions)とページ同期(pagesynchronization) | |
KR101203297B1 (ko) | 직접 업데이트 소프트웨어 트랜잭션 메모리 | |
US9268810B2 (en) | Locking across multiple RID spaces | |
US8655859B2 (en) | Concurrency control for extraction, transform, load processes | |
US8700585B2 (en) | Optimistic locking method and system for committing transactions on a file system | |
US8627048B2 (en) | Mechanism for irrevocable transactions | |
US20090183159A1 (en) | Managing concurrent transactions using bloom filters | |
US8271739B2 (en) | Memory control apparatus, program, and method | |
US10970273B2 (en) | Aiding resolution of a transaction | |
US7689788B2 (en) | System and method for executing transactions | |
CN109933606B (zh) | 一种数据库修改方法、装置、设备及存储介质 | |
US20230140121A1 (en) | Local page writes via pre-staging buffers for resilient buffer pool extensions | |
US20220229691A1 (en) | Persistent Multi-Word Compare-and-Swap | |
US9286111B2 (en) | Accessing time stamps during transactions in a processor | |
US11113251B2 (en) | Transaction manager | |
US11449241B2 (en) | Customizable lock management for distributed resources | |
US7353342B1 (en) | Shared lease instruction support for transient blocking synchronization | |
CN111209093A (zh) | 一种分布式数据库系统中分布式事务的处理方法 | |
JP6784296B2 (ja) | データベース管理装置、データベース管理方法、及びプログラム | |
CN110377614B (zh) | 一种分布式环境下的订单处理锁系统 | |
JP5976779B2 (ja) | キャッシュメモリ構造および方法 | |
US20080082533A1 (en) | Persistent locks/resources for concurrency control | |
US8065489B1 (en) | Method and apparatus for managing concurrent access among computers to a bitmap stored on disk storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190315 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190315 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200407 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200604 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200707 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200903 |
|
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: 20200923 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201006 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6784296 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |