JP5754301B2 - トランザクション同時実行制御システム、トランザクション同時実行制御方法、およびプログラム - Google Patents

トランザクション同時実行制御システム、トランザクション同時実行制御方法、およびプログラム Download PDF

Info

Publication number
JP5754301B2
JP5754301B2 JP2011183876A JP2011183876A JP5754301B2 JP 5754301 B2 JP5754301 B2 JP 5754301B2 JP 2011183876 A JP2011183876 A JP 2011183876A JP 2011183876 A JP2011183876 A JP 2011183876A JP 5754301 B2 JP5754301 B2 JP 5754301B2
Authority
JP
Japan
Prior art keywords
transaction
execution
time
commit
until
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
JP2011183876A
Other languages
English (en)
Other versions
JP2013045356A (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 JP2011183876A priority Critical patent/JP5754301B2/ja
Priority to US13/553,765 priority patent/US9170837B2/en
Publication of JP2013045356A publication Critical patent/JP2013045356A/ja
Application granted granted Critical
Publication of JP5754301B2 publication Critical patent/JP5754301B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、トランザクション同時実行制御システム、トランザクション同時実行制御方法、およびプログラムに関する。
リレーショナルデータベースのトランザクション同時実行制御方法として、悲観的ロック(排他制御機構)に基づく同時実行制御が知られている。悲観的ロックに基づく同時実行制御では、トランザクションTX1は参照・更新する全レコードを予めロックし、同時実行される他トランザクションTX2はロックが解放されるまで待機状態となる。これにより、トランザクションTX1はアトミック性(トランザクション全体が失敗するか、成功するか)を担保できる。
しかし、例えば大量ユーザが参照アクセスするWEBシステムで悲観的ロックを使用した場合、待機状態、デッドロック状態、プロトコルオーバヘッド等が原因となってユーザレスポンスに遅延が発生する場合がある。このため近年では楽観的ロックに基づくトランザクション同時実行制御を採用するWEBシステムが増加している。
楽観的ロック(CAS:Compare And Swap)では、例えばアプリケーションは、トランザクションTX1を開始する前に更新対象であるレコードR1およびバージョン番号R1_V1を永続化装置(ストレージ)から取得する。さらにアプリケーションは、レコードR1をプロセスメモリ上で更新し、バージョン番号をR1_V2にインクリメントする。その後、アプリケーションは、更新したレコードR1およびバージョン番号R1_V2をストレージに書き込む。ストレージは「入力されたバージョン番号R1_V2」および「レコードR1のバージョン番号」を比較(Compare)する。レコードR1のバージョン番号がR1_V1のままであれば、レコードR1およびバージョン番号R1_V2を書き込み(Swap)、コミット成功となる。それ以外の場合は、他トランザクションTX2がレコードR1を更新したと判断してアボートし、コミット失敗となる。
楽観的ロックでは、ロック機構やトランザクション管理機構(TPモニタ等)が不要となるため、トランザクション同時実行制御システムがシンプルな実装になるというメリットがある。さらに、最終的に永続化装置に書き込む時点でコミット成功・失敗を判断するため、同一レコードに対して複数トランザクションが同時に参照アクセスすることができる。このため、WEBシステムにおけるユーザ参照リクエストの処理スループットが大幅に向上する。
非特許文献1には、楽観的ロックを用いたトランザクション同時実行制御システムの例が記載されている。非特許文献1に記載されたトランザクション同時実行システムVoldemortは、ストレージとしてBerkley DBを使用している。Voldemortは、クライアントアプリケーションから受信したトランザクション内で更新するデータおよび当該データのバージョン番号を取得した後、自身のメモリ空間でデータを更新する。そして、更新したデータをBerkley DBに書き込む際に当該更新データのバージョン番号が取得済みバージョン番号と合致するか否かを判定する。合致している場合は、当該更新データ、および取得済みバージョン番号をインクリメントした新バージョン番号をBerkley DBに書き込み、書き込みが完了した時点でコミット成功とする。バージョン番号が合致しなかった場合はコミット失敗とする。
"Project Voldemort", <http://project-voldemort.com/>, 2011/05/31
しかしながら、非特許文献1の同時実行制御システムでは、同時に実行されるトランザクション数が増えると、マシンリソースを無駄に消費してしまうという問題がある。その理由は、同時実行されているあるトランザクションがコミット成功することを把握していない他のトランザクションが、自身がコミット失敗するまでマシンリソースを消費するからである。
そこで、本発明は、同時実行されるトランザクションの数が増えても、マシンリソース消費量の増加を抑制することが可能なトランザクション同時実行制御システムを提供することを一つの目的とする。
本発明に係るトランザクション同時実行制御システムは、トランザクションの同時実行制御を行うトランザクション同時実行制御システムであって、前記トランザクションを実行するトランザクション実行部と、前記トランザクションのコミットが失敗であった場合に、前記トランザクションの再実行までの待ち時間を計算するバックオフ時間決定部と、前記トランザクションのコミットが失敗であった場合に、前記待ち時間が経過するまで前記トランザクションの再実行を待機させるトランザクションプール部を備えたものである。
本発明によれば、同時実行されるトランザクションの数が増えても、マシンリソース消費量の増加を抑制することができる。
本発明の実施の形態1による、トランザクション同時実行制御システムの構成を示すブロック図。 本発明の実施の形態1による、トランザクション同時実行制御システムの動作のフローチャート 本発明の実施の形態1による、ストレージに記憶されているテーブルの例を示す図。 本発明の実施の形態1による、トランザクションの内容の例を示す図。 本発明の実施の形態1による、トランザクションの内容の例を示す図。 トランザクションの同時実行の例を示す図。 本発明の実施の形態2による、トランザクション同時実行制御システムの構成を示すブロック図。 本発明の実施の形態2による、トランザクション同時実行制御システムの動作のフローチャート 本発明の実施の形態2による、トランザクション実行優先度とインターバル時間の対応関係を示すインターバル時間マップの例を示す図。
実施の形態1.
次に、本発明を実施するための形態について、図面を参照して詳細に説明する。
図1は、本発明の実施の形態1によるトランザクション同時実行制御システム100の構成を示すブロック図である。図に示すように、トランザクション同時実行制御システム100は、トランザクション発行装置1、トランザクション同時実行制御装置2、およびストレージ(永続化装置)3を備えている。
トランザクション発行装置1は、トランザクションをトランザクション同時実行制御装置2に送信する装置であり、CPU、ROMやRAM等のメモリ、各種の情報を格納する外部記憶装置、入力インタフェース、出力インタフェース、通信インタフェース及びこれらを結ぶバスを備える専用又は汎用のコンピュータを適用することができる。トランザクション発行装置1は複数存在していてもよい。
トランザクション同時実行制御装置2は、トランザクション発行装置1から受信したトランザクションの同時実行制御を行う装置であり、CPU、ROMやRAM等のメモリ、各種の情報を格納する外部記憶装置、入力インタフェース、出力インタフェース、通信インタフェース及びこれらを結ぶバスを備える専用又は汎用のコンピュータを適用することができる。トランザクション同時実行制御装置2は複数存在していてもよい。また、トランザクション同時実行制御装置2は、単一のコンピュータにより構成されるものであっても、通信回線を介して互いに接続された複数のコンピュータにより構成されるものであってもよい。
トランザクション同時実行制御装置2は、トランザクション実行手段21、トランザクション実行時間測定手段22、CAS操作手段23、バックオフ時間決定手段24、およびトランザクションプール手段25を備えている。トランザクション実行手段21、トランザクション実行時間測定手段22、CAS操作手段23、バックオフ時間決定手段24、およびトランザクションプール手段25は、CPUがROM等に格納された所定のプログラムを実行することにより実現される機能のモジュールに相当する。
トランザクション実行手段21は、トランザクション発行装置1から受信したトランザクションを解析し、トランザクションの実行プランを決定する。
トランザクション実行時間測定手段22は、トランザクション実行手段21がトランザクション実行を開始してから完了(コミット成功または失敗)するまでの時間を測定する。
CAS操作手段23は、トランザクション実行手段21が実行プランを実行して最終的にストレージ3にデータを反映する際にCAS操作を実行する。
バックオフ時間決定手段24は、CAS操作手段23によって当該トランザクションがコミット失敗と判断された場合、トランザクション実行時間測定手段22で測定したトランザクション実行時間に基づき、トランザクション再実行までの待ち時間(バックオフ時間)を計算する。
トランザクションプール手段25は、バックオフ時間決定手段24で計算したバックオフ時間が経過するまで、トランザクション再実行を待機するよう制御する。
ストレージ3は、記憶装置により実装される。
次に、トランザクション同時実行制御システム100の動作について説明する。
図2は、トランザクション同時実行制御システム100の動作のフローチャートである。
トランザクション同時実行制御装置2は、トランザクション発行装置1からトランザクションを受信すると、トランザクション実行手段21において生成したプランにしたがってトランザクションを実行する(ステップA1)。
トランザクション実行時間測定手段22において、ステップA1で実行されるトランザクション毎に実行時間を測定し、メモリ等に記憶する(ステップA2)。
CAS操作手段23において、トランザクション実行結果データをストレージ3に反映する際にCAS操作を実行する(ステップA3)。CAS操作が成功した場合は(ステップA3;YES)コミット成功となり処理を終了する。
一方、CAS操作が失敗した場合は(ステップA3;NO)、コミット失敗と判断し、バックオフ時間決定手段24においてバックオフ時間を計算する(ステップA4)。初回のコミット失敗の場合は、乱数値から決定するウィンドウサイズと、予め設定されたスロットタイムに基づいてバックオフ時間を決定する。一方、2回目以降のコミット失敗の場合は、初回のコミット失敗時に決定したバックオフタイムからステップA2で測定したトランザクション実行時間を減算した値をバックオフ時間とする。
トランザクションプール手段25において、ステップA4で決定したバックオフ時間が経過するまでトランザクション再実行を待機させる(ステップA5)。その後、ステップA1に戻りトランザクションを再実行する。
次に、本実施形態によるトランザクション同時実行制御システム100の動作について具体例を用いて説明する。
トランザクション発行装置1は、WEBサーバ、アプリケーションサーバ等で実現される。トランザクション同時実行制御装置2は、データベースマネージメントシステム、Key−Value−Store(Voldemort,HBase,kumofs等)で実現される。ストレージ3は、DBMS(MySQL)の場合はInnoDB等、KVS(Voldemort)の場合はBerkleyDB等で実現される。
ストレージ3には、図3に示すデータスキーマに従ったテーブルXが格納されていると想定する。テーブルXはプライマリキー(PK)およびカラム3件(COL1,COL2,COL3)で構成され、2件のレコード(PK=1,2)が存在する。
トランザクション発行装置1は、図4に示すトランザクションTX1をトランザクション同時実行制御装置2に送信する。トランザクションTX1は、テーブルXのPK=1,2のレコードそれぞれのCOL1の値をアトミックに変更するためのトランザクションである。
ここでは、トランザクション同時実行制御装置2は、トランザクション内部の一連のデータ更新処理を楽観的ロックによるCAS操作を用いてアトミックに実行できると仮定する。このような仮定が成立するトランザクション同時実行制御装置2としては、Voldemort、HBase、Kumofs等のKVSが存在する。KVSでは、トランザクション内部で更新する全データ(図4に示すトランザクションTX1ではPK=1,2の両レコード)に、単一のバージョン番号(V1とする。)を付与してストレージ3に保存する。そして、トランザクションTX1のコミット時に再び両レコードのバージョン番号をストレージ3から取得(V2とする)して、V1とV2が一致するか否かを判定する(CAS操作のCompare処理)。一致する場合はコミット成功として、更新データおよびバージョン番号V1(PK=1,2)をインクリメントした値V3をストレージ3に書き込む(CAS操作のSwap処置)。一方、一致しなかった場合はコミット失敗とする。
トランザクション発行装置1は、トランザクションTX1と並行して図5に示すトランザクションTX2をトランザクション同時実行制御装置2に送信する。トランザクションTX2は、テーブルXのPK=1のレコードのCOL1の値をアトミックに変更するためのトランザクションである。TX1およびTX2では同一レコード(PK=1)をトランザクション内で更新するため、同一のバージョン番号V(PK=1,2)を使用してCAS操作を行う。
例えば、トランザクションTX1およびトランザクションTX2が図6に示すようなトランザクション開始・完了順序で実行された場合、トランザクションTX1はCAS操作で失敗してコミット失敗となる。このため、トランザクション実行時間測定手段22は、トランザクションTX1およびTX2のトランザクション実行時間を測定する。
CAS操作手段23において、トランザクションTX2がCAS操作で失敗したためコミット失敗と判断された場合、バックオフ時間決定手段24はバックオフ時間の計算を開始する。バックオフ時間決定手段24は、予め設定する下限値(rand_min)および上限値(rand_max)の間に存在する乱数値(rand,ウィンドウサイズと呼ぶ)を生成する(式1)。
rand_min<rand<rand_max …(1)
次に、バックオフ時間決定手段24は、予め設定するスロットタイム(slot)にウィンドウサイズ(rand)を乗算した値をバックオフ時間(T_bo)とする(式2)。
T_bo=rand×slot …(2)
トランザクションプール手段25は、コミット失敗(1回目)したトランザクションTX2の再実行をトランザクションTX2のバックオフ時間T_bo(TX2)が経過するまで待機(プーリング)させる。さらに、バックオフ時間T_bo(TX2)が経過した後、トランザクションTX2をトランザクション実行手段21に入力してトランザクションを再実行する。
次に、再実行されたトランザクションTX2が再びコミット失敗(2回目以降)した場合のバックオフ時間の決定方法について説明する。バックオフ時間決定手段24は、トランザクションTX2のコミット失敗回数に応じてバックオフ時間を調整する。具体的には。コミット失敗(1回目)の時に決定したバックオフ時間T_bo(TX2)から、コミット失敗(2回目)時のトランザクションTX2の実行時間を減算した値を新たなバックオフ時間とする。すなわち、コミット失敗を繰り返す度にバックオフ時間はトランザクション実行時間分減算され、最終的には待ち時間無しでトランザクションが再実行されることになる。
以上のように、本実施形態によれば、楽観的ロック(CAS)失敗時に、乱数に基づいて計算するバックオフ時間が経過するまでトランザクション再実行を待機するようにしたので、同時実行される複数トランザクションの実行タイミングが確率的に分散でき、トランザクション同士の再衝突を回避することができる。したがって、同時実行されるトランザクションの数が増えても、マシンリソース消費量の増加を抑制することができる。
また、2回目以降のCAS失敗時には、前回のCAS失敗時に決定したバックオフ時間からトランザクション実行時間を減算した値をバックオフ時間とするようにしたので、CAS失敗の回数が増えるに従ってバックオフ時間が短くなり、永遠にコミット成功できないトランザクションが発生するのを防止することができる。特に、同時実行される他のトランザクションの実行時間が自身と比べて短い場合、独占的に実行できる区間が無く、長期間に渡ってコミット成功できないという事象が発生しやすいため、本実施形態のように再実行の度にバックオフ時間を短縮することが望ましい。
実施の形態2.
図7は、本発明の実施の形態2によるトランザクション同時実行制御システム200の構成を示すブロック図である。図1と同一の符号は、同様の構成要素を表している。図7に示すように、実施の形態2によるトランザクション同時実行制御システム200は、実施の形態1の構成に加え、トランザクション優先度決定手段31と、インターバル時間決定手段32を備えている。
実施の形態1では、バックオフ時間決定手段24はバックオフ時間を乱数(ウィンドウサイズ)を用いてランダムに決定していた。本実施形態では、トランザクション発行装置1またはトランザクション同時実行制御装置2が設定するトランザクション実行優先度に基づいてバックオフ時間を決定する。
トランザクション優先度決定手段31は、トランザクション毎の実行優先度を決定する。インターバル時間決定手段32は、トランザクション優先度決定手段31で決定した実行優先度に基づいて、固定長のインターバル時間を決定する。
バックオフ時間決定手段24は、インターバル時間決定手段32が決定したインターバル時間を用いてバックオフ時間を決定する。
次に、トランザクション同時実行制御システム200の動作について説明する。
図8は、トランザクション同時実行制御システム200の動作のフローチャートである。ステップA1〜A3の動作は実施の形態1と同様である。
トランザクション優先度決定手段31は、トランザクション発行装置1がトランザクション同時実行制御装置2に対してトランザクション毎に送信する優先度に基づいて、各トランザクションの優先度を決定する。または、予め設定された優先度決定ルールに従って、トランザクション優先度決定手段31がトランザクション毎の優先度を決定するようにしてもよい(ステップB1)。
インターバル時間決定手段32は、トランザクション優先度決定手段31が決定した優先度と、予め設定されているインターバル時間マップを照合して、当該トランザクションに適用するインターバル時間を決定する(ステップB2)。
バックオフ時間決定手段24は、インターバル時間決定手段32が決定したインターバル時間と、コンテンションウィンドウおよびスロットタイムを用いてバックオフ時間を決定する(ステップA4)。
トランザクションプール手段25は、ステップA4で決定したバックオフ時間が経過するまでトランザクション再実行を待機させる(ステップA5)。その後、ステップA1に戻りトランザクションを再実行する。
次に、本実施形態によるトランザクション同時実行制御システム200の動作について具体例を用いて説明する。
トランザクション同時実行制御装置2のトランザクション優先度決定手段31は、トランザクション発行装置1がトランザクション毎に指定する優先度(例えば、HIGH,MIDDLE,LOW)を取得する。
また、予め設定された優先度決定ルールに従って、トランザクション優先度決定手段31がトランザクション毎の優先度を自身で決定してもよい。優先度決定ルールは、例えばトランザクション内部で更新するデータの規模(テーブルレコード数等)に従って優先度HIGH,MIDDLE,LOWを決定するなどの方法が考えられる。トランザクション内部で多くのレコードを更新する大規模トランザクションは、他の小規模トランザクションと更新対象となるレコードの多くが重複するため、自身や他トランザクションのコミット失敗を誘発する可能性が高い。このため、大規模トランザクションの優先度をHIGHに決定し、直ちにトランザクションを実行することで、自身および他トランザクションのコミット失敗を防止することができる。
インターバル時間決定手段32は、例えば図9に示すトランザクション実行優先度(p)およびインターバル時間(int(p))の対応関係を示すインターバル時間マップを用いて、トランザクション毎のインターバル時間を決定する。
バックオフ時間決定手段24は、実施の形態1で用いたバックオフ時間にインターバル時間を加算した値をバックオフ時間として算出する(式3)。
T_bo=int(p)+rand×slot …(3)
以上のように、本実施形態によれば、CAS失敗時におけるトランザクション再実行までのバックオフ時間を、トランザクション実行優先度に応じて調整するようにしたので、トランザクション毎に優先度を設定したサービス品質保証ができる。
上記の実施の形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)トランザクションの同時実行制御を行うトランザクション同時実行制御システムであって、
前記トランザクションを実行するトランザクション実行部と、
前記トランザクションのコミットが失敗であった場合に、前記トランザクションの再実行までの待ち時間を計算するバックオフ時間決定部と、
前記トランザクションのコミットが失敗であった場合に、前記待ち時間が経過するまで前記トランザクションの再実行を待機させるトランザクションプール部を備えた、トランザクション同時実行制御システム。
(付記2)前記バックオフ時間決定部は、所定の上限値および下限値の間に含まれる乱数値を用いて、前記トランザクションの再実行までの待ち時間を計算する、付記1に記載のトランザクション同時実行制御システム。
(付記3)前記トランザクション実行部がトランザクション実行を開始してから完了するまでの実行時間を測定するトランザクション実行時間測定部を備え、
前記バックオフ時間決定部は、
前記トランザクションの再実行のコミットが失敗であった場合に、前回計算した待ち時間から前記実行時間を減算した値を、次回の再実行までの待ち時間とする、付記1または2に記載のトランザクション同時実行制御システム。
(付記4)前記トランザクションの実行優先度を決定するトランザクション優先度決定部と、
前記実行優先度に基づいて、前記トランザクションを再実行するまでのインターバル時間を決定するインターバル時間決定部と、を備え、
前記バックオフ時間決定部は、
前記インターバル時間を用いて前記トランザクションの再実行までの待ち時間を調整する、付記1から3のいずれかに記載のトランザクション同時実行制御システム。
(付記5)前記バックオフ時間決定部は、
前記トランザクションの再実行のコミットが失敗であった場合に、前回計算した待ち時間に前記インターバル時間を加算した値を、次回の再実行までの待ち時間とする、付記4に記載のトランザクション同時実行制御システム。
(付記6)前記トランザクションの同時実行制御は、楽観的ロックに基づくトランザクション同時実行制御である、付記1から5のいずれかに記載のトランザクション同時実行制御システム。
(付記7)トランザクションの同時実行制御を行うトランザクション同時実行制御方法であって、
前記トランザクションを実行する工程と、
前記トランザクションのコミットが失敗であった場合に、前記トランザクションの再実行までの待ち時間を計算する工程と、
前記トランザクションのコミットが失敗であった場合に、前記待ち時間が経過するまで前記トランザクションの再実行を待機させる工程と、を備えた、トランザクション同時実行制御方法。
(付記8)コンピュータを、
トランザクションの同時実行制御を行うトランザクション同時実行制御装置として機能させるプログラムであって、
前記コンピュータを、
前記トランザクションを実行するトランザクション実行部と、
前記トランザクションのコミットが失敗であった場合に、前記トランザクションの再実行までの待ち時間を計算するバックオフ時間決定部と、
前記トランザクションのコミットが失敗であった場合に、前記待ち時間が経過するまで前記トランザクションの再実行を待機させるトランザクションプール部、として機能させるプログラム。
本発明は、SNS(Social Network Service)、EC(Electronic Commerce)サービス等を提供する大規模WEBポータルサイトにおけるトランザクション同時実行制御システムや、大規模WEBポータルサイトをコンピュータで実現するためのトランザクション同時実行制御プログラム等に適用できる。
1 トランザクション発行装置、2 トランザクション同時実行制御装置、3 ストレージ、21 トランザクション実行手段、22 トランザクション実行時間測定手段、23 CAS操作手段、24 バックオフ時間決定手段、25 トランザクションプール手段、31 トランザクション優先度決定手段、32 インターバル時間決定手段、100,200 トランザクション同時実行制御システム

Claims (7)

  1. トランザクションの同時実行制御を行うトランザクション同時実行制御システムであって、
    前記トランザクションを実行するトランザクション実行部と、
    前記トランザクションのコミットが失敗であった場合に、前記トランザクションの再実行までの待ち時間を計算するバックオフ時間決定部と、
    前記トランザクションのコミットが失敗であった場合に、前記待ち時間が経過するまで前記トランザクションの再実行を待機させるトランザクションプール部を備え、
    前記トランザクション実行部がトランザクション実行を開始してから完了するまでの実行時間を測定するトランザクション実行時間測定部を備え、
    前記バックオフ時間決定部は、
    前記トランザクションの再実行のコミットが失敗であった場合に、前回計算した待ち時間から前記実行時間を減算した値を、次回の再実行までの待ち時間とする、
    トランザクション同時実行制御システム。
  2. 前記バックオフ時間決定部は、所定の上限値および下限値の間に含まれる乱数値を用いて、前記トランザクションの再実行までの待ち時間を計算する、請求項1に記載のトランザクション同時実行制御システム。
  3. 前記トランザクションの実行優先度を決定するトランザクション優先度決定部と、
    前記実行優先度に基づいて、前記トランザクションを再実行するまでのインターバル時間を決定するインターバル時間決定部と、を備え、
    前記バックオフ時間決定部は、
    前記インターバル時間を用いて前記トランザクションの再実行までの待ち時間を調整する、請求項1または2に記載のトランザクション同時実行制御システム。
  4. 前記バックオフ時間決定部は、
    前記トランザクションの再実行のコミットが失敗であった場合に、前回計算した待ち時間に前記インターバル時間を加算した値を、次回の再実行までの待ち時間とする、請求項に記載のトランザクション同時実行制御システム。
  5. 前記トランザクションの同時実行制御は、楽観的ロックに基づくトランザクション同時実行制御である、請求項1からのいずれかに記載のトランザクション同時実行制御システム。
  6. トランザクションの同時実行制御を行うトランザクション同時実行制御方法であって、
    前記トランザクションを実行する工程と、
    前記トランザクションのコミットが失敗であった場合に、前記トランザクションの再実行までの待ち時間を計算する工程と、
    前記トランザクションのコミットが失敗であった場合に、前記待ち時間が経過するまで前記トランザクションの再実行を待機させる工程と、を備え、
    前記トランザクションを実行する工程がトランザクション実行を開始してから完了するまでの実行時間を測定する工程を備え、
    前記待ち時間を計算する工程では、
    前記トランザクションの再実行のコミットが失敗であった場合に、前回計算した待ち時間から前記実行時間を減算した値を、次回の再実行までの待ち時間とする、
    トランザクション同時実行制御方法。
  7. コンピュータを、
    トランザクションの同時実行制御を行うトランザクション同時実行制御装置として機能させるプログラムであって、
    前記コンピュータを、
    前記トランザクションを実行するトランザクション実行部と、
    前記トランザクションのコミットが失敗であった場合に、前記トランザクションの再実行までの待ち時間を計算するバックオフ時間決定部と、
    前記トランザクションのコミットが失敗であった場合に、前記待ち時間が経過するまで前記トランザクションの再実行を待機させるトランザクションプール部、として機能させ、
    前記トランザクション実行部がトランザクション実行を開始してから完了するまでの実行時間を測定するトランザクション実行時間測定部を備え、
    前記バックオフ時間決定部は、
    前記トランザクションの再実行のコミットが失敗であった場合に、前回計算した待ち時間から前記実行時間を減算した値を、次回の再実行までの待ち時間とする、
    プログラム。
JP2011183876A 2011-08-25 2011-08-25 トランザクション同時実行制御システム、トランザクション同時実行制御方法、およびプログラム Expired - Fee Related JP5754301B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011183876A JP5754301B2 (ja) 2011-08-25 2011-08-25 トランザクション同時実行制御システム、トランザクション同時実行制御方法、およびプログラム
US13/553,765 US9170837B2 (en) 2011-08-25 2012-07-19 Transaction concurrent execution control system, method and program for carrying out a control of concurrently executing a transaction, including measuring execution time from starting to ending of transaction execution

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011183876A JP5754301B2 (ja) 2011-08-25 2011-08-25 トランザクション同時実行制御システム、トランザクション同時実行制御方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2013045356A JP2013045356A (ja) 2013-03-04
JP5754301B2 true JP5754301B2 (ja) 2015-07-29

Family

ID=47745616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011183876A Expired - Fee Related JP5754301B2 (ja) 2011-08-25 2011-08-25 トランザクション同時実行制御システム、トランザクション同時実行制御方法、およびプログラム

Country Status (2)

Country Link
US (1) US9170837B2 (ja)
JP (1) JP5754301B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014192213A1 (ja) * 2013-05-31 2014-12-04 日本電気株式会社 分散処理システム
WO2015143120A1 (en) 2014-03-20 2015-09-24 LogicBlox, Inc. Transaction repair
US10747777B2 (en) * 2015-03-11 2020-08-18 Hitachi, Ltd. Computer system and transaction processing management method
CN106155846B (zh) * 2015-04-15 2019-06-28 伊姆西公司 对块对象执行批量故障回复的方法和装置
WO2019067798A1 (en) * 2017-09-29 2019-04-04 Leverage Rock Llc EXTENSIBLE DISTRIBUTED REGISTER SYSTEM
WO2019195086A1 (en) * 2018-04-03 2019-10-10 Walmart Apollo, Llc Customized service request permission control system
US10931450B1 (en) * 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572546A (en) * 1994-12-22 1996-11-05 Motorola, Inc. Data communications system with multilink protocol
JPH1027122A (ja) * 1996-07-08 1998-01-27 Fuji Xerox Co Ltd データベース管理システム
JP2957551B2 (ja) * 1997-12-12 1999-10-04 株式会社リコー 分散型データベースシステムの一貫性管理方法およびコンピュータ読み取り可能な記録媒体
US7266821B2 (en) * 2000-04-27 2007-09-04 Hyperion Solutions Corporation Method and apparatus for processing jobs on an enterprise-wide computer system
US8244990B2 (en) * 2002-07-16 2012-08-14 Oracle America, Inc. Obstruction-free synchronization for shared data structures
US20050028147A1 (en) * 2003-07-28 2005-02-03 Carlos Bonilla Emulation and native language interface testing system and method
US7546335B2 (en) * 2004-09-02 2009-06-09 Broadway Technology, Llc System and method for a data protocol layer and the transfer of data objects using the data protocol layer
JP2007183838A (ja) * 2006-01-06 2007-07-19 Fujitsu Ltd クエリーパラメーター出力ページ発見プログラム、クエリーパラメーター出力ページ発見方法およびクエリーパラメーター出力ページ発見装置
US20090172674A1 (en) * 2007-12-28 2009-07-02 International Business Machines Corporation Managing the computer collection of information in an information technology environment
JP2009181206A (ja) * 2008-01-29 2009-08-13 Hitachi Ltd ストレージシステム及びスナップショット構成の移行方法
US8156275B2 (en) * 2009-05-13 2012-04-10 Apple Inc. Power managed lock optimization
US20110107338A1 (en) * 2009-11-03 2011-05-05 Tatu Ylonen Oy Ltd Selecting isolation level for an operation based on manipulated objects
US9280444B2 (en) * 2010-10-11 2016-03-08 Sap Se System and method for identifying contention of shared resources in a runtime system
US20120239525A1 (en) * 2011-03-18 2012-09-20 Hewlett-Packard Company System and method for generating quantitative guideline for print order

Also Published As

Publication number Publication date
US20130055269A1 (en) 2013-02-28
JP2013045356A (ja) 2013-03-04
US9170837B2 (en) 2015-10-27

Similar Documents

Publication Publication Date Title
JP5754301B2 (ja) トランザクション同時実行制御システム、トランザクション同時実行制御方法、およびプログラム
Mehdi et al. I {Can’t} Believe {It’s} Not Causal! Scalable Causal Consistency with No Slowdown Cascades
US9965359B2 (en) Log forwarding to avoid deadlocks during parallel log replay in asynchronous table replication
US10747745B2 (en) Transaction execution commitment without updating of data row transaction status
US10296371B2 (en) Passive two-phase commit system for high-performance distributed transaction execution
CA2981476C (en) Processing database transactions in a distributed computing system
US10157108B2 (en) Multi-way, zero-copy, passive transaction log collection in distributed transaction systems
EP2738698A2 (en) Locking protocol for partitioned and distributed tables
US20180074919A1 (en) Hybrid Database Concurrent Transaction Control
US9652492B2 (en) Out-of-order execution of strictly-ordered transactional workloads
WO2021042733A1 (zh) 区块链事务处理方法、装置、计算机设备及存储介质
US20130339312A1 (en) Inter-Query Parallelization of Constraint Checking
CN110622151B (zh) 通过较早地读取时钟来减少分布式多版本数据库中的提交等待
CN112231070A (zh) 数据写入、读取方法、装置及服务器
WO2022048358A1 (zh) 数据处理方法、装置及存储介质
WO2017131784A1 (en) Hybrid concurrency control
CN110866011B (zh) 数据表同步方法、装置、计算机设备和存储介质
US20120059997A1 (en) Apparatus and method for detecting data race
US20140164324A1 (en) Utilization of data structures to synchronize copies of a resource
WO2024098363A1 (zh) 一种基于多核处理器的并发事务处理方法及其系统
CN116974983A (zh) 数据处理方法、装置、计算机可读介质及电子设备
WO2015065450A1 (en) Non-blocking registration in distributed transactions
Haque et al. Adaptive Deadlock Detection and Resolution in Real-Time Distributed Environments
Ruiz-Fuertes et al. Performance evaluation of a metaprotocol for database replication adaptability
CN116069797A (zh) 多版本数据库的时间戳生成方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140710

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150410

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150511

R150 Certificate of patent or registration of utility model

Ref document number: 5754301

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees