(57)【要約】【課題】複数のデータベースの版を管理するＤＢＭＳにおいて、トランザクション処理の高速化を可能にする。【解決手段】制御処理装置１０は、トランザクションにおいて参照または更新するデータとトランザクションの終了時刻とを予測するモデル１２２を用いて、処理対象のトランザクション集合に対して、各トランザクション内で生じるデータの参照命令及び更新命令と、各トランザクションの終了時刻とを予測するアクセス予測部１３２と、アクセス予測部１３２による予測結果を用いて、処理対象のトランザクション集合におけるread  only  transaction  anomalyの発生を予測するアノマリー予測部１３３と、アノマリー予測部１３３による予測結果を基に、処理対象のトランザクション集合におけるトランザクションの処理順序を最適化する版選択部１３４と、を有する。【選択図】図１
2020204975.tif 000002
【特許請求の範囲】
【請求項１】
トランザクションに対する並列処理を制御する制御処理装置であって、
トランザクションにおいて参照または更新するデータと前記トランザクションの終了時刻とを予測するモデルを用いて、処理対象のトランザクション集合に対して、各トランザクション内で生じるデータの参照命令及び更新命令と、各トランザクションの終了時刻とを予測する第１の予測部と、
前記第１の予測部による予測結果を用いて、前記処理対象のトランザクション集合におけるread  only  transaction  anomalyの発生を予測する第２の予測部と、
前記第２の予測部による予測結果を基に、前記処理対象のトランザクション集合におけるトランザクションの処理順序を最適化する設定部と、
を有することを特徴とする制御処理装置。
【請求項２】
前記設定部は、各トランザクションの参照命令及び更新命令の開始時点で、前記read  only  transaction  anomalyを回避する前記参照命令の版を選択することを特徴とする請求項１に記載の制御処理装置。
【請求項３】
過去のトランザクションの実行履歴を用いて、前記モデルに入力されたトランザクションが参照または更新するデータ、及び、前記モデルに入力されたトランザクションの終了時刻を予測するモデルの学習を行う学習部をさらに有することを特徴とする請求項１または２に記載の制御処理装置。
【請求項４】
発生するトランザクションを予測する第３の予測部をさらに有し、
前記第１の予測部は、前記第３の予測部が予測したトランザクションに対して、該トランザクション内で生じるデータの参照命令及び更新命令と、該トランザクションの終了時刻とを予測することを特徴とする請求項１〜３のいずれか一つに記載の制御処理装置。
【請求項５】
トランザクションに対する並列処理を制御する制御処理装置が実行する制御処理方法であって、
トランザクションにおいて参照または更新するデータと前記トランザクションの終了時刻とを予測するモデルを用いて、処理対象のトランザクション集合に対して、各トランザクション内で生じるデータの参照命令及び更新命令と、各トランザクションの終了時刻とを予測する第１の予測工程と、
前記第１の予測工程における予測結果を用いて、前記処理対象のトランザクション集合におけるread  only  transaction  anomalyの発生を予測する第２の予測工程と、
前記第２の予測工程における予測結果を基に、前記処理対象のトランザクション集合におけるトランザクションの処理順序を最適化する工程と、
を含んだことを特徴とする制御処理方法。
【請求項６】
トランザクションにおいて参照または更新するデータと前記トランザクションの終了時刻とを予測するモデルを用いて、処理対象のトランザクション集合に対して、各トランザクション内で生じるデータの参照命令及び更新命令と、各トランザクションの終了時刻とを予測する第１の予測ステップと、
前記第１の予測ステップにおける予測結果を用いて、前記処理対象のトランザクション集合におけるread  only  transaction  anomalyの発生を予測する第２の予測ステップと、
前記第２の予測ステップにおける予測結果を基に、前記処理対象のトランザクション集合におけるトランザクションの処理順序を最適化するステップと、
をコンピュータに実行させるための制御処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御処理装置、制御処理方法および制御処理プログラムに関する。
【背景技術】
【０００２】
コンピュータにて行う不可分な一連のデータ処理群をトランザクションと呼ぶ。トランザクションの処理は、ＡＣＩＤ（Atomicity  Consistency  Isolation  Durability）すなわち原子性、一貫性、独立性、永続性を必要とする。トランザクション処理は、マルチコア環境で並列処理を行った際に、シングルコアで直列実行した際の処理結果と等価な処理結果を生成する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Alan  Fekete,  Elizabeth  O'Neil,  Patrick  O'Neil,  “A  Read-Only  Transaction  Anomaly  Under  Snapshot  Isolation”,  ACM  SIGMOD  Record,Volume  33  Issue  3(2004).，［online］，［令和１年５月２２日検索］，インターネット＜ＵＲＬ：https://www.cse.iitb.ac.in/infolab/Data/Courses/CS632/Papers/feketeROAnom.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、複数のデータベースの版を管理するＤＢＭＳ（DataBase  Management  System）においては、並列に複数のクエリ処理を実行する際にread  only  transaction  anomalyが発生する場合があった。なお、read  only  transaction  anomalyとは、複数のトランザクションが同時実行されている際にトランザクション間の参照、更新による依存関係が循環閉路を構成して、矛盾を生じる状態のことを指す。
【０００５】
このread  only  transaction  anomalyが発生すると、処理をアボート（中断）、リトライする必要があるため、トランザクション処理が高速化できないといった問題があった。この問題について、図１９及び図２０を参照して、具体的に説明する。
【０００６】
図１９及び図２０は、複数のトランザクションの同時実行例を説明する図である。図１９及び図２０において、Ｈは、複数トランザクションの実行履歴（ヒストリ）であり、Ｔ１,Ｔ２,Ｔ３は、各トランザクションにおける更新命令（Ｗ：Ｗｒｉｔｅ）、参照命令（Ｒ：Ｒｅａｄ）、コミット命令（Ｃ：Ｃｏｍｍｉｔ）の実行順序を示している。
【０００７】
ここで、図１９の実行例に対し、単一版のみ管理するＤＢＭＳの場合、トランザクションＴ２がＲ２（Ｙ０）を実行した時点において、Ｙ０に共有ロックが設定されるため、Ｗ１（Ｙ１）の時点で、waitが発生する。つまり、単一版のみ管理するＤＢＭＳの場合、この時点で、トランザクションの実行順序が、Ｔ２→Ｔ１の順序に決定される。
【０００８】
一方、複数の版を管理するＤＢＭＳの場合、Ｗ１（Ｙ１）の時点では、waitが発生せず、Ｙの新たな版であるＹ１が生成される。そして、トランザクションＴ３が開始され、参照命令Ｒ３（Ｘ）が実行される。この際に参照されるべきＸの版は、Ｘ２（Ｔ２→Ｔ３の場合）またはＸ０（Ｔ２→Ｔ３ではない場合）となる。
【０００９】
トランザクションの実行順序がＴ２→Ｔ３ではない場合を仮定すると、トランザクションの実行順序は、Ｔ１→Ｔ３→Ｔ２となる。このため、トランザクションＴ３のＲ３（Ｘ０）が実行されるが、この場合、トランザクションＴ２のＲ２（Ｙ）は、Ｙ０を読むことができないことになる。これが、read  only  transaction  anomalyである。
【００１０】
次に、図２０に、図１９におけるread  only  transaction  anomalyを解消した論理的なトランザクションの一例を示す。図１９に示すヒストリは、トランザクションＴ２の参照命令Ｒ２（Ｙ）が、Ｒ２（Ｙ１）と振舞うように変更したものである。
【００１１】
しかしながら、元のヒストリにおけるトランザクションＴ２の参照命令Ｒ２（Ｙ）の実行時点では、トランザクションＴ１がまだ実行されていないため、Ｙ０を読むべきではないと判断をすることはできない。
【００１２】
このように、複数のデータベースの版を管理するＤＢＭＳにおいて、read  only  transaction  anomalyに起因し、参照命令及び更新命令の開始時点において、適切な版を選択することが困難である場合がある。この結果、ＤＢＭＳにおいてread  only  transaction  anomalyが生じると、処理をアボート、リトライする必要があるため、トランザクション処理が高速化できないといった問題があった。
【００１３】
本発明は、上記に鑑みてなされたものであって、複数のデータベースの版を管理するＤＢＭＳにおいて、トランザクション処理の高速化を可能にする制御処理装置、制御処理方法および制御処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するために、本発明の制御処理装置は、トランザクションに対する並列処理を制御する制御処理装置であって、トランザクションにおいて参照または更新するデータとトランザクションの終了時刻とを予測するモデルを用いて、処理対象のトランザクション集合に対して、各トランザクション内で生じるデータの参照命令及び更新命令と、各トランザクションの終了時刻とを予測する第１の予測部と、第１の予測部による予測結果を用いて、処理対象のトランザクション集合におけるread  only  transaction  anomalyの発生を予測する第２の予測部と、第２の予測部による予測結果を基に、処理対象のトランザクション集合におけるトランザクションの処理順序を最適化する設定部と、を有することを特徴とする。
【００１５】
また、本発明の制御処理方法は、トランザクションに対する並列処理を制御する制御処理装置が実行する制御処理方法であって、トランザクションにおいて参照または更新するデータとトランザクションの終了時刻とを予測するモデルを用いて、処理対象のトランザクション集合に対して、各トランザクション内で生じるデータの参照命令及び更新命令と、各トランザクションの終了時刻とを予測する第１の予測工程と、第１の予測工程における予測結果を用いて、処理対象のトランザクション集合におけるread  only  transaction  anomalyの発生を予測する第２の予測工程と、第２の予測工程における予測結果を基に、処理対象のトランザクション集合におけるトランザクションの処理順序を最適化する工程と、を含んだことを特徴とする。
【００１６】
また、本発明の制御処理プログラムは、トランザクションにおいて参照または更新するデータとトランザクションの終了時刻とを予測するモデルを用いて、処理対象のトランザクション集合に対して、各トランザクション内で生じるデータの参照命令及び更新命令と、各トランザクションの終了時刻とを予測する第１の予測ステップと、第１の予測ステップにおける予測結果を用いて、処理対象のトランザクション集合におけるread  only  transaction  anomalyの発生を予測する第２の予測ステップと、第２の予測ステップにおける予測結果を基に、処理対象のトランザクション集合におけるトランザクションの処理順序を最適化するステップと、をコンピュータに実行させる。
【発明の効果】
【００１７】
本発明によれば、複数のデータベースの版を管理するＤＢＭＳにおいて、トランザクション処理の高速化を可能にする。
【図面の簡単な説明】
【００１８】
【図１】図１は、実施の形態１に係る制御処理装置の構成の一例を示すブロック図である。
【図２】図２は、図１に示す制御処理装置による処理の流れを説明する図である。
【図３】図３は、図１に示す学習部による学習処理の処理手順を示すフローチャートである。
【図４】図４は、実施の形態１に係る制御処理方法の処理手順を示すフローチャートである。
【図５】図５は、複数のトランザクションの同時実行例を説明する図である。
【図６】図６は、トランザクションの実行順序候補を説明する図である。
【図７】図７は、トランザクションの実行順序候補を説明する図である。
【図８】図８は、従来の方法におけるトランザクション間の競合を説明する図である。
【図９】図９は、従来の方法におけるトランザクション間の競合を表現するconflictグラフを示す図である。
【図１０】図１０は、トランザクションが参照または更新するデータと、トランザクションの実行時刻との予測結果を説明する図である。
【図１１】図１１は、図１０に示すトランザクションのconflictグラフ示す図である。
【図１２】図１２は、図１に示す版選択部が設定したトランザクションの実行例を示す図である。
【図１３】図１３は、図１２に示すトランザクションのconflictグラフを示す図である。
【図１４】図１４は、図１に示す版選択部が設定したトランザクションの実行例を示す図である。
【図１５】図１５は、図１４に示すトランザクションのconflictグラフ示す図である。
【図１６】図１６は、実施の形態２に係る制御処理装置の構成の一例を示すブロック図である。
【図１７】図１７は、実施の形態２に係る制御処理方法の処理手順を示すフローチャートである。
【図１８】図１８は、プログラムが実行されることにより、制御処理装置が実現されるコンピュータの一例を示す図である。
【図１９】図１９は、複数のトランザクションの同時実行例を説明する図である。
【図２０】図２０は、複数のトランザクションの同時実行例を説明する図である。
【発明を実施するための形態】
【００１９】
以下に、本願に係る制御処理装置、制御処理方法および制御処理プログラムの実施形態を図面に基づいて詳細に説明する。また、本発明は、以下に説明する実施形態により限定されるものではない。
【００２０】
［実施の形態１］
まず、実施の形態１に係る制御処理装置について説明する。本実施の形態１は、トランザクション処理などで利用されているＤＢＭＳに関するものである。本実施の形態１は、特に、複数のデータベースの版を管理するＤＢＭＳにおいて、並列に複数のクエリ処理を実行する際に生じ得るread  only  transaction  anomalyの発生を回避して、トランザクション処理の高速化に図る。
【００２１】
図１は、実施の形態１に係る制御処理装置の構成の一例を示すブロック図である。図１に示すように、本実施の形態１に係る制御処理装置１０は、複数のデータベースの版を管理するとともに、トランザクションに対する並列処理を制御する制御処理装置であって、通信部１１、記憶部１２、制御部１３、入力部１４及び出力部１５を有する。
【００２２】
通信部１１は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部１１は、ＮＩＣ（Network  Interface  Card）等で実現され、ＬＡＮ（Local  Area  Network）やインターネットなどの電気通信回線を介した他の装置と制御部１３（後述）との間の通信を行う。例えば、通信部１１は、ネットワークを介して、学習において用いる過去のトランザクションの実行履歴（ヒストリ）の入力を受け付ける。また、通信部１１は、ネットワークを介して、制御処理対象のトランザクション集合の入力を受け付ける。
【００２３】
記憶部１２は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現され、制御処理装置１０を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部１２は、トランザクション１２１及びモデル１２２を有する。
【００２４】
トランザクション１２１は、モデルの学習用に用いられるデータであり、過去のトランザクションのヒストリを含む。トランザクション１２１は、例えば、通信部１１を介して、外部装置から入力されたものである。
【００２５】
モデル１２２は、過去のトランザクションのヒストリを学習したモデルであり、トランザクションが入力されると、このトランザクションが参照または更新するデータと、トランザクションの終了時刻とを予測する。モデル１２２は、トランザクションの開始時点、すなわち、制御処置装置１０（ＤＢＭＳ）にトランザクションのリクエストが到着した時点において、この入力されたトランザクションの実行と完了時刻を予測する。
【００２６】
制御部１３は、制御処理装置１０全体を制御する。制御部１３は、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路である。また、制御部１３は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部１３は、各種のプログラムが動作することにより各種の処理部として機能する。制御部１３は、学習部１３１、アクセス予測部１３２（第１の予測部）、アノマリー予測部１３３（第２の予測部）及び版選択部１３４（設定部）を有する。
【００２７】
学習部１３１は、過去のトランザクションのヒストリを用いて、モデル１２２の学習を行う。学習部１３１は、記憶部１２のトランザクション１２１を用いて、モデル１２２の学習を行う。
【００２８】
学習部１３１は、トランザクションのヒストリから、トランザクション毎に、該トランザクションの実行シーケンス、並走するトランザクション群、該トランザクションシーケンスを構成する各オペレーションの実行時刻を入力として、未知のトランザクションシーケンスの入力に対して各オペレーションの実行時刻を予測するモデル１２２を学習させる。モデル１２２が学習する問題は多次元データを入力とする回帰問題であり、従来の回帰分析の技術を適用することが可能である。
【００２９】
アクセス予測部１３２は、モデル１２２を用いて、処理対象のトランザクション集合に対して、各トランザクション内で生じるデータの参照命令及び更新命令と、各トランザクションの終了時刻とを予測する。アクセス予測部１３２は、モデル１２２を読み出し、新たに入力されたトランザクション集合を入力として、各トランザクション内で生じるデータ参照命令及びデータ更新命令と、各トランザクションの終了時刻とを予測する。そして、アクセス予測部１３２は、トランザクション内の各命令に予測実行時刻を付与したトランザクション集合を出力する。
【００３０】
アノマリー予測部１３３は、アクセス予測部１３２による予測結果を用いて、read  only  transaction  anomalyの発生を予測する。アノマリー予測部１３３は、アクセス予測部１３２による出力結果を入力として、conflictグラフを構築することによって、将来起こりうるread  only  transaction  anomalyを事前に予測する。conflictグラフは、トランザクションをノードとし、トランザクション間の順序依存関係をエッジとして表したものである。
【００３１】
版選択部１３４は、アノマリー予測部１３３によって予測された予測結果を基に、処理対象のトランザクション集合におけるトランザクションの処理順序を最適化する。具体的には、版選択部１３４は、各トランザクションの参照命令及び更新命令の開始時点で、read  only  transaction  anomalyを回避する参照命令の版を選択する。版選択部１３４は、アノマリー予測部１３３によって予測されたread  only  transaction  anomalyを解消するように、各トランザクションのデータ参照命令及びデータ更新命令の開始時点で、参照命令として適切な版を選択したトランザクション実行計画を出力する。
【００３２】
入力部１４は、制御処理装置１０の操作者からの各種操作を受け付ける入力インタフェースである。例えば、キーボードやマウス等の入力デバイスによって構成される。出力部１５は、例えば、液晶ディスプレイやプリンタ等であって、各種情報を出力する。
【００３３】
［処理の流れ］
次に、制御処理装置１０による処理の流れについて説明する。図２は、図１に示す制御処理装置１０による処理の流れを説明する図である。図３は、図１に示す学習部１３１による学習処理の処理手順を示すフローチャートである。図４は、実施の形態１に係る制御処理方法の処理手順を示すフローチャートである。
【００３４】
図２に示すように、学習部１３１は、記憶部１２のトランザクション１２１を読み出し（図３のステップＳ１）、モデル１２２の学習を行い（図３のステップＳ２）、学習を行ったモデル１２２を記憶部１２に格納する（図３のステップＳ３）。
【００３５】
続いて、制御処理装置１０は、処理対象として新たにトランザクション集合の入力を受け付ける（図４のステップＳ１１）。アクセス予測部１３２は、モデル１２２を読み出し、新たに入力されたトランザクション集合を入力として、各トランザクション内で生じるデータ参照命令及びデータ更新命令と、各トランザクションの終了時刻とを予測するアクセス予測を行う（図４のステップＳ１２）。そして、アクセス予測部１３２は、アクセス予測部１３２は、トランザクション内の各命令に予測実行時刻を付与したトランザクション集合を出力する。
【００３６】
アノマリー予測部１３３は、アクセス予測部１３２による予測結果を用いて、read  only  transaction  anomalyの発生を予測する（図４のステップＳ１３）。アノマリー予測部１３３は、予測時刻が付与されたトランザクション集合と、発生を予測したread  only  transaction  anomalyに関する情報とを出力する。
【００３７】
版選択部１３４は、各トランザクションの参照命令及び更新命令の開始時点で、read  only  transaction  anomalyを回避する参照命令の版を選択し（図４のステップＳ１４）、トランザクション実行計画を出力する（図４のステップＳ１５）。
【００３８】
［従来例］
次に、従来のトランザクションに対する制御処理を説明する。図５は、複数のトランザクションの同時実行例を説明する図である。図６及び図７は、トランザクションの実行順序候補を説明する図である。
【００３９】
トランザクションの制御処理においては、独立性として、serializableを前提とする。このため、図５に示す実行例では、主なトランザクションの実行順序候補は、Ｔ１→Ｔ２→Ｔ３（図６参照）またはＴ１→Ｔ３→Ｔ２（図７参照）となる。しかしながら、いずれの実行順序候補においても、read  only  transaction  anomalyが発生するため、いずれかのトランザクションをabort（中断）させる必要がある。なお、他の実行順序候補もあるが、同様な不整合が発生する。
【００４０】
具体的には、Ｔ１→Ｔ２→Ｔ３の場合、図６に示すように、Ｗ２（Ｘ２）（枠Ｆ１参照）の後に、Ｒ３（Ｘ０）（枠Ｆ２参照）が実行されることになる。しかしながら、Ｘの版は、Ｘ０→Ｘ２であるため、参照命令はＲ３（Ｘ２）でなければならず、Ｔ１→Ｔ２→Ｔ３の実行順序候補では不整合が発生する。
【００４１】
一方，Ｔ１→Ｔ３→Ｔ２の場合、図７に示すように、Ｗ１（Ｙ１）（枠Ｆ３参照）の後に、Ｒ２（Ｙ０）（枠Ｆ４参照）が実行されることになる。しかしながら、Ｙの版は、Ｙ０→Ｙ１であるため、参照命令はＲ２（Ｙ２）でなければならず、Ｔ１→Ｔ３→Ｔ２の実行順序候補では不整合が発生する。
【００４２】
図８は、従来の方法におけるトランザクション間の競合を説明する図である。図９は、従来の方法におけるトランザクション間の競合を表現するconflictグラフを示す図である。
【００４３】
図８の枠Ｆ５〜Ｆ９に示すように、トランザクションＴ１，Ｔ２，Ｔ３では、
Ｔ２：Ｒ２（Ｙ０）→Ｔ１：Ｗ１（Ｙ１）
Ｔ１：Ｗ１（Ｙ１）→Ｔ３：Ｒ３（Ｙ１）
Ｔ３：Ｒ３（Ｘ０）→Ｔ２：Ｗ２（Ｘ２）
の順序依存関係が発生している。
【００４４】
これらの関係について、トランザクションをノードとし、依存関係をエッジとして、表したconflictグラフを、図９に示す。図９に示すように、従来の方法におけるconflictグラフには、巡回閉路が発生しているため、トランザクションＴ１，Ｔ２，Ｔ３の実行順序を決定することができない状況になっている。このように、従来手法では、トランザクションＴ２のコミット実行時までconflictが決定できないという問題があった。
【００４５】
［適用例１］
次に、本実施の形態の適用例１を説明する。制御処理装置１０は、過去のトランザクションのヒストリを学習したモデルを用いて、トランザクションＴ１，Ｔ２，Ｔ３の各ＲＷ命令、及び、コミットの実行時刻を予測する。そして、制御処理装置１０は、予測したトランザクションに基づいて将来のconflictグラフを構築し、競合（conflict）を解消するようにＲＷ命令の対象となる版を決定する。
【００４６】
図１０は、トランザクションＴ１，Ｔ２，Ｔ３が参照または更新するデータと、トランザクションの実行時刻との予測結果を説明する図である。図１１は、図１０に示すトランザクションのconflictグラフ示す図である。図１０及び図１１は、トランザクションＴ３の開始時点においてconflictグラフを予測した状態に対応する。アクセス予測部１３２は、モデル１２２を用いて、図１０に示すように、トランザクションＴ３の開始時点において、枠Ｆ１１内のＲＷ命令及びコミットの実行順序を予測する。
【００４７】
これによって、アノマリー予測部１３３は、図１１に示すconflictグラフを予測する。図１１に示すconflictグラフには、巡回閉路が発生しており、トランザクションＴ２のコミット実行時までconflictが決定できない。すなわち、図１１のconflictグラフに示すように、図１０に示すトランザクション間では競合が生じている。
【００４８】
図１２は、図１に示す版選択部１３４が設定したトランザクションの実行例を示す図である。図１３は、図１２に示すトランザクションのconflictグラフを示す図である。制御処理装置１０では、版選択部１３４が、図１１に示すconflictを解消するため、予測されたconflictグラフのエッジの向きを変更することによって、閉路を排除する。
【００４９】
一般的には閉路を構成する任意のエッジが変更の候補となるが、実際の操作として変更できるのは、参照命令Ｒの対象となるデータの版の変更に限定される。図１２の例における参照命令（Ｒ）は、トランザクションＴ１のＲ１（Ｙ０）、トランザクションＴ２のＲ２（Ｘ０）及びＲ２（Ｙ０）、トランザクションＴ３のＲ３（Ｘ０）及びＲ３（Ｙ１）の５個である。このため、これらの５個の参照命令の対象となるデータＹ０，Ｘ０，Ｙ１の版が変更の候補になる。
【００５０】
この５個の参照命令の対象のデータのうち、より古い版が存在するのはＹ１である。このため、版選択部１３４は、このデータＹの版「１」を古い版「０」に変更する。すなわち、版選択部１３４は、トランザクションＴ３の参照命令「Ｒ３（Ｙ１）」（図１０の枠Ｆ１１参照）を、図１２に示すように、「Ｒ３（Ｙ０）」（図１２の枠Ｆ１２参照）に変更する。
【００５１】
これにより、図１３に示すように、conflictグラフでは、トランザクションＴ１とトランザクションＴ３との間の依存関係が逆転し（枠Ｆ１３参照）、閉路が排除される。この結果、トランザクションの実行順序がＴ３→Ｔ１に決定されるため、トランザクションの実行順序は、図１２のように表現される。
【００５２】
版選択部１３４が古い版に変更できる場合として、古い版に変更可能な参照命令（Ｒ）が複数ある第１の場合と、古い版自体が複数ある第２の場合とがある。版選択部１３４は、第１の場合では、閉路が除去できるまでランダムに候補を選択する方法を採用することができる。また、版選択部１３４は、第２の場合では、複数の候補の版の中でも新しい版に置き換えを行い、閉路が除去できるまで版を古くする方法を採用することができる。
【００５３】
さらに、版選択部１３４は、過去に閉路の除去に成功した変更のパターンを記録しておき、記録結果を参照し、新たな変更内容に対する閉路の除去の確率を見積もり、最も高い確率であると見積もられた変更内容を選択するという方法を適用してもよい。
【００５４】
［適用例２］
また、図１０及び図１１に示すconflictの他の解消例について説明する。図１４は、図１に示す版選択部１３４が設定したトランザクションの実行例を示す図である。図１５は、図１４に示すトランザクションのconflictグラフ示す図である。
【００５５】
トランザクションＴ３の開始時点において、変更可能である参照命令（Ｒ）は、Ｒ３（Ｘ０）及びＲ３（Ｙ１）のいずれかである（図１０の枠Ｆ１１参照）。このため、版選択部１３４は、適用例１と同様に、Ｒ３（Ｙ１）をＲ３（Ｙ０）に変更する（図１２の枠Ｆ１２参照）他、Ｒ３（Ｘ０）をＲ３（Ｘ２）に変更する（図１４の枠Ｆ１４参照）こともできる。
【００５６】
これにより、図１５に示すように、conflictグラフでは、トランザクションＴ２とトランザクションＴ３との間の依存関係が逆転し（枠Ｆ１５参照）、閉路が排除される。この結果、トランザクションの実行順序がＴ２→Ｔ３に決定されるため、トランザクションの実行順序は、図１４のように表現される。
【００５７】
［実施の形態１の効果］
このように、本実施の形態１に係る制御処理装置１０は、トランザクションにおいて参照または更新するデータとトランザクションの終了時刻とを予測するモデル１２２を用いて、処理対象のトランザクション集合に対して、各トランザクション内で生じるデータの参照命令及び更新命令と、各トランザクションの終了時刻とを予測する。そして、制御処理装置１０は、処理対象のトランザクション集合におけるread  only  transaction  anomalyの発生を予測し、処理対象のトランザクション集合におけるトランザクションの処理順序を最適化する。
【００５８】
すなわち、制御処理装置１０は、モデル１２２を用いて、処理対象のトランザクションが参照または更新するデータと、トランザクションの終了時刻を予測することによって、将来起こりうるread  only  transaction  anomalyを事前に予測することができる。そして、制御処理装置１０は、予測したread  only  transaction  anomalyを回避するように、処理対象のトランザクション集合におけるトランザクションの処理順序を最適化する。
【００５９】
したがって、制御処理装置１０によれば、ＤＢＭＳにおけるread  only  transaction  anomalyを回避するように、処理対象のトランザクション集合におけるトランザクションの処理順序を最適化するため、処理のアボート、リトライを低減でき、トランザクション処理を高速化することができる。
【００６０】
そして、制御処理装置１０は、各トランザクションの参照命令及び更新命令の開始時点で、read  only  transaction  anomalyを回避する参照命令の版を選択することによって、トランザクションの処理順序を最適化とする。言い換えると、制御処理装置１０は、各トランザクションの参照命令及び更新命令の開始時点で、予測されたread  only  transaction  anomalyを回避するように適切な版を選択するため、ＤＢＭＳのトランザクション処理の高速化を達成することができる。
【００６１】
ここで、制御処理装置１０は、予測したトランザクションに基づいて将来のconflict  グラフを構築し、このconflictグラフによって、将来起こりうるread  only  transaction  anomalyを事前に予測している。したがって、制御処理装置１０によれば、このように予測されたread  only  transaction  anomalyを解消するように、各トランザクションの参照命令及び更新命令の開始時点で適切な版を選択することができる。
【００６２】
そして、制御処理装置１０は、過去のトランザクションのヒストリを用いて、モデル１２２に入力されたトランザクションが参照または更新するデータ、及び、モデル１２２に入力されたトランザクションの終了時刻を予測するモデル１２２の学習を行っている。
【００６３】
ここで、業務プロセスで利用されるトランザクション処理は、同様な作業の繰り返しとなることが多く、これらのトランザクション間には類似性がある。例えば、受発注管理と在庫管理とを例に取る。この場合、複数の商品を有する同じセットでの発注が行われることが多く、受発注管理と在庫管理との並行処理が繰り替えされる。したがって、制御処理装置１０は、トランザクション間に類似性がある過去のトランザクションのヒストリを用いて、モデル１２２の学習を行うことによって、トランザクションが参照または更新するデータ、及び、トランザクションの終了時刻を適切に予測することができる。
【００６４】
［実施の形態２］
次に、実施の形態２に係る制御処理装置について説明する。図１６は、実施の形態２に係る制御処理装置の構成の一例を示すブロック図である。
【００６５】
図１６に示すように、本実施の形態２に係る制御処理装置２１０は、図１に示す制御処理装置１０と比して、制御部１３と同様の機能を有する制御部２１３を有する。制御部２１３は、トランザクション予測部２１３５（第３の予測部）を有する。
【００６６】
トランザクション予測部２１３５は、発生するトランザクションを予測する。トランザクション予測部２１３５は、トランザクションの開始時点より前に、具体的には、制御処理装置２１０にトランザクションのリクエストが到着する前に、将来発生するトランザクションを予測する。
【００６７】
例えば、トランザクション予測部２１３５は、将来発生するトランザクションを予測する手法として、時系列予測の技術であるHolt-winters,  VAR,  LSTMなどの手法を適用することが可能である。実際に、トランザクション予測部２１３５は、データベースのワークロード予測の技術として、周期性予測（例えば、Query-based  Workload  Forecasting  for  Self-Driving  Database  Management  Systems,  SIGMOD  2018.，［online］，［令和１年５月２２日検索］，インターネット＜ＵＲＬ：https://www.cs.cmu.edu/~dvanaken/papers/forecasting-sigmod18.pdf＞参照）を用いてもよい。
【００６８】
また、ワークロードの予測をする際に重要な技術はクエリの特徴量である。そこで、トランザクション予測部２１３５は、クエリの特徴量を用いて、将来発生するイベントを予測する手法（例えば、Database-Agnostic  Workload  Management,  CIDR  2019.  ，［online］，［令和１年５月２２日検索］，インターネット＜ＵＲＬ：http://cidrdb.org/cidr2019/papers/p110-jain-cidr19.pdf＞参照）を用いてもよい。
【００６９】
そして、アクセス予測部１３２は、トランザクション予測部２１３５が予測したトランザクションに対して、該トランザクション内で生じるデータの参照命令及び更新命令と、該トランザクションの終了時刻とをモデル１２２を用いて予測する。
【００７０】
［処理の流れ］
図１７は、実施の形態２に係る制御処理方法の処理手順を示すフローチャートである。図１７に示すように、制御処理装置２１０では、トランザクション予測部２１３５が、将来発生するトランザクションを予測する（ステップＳ２１）。アクセス予測部１３２は、トランザクション予測部２１３５が予測したトランザクションに対して、該トランザクション内で生じるデータの参照命令及び更新命令と、該トランザクションの終了時刻とをモデル１２２を用いて予測する（ステップＳ２２）。図１７に示すステップＳ２３〜ステップＳ２５は、図４に示すステップＳ１３〜ステップＳ１５と同じ処理である。
【００７１】
［実施の形態２の効果］
このように、実施の形態２に係る制御処理装置２１０は、新たなトランザクションが制御処理装置２１０に到着する前に、将来発生するトランザクションを予測することができる。このため、制御処理装置２１０によれば、制御処理装置１０よりも早期の段階でconflict  グラフを構築して、競合の解消を図ることが可能である。すなわち、制御処理装置２１０は、新たなトランザクションが制御処理装置２１０に到着する前に、read  only  transaction  anomalyをできるだけ回避するようにトランザクションの処理順序を最適化するため、トランザクションの失敗率を低減することができる。この結果、制御処理装置２１０によれば、トランザクションの性能であるスループットを向上させることができる。
【００７２】
［実施形態のシステム構成について］
図１及び図１６に示した制御処理装置１０，２１０の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、制御処理装置１０，２１０の機能の分散および統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
【００７３】
また、制御処理装置１０，２１０においておこなわれる各処理は、全部または任意の一部が、ＣＰＵおよびＣＰＵにより解析実行されるプログラムにて実現されてもよい。また、制御処理装置１０においておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
【００７４】
また、実施の形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述および図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
【００７５】
［プログラム］
図１８は、プログラムが実行されることにより、制御処理装置１０，２１０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００７６】
メモリ１０１０は、ＲＯＭ１０１１およびＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００７７】
ハードディスクドライブ１０９０は、例えば、ＯＳ（Operating  System）１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、制御処理装置１０，２１０の各処理を規定するプログラムは、コンピュータ１０００により実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、制御処理装置１０，２１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００７８】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００７９】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３およびプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３およびプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００８０】
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例および運用技術等はすべて本発明の範疇に含まれる。
【符号の説明】
【００８１】
１０，２１０  制御処理装置
１１  通信部
１２  記憶部
１３，２１３  制御部
１４  入力部
１５  出力部
１２１  トランザクション
１２２  モデル
１３１  学習部
１３２  アクセス予測部
１３３  アノマリー予測部
１３４  版選択部
２１３５  トランザクション予測部
【図１】
2020204975.tif 000003
【図２】
2020204975.tif 000004
【図３】
2020204975.tif 000005
【図４】
2020204975.tif 000006
【図５】
2020204975.tif 000007
【図６】
2020204975.tif 000008
【図７】
2020204975.tif 000009
【図８】
2020204975.tif 000010
【図９】
2020204975.tif 000011
【図１０】
2020204975.tif 000012
【図１１】
2020204975.tif 000013
【図１２】
2020204975.tif 000014
【図１３】
2020204975.tif 000015
【図１４】
2020204975.tif 000016
【図１５】
2020204975.tif 000017
【図１６】
2020204975.tif 000018
【図１７】
2020204975.tif 000019
【図１８】
2020204975.tif 000020
【図１９】
2020204975.tif 000021
【図２０】
2020204975.tif 000022