JP2009294695A - トランザクション並行制御方法、データベース管理システム、およびプログラム - Google Patents
トランザクション並行制御方法、データベース管理システム、およびプログラム Download PDFInfo
- Publication number
- JP2009294695A JP2009294695A JP2008144670A JP2008144670A JP2009294695A JP 2009294695 A JP2009294695 A JP 2009294695A JP 2008144670 A JP2008144670 A JP 2008144670A JP 2008144670 A JP2008144670 A JP 2008144670A JP 2009294695 A JP2009294695 A JP 2009294695A
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- database
- transaction processing
- application
- processing
- 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
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】DBMS100のトランザクションの並行制御方法において、アプリケーション102から受け付けたトランザクション処理の優先度が実行中または中断中のアプリケーション101のトランザクション処理の優先度より高い場合に両者が使用するデータベース資源の競合を判定し、夫々が取得しているデータベース資源の種類と値とに基づき中断または中止させるトランザクション処理を決定する。決定したトランザクション処理も中断または中止後、アプリケーション102から受け付けたデータベース資源取得予定情報105に含まれるデータベース資源の種類に対応する値を取得してアプリケーション102のトランザクション処理を実行し、その完了後、中断していたトランザクション処理を再開する。
【選択図】図1
Description
(a)その時点で最も優先度の高いトランザクション処理にCPU使用権を与える。
(b)同じ優先度のトランザクション処理は、先に処理要求されたトランザクション処理から順にCPU使用権を与える。
(c)より高い優先度のトランザクション処理が発生した場合は、より低い優先度のトランザクション処理がCPUを使用して処理実行中であっても、より高い優先度のトランザクション処理にCPU使用権を切り替える。
Gray,J. and Reuter,A. : "Transaction Processing : Concepts and Techniques", Morgan Kaufmann Publishers, 1993. Tanenbaum,A,S. and Woodhull,A. : "Operating Systems : Design and Implementation 2nd Edition", Chapter.2 "Process", Prentice Hall, 1997.
データベース管理システムが、
第1のアプリケーションからトランザクション処理要求の指示を受けるとともに、トランザクション処理の識別子を含むトランザクション識別子情報、トランザクション処理の優先度を含む優先度定義情報、およびトランザクション処理の実行時に取得するデータベース資源の種類と値を含むデータベース資源取得予定情報、を受け取るステップと、
前記第1のアプリケーションと異なる第2のアプリケーションから指示されたトランザクション処理が実行中または中断中であるならば、前記第1のアプリケーションから入力されたトランザクション処理の優先度と、前記第2のアプリケーションから指示されたトランザクション処理の優先度とを比較するステップと、
前記比較の結果、前記第1のアプリケーションから指示されたトランザクション処理の優先度が、前記第2のアプリケーションから指示されたトランザクション処理の優先度よりも高い場合、前記第1のアプリケーションから指示されたトランザクション処理と実行中または中断中のトランザクション処理との間のデータベース資源の競合を判定するステップと、
前記実行中または中断中のトランザクション処理が取得しているデータベース資源の種類と値と、前記第1のアプリケーションから指示されたトランザクション処理が取得するデータベース資源の種類と値に基づいて、中断または中止するトランザクション処理を決定するステップと、
前記中断または中止する対象のトランザクション処理の中断または中止がそれぞれ完了した後、前記データベース資源取得予定情報に含まれるデータベース資源の種類について、前記データベース資源取得予定情報に記述された値の取得を行い、前記第1のアプリケーションから指示されたトランザクション処理を実行するステップと、
前記第1のアプリケーションから指示されたトランザクション処理の実行が完了した後、中断しているトランザクション処理の実行を再開するステップと
を含むこととする。
I/Oデバイス使用権とは、I/Oデバイスを使用してデータの書き込みと読み出しを行うために取得することが必要な権利である。
DBMS100において、トランザクション処理が実行中とは、トランザクション処理に含まれる問い合わせ処理を逐次実行している状態であることをいう。実行中のトランザクション処理は、データベース資源を取得している。
トランザクションプロファイル情報114およびデータベース構成情報115は、トランザクション処理の実行中に取得する予定のデータベース資源を決定する為に使用する。
データベースタスク111の実行時スタック情報とは、データベースタスク111の動作中における実行時スタックのスナップショットである。実行時スタックとは、プログラム実行中の関数呼び出しの前後関係(順番)や、関数呼び出しのパラメータおよび戻り値などを記憶するメモリ領域である。
データベースタスク111の大域変数領域情報とは、データベースタスク111の動作中における大域変数領域のスナップショットである。大域変数領域とは、プログラム実行中の大域変数の値を記憶するメモリ領域である。
トランザクション処理の優先度の値の範囲は、DBMS100において予め決められている(例えば1から200までの間など)。トランザクション処理の優先度として取り得る値の総数は有限個である(例えば1から200までの間の整数値200個など)。
(a)同じ優先度のトランザクション処理は、先にトランザクション処理要求を受け付けた方から実行する。
(b)より高い優先度のトランザクション処理の実行を要求された場合は、より低い優先度のトランザクション処理の実行中であっても、より高い優先度のトランザクション処理の実行に切り替える。
図2に本実施形態のトランザクション並行制御方法の実施に用いられる情報処理装置226(コンピュータ)の一例を示している。同図に示すように、この情報処理装置226は、CPU200(CPU : Central Processing Unit、中央処理装置)、入力デバイス201、ディスプレイデバイス202、通信制御装置203、主記憶装置206、ストレージデバイス207、およびシステムバス205を備えている。なお、情報処理装置226の具体例として、携帯電話機、カーナビゲーションシステム、デジタル家電などがある。
主記憶装置206には、共有ヒープメモリ112、制御プログラム209、アプリケーションプログラム群210、データベース管理システムプログラム212、トランザクション識別子情報103、優先度定義情報104、データベース資源取得予定情報105、および利用可能メモリ領域情報106が、保持される。
本実施形態で使用されるプログラムは、ネットワーク204から通信制御装置203を介して、主記憶装置206に設定される。
制御プログラム209は、本実施形態で使用される各プログラムを実行するための基本的な機能を提供する。
優先度定義情報104は、トランザクションの優先度を記述した定義情報であり、アプリケーションプログラム211からデータベース管理システムプログラム212に対して与えられる。
データベース資源取得予定情報105は、トランザクション処理を実行するため必要なデータベース資源の種類と値(所要量)を記述した定義情報であり、アプリケーションプログラム211からデータベース管理システムプログラム212に対して与えられる。本実施形態におけるデータベース資源取得予定情報105については図7とともに後述する。
データベース116は、アプリケーションプログラム群210が使用するデータとデータベースに関する定義情報を格納する。
図3はトランザクション並行制御処理の概要を説明するフローチャートである。以下、同図とともにトランザクション並行制御処理の概要について説明する。
図4は、本実施形態におけるデータベース構成情報の一例である。データベース構成情報115は、データベース116が生成されているストレージデバイス207の名称と、データベース116内に生成されたテーブルの名称を記述した定義情報である。
テーブルの名称を記述するフィールド(403)には、データベース116の名称を記述するフィールド(401)に記述されたデータベース内に生成された全てのテーブルの名称を記述する。
データベースの名称を記述するフィールド(401)、I/Oデバイスの名称を記述するフィールド(402)、および、テーブルの名称を記述するフィールド(403)は、データベースの名称を記述するフィールド(401)に記述されたデータベースの名称毎に三つ組を構成している。
すなわち、I/Oデバイスの名称を記述するフィールド(402)に記述されたI/Oデバイスの名称と、テーブルの名称を記述するフィールド(403)に記述されたテーブルの名称は、データベースの名称を記述するフィールド(401)に記述されたデータベースの名称と対応付けられており、何れのデータベース名称と対応付いているかが判定できるようになっている。
図5は図3で説明したデータベース構築処理の詳細を説明するフローチャートである。以下、同図とともにデータベース構築処理の詳細を説明する。
次にデータベース構築部は、構築したデータベースの構成に関する情報に基づき、データベース構成情報115を生成する(ステップ501)。
図6にトランザクション処理要求キューリスト223の一例を示している。トランザクション処理要求キューリスト223は、アプリケーションプログラム211からのトランザクション処理要求を、トランザクション処理要求の到着順に保持するデータ構造である。
トランザクション処理要求キューヘッダテーブル(601)は、データベース管理システムプログラム212が扱うトランザクション処理の優先度として取り得る値の総数と同じ数の配列要素を持つ。トランザクション処理要求キューヘッダテーブル(601)において、別々の配列要素の優先度の値を記述するフィールド(602)には、別々の優先度の値が登録される。
トランザクション識別子情報を保持する領域(606A、606B)には、アプリケーションプログラム211からデータベース管理システムプログラム212に入力されたトランザクション識別子情報103が保持される。
優先度定義情報を保持する領域(607A、606B)には、アプリケーションプログラム211からデータベース管理システムプログラム212に入力された優先度定義情報104が保持される。
データベース資源取得予定情報を保持する領域(608A、608B)には、アプリケーションプログラム211からデータベース管理システムプログラム212に入力されたデータベース資源取得予定情報105が保持される。
利用可能メモリ領域情報(609A、609B)には、アプリケーションプログラム211からデータベース管理システムプログラム212に入力された利用可能メモリ領域情報106が保持される。
例えば、図6で示したトランザクション処理要求キューリストは以下のことを表している。
データベース管理システムプログラム212が扱うトランザクション処理の優先度の値は、「1」から「200」までの範囲である。優先度の値が「100」のトランザクション処理が、アプリケーションプログラム群210からデータベース管理システムプログラム212に2個到着している。
優先度の値が「100」のトランザクション処理に関して、トランザクション識別子情報TID1(606A)を含むトランザクションキュー構造体に対応するトランザクション処理要求の方が、トランザクション識別子情報TID2(606B)を含むトランザクションキュー構造体(605B)に対応するトランザクション処理要求よりも先に到着した。
図7にデータベース資源取得予定情報105の一例を示している。データベース資源取得予定情報105は、トランザクション処理を実行するため必要なデータベース資源の種類と値(所要量)を記述した定義情報である。
データベース資源の種類を記述するフィールド(701)には、トランザクション処理を実行するために取得する必要があるデータベース資源の種類が記述される。データベース資源の種類を記述するフィールド(701)に記述されるデータベース資源の種類は、データベースキャッシュメモリなどである。
例えば、図7で示したデータベース資源取得予定情報105は、アプリケーションプログラム211からデータベース管理システムプログラム212に対して要求されたトランザクション処理を実行するために、500KByteのデータベースキャッシュメモリを取得する必要があることを示す。
図8A、図8Bに利用可能メモリ領域情報106の一例を示している。利用可能メモリ領域情報106は、共有ヒープメモリ112内の一連のメモリ領域の先頭アドレスとサイズを記述した定義情報である。
メモリアドレスを記述するフィールド(801A、801B)には、共有ヒープメモリ112内の一連のメモリ領域の先頭アドレスを記述する。メモリ領域のサイズを記述するフィールド(802A、802B)には、共有ヒープメモリ112内の一連のメモリ領域のサイズを記述する。
図9は図3で説明したトランザクション処理要求受付処理(ステップ302の処理)の詳細を説明するフローチャートである。
ステップ901では、トランザクション処理要求受付部107は、アプリケーションプログラム211からトランザクション処理の実行を要求するメッセージを受信したか否かを確認する。トランザクション処理の実行を要求するメッセージを受信した場合には(ステップ901のYES)、ステップ902へ進む。トランザクション処理の実行を要求するメッセージを受信していない場合には(ステップ901のNO)、ステップ905に進む。
ステップ903では、トランザクション処理要求受付部107が、アプリケーションプログラム211から受け取ったトランザクション識別子情報103、優先度定義情報104、データベース資源取得予定情報105、および、利用可能メモリ領域情報106を保持するトランザクションキュー構造体(TQ1とする)を生成する。
ステップ905では、トランザクション処理要求受付部107が、トランザクション処理要求受付プログラム217の処理フェーズが「0」であるか否かを確認する。「処理フェーズ」が「0」である場合は(ステップ905のYES)、ステップ906へ進む。処理フェーズが「0」でない場合は(ステップ905のNO)、ステップ913へ進む。
ステップ906では、トランザクション処理要求受付部107が、トランザクション処理要求キューリスト223の何れのトランザクション処理要求キューにもトランザクションキュー構造体が存在しないか(空か)否かを確認する。存在しない(空)の場合は(ステップ906のYES)、ステップ901へ戻る。存在する(空でない)場合は(ステップ906のNO)、ステップ907へ進む。
ステップ908では、トランザクション処理要求受付部107は、トランザクションキュー構造体を1つ以上持つトランザクション処理要求キューのうち、最も高い優先度のトランザクション処理のトランザクション処理要求キューの先頭から、トランザクションキュー構造体(TQ2とする)を1つ取り外す。
ステップ911では、トランザクション処理要求受付部107は、トランザクション処理要求受付プログラム217の処理フェーズに「0」を設定し、ステップ901へ戻る。
ステップ912では、トランザクション処理要求受付部107は、データベース資源競合制御部108に、データベース資源の競合判定と中断又は中止するトランザクション処理の決定を指示し、ステップ901へ戻る。
ステップ915では、トランザクション処理要求受付部107は、トランザクション処理要求受付プログラム217の処理フェーズを「0」と設定し、その後はステップ901へ戻る。
ステップ918では、トランザクション処理要求受付部107は、トランザクション処理要求受付プログラム217の処理フェーズを「0」と設定し、ステップ901へ戻る。
図10にトランザクション状態管理情報224の一例を示している。トランザクション状態管理情報224は、実行中および中断中のトランザクションの状態を表す情報と、データベースタスク111の状態を表す情報を保持するデータ構造である。
実行中トランザクション管理リスト(1001)は、データベース管理システムプログラム212で実行中のトランザクション処理の状態に関する情報を保持するデータ構造である。
実行中トランザクション管理リスト(1001)は、実行中トランザクション管理リストの先頭を参照するポインタを保持する領域(1004)、トランザクション状態管理構造体(1005、1006)、実行中トランザクション管理リストの先頭を参照するポインタを保持する領域(1004)からトランザクション状態管理構造体へのポインタ(1017)、トランザクション状態管理構造体(1005、1006)間のポインタ(1018)、および、トランザクション状態管理構造体から実行中トランザクション管理リストの先頭を参照するポインタを保持する領域(1004)へのポインタ(1019)からなる。
実行中トランザクション管理リスト(1001)は、実行中トランザクション管理リストを構成する全てのトランザクション状態管理構造体が一方向のポインタによって接続されており、実行中トランザクション管理リストの先頭を参照するポインタ(1017)から開始して、全てのトランザクション状態管理構造体を辿ることができるようになっている。
中断中トランザクション管理リスト(1002)は、中断中トランザクション管理リストの先頭を参照するポインタを保持する領域(1007)、トランザクション状態管理構造体(1008)、中断中トランザクション管理リストの先頭を参照するポインタを保持する領域(1007)からトランザクション状態管理構造体へのポインタ(1020)、トランザクション状態管理構造体間のポインタ、および、トランザクション状態管理構造体から中断中トランザクション管理リストの先頭を参照するポインタを保持する領域(1007)へのポインタ(1021)からなる。
中断中トランザクション管理リスト(1002)は、中断中トランザクション管理リストを構成する全てのトランザクション状態管理構造体が一方向のポインタによって接続されており、中断中トランザクション管理リストの先頭を参照するポインタ(1020)から開始して、全てのトランザクション状態管理構造体を辿ることができるようになっている。
優先度の値を登録するフィールド(1012)には、トランザクション識別子を登録するフィールド(1011)に登録されたトランザクション識別子のトランザクション処理の優先度の値を登録する。
データベースキャッシュサイズを登録するフィールド(1013)には、トランザクション識別子を登録するフィールド(1011)に登録されたトランザクション識別子のトランザクション処理が取得しているデータベースキャッシュメモリのサイズを登録する。
データベースタスク番号を登録するフィールド(1014)に「0」が登録されている場合、実行中のトランザクション処理ならば、共有ヒープメモリ112内の一連のメモリ領域に生成されたデータベースタスクに割り当てられていることを表し、中断中のトランザクション処理ならば、トランザクション処理が何れのデータベースタスクにも割り当てられていないことを表す。
再開可能フラグを登録するフィールド(1016)には、中断中のトランザクション処理を再開することができるか否かを表すフラグ(「再開可能」または「再開不可」)を登録する。トランザクション処理が実行中の場合は、「0」を登録する。
データベースタスク管理テーブル(1003)は、データベースタスクプログラム群220に含まれるデータベースタスクプログラム221の数と同じ数の配列要素を持つ。データベースタスクプログラム群220に含まれるデータベースタスクプログラム221の数はデータベース管理システムプログラム212の処理開始時に予め決められているので、データベースタスク管理テーブル(1003)が持つ配列要素の数は、データベース管理システムプログラム212の処理開始時に予め決められている。
トランザクション識別子を登録するフィールド(1010A、1010B、1010C)には、各配列要素内のデータベースタスク番号を登録するフィールドに登録されたデータベースタスク番号に該当するデータベースタスク111に割り当てられたトランザクション処理のトランザクション識別子を登録する。
データベースタスク群110には、データベースタスク番号が「1」、「2」、および、「3」で表される3つのデータベースタスク111がある。データベースタスク番号が「1」のデータベースタスク111は、トランザクション識別子が「telephone_transaction_1」で表されるトランザクション処理に割り当てられており、データベースタスク番号が「2」のデータベースタスク111は、トランザクション識別子が「musicapp_transaction_2」で表されるトランザクション処理に割り当てられており、データベースタスク番号が「2」のデータベースタスク111には、トランザクション処理が割り当てられていない。
トランザクション識別子が「telephone_transaction_1」で表されるトランザクション処理は、優先度の値が「100」であり、50KByteのデータベースキャッシュメモリを取得しており、データベースタスク番号が「1」で表されるデータベースタスク111に割り当てられている。
トランザクション識別子が「musicapp_transaction_2」で表されるトランザクション処理は、優先度の値が「80」であり、1024KByteのデータベースキャッシュメモリを取得しており、データベースタスク番号が「2」で表されるデータベースタスク111に割り当てられている。
トランザクション識別子が「gameapp_transaction_1」で表されるトランザクション処理は、優先度の値が「80」であり、50KByteのデータベースキャッシュメモリを取得しており、データベースタスク111には割り当てられていない。また、トランザクション識別子が「gameapp_transaction_1」で表されるトランザクション処理は、トランザクション識別子が「telephone_transaction_1」で表されるトランザクション処理によって中断されている。トランザクション識別子が「gameapp_transaction_1」で表されるトランザクション処理は、再開できる状態でない。
図11にトランザクションプロファイル情報114の一例を示している。同図に示すトランザクションプロファイル情報114は、トランザクション処理中にアクセスしたデータベース116内のテーブルの名称と、トランザクション処理中に共有ロックおよび排他ロックを取得したデータベース116内のデータベースオブジェクトの名称を、トランザクション毎に保持する。
同図に示すトランザクションプロファイル情報114は、トランザクション識別子を記述するフィールド(1101)、トランザクション処理の実行時にアクセスする対象のテーブルを記述するフィールド(1102)、および、トランザクション処理の実行時に排他を取得するデータベースオブジェクトを記述するフィールド(1103)からなる。
アクセスする対象のテーブルを記述するフィールド(1102)には、トランザクション識別子を記述するフィールド(1101)に記述されたトランザクション識別子に対応するトランザクション処理の実行中にアクセスする対象のテーブルの名称を記述する。
排他ロックを取得するデータベースオブジェクトを記述するフィールド(1105)は、トランザクション識別子を記述するフィールド(1101)に記述されたトランザクション識別子に対応するトランザクション処理の実行中に排他ロックを取得するデータベースオブジェクトを記述する。
なお、トランザクションプロファイル情報114は、データベースタスク111により、各フィールドの情報が記述される。
トランザクション識別子が「telephone_tranasaction_2」で表されるトランザクション処理は、トランザクション処理の実行中に、「電話帳テーブル」へのアクセスを行い、「電話帳テーブル」に対して共有ロックを取得する。
図12はデータベース資源競合制御処理ステップ303の詳細を説明するフローチャートである。
まずステップ1200において、データベース資源競合制御部108は、トランザクション処理要求受付部107から処理開始の指示を受け、中止する対象となるトランザクション処理を保持する中止対象トランザクションリスト(LCとする)と、中断する対象となるトランザクション処理を保持する中断対象トランザクションリスト(Lステップとする)を夫々初期化する。なお、LCとLSは、トランザクション処理を要素とする空の集合である。
ステップ1202では、データベース資源競合制御部108は、トランザクション識別子情報103に記述されたトランザクション識別子をTとする。
ステップ1215では、データベース資源競合制御部108は、トランザクション処理要求受付部107に対して、データベース資源の競合の解決に失敗したことを通知するメッセージを送信し、処理を終了する。
図13A、図13B、図13C、および、図13Dは、図3で説明したデータベースタスク制御処理(ステップ304の処理)の詳細を説明するフローチャートである。
ステップ1301では、データベースタスク制御部109は、データベースタスク制御部109の処理フェーズが「0」であるか否かを確認する。処理フェーズが「0」である場合は(ステップ1301のYES)、ステップ1302へ進む。処理フェーズが「0」でない場合は(ステップ1301のNO)、図13Bのステップ1323へ進む。
ステップ1304では、データベースタスク制御部109は、データベースタスク制御部109の処理フェーズに「1」を設定し、ステップ1301へ戻る。
ステップ1307では、データベースタスク制御部109は、トランザクション状態管理構造体STEに登録されているデータベースタスク番号の値をDBN1とする。
ステップ1308では、データベースタスク制御部109は、トランザクション状態管理情報224のデータベースタスク管理テーブル(1003)のデータベースタスク番号に登録されている値がDBN1と一致する二つ組のトランザクション識別子を登録するフィールド(1010)に「0」を登録する。
ステップ1315では、データベースタスク制御部109は、トランザクション状態管理構造体STHを中断中トランザクション管理リスト(1002)から取り除き、実行中トランザクション管理リスト(1001)に追加し、ステップ1301へ戻る。
ステップ1316では、データベースタスク制御部109は、トランザクション状態管理構造体STHに登録されているトランザクション識別子に対応するトランザクション処理をTRとする。
ステップ1318では、データベースタスク制御部109は、トランザクション処理TRと対応するデータベースタスクコンテキストをコンテキスト退避領域113から削除する。
ステップ1319では、データベースタスク制御部109は、トランザクション処理TRと対応するデータベースタスクコンテキストを復旧したデータベースタスクに対して、トランザクション処理TRの再開を指示する。
ステップ1320では、データベースタスク制御部109は、トランザクション状態管理構造体STHを中断中トランザクション管理リスト(1002)から取り除き、実行中トランザクション管理リスト(1001)に追加する。
ステップ1322では、データベースタスク制御部109は、トランザクション状態管理情報224のデータベースタスク管理テーブル(1003)のデータベースタスク番号を登録するフィールド(1009)に登録された値がDBN2と一致する配列要素のトランザクション識別子を登録するフィールド(1010)に、トランザクション処理TRのトランザクション識別子を登録し、ステップ1301へ戻る。
ステップ1325では、データベースタスク制御部109は、中止対象トランザクションリストLCから、中止する対象となるトランザクション処理(TCとする)を一つ選択する。
ステップ1327では、データベースタスク制御部109は、トランザクション処理TCのトランザクション識別子を持つトランザクション状態管理構造体のデータベースタスク番号を登録するフィールドに登録されているデータベース番号に対応するデータベースタスクに対して、トランザクション処理TCの中止を指示する。
ステップ1329では、データベースタスク制御部109は、トランザクション処理TCのトランザクション識別子を持つトランザクション状態管理構造体のデータベースタスク番号を登録するフィールド(1014)に「0」が登録されているか否かを確認する。フィールド(1014)に「0」が登録されている場合は(ステップ1329のYES)、ステップ1330へ進む。フィールド(1014)に「0」が登録されていない場合は(ステップ1329のNO)、ステップ1331へ進む。
ステップ1335では、データベースタスク制御部109は、トランザクション処理TCと対応するデータベースタスクコンテキストを復旧したデータベースタスクに対して、トランザクション処理TRの再開を指示する。
ステップ1335では、データベースタスク制御部109は、トランザクション処理TRの再開を指示したデータベースタスクに対して、トランザクション処理TRの中止を指示する。
ステップ1336では、データベースタスク制御部109は、データベースタスク制御部109の処理フェーズに「2」を設定し、ステップ1301へ戻る。
ステップ1338では、データベースタスク制御部109は、データベースタスク制御部109の処理フェーズに「3」を設定する。
ステップ1340では、データベースタスク制御部109は、データベースタスクDBを初期化する。
ステップ1341では、データベースタスク制御部109は、コンテキスト退避領域113からトランザクション処理TCと対応するデータベースタスクコンテキストを読み出し、データベースタスクDBにデータベースタスクコンテキストを復旧する。
ステップ1343では、データベースタスク制御部109は、データベースタスクDBに対して、トランザクション処理TRの再開を指示する。
ステップ1344では、データベースタスク制御部109は、データベースタスク制御部109は、データベースタスクDBに対して、トランザクション処理TRの中止を指示し、ステップ1301へ戻る。
ステップ1345では、データベースタスク制御部109は、データベースタスク制御部109の処理フェーズに「4」を設定する。
ステップ1351では、データベースタスク制御部109は、トランザクション状態管理情報224のデータベースタスク管理テーブル(1003)に、トランザクション識別子を登録するフィールドに「0」が登録されている配列要素が存在するか否かを確認する。該当する配列要素が存在する場合は(ステップ1351のYES)、ステップ1352へ進む。該当する配列要素が存在しない場合は(ステップ1351のNO)、ステップ1353へ進む。
ステップ1360では、データベースタスク制御部109は、トランザクション状態管理情報224のデータベースタスク管理テーブル(1003)のデータベースタスク番号に登録されている値がDBN3と一致する二つ組のトランザクション識別子を登録するフィールド(1010)に「0」を登録する。
ステップ1361では、データベースタスク制御部109は、トランザクション状態管理構造体STSのデータベースタスク番号を登録するフィールド(1014)に「0」を登録する。
ステップ1365では、データベースタスク制御部109は、トランザクション状態管理情報224のデータベースタスク管理テーブル(1003)のデータベースタスク番号を登録するフィールド(1009)に登録された値がDBN3と一致する配列要素のトランザクション識別子を登録するフィールド(1010)に、トランザクション識別子情報103に記述されたトランザクション識別子を登録する。
図3Dのステップ1367では、データベースタスク制御部109は、データベースタスク制御部109の処理フェーズが「2」であるか否かを確認する。処理フェーズが「2」である場合は(ステップ1367のYES)、ステップ1368へ進む。処理フェーズが「2」でない場合は(ステップ1367のNO)、ステップ1376へ進む。
ステップ1370では、データベースタスク制御部109は、中止対象トランザクションリストLCから、トランザクション処理TCFを削除する。
ステップ1372では、データベースタスク制御部109は、データベースタスク111からトランザクション処理(TSFとする)の中断完了を通知するメッセージを受信したか否かを確認する。該当メッセージを受信した場合は(ステップ1372のYES)、ステップ1373へ進む。該当メッセージを受信していない場合は(ステップ1372のNO)、ステップ1301へ戻る。
ステップ1374では、データベースタスク制御部109は、中断対象トランザクションリストLSから、トランザクション処理TSFを削除する。
ステップ1376では、データベースタスク制御部109は、データベースタスク制御部109の処理フェーズが「3」または「4」であるか否かを確認する。処理フェーズが「3」または「4」である場合は(ステップ1376のYES)、ステップ1377へ進む。処理フェーズが「3」または「4」でない場合は(ステップ1376のNO)、ステップ1385へ進む。
ステップ1378では、データベースタスク制御部109は、トランザクション状態管理情報224の実行中トランザクション管理リスト(1001)から、トランザクション処理TFに対応するトランザクション状態管理構造体を取り除く。
ステップ1380では、データベースタスク制御部109は、トランザクション処理TLに対応するデータベースタスクコンテキストをコンテキスト退避領域113から削除する。
ステップ1383では、データベースタスク制御部109は、中断対象トランザクションリストLSから、トランザクション処理TFを削除する。
ステップ1385では、データベースタスク制御部109は、データベースタスク制御部109の処理を停止する指示を受信したか否かを確認する。処理停止の指示を受信した場合は(ステップ1385のYES)、データベースタスク制御部109の処理を終了する。処理停止の指示を受信していない場合は(ステップ1385のYES)、ステップ1301へ戻る。
追加対象のトランザクション状態管理構造体を追加する前に、実行中トランザクション管理リストの先頭を参照するポインタを保持する領域(1004)からトランザクション状態管理構造体へのポインタ(1017)を削除し、実行中トランザクション管理リストの先頭を参照するポインタを保持する領域(1004)から追加対象のトランザクション状態管理構造体へのポインタと、追加対象のトランザクション状態管理構造体から、追加対象のトランザクション状態管理構造体を追加する前に実行中トランザクション管理リストの先頭を参照するポインタを保持する領域(1004)からポインタ(1017)で参照されていたトランザクション状態管理構造体へのポインタを生成する。
追加対象のトランザクション状態管理構造体を追加する前に、中断中トランザクション管理リストの先頭を参照するポインタを保持する領域(1007)からトランザクション状態管理構造体へのポインタ(1020)を削除し、中断中トランザクション管理リストの先頭を参照するポインタを保持する領域(1007)から追加対象のトランザクション状態管理構造体へのポインタと、追加対象のトランザクション状態管理構造体から、追加対象のトランザクション状態管理構造体を追加する前に中断中トランザクション管理リストの先頭を参照するポインタを保持する領域(1007)からポインタ(1020)で参照されていたトランザクション状態管理構造体へのポインタを生成する。
図14A、および、図14Bは、図2で説明したデータベースタスク処理の処理手順を示すフローチャートである。
次にステップ1401において、データベースタスク111は、データベースタスク制御部109からトランザクション処理の実行を要求するメッセージを受信したか否かを確認する。該当メッセージを受信した場合は(ステップ1401のYES)、ステップ1402へ進む。該当メッセージを受信していない場合は(ステップ1401のNO)、ステップ1409へ進む。
ステップ1403では、データベースタスク111は、トランザクション処理中であるため、新たなトランザクション処理を受け付けられないことを通知するメッセージを、データベースタスク制御部109に送信し、ステップ1401へ戻る。
ステップ1404では、データベースタスク111は、データベースタスク制御部109から、トランザクション識別子情報103に記述されたトランザクション識別子(Tとする)を入力として、トランザクション処理要求を受け付ける。
ステップ1406では、データベースタスク111は、データベースタスク111の処理フェーズに「1A」を設定し、ステップ1401へ戻る。
ステップ1407では、データベースタスク111は、トランザクションプロファイル情報114のトランザクション識別子を記述するフィールド(1101)にトランザクション識別子Tを追加し、トランザクション識別子を記述するフィールド(1101)がトランザクション識別子Tの四つ組を生成する。
ステップ1409では、データベースタスク111は、データベースタスク111の処理フェーズが「1A」または「1B」であるか否かを確認する。処理フェーズが「1A」または「1B」である場合は(ステップ1409のYES)、ステップ1410へ進む。処理フェーズが「1A」または「1B」でない場合は(ステップ1409のNO)、ステップ1421へ進む。
ステップ1411では、データベースタスク111は、データベースタスク111の処理フェーズに「2」を設定し、ステップ1401へ戻る。
ステップ1413では、データベースタスク111は、問い合わせ処理Qの内容がデータベース116内にテーブルの生成であるか否かを確認する(ステップ1413)。問い合わせ処理Qの内容がテーブルの生成である場合は(ステップ1413のYES)、ステップ1414へ進む。問い合わせ処理Qの内容がテーブルの生成でない場合は(ステップ1413のNO)、ステップ1415へ進む。
ステップ1415では、データベースタスク111は、問い合わせ処理Qを実行する。
ステップ1417では、データベースタスク111は、データベースタスク111の処理フェーズが「1A」であるか否かを確認する。処理フェーズが「1A」である場合は(ステップ1417のYES)、ステップ1420へ進む。処理フェーズが「1A」でない場合は(ステップ1417のNO)、ステップ1418へ進む。
ステップ1419では、データベースタスク111は、トランザクションプロファイル情報114のトランザクション識別子を記述するフィールド(1101)がトランザクション識別子Tの四つ組の共有ロックを取得したデータベースオブジェクトを記述するフィールド(1104)と排他ロックを取得したデータベースオブジェクトを記述するフィールド(1105)に、問い合せ処理Qの実行中に共有ロックおよび排他ロックを取得したデータベースオブジェクトの名称を、それぞれ追加して記述する。
ステップ1421では、データベースタスク111は、データベースタスク111の処理フェーズが「2」であるか否かを確認する。処理フェーズが「2」である場合は(ステップ1421のYES)、ステップ1422へ進む。処理フェーズが「2」でない場合は(ステップ1421のNO)、ステップ1423へ進む。
ステップ1422では、データベースタスク111は、トランザクション処理の実行完了を通知するメッセージを、データベースタスク制御部109に送信し、データベースタスク111の処理を終了する。
ステップ1423では、データベースタスク111は、データベースタスク制御部109からトランザクション処理の中止を要求するメッセージを受信したか否かを確認する。該当メッセージを受信した場合は(ステップ1423のYES)、ステップ1424へ進む。該当メッセージを受信していない場合は(ステップ1423のNO)、図14Bのステップ1427へ進む。
ステップ1425では、データベースタスク111は、トランザクション処理のロールバック(Rollback)を行う。
ステップ1426では、データベースタスク111は、トランザクション処理の中止完了を通知するメッセージを、データベースタスク制御部109に送信し、データベースタスク111の処理を終了する。
ステップ1429では、データベースタスク111は、データベースタスク111の処理フェーズに「1AS」を設定し、ステップ1435へ進む。
ステップ1430では、データベースタスク111は、データベースタスク111の処理フェーズが「1B」であるか否かを確認する。処理フェーズが「1B」である場合は(ステップ1430のYES)、ステップ1431へ進む。処理フェーズが「1B」でない場合は(ステップ1430のNO)、ステップ1432へ進む。
ステップ1431では、データベースタスク111は、データベースタスク111の処理フェーズに「1BS」を設定し、ステップ1435へ進む。
ステップ1432では、データベースタスク111は、データベースタスク111の処理フェーズが「2」であるか否かを確認する。処理フェーズが「2」である場合は(ステップ1432のYES)、ステップ1433へ進む。処理フェーズが「2」でない場合は(ステップ1432のNO)、ステップ1434へ進む。
ステップ1433では、データベースタスク111は、データベースタスク111の処理フェーズに「2S」を設定し、ステップ1435へ進む。
ステップ1435では、データベースタスク111は、トランザクション処理の中断の完了を通知するメッセージを、データベースタスク制御部109に送信し、1401へ戻る。
ステップ1436では、データベースタスク111は、データベースタスク制御部109からトランザクション処理の再会を要求するメッセージを受信したか否かを確認する。該当メッセージを受信した場合は(ステップ1436のYES)、ステップ1437へ進む。該当メッセージを受信していない場合は(ステップ1436のYES)、ステップ1439へ戻る。
ステップ1438では、データベースタスク111は、データベースタスク111の処理フェーズに「1A」を設定し、1401へ戻る。
ステップ1440では、データベースタスク111は、データベースタスク111の処理フェーズに「1B」を設定し、ステップ1401へ戻る。
ステップ1442では、データベースタスク111は、データベースタスク111の処理フェーズに「2」を設定し、ステップ1401へ戻る。
ステップ1443では、データベースタスク111は、データベースタスク111の処理フェーズに「0」を設定し、ステップ1401へ戻る。
図15は、図12の共有ロック競合制御処理(ステップ1204の処理)の詳細を説明するフローチャートである。
次のステップ1501では、データベース資源競合制御部108は、トランザクションプロファイル情報114のトランザクション識別子Tに対応する四つ組の共有ロックを取得するデータベースオブジェクトを記述するフィールド(1104)に記述された全てのデータベースオブジェクトを要素とする集合(KSとする)を生成する。
ステップ1502では、データベース資源競合制御部108は、集合KSに含まれるデータベースオブジェクトの中から1つ選び(DSとする)、そのデータベースオブジェクトを集合KSから取り除く。
ステップ1504では、データベース資源競合制御部108は、データベースオブジェクトDSに排他ロックを取得しているトランザクション処理のうち、優先度定義情報104に記述された優先度よりも小さい(優先度が低い)トランザクション処理を全てLCに追加する。
ステップ1506では、データベース資源競合制御部108は、中止対象トランザクションリスト(LC)と中断対象トランザクションリスト(LS)をデータベース資源競合制御部108に戻り値として返す。
図16は、図12の排他ロック競合制御処理(ステップ1206の処理)の詳細を説明するフローチャートである。
次にステップ1601では、データベース資源競合制御部108は、トランザクションプロファイル情報114のトランザクション識別子Tに対応する四つ組の排他ロックを取得するデータベースオブジェクトを記述するフィールド(1105)に記述された全てのデータベースオブジェクトを要素とする集合(KXとする)を生成し、ステップ1207へ進む。
ステップ1602では、データベース資源競合制御部108は、集合KXに含まれるデータベースオブジェクトの中から1つ選び(DXとする)、そのデータベースオブジェクトを集合KXから取り除く。
ステップ1604では、データベース資源競合制御部108は、データベースオブジェクトDXに共有ロックまたは排他ロックを取得しているトランザクション処理のうち、優先度定義情報104に記述された優先度よりも小さい(優先度が低い)トランザクション処理を全てLCに追加する。
ステップ1606では、データベース資源競合制御部108は、中止対象トランザクションリスト(LC)と中断対象トランザクションリスト(LS)をデータベース資源競合制御部108に戻り値として返す。
図17は、図12のデータベースキャッシュメモリ競合制御処理(ステップ1207の処理)の詳細を説明するフローチャートである。
次のステップ1701では、データベース資源競合制御部108は、トランザクション状態管理情報224の実行中トランザクション管理リスト(1001)と中断中トランザクション管理リスト(1002)が保持する全てのトランザクション状態管理構造体に登録されているデータベースキャッシュメモリのサイズの合計値(MAとする)を計算する。
ステップ1702では、データベース資源競合制御部108は、中断対象トランザクションリストLCに含まれる全てのトランザクション処理に対応するトランザクション状態管理情報224のトランザクション状態管理構造体に登録されているデータベースキャッシュメモリのサイズの合計値(MBとする)を計算する。
ステップ1707では、データベース資源競合制御部108は、データベースキャッシュメモリの競合解決に失敗したことを示すフラグにONを設定し、ステップ1708へ進む。
ステップ1708では、データベース資源競合制御部108は、中止対象トランザクションリスト(LC)とデータベースキャッシュメモリの競合解決に失敗したことを示すフラグの値をデータベース資源競合制御部108に戻り値として返す。
図18は、図12のI/Oデバイス競合制御処理(1209の処理)の詳細を説明するフローチャートである。
ステップ1804では、データベース資源競合制御部108は、TLSに含まれるトランザクション処理のうち1つ(Tiとする)を選び、TLSからTiを削除する。
ステップ1808では、データベース資源競合制御部108は、集合TLSに要素が存在しないか(空か)否かを確認する。要素が存在しない(空の)場合は(ステップ1808のYES)、ステップ1809へ進む。要素が存在する(空でない)場合は(ステップ1808のNO)、ステップ1804へ戻る。
ステップ1809では、データベース資源競合制御部108は、中止対象トランザクションリスト(LC)と中断対象トランザクションリスト(LS)をデータベース資源競合制御部108に戻り値として返す。
101 アプリケーション
102 アプリケーション
103 トランザクション識別子情報
104 優先度定義情報
105 データベース資源取得予定情報
106 利用可能メモリ領域情報
107 トランザクション処理要求受付部
108 データベース資源競合制御部
109 データベースタスク制御部
110 データベースタスク群
111 データベースタスク
112 共有ヒープメモリ
113 コンテキスト退避領域
114 トランザクションプロファイル情報
115 データベース構成情報
116 データベース
200 CPU
201 入力デバイス
202 ディスプレイデバイス
203 通信制御装置
204 ネットワーク
206 主記憶装置
207 ストレージデバイス
210 アプリケーションプログラム群
211 アプリケーションプログラム
217 トランザクション処理要求受付プログラム
218 データベース資源競合制御プログラム
219 データベースタスク制御プログラム
220 データベースタスクプログラム群
221 データベースタスクプログラム
222 データベース構成プログラム
226 情報処理装置
Claims (19)
- アプリケーションにより使用されるデータベース管理システムにおけるトランザクションの並行制御方法であって、
データベース管理システムが、
第1のアプリケーションからトランザクション処理要求の指示を受けるとともに、トランザクション処理の識別子を含むトランザクション識別子情報、トランザクション処理の優先度を含む優先度定義情報、およびトランザクション処理の実行時に取得するデータベース資源の種類と値を含むデータベース資源取得予定情報、を受け取るステップと、
前記第1のアプリケーションと異なる第2のアプリケーションから指示されたトランザクション処理が実行中または中断中であるならば、前記第1のアプリケーションから入力されたトランザクション処理の優先度と、前記第2のアプリケーションから指示されたトランザクション処理の優先度とを比較するステップと、
前記比較の結果、前記第1のアプリケーションから指示されたトランザクション処理の優先度が、前記第2のアプリケーションから指示されたトランザクション処理の優先度よりも高い場合、前記第1のアプリケーションから指示されたトランザクション処理と実行中または中断中のトランザクション処理との間のデータベース資源の競合を判定するステップと、
前記実行中または中断中のトランザクション処理が取得しているデータベース資源の種類と値と、前記第1のアプリケーションから指示されたトランザクション処理が取得するデータベース資源の種類と値に基づいて、中断または中止するトランザクション処理を決定するステップと、
前記中断または中止する対象のトランザクション処理の中断または中止がそれぞれ完了した後、前記データベース資源取得予定情報に含まれるデータベース資源の種類について、前記データベース資源取得予定情報に記述された値の取得を行い、前記第1のアプリケーションから指示されたトランザクション処理を実行するステップと、
前記第1のアプリケーションから指示されたトランザクション処理の実行が完了した後、中断しているトランザクション処理の実行を再開するステップと
を含むことを特徴とするトランザクション並行制御方法。 - 請求項1に記載のトランザクション並行制御方法であって、
前記データベース資源は、前記データベース管理システムがトランザクション処理の実行中にデータを一時的に格納するメモリ領域であるデータベースキャッシュメモリ、トランザクション処理の実行中に取得されるデータベースオブジェクトの共有ロックおよび排他ロックである排他、ならびに、データベースが格納されたI/Oデバイスへのデータの書き込みと読み出しを行う権利であるI/Oデバイス使用権のいずれか1つ、または、これらの複数個の組み合わせであること
を特徴とするトランザクション並行制御方法。 - 請求項2に記載のトランザクション並行制御方法であって、
前記データベース資源が前記データベースキャッシュメモリであり、
前記データベース管理システムは、前記実行中または中断中のトランザクション処理が取得している前記データベースキャッシュメモリのサイズを保持するデータ構造を有し、
前記データベース管理システムは、前記データベース資源の競合を判定するステップにおいて、前記データベース管理システムが使用できる前記データベースキャッシュメモリの総容量から前記実行中および中断中のトランザクション処理が取得中の前記データベースキャッシュメモリの合計サイズを引いた値が、前記データベース資源取得予定情報に含まれる前記データベースキャッシュメモリの所要量よりも少ない場合に前記データベースキャッシュメモリの競合が発生したと判定し、
前記データベース管理システムは、前記中止するトランザクション処理を決定するステップにおいて、前記判定により、前記データベースキャッシュメモリの競合が発生した場合、前記データベース管理システムが使用できる前記データベースキャッシュメモリの総容量から、前記実行中または中断中のトランザクション処理が取得中の前記データベースキャッシュメモリの合計サイズを引いて、中止対象のトランザクション処理が取得中の前記データベースキャッシュメモリの合計サイズを足した値が、前記データベース資源取得予定情報に含まれる前記データベースキャッシュメモリの所要量と同じかもしくは大きくなるよう、実行中または中断中で、かつ、前記優先度定義情報に含まれる優先度よりも低い優先度のトランザクション処理のなかから、優先度が低い順に最小個のトランザクション処理を選択することにより、中止対象のトランザクション処理と決定すること
を特徴とするトランザクション並行制御方法。 - 請求項2に記載のトランザクション並行制御方法であって、
前記データベース資源がトランザクション処理の実行中に取得されるデータベースオブジェクトの共有ロックまたは排他ロックである排他であり、
前記データベース管理システムは、前記実行中または中断中のトランザクション処理が共有ロックおよび排他ロックを取得しているデータベースオブジェクトの一覧を保持するデータ構造と、
トランザクション処理の実行中に共有ロックおよび排他ロックを取得したデータベースオブジェクトを、トランザクション処理の識別子に対応付けて保持するデータ構造であるトランザクションプロファイル情報を有し、
前記データベース管理システムは、前記データベース資源の競合を判定するステップにおいて、前記第1のアプリケーションから要求されたトランザクション処理が共有ロックまたは排他ロックを取得する対象のデータベースオブジェクトであるか否かを判断し、前記第1のアプリケーションから要求されたトランザクション処理が共有ロックを取得するデータベースオブジェクトに対して、前記実行中または中断中のトランザクション処理が排他ロックを取得している場合、または、前記第1のアプリケーションから要求されたトランザクション処理が排他ロックを取得するデータベースオブジェクトに対して、前記実行中または中断中のトランザクション処理が共有ロックもしくは排他ロックを取得している場合に、排他競合が発生したと判定し、
前記データベース管理システムは、前記中止するトランザクション処理を決定するステップにおいて、前記判定により、排他競合が発生した場合、実行中または中断中で、かつ、優先度定義情報に含まれる優先度よりも低い優先度のトランザクション処理のうち、前記第1のアプリケーションから要求されたトランザクション処理が共有ロックを取得するデータベースオブジェクトに対して排他ロックを取得中のトランザクション処理と、前記第1のアプリケーションから要求されたトランザクション処理が排他ロックを取得するデータベースオブジェクトに対して共有ロックまたは排他ロックを取得中のトランザクション処理を、中止対象のトランザクション処理と決定すること
を特徴とするトランザクション並行制御方法。 - 請求項2に記載のトランザクション並行制御方法であって、
前記データベース資源が前記I/Oデバイス使用権であり、
前記データベース管理システムは、前記第1のアプリケーションから要求されたトランザクション処理、実行中のトランザクション処理、および、中断中のトランザクション処理が使用する対象のI/Oデバイスの一覧を保持するデータ構造を有し、
前記データベース管理システムは、前記データベース資源の競合を判定するステップにおいて、前記第1のアプリケーションから要求されたトランザクション処理が使用するI/Oデバイスを、実行中または中断中のトランザクション処理が使用中の場合、I/Oデバイス使用権の競合が発生したと判定し、
前記データベース管理システムは、前記中止するトランザクション処理を決定するステップにおいて、前記判定により、I/Oデバイス使用権の競合が発生した場合、実行中および中断中で、かつ、優先度定義情報に含まれる優先度よりも低い優先度のトランザクション処理のうち、前記第1のアプリケーションから要求されたトランザクション処理が使用するI/Oデバイスを使用中のトランザクション処理を、中断対象のトランザクション処理と決定すること
を特徴とするトランザクション並行制御方法。 - 請求項1に記載のトランザクション並行制御方法であって、
前記データベース管理システムは、
前記第1のアプリケーションからトランザクション処理要求の指示を受けるとともに、トランザクション処理を実行する目的で使用可能なメモリ領域のアドレスを含む利用可能メモリ領域情報を受け取ること
を特徴とするトランザクション並行制御方法。 - 請求項6に記載のトランザクション並行制御方法であって、
前記利用可能メモリ領域情報は、
トランザクション処理を実行する目的で使用可能な有効なメモリ領域のアドレス、あるいは、トランザクション処理を実行する目的で使用可能なメモリ領域が存在しないことを表す無効なメモリ領域のアドレスのいずれかを含むことを特徴とするトランザクション並行制御方法。 - 請求項7に記載のトランザクション並行制御方法であって、
前記利用可能メモリ領域情報が、トランザクション処理を実行する目的で使用可能な有効なメモリ領域のアドレスを含む場合、
前記データベース管理システムが、
前記中断または中止する対象のトランザクション処理の中断と中止がそれぞれ完了した後、前記第1のアプリケーションから指示されたトランザクション処理を、トランザクション処理を実行するデータベースタスクに割り当てることができるか否かを確認するステップと、
前記確認の結果、トランザクション処理をデータベースタスクに割り当てることができる場合、前記第1のアプリケーションから指示されたトランザクション処理を実行するステップと、
前記確認の結果、トランザクション処理をデータベースタスクに割り当てることができない場合、前記利用可能メモリ領域情報に含まれるメモリ領域のアドレスにトランザクション処理を実行するデータベースタスクを生成し、前記第1のアプリケーションから指示されたトランザクション処理を実行するステップと
をさらに含むことを特徴とするトランザクション並行制御方法。 - 請求項7に記載のトランザクション並行制御方法であって、
前記利用可能メモリ領域情報がトランザクション処理を実行する目的で使用可能なメモリ領域が存在しないことを表す無効なアドレスを含む場合、
前記データベース管理システムが、
前記中断または中止する対象のトランザクション処理の中断と中止とがそれぞれ完了した後、前記第1のアプリケーションから指示されたトランザクション処理を、トランザクション処理を実行するデータベースタスクに割り当てることができるか否かを確認するステップと、
前記確認の結果、トランザクション処理をデータベースタスクに割り当てることができる場合、前記第1のアプリケーションから指示されたトランザクション処理を実行するステップと、
前記確認の結果、トランザクション処理をデータベースタスクに割り当てることができない場合、中断中のトランザクション処理に割り当てられているデータベースタスクのレジスタ値のスナップショットであるレジスタ情報、実行時スタックを保持するメモリ領域のスナップショットである実行時スタック情報、および、大域変数を保持するメモリ領域のスナップショットである大域変数領域情報からなるコンテキストをコンテキスト退避領域に退避するステップと、
前記コンテキストの退避を行ったデータベースタスクに、前記第1のアプリケーションから指示されたトランザクション処理を割り当てて、前記第1のアプリケーションから指示されたトランザクション処理を実行するステップと、
前記第1のアプリケーションから指示されたトランザクション処理の実行が完了した後、前記コンテキスト退避領域から前記コンテキストを復旧するステップと
をさらに含むこと特徴とする請求項7に記載のトランザクション並行制御方法。 - データベース管理システムであって、
第1のアプリケーションからトランザクション処理要求の指示を受けるとともに、トランザクション処理の識別子を含むトランザクション識別子情報、トランザクション処理の優先度を含む優先度定義情報、およびトランザクション処理の実行時に取得するデータベース資源の種類と値を含むデータベース資源取得予定情報を受け取り、前記第1のアプリケーションと異なる第2のアプリケーションから指示されたトランザクション処理が実行中または中断中であるならば、前記第1のアプリケーションから入力されたトランザクション処理の優先度と、前記第2のアプリケーションから指示されたトランザクション処理の優先度とを比較するトランザクション処理要求受付部と、
前記比較の結果、前記第1のアプリケーションから指示されたトランザクション処理の優先度が、前記第2のアプリケーションから指示されたトランザクション処理の優先度よりも高い場合、前記第1のアプリケーションから指示されたトランザクション処理と実行中または中断中のトランザクション処理との間のデータベース資源の競合を判定し、前記実行中または中断中のトランザクション処理が取得しているデータベース資源の種類と値と、前記第1のアプリケーションから指示されたトランザクション処理が取得するデータベース資源の種類と値に基づいて、中断または中止するトランザクション処理を決定するデータベース資源競合制御部と、
前記中断または中止する対象のトランザクション処理の中断または中止がそれぞれ完了した後、前記データベース資源取得予定情報に含まれるデータベース資源の種類について、前記データベース資源取得予定情報に記述された値の取得を行い、前記第1のアプリケーションから指示されたトランザクション処理を実行し、前記第1のアプリケーションから指示されたトランザクション処理の実行が完了した後、中断しているトランザクション処理の実行を再開するデータベースタスク制御処理部と
を備えることを特徴とするデータベース管理システム。 - 請求項10に記載のデータベース管理システムであって、
前記データベース資源は、前記データベース管理システムがトランザクション処理の実行中にデータを一時的に格納するメモリ領域であるデータベースキャッシュメモリ、トランザクション処理の実行中に取得されるデータベースオブジェクトの共有ロックおよび排他ロックである排他、ならびに、データベースが格納されたI/Oデバイスへのデータの書き込みと読み出しを行う権利であるI/Oデバイス使用権のいずれか1つ、または、これらの複数個の組み合わせであること
を特徴とするデータベース管理システム。 - 請求項11に記載のデータベース管理システムであって、
前記データベース資源が前記データベースキャッシュメモリであり、
前記実行中または中断中のトランザクション処理が取得している前記データベースキャッシュメモリのサイズを保持するデータ構造を有し、
前記データベース資源競合制御部は、前記データベース資源の競合を判定するにあたり、前記データベース管理システムが使用できる前記データベースキャッシュメモリの総容量から前記実行中および中断中のトランザクション処理が取得中の前記データベースキャッシュメモリの合計サイズを引いた値が、前記データベース資源取得予定情報に含まれる前記データベースキャッシュメモリの所要量よりも少ない場合に前記データベースキャッシュメモリの競合が発生したと判定し、
データベース資源競合制御部は、前記中止するトランザクション処理を決定するにあたり、前記判定により、前記データベースキャッシュメモリの競合が発生した場合、前記データベース管理システムが使用できる前記データベースキャッシュメモリの総容量から、前記実行中および中断中のトランザクション処理が取得中の前記データベースキャッシュメモリの合計サイズを引いて、中止対象のトランザクション処理が取得中の前記データベースキャッシュメモリの合計サイズを足した値が、前記データベース資源取得予定情報に含まれる前記データベースキャッシュメモリの所要量と同じかもしくは大きくなるよう、実行中または中断中で、かつ、前記優先度定義情報に含まれる優先度よりも低い優先度のトランザクション処理のなかから、優先度が低い順に最小個のトランザクション処理を選択することにより、中止対象のトランザクション処理と決定すること
を特徴とするデータベース管理システム。 - 請求項11に記載のデータベース管理システムであって、
前記データベース資源がトランザクション処理の実行中に取得されるデータベースオブジェクトの共有ロックまたは排他ロックである排他であり、
前記実行中または中断中のトランザクション処理が共有ロックおよび排他ロックを取得しているデータベースオブジェクトの一覧を保持するデータ構造と、
トランザクション処理の実行中に共有ロックおよび排他ロックを取得したデータベースオブジェクトを、トランザクション処理の識別子に対応付けて保持するデータ構造であるトランザクションプロファイル情報を有し、
前記データベース資源競合制御部は、前記データベース資源の競合を判定するにあたり、前記第1のアプリケーションから要求されたトランザクション処理が共有ロックまたは排他ロックを取得する対象のデータベースオブジェクトであるか否かを判断し、前記第1のアプリケーションから要求されたトランザクション処理が共有ロックを取得するデータベースオブジェクトに対して、前記実行中または中断中のトランザクション処理が排他ロックを取得している場合、または、前記第1のアプリケーションから要求されたトランザクション処理が排他ロックを取得するデータベースオブジェクトに対して、前記実行中または中断中のトランザクション処理が共有ロックもしくは排他ロックを取得している場合に、排他競合が発生したと判定し、
前記データベース資源競合制御部は、前記中止するトランザクション処理を決定するにあたり、前記判定により、排他競合が発生した場合、実行中または中断中で、かつ、優先度定義情報に含まれる優先度よりも低い優先度のトランザクション処理のうち、前記第1のアプリケーションから要求されたトランザクション処理が共有ロックを取得するデータベースオブジェクトに対して排他ロックを取得中のトランザクション処理と、前記第1のアプリケーションから要求されたトランザクション処理が排他ロックを取得するデータベースオブジェクトに対して共有ロックまたは排他ロックを取得中のトランザクション処理を、中止対象のトランザクション処理と決定すること
を特徴とするデータベース管理システム。 - 請求項11に記載のデータベース管理システムであって、
前記データベース資源が前記I/Oデバイス使用権であり、
前記第1のアプリケーションから要求されたトランザクション処理、実行中のトランザクション処理、および、中断中のトランザクション処理が使用する対象のI/Oデバイスの一覧を保持するデータ構造を有し、
前記データベース資源競合制御部は、前記データベース資源の競合を判定するにあたり、前記第1のアプリケーションから要求されたトランザクション処理が使用するI/Oデバイスを、実行中または中断中のトランザクション処理が使用中の場合、I/Oデバイス使用権の競合が発生したと判定し、
前記データベース資源競合制御部は、前記中止するトランザクション処理を決定するにあたり、前記判定により、I/Oデバイス使用権の競合が発生した場合、実行中および中断中で、かつ、優先度定義情報に含まれる優先度よりも低い優先度のトランザクション処理のうち、前記第1のアプリケーションから要求されたトランザクション処理が使用するI/Oデバイスを使用中のトランザクション処理を、中断対象のトランザクション処理と決定すること
を特徴とするデータベース管理システム。 - 請求項10に記載のデータベース管理システムであって、
前記第1のアプリケーションからトランザクション処理要求の指示を受けるとともに、トランザクション処理を実行する目的で使用可能なメモリ領域のアドレスを含む利用可能メモリ領域情報を受け取ること
を特徴とするデータベース管理システム。 - 請求項15に記載のデータベース管理システムであって、
前記利用可能メモリ領域情報は、
トランザクション処理を実行する目的で使用可能な有効なメモリ領域のアドレス、あるいは、トランザクション処理を実行する目的で使用可能なメモリ領域が存在しないことを表す無効なメモリ領域のアドレスのいずれかを含むことを特徴とするデータベース管理システム。 - 請求項16に記載のデータベース管理システムであって、
前記利用可能メモリ領域情報がトランザクション処理を実行する目的で使用可能な有効なメモリ領域のアドレスを含む場合に、
前記中断または中止する対象のトランザクション処理の中断と中止がそれぞれ完了した後、前記第1のアプリケーションから指示されたトランザクション処理を、トランザクション処理を実行するデータベースタスクに割り当てることができるか否かを確認し、
前記確認の結果、トランザクション処理をデータベースタスクに割り当てることができる場合、前記第1のアプリケーションから指示されたトランザクション処理を実行し、
前記確認の結果、トランザクション処理をデータベースタスクに割り当てることができない場合、前記利用可能メモリ領域情報に含まれるメモリ領域のアドレスにトランザクション処理を実行するデータベースタスクを生成し、前記第1のアプリケーションから指示されたトランザクション処理を実行すること
を特徴とするデータベース管理システム。 - 請求項16に記載のデータベース管理システムであって、
前記利用可能メモリ領域情報がトランザクション処理を実行する目的で使用可能なメモリ領域が存在しないことを表す無効なアドレスを含む場合、
前記中断または中止する対象のトランザクション処理の中断と中止とがそれぞれ完了した後、前記第1のアプリケーションから指示されたトランザクション処理を、トランザクション処理を実行するデータベースタスクに割り当てることができるか否かを確認し、
前記確認の結果、トランザクション処理をデータベースタスクに割り当てることができる場合、前記第1のアプリケーションから指示されたトランザクション処理を実行し、
前記確認の結果、トランザクション処理をデータベースタスクに割り当てることができない場合、中断中のトランザクション処理に割り当てられているデータベースタスクのレジスタ値のスナップショットであるレジスタ情報、実行時スタックを保持するメモリ領域のスナップショットである実行時スタック情報、および、大域変数を保持するメモリ領域のスナップショットである大域変数領域情報からなるコンテキストをコンテキスト退避領域に退避し、
前記コンテキストの退避を行ったデータベースタスクに、前記第1のアプリケーションから指示されたトランザクション処理を割り当てて、前記第1のアプリケーションから指示されたトランザクション処理を実行し、
前記第1のアプリケーションから指示されたトランザクション処理の実行が完了した後、前記コンテキスト退避領域から前記コンテキストを復旧すること
を特徴とするデータベース管理システム。 - 情報処理装置に、
第1のアプリケーションからトランザクション処理要求の指示を受けるとともに、トランザクション処理の識別子を含むトランザクション識別子情報、トランザクション処理の優先度を含む優先度定義情報、およびトランザクション処理の実行時に取得するデータベース資源の種類と値を含むデータベース資源取得予定情報、を受け取る機能と、
前記第1のアプリケーションと異なる第2のアプリケーションから指示されたトランザクション処理が実行中または中断中であるならば、前記第1のアプリケーションから入力されたトランザクション処理の優先度と、前記第2のアプリケーションから指示されたトランザクション処理の優先度とを比較する機能と、
前記比較の結果、前記第1のアプリケーションから指示されたトランザクション処理の優先度が、前記第2のアプリケーションから指示されたトランザクション処理の優先度よりも高い場合、前記第1のアプリケーションから指示されたトランザクション処理と実行中または中断中のトランザクション処理との間のデータベース資源の競合を判定する機能と、
前記実行中または中断中のトランザクション処理が取得しているデータベース資源の種類と値と、前記第1のアプリケーションから指示されたトランザクション処理が取得するデータベース資源の種類と値に基づいて、中断または中止するトランザクション処理を決定する機能と、
前記中断または中止する対象のトランザクション処理の中断または中止がそれぞれ完了した後、前記データベース資源取得予定情報に含まれるデータベース資源の種類について、対応する値の取得を行い、前記第1のアプリケーションから指示されたトランザクション処理を実行する機能と、
前記第1のアプリケーションから指示されたトランザクション処理の実行が完了した後、中断しているトランザクション処理の実行を再開する機能と
を実現するためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008144670A JP4612710B2 (ja) | 2008-06-02 | 2008-06-02 | トランザクション並行制御方法、データベース管理システム、およびプログラム |
US12/429,702 US20090300017A1 (en) | 2008-06-02 | 2009-04-24 | Transaction Parallel Control Method, and Database Managemet System |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008144670A JP4612710B2 (ja) | 2008-06-02 | 2008-06-02 | トランザクション並行制御方法、データベース管理システム、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009294695A true JP2009294695A (ja) | 2009-12-17 |
JP4612710B2 JP4612710B2 (ja) | 2011-01-12 |
Family
ID=41381058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008144670A Expired - Fee Related JP4612710B2 (ja) | 2008-06-02 | 2008-06-02 | トランザクション並行制御方法、データベース管理システム、およびプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090300017A1 (ja) |
JP (1) | JP4612710B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101985905B1 (ko) * | 2019-03-05 | 2019-06-04 | 디지테크정보 주식회사 | 시스템 연동 방법 및 이를 이용하는 연동형 시스템 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8364481B2 (en) | 2008-07-02 | 2013-01-29 | Google Inc. | Speech recognition with parallel recognition tasks |
CN103853610B (zh) * | 2012-12-07 | 2018-11-16 | 腾讯科技(深圳)有限公司 | 资源优化方法及装置 |
CN103049334B (zh) * | 2012-12-14 | 2015-09-30 | 华为技术有限公司 | 一种任务处理的方法和虚拟机 |
US9674715B2 (en) * | 2013-08-16 | 2017-06-06 | Nokia Solutions And Networks Oy | System and method for managing multi-process priority and parameter conflict in a self organizing network controller |
WO2016155008A1 (en) * | 2015-04-03 | 2016-10-06 | Yahoo! Inc. | Method and system for scheduling transactions in a data system |
US10346196B2 (en) * | 2015-08-11 | 2019-07-09 | Oracle International Corporation | Techniques for enhancing progress for hardware transactional memory |
US10387198B2 (en) | 2016-08-11 | 2019-08-20 | Rescale, Inc. | Integrated multi-provider compute platform |
US10193762B2 (en) * | 2016-08-11 | 2019-01-29 | Rescale, Inc. | Dynamic optimization of simulation resources |
IT201700034731A1 (it) | 2017-03-29 | 2018-09-29 | St Microelectronics Srl | Modulo e metodo di gestione dell'accesso ad una memoria |
JP6783812B2 (ja) * | 2018-03-13 | 2020-11-11 | 株式会社東芝 | 情報処理装置、情報処理方法およびプログラム |
US11790361B2 (en) | 2018-04-05 | 2023-10-17 | Visa International Service Association | Smart device system and method of use |
WO2020108783A1 (en) * | 2018-11-27 | 2020-06-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for concurrency control |
WO2020126106A1 (en) * | 2018-12-17 | 2020-06-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for concurrency control |
US11567923B2 (en) | 2019-06-05 | 2023-01-31 | Oracle International Corporation | Application driven data change conflict handling system |
CN112149070B (zh) * | 2019-06-27 | 2024-04-23 | 杭州海康威视数字技术股份有限公司 | 权限控制方法及装置 |
US11461486B2 (en) | 2019-10-25 | 2022-10-04 | Oracle International Corporation | Partial page approval model |
US11645265B2 (en) * | 2019-11-04 | 2023-05-09 | Oracle International Corporation | Model for handling object-level database transactions in scalable computing applications |
CN112465466B (zh) * | 2020-12-10 | 2024-05-03 | 金蝶软件(中国)有限公司 | 流程任务执行方法、装置、计算机设备和存储介质 |
CN113110949B (zh) * | 2021-04-29 | 2023-10-13 | 中科南京信息高铁研究院 | 单终端多流程并存处理方法和装置 |
US11757733B2 (en) * | 2021-12-08 | 2023-09-12 | Cisco Technology, Inc. | Parallel service invocation in a network |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03235130A (ja) * | 1990-02-13 | 1991-10-21 | Hitachi Ltd | 排他優先制御方式 |
JPH05120041A (ja) * | 1991-10-25 | 1993-05-18 | Nec Corp | 資源割り当て管理方式 |
JPH0651980A (ja) * | 1992-07-28 | 1994-02-25 | Fuji Xerox Co Ltd | 情報処理装置のスタックの配置方式 |
JP2004348439A (ja) * | 2003-05-22 | 2004-12-09 | Ntt Docomo Inc | コンピュータ及びプログラム |
JP2006107197A (ja) * | 2004-10-06 | 2006-04-20 | Nec Corp | メモリ制御方法およびプログラムならびに端末装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6769004B2 (en) * | 2000-04-27 | 2004-07-27 | Irobot Corporation | Method and system for incremental stack scanning |
JP4611830B2 (ja) * | 2005-07-22 | 2011-01-12 | 優 喜連川 | データベース管理システム及び方法 |
US7716249B2 (en) * | 2005-09-16 | 2010-05-11 | Microsoft Corporation | Transaction and task scheduler |
US8024714B2 (en) * | 2006-11-17 | 2011-09-20 | Microsoft Corporation | Parallelizing sequential frameworks using transactions |
-
2008
- 2008-06-02 JP JP2008144670A patent/JP4612710B2/ja not_active Expired - Fee Related
-
2009
- 2009-04-24 US US12/429,702 patent/US20090300017A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03235130A (ja) * | 1990-02-13 | 1991-10-21 | Hitachi Ltd | 排他優先制御方式 |
JPH05120041A (ja) * | 1991-10-25 | 1993-05-18 | Nec Corp | 資源割り当て管理方式 |
JPH0651980A (ja) * | 1992-07-28 | 1994-02-25 | Fuji Xerox Co Ltd | 情報処理装置のスタックの配置方式 |
JP2004348439A (ja) * | 2003-05-22 | 2004-12-09 | Ntt Docomo Inc | コンピュータ及びプログラム |
JP2006107197A (ja) * | 2004-10-06 | 2006-04-20 | Nec Corp | メモリ制御方法およびプログラムならびに端末装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101985905B1 (ko) * | 2019-03-05 | 2019-06-04 | 디지테크정보 주식회사 | 시스템 연동 방법 및 이를 이용하는 연동형 시스템 |
Also Published As
Publication number | Publication date |
---|---|
JP4612710B2 (ja) | 2011-01-12 |
US20090300017A1 (en) | 2009-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4612710B2 (ja) | トランザクション並行制御方法、データベース管理システム、およびプログラム | |
US9959313B2 (en) | Database management system and method capable of dynamically issuing inputs/outputs and executing operations in parallel | |
US5946711A (en) | System for locking data in a shared cache | |
US6349310B1 (en) | Database management system and method for accessing rows in a partitioned table | |
US5687372A (en) | Customer information control system and method in a loosely coupled parallel processing environment | |
US8990954B2 (en) | Distributed lock manager for file system objects in a shared file system | |
US20070073693A1 (en) | Transaction and task scheduler | |
US20080168103A1 (en) | Database management methodology | |
KR20180030118A (ko) | 분산 데이터베이스 시스템을 갖는 네트워크에서 데이터베이스 접근 제어를 제공하기 위한 방법 및 아키텍처 | |
US5682507A (en) | Plurality of servers having identical customer information control procedure functions using temporary storage file of a predetermined server for centrally storing temporary data records | |
US11709818B2 (en) | Managing concurrent transactions in database systems | |
US5790868A (en) | Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment | |
US5630133A (en) | Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment | |
US20200394077A1 (en) | Map reduce using coordination namespace hardware acceleration | |
US8341368B2 (en) | Automatic reallocation of structured external storage structures | |
CN116303661B (zh) | 一种分布式数据库中针对序列的处理方法、装置及系统 | |
JP2787107B2 (ja) | バッファ制御方式及び装置 | |
JP5674850B2 (ja) | データベース管理システム及び方法 | |
JP5283675B2 (ja) | データベース管理システム及び方法 | |
CN117573027A (zh) | 数据处理方法及设备 | |
CN113448710A (zh) | 基于业务资源的分布式应用系统 | |
JPS63193243A (ja) | デ−タベ−ス処理方式 | |
JPH1049387A (ja) | バッファ管理方法および装置 | |
JP2000242511A (ja) | 資源管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100223 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100625 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100706 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100906 |
|
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: 20101005 |
|
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: 20101015 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131022 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4612710 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |