JP2020021186A - トランザクション制御装置、トランザクション制御プログラムおよびトランザクション制御方法 - Google Patents

トランザクション制御装置、トランザクション制御プログラムおよびトランザクション制御方法 Download PDF

Info

Publication number
JP2020021186A
JP2020021186A JP2018143081A JP2018143081A JP2020021186A JP 2020021186 A JP2020021186 A JP 2020021186A JP 2018143081 A JP2018143081 A JP 2018143081A JP 2018143081 A JP2018143081 A JP 2018143081A JP 2020021186 A JP2020021186 A JP 2020021186A
Authority
JP
Japan
Prior art keywords
transaction
time
block
unit
size
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.)
Withdrawn
Application number
JP2018143081A
Other languages
English (en)
Inventor
常和 島
Tsunekazu Shima
常和 島
淳 小暮
Atsushi Kogure
淳 小暮
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018143081A priority Critical patent/JP2020021186A/ja
Priority to US16/518,305 priority patent/US20200042513A1/en
Priority to EP19188053.3A priority patent/EP3605422A1/en
Publication of JP2020021186A publication Critical patent/JP2020021186A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Accounting & Taxation (AREA)
  • Computing Systems (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】複数のブロックチェーン間におけるトランザクション確定の時間短縮を図る。【解決手段】トランザクション制御装置1は、複数のブロックチェーンそれぞれについて、次のトランザクションの確定の時刻を予測する予測し、予測された時刻に基づいて、前記複数のブロックチェーンそれぞれの次のトランザクションの実行順序を決定するBC順序決定部23と、BC順序決定部23によって決定された実行順序に基づいて、複数のブロックチェーンそれぞれについて、次のトランザクションを実行するTX実行部24と、を有する。【選択図】図1

Description

本発明は、トランザクション制御装置などに関する。
近年、ビットコイン(登録商標)などのデジタル仮想通貨が普及しつつある。ビットコインなどの仮想通貨において、ブロックチェーンと呼ばれる技術が用いられている。ブロックチェーンは、参加者間の仮想通貨の取引情報(トランザクション)がブロックと呼ばれる単位でまとめられたものである(例えば、特許文献2参照)。
デジタル仮想通貨の取引に利用されているブロックチェーンは、様々な業務システムに適用されつつあり(例えば、特許文献1参照)、業務システムごとにブロックチェーンを活用している。このため、複数の業務システムを連携させたシステムを開発する場合は、既存の複数のブロックチェーンを活用して1つのシステムとすることが必要となる。このとき、複数のブロックチェーン間で同じトランザクションを実行し、ブロックチェーンに記録されるデータを一致させたい場合がある。例えば、病院が、病院のブロックチェーンと、薬局のブロックチェーンとの間で同じトランザクションを実行し、処方箋などのデータを一致させたい場合である。
かかる場合には、システムが、複数のブロックチェーンに同時にトランザクションを書き込むことも考えられる。しかしながら、ブロックチェーンでは、トランザクションの取り消しができない。このため、システムは、複数のブロックチェーンに同時にトランザクションを書き込むより、一方のブロックチェーンにトランザクションを実行し、成功すると、他方のブロックチェーンにトランザクションを実行する方が、合理的である。
なお、ブロックチェーンにおけるトランザクションの確定は、トランザクションが実行されるごとに行われるわけではなく、一定の時間間隔あるいはトランザクション数量ごとに行われる。また、ブロックチェーンごとに、トランザクションを確定するまでの時間間隔やトランザクション数量も異なる。
特開2017−50763号公報 特開2017−91149号公報
しかしながら、従来の技術では、複数のブロックチェーン間で同じトランザクションを実行する際にトランザクションの確定までの時間を短縮することができないという問題がある。
例えば、システムの利用者は、トランザクションの確定の成否のフィードバックを可能な限り早く受け取りたい。しかしながら、従来の技術では、システムは、一方のブロックチェーンにトランザクションを実行し、成功すると、他方のブロックチェーンにトランザクションを実行するが、トランザクションの確定の成否を可能な限り早くフィードバックする仕組みはない。
1つの側面では、複数のブロックチェーン間におけるトランザクション確定の時間短縮を図ることを目的とする。
1つの案では、トランザクション制御装置は、複数のブロックチェーンそれぞれについて、次のトランザクションの確定の時刻を予測する予測部と、前記予測部によって予測された時刻に基づいて、前記複数のブロックチェーンそれぞれの次のトランザクションの実行順序を決定する決定部と、前記決定部によって決定された実行順序に基づいて、前記複数のブロックチェーンそれぞれの次のトランザクションを実行する実行部と、を有する。
1つの態様によれば、複数のブロックチェーン間におけるトランザクション確定の時間短縮を図ることができる。
図1は、実施例に係るトランザクション制御装置の構成を示す機能ブロック図である。 図2は、実施例に係るトランザクション制御装置の処理の一例を示す図である。 図3は、BCのTX確定のタイミングの一例を示す図である。 図4は、実施例に係るBC情報テーブルのデータ構造の一例を示す図である。 図5は、実施例に係る所要時間テーブルのデータ構造の一例を示す図である。 図6は、実施例に係る統計情報テーブルのデータ構造の一例を示す図である。 図7は、実施例に係るBC順序決定の一例を示す図である。 図8は、実施例に係るBC順序決定の別の例を示す図である。 図9は、実施例に係るトランザクション制御処理のフローチャートの一例を示す図である。 図10は、実施例に係るBC順序決定処理のフローチャートの一例を示す図である。 図11は、実施例に係るTX実行処理のフローチャートの一例を示す図である。 図12は、実施例に係るBC情報取得処理のフローチャートの一例を示す図である。 図13は、実施例に係る統計情報生成処理のフローチャートの一例を示す図である。 図14は、実施例に係るトランザクション制御装置の別の構成を示す機能ブロック図である。 図15は、実施例に係るトランザクション制御装置の処理の応用例を示す図である。 図16は、トランザクション制御プログラムを実行するコンピュータの一例を示す図である。
以下に、本願の開示するトランザクション制御装置、トランザクション制御プログラムおよびトランザクション制御方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
[実施例に係るトランザクション制御装置の構成]
図1は、実施例に係るトランザクション制御装置の機能構成を示す図である。図1に示すように、トランザクション制御装置1は、複数のブロックチェーン(BC:Blockchain)で同じトランザクションを確定させる場合に、複数のBCそれぞれについて、次のトランザクションの確定時刻を予測し、予測時刻の早い方のBCから先に次のトランザクションを実行する。なお、実施例では、ブロックチェーンを「BC」と略記する。また、トランザクションを「TX」と略記する場合がある。
ここで、実施例に係るトランザクション制御装置1の処理の一例を、図2を参照して説明する。図2は、実施例に係るトランザクション制御装置の処理の一例を示す図である。なお、BC−Aで表わされる1つのBCは、ブロック生成間隔を60秒として、60秒ごとに、トランザクションを確定するものとする。また、BC−Bで表わされる1つのBCは、ブロック生成間隔を20秒として、20秒ごとに、トランザクションを確定するものとする。すなわち、各BCは、未確定のトランザクション(TX)がキュー(「TXキュー」という)に複数蓄積されている場合には、TXキューに蓄積された複数のトランザクションを一纏まりにしてブロックを生成し、ブロック単位でトランザクションを確定する。
図2に示すように、トランザクション制御装置1は、アプリケーション10からトランザクション(TX)の登録要求を受信すると、トランザクション対象のBCごとに次のTXの確定時刻を予測する。
例えば、図2では、BC−BがTXの登録を実行する場合には、BC−Bは、TXの登録要求を受信した時点(t1)後、次の確定時刻(t2)で次のTXを確定する。したがって、トランザクション制御装置1は、BC−Bについて、次のTXの確定時刻をt2と予測する。また、BC−AがTXの登録を実行する場合には、BC−Aは、TXの登録要求を受信した時刻(t11)後、次の確定時刻(t12)で次のTXを確定する。したがって、トランザクション制御装置1は、BC−Aについて、次のTXの確定時刻をt12と予測する。
そして、トランザクション制御装置1は、予測した時刻が早いBCから次のTXの登録を実行する。例えば、図2では、予測した確定時刻は、BC−AよりBC−Bの方が早い。したがって、トランザクション制御装置1は、予測した時刻が早いBC−Bから次のTXの登録を実行する。
予測した時刻が早いBCからTXの登録を実行する理由は、以下のとおりである。
仮に、トランザクション制御装置1が、BC−Aを先にTXの登録を実行するとする。すると、BC−Aは、TXの登録要求を受信した時刻(t11)後、次の確定時刻(t12)でTXを確定する。トランザクション制御装置1が、TXの確定成功を受信すると、BC−Bに対してTXの登録を実行する。すると、BC−Bは、TXの登録要求を受信した時刻(t13)後、次の確定時刻(t14)でTXを確定する。すると、TXの実行から確定までの時間は、(t14−t11)と計算される。
一方、トランザクション制御装置1が、BC−Bを先にTXの登録を実行するとする。すると、BC−Bは、TXの登録要求を受信した時刻(t1)後、次の確定時刻(t2)で次のTXを確定する。トランザクション制御装置1が、TXの確定成功を受信すると、BC−Aに対してTXの登録を実行する。すると、BC−Aは、TXの登録要求を受信した時刻(t3)後、次の確定時刻(t4)で次のTXを確定する。すると、TXの実行から確定までの時間は、(t4−t1)と計算される。
したがって、トランザクション制御装置1は、予測した時刻が早いBC−BからTXの登録を実行したほうが、アプリケーション10へのTXの登録完了のフィードバックを早期に返すことができる。すなわち、トランザクション制御装置1は、複数のBC間におけるTX確定の時間短縮を図ることができる。
なお、図2では、BCのTX確定のタイミングは、BCごとに定められたブロック生成間隔を経過した時点であるとした。しかしながら、BCのTX確定のタイミングは、以下のいずれかの条件を満たしたタイミングであっても良い。1つ目の条件は、まだブロックに含まれないTXのサイズ(ブロックに取り込み待ちのTX量)がブロックサイズを超えない、且つ、直近のブロック生成日時からのブロック生成間隔が経過したときとする。これは、負荷が低い場合であると推定されるので、ブロック生成間隔の経過を待って、TXを確定するためである。2つ目の条件は、まだブロックに含まれないTXのサイズ(ブロックに取り込み待ちのTX量)がブロックサイズを超えたときとする。これは、負荷が高いと推定されるので、ブロック生成間隔の経過を待たないで、ブロックに取り込み待ちのTX量がブロックサイズを超えたときにTXを確定するためである。
図3は、BCのTX確定のタイミングの一例を示す図である。図3には、X軸を時間とし、Y軸をブロックサイズとした場合のBCのTX確定のタイミングを示すグラフが表わされている。1つ目の条件は、符号a1で示されるタイミングである。すなわち、BCのTX確定のタイミングは、ブロックに取り込み待ちのTX量がブロックサイズを超えないが、直近のブロック生成の日時a0からのブロック生成間隔が経過したとき(a1)となる。また、2つ目の条件は、符号a3で示されるタイミングである。すなわち、BCのTX確定のタイミングは、ブロックに取り込み待ちのTX量がブロックサイズを超えたとき(a3)となる。
そこで、以降では、トランザクション制御装置1は、BCのTX確定のタイミングを1つ目の条件を満たすタイミングおよび2つ目の条件を満たすタイミングとして、BCごとのTXの確定時刻を予測する。
図1に戻って、トランザクション制御装置1は、アプリケーション10と、ライブラリ部20と、通信部30とを有する。
アプリケーション10は、例えば、利用者が所定の取引を実行する場合に利用するソフトウェアである。アプリケーション10は、要求送信部11を含む。要求送信部11は、取引(トランザクション)の登録要求をライブラリ部20に送信する。
通信部30は、ネットワークを介して、他の外部装置と通信を行う処理部である。通信部30は、通信装置に対応する。例えば、通信部30は、同じトランザクションの対象となる複数のBCに対して、トランザクション(TX)の実行を要求する。
ライブラリ部20は、要求受信部21、BC情報取得部22、BC順序決定部23、TX実行部24、統計情報生成部25および記憶部26を有する。
記憶部26は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部26は、BC情報テーブル261、所要時間テーブル262および統計情報テーブル263を有する。
BC情報テーブル261は、BCごとに、各BCが持つブロックに関するBC情報を記憶する。なお、BC情報テーブル261のデータ構造の説明は、後述する。
所要時間テーブル262は、BCごとに、TXキューに蓄積された複数のトランザクション(TX)からブロックを生成する所要時間の実績を蓄積する。言い換えれば、所要時間テーブル262は、BCごとに、TXキューに蓄積された複数のTXが確定する所要時間の実績を記憶することともいえる。なお、所要時間テーブル262のデータ構造の説明は、後述する。
統計情報テーブル263は、BCごとに、統計情報を記憶する。例えば、統計情報テーブル263は、TXキューに蓄積された複数のトランザクション(TX)のサイズ(TXキューサイズ)に対するブロック生成の所要時間の平均を統計情報として記憶する。言い換えれば、統計情報テーブル263は、BCごとに、TXキューに蓄積された複数のトランザクション(TX)のサイズに対するTX確定の所要時間の平均を統計情報として記憶することともいえる。ここでいう「TXキューサイズ」とは、まだブロックに含まれないTXのサイズであって、TXキューに蓄積されたTXのサイズのことをいう。なお、統計情報テーブル263のデータ構造の説明は、後述する。
要求受信部21は、アプリケーション10から、トランザクション(TX)の登録要求を受信する。
BC情報取得部22は、トランザクション対象のBCごとに、BC情報を取得する。BC情報取得部22は、トランザクション対象のBCごとに取得したBC情報をBC情報テーブル261に保存する。なお、BC情報取得部22は、トランザクション対象の複数のBCから定期的にそれぞれBC情報を取得すれば良い。
ここで、BC情報テーブル261のデータ構造の一例を、図4を参照して説明する。図4は、実施例に係るBC情報テーブルのデータ構造の一例を示す図である。図4に示すように、BC情報テーブル261は、BC接続先識別子261a、TXキューサイズ261b、ブロックサイズ261c、ブロック生成間隔261dを対応付けて記憶する。加えて、BC情報テーブル261は、最新ブロック生成日時261eおよび次回ブロック生成予測日時261fを対応付けて記憶する。
BC接続先識別子261aは、BCの接続先を一意に識別する識別子である。BC接続先識別子261aには、例えば、IP(Internet Protocol)アドレスが挙げられる。
TXキューサイズ261bは、まだブロックに含まれないトランザクションのサイズであって、TXキューに蓄積されたトランザクションのサイズである。TXキューサイズ261bは、TXキューに含まれるキューの個数(トランザクションの個数)であっても良いし、TXキューに含まれるトランザクションの総量であっても良い。実施例では、TXキューサイズ261bは、TXキューに含まれるキューの個数(トランザクションの個数)であるとして説明する。
ブロックサイズ261cは、1ブロックのサイズである。言い換えれば、ブロックサイズ261cは、TXキューに含まれるトランザクションをブロックとして確定するサイズである。ブロックサイズ261cは、1ブロックに含むことが可能なトランザクションの個数であっても良いし、1ブロックに含むことが可能なトランザクションの総量であっても良い。実施例では、ブロックサイズ261cは、1ブロックに含むことが可能なトランザクションの個数であるとして説明する。
ブロック生成間隔261dは、ブロックを生成する時間間隔である。言い換えれば、ブロック生成間隔261dは、TXキューに含まれるトランザクションをブロックとして確定する時間間隔であるともいえる。
最新ブロック生成日時261eは、最新にブロックを生成した日時である。言い換えれば、最新ブロック生成日時261eは、最新にTXキューに含まれるトランザクションをブロックとして確定した日時であるともいえる。
次回ブロック生成予測日時261fは、次回にブロックを生成する予測日時である。なお、次回ブロック生成予測日時261fは、後述するBC順序決定部23によって算出される。
一例として、BC接続先識別子261aが「Host−a」である場合に、TXキューサイズ261bとして「0.2MB」、ブロックサイズ261cとして「1MB」、ブロック生成間隔261dとして「60秒」と記憶している。加えて、BC接続先識別子261aが「Host−a」である場合に、最新ブロック生成日時261eとして「10:40:35」、次回ブロック生成予測日時261fとして「10:41:35」と記憶している。
図1に戻って、例えば、BC情報取得部22は、BC接続先識別子261aとして「Host−a」のミドルウェアから、TXキューサイズ、ブロックサイズ、ブロック生成間隔、最新ブロック生成日時を取得すると、これらの情報を対応付けてBC情報テーブル261に保存する。なお、ブロックサイズ261cおよびブロック生成間隔261dは、それぞれ予め運用時に設定される値であり、運用中に設定値が変更されない限り、BC情報取得時ごとに同じである。TXキューサイズ261bおよび最新ブロック生成日時261eは、BC情報取得時ごとに異なる。
BC順序決定部23は、同じトランザクションの対象となる複数のBCそれぞれについて、次のトランザクションの確定の時刻を予測する。なお、BC順序決定部23は、予測部や決定部の一例である。
例えば、BC順序決定部23は、BC情報テーブル261から、トランザクション対象のBCごとに、TXキューサイズ261b、ブロックサイズ261c、ブロック生成間隔261dおよび最新ブロック生成日時261eを取得する。BC順序決定部23は、BCごとに、TXキューサイズ261bがブロックサイズ261cより小さいか否かを判定する。
一例として、BC順序決定部23が、TXキューサイズ261bがブロックサイズ261cより小さい場合には、最新ブロック生成日時261eにブロック生成間隔261dを加算する。そして、BC順序決定部23は、加算した日時を次回ブロック生成予測日時261fの欄に設定する。これは、TXキューサイズ261bがブロックサイズ261cより小さい場合には、負荷が低く、TXキューサイズ261bのTXが次のブロックに含まれるであろうと推定される。このため、BC順序決定部23は、ブロック生成間隔261dを経過した時点を次回ブロック生成予測日時261fと推定する。なお、次回ブロック生成予測日時261fが過去の日時になる場合がある。例えば、前回のブロック生成日時にブロックを生成するトランザクションがなかったような場合である。かかる場合には、BC順序決定部23は、現在の日時を超えるまで、次回ブロック生成予測日時261fにブロック生成間隔261dを繰り返し加算すれば良い。
また、一例として、BC順序決定部23が、TXキューサイズ261bがブロックサイズ261c以上である場合には、最新ブロック生成日時261eに、TXキューサイズ261bに対応する平均ブロック生成所要時間を加算する。そして、BC順序決定部23は、加算した日時を次回ブロック生成予測日時261fの欄に設定する。これは、TXキューサイズ261bがブロックサイズ261c以上である場合には、負荷が高く、TXキューサイズ261bの時点で実行したTXが次のブロックに含まれないであろうと推定される。このため、BC順序決定部23は、TXの総量(TXキューサイズ)がブロックサイズ261cを超えた時点を次回ブロック生成予測日時261fと推定する。なお、平均ブロック生成所要時間は、後述する統計情報テーブル263から取得されれば良い。
また、BC順序決定部23は、予測された時刻の昇順に、トランザクション対象の複数のBCそれぞれの次のトランザクションの実行順序を決定する。例えば、BC順序決定部23は、BC情報テーブル261を参照して、トランザクション対象のBCごとに、次回ブロック生成予測日時261fを取得する。BC順序決定部23は、トランザクション対象のBCごとに取得した次回ブロック生成予測日時261fの早い順に、それぞれの次のトランザクションの実行順序を決定する。
TX実行部24は、BC順序決定部23によって決定された実行順序に基づいて、トランザクション対象の複数のBCそれぞれに対して次のトランザクションを実行する。なお、TX実行部24は、実行部の一例である。例えば、TX実行部24は、実行順序が早いBCに対して次のトランザクションを実行する。TX実行部24は、トランザクションの確定を受け付けると、トランザクションの実行開始から確定までの所要時間を算出し、算出した所要時間をTXキューサイズ261bおよびBC接続先識別子261aに対応付けて所要時間テーブル262に保存する。そして、TX実行部24は、実行順序が次に早いBCに対して、次のトランザクションを実行する。そして、TX実行部24は、実行順序が次に早いBCがなければ、TX実行処理を終了する。
ここで、実施例に係る所要時間テーブル262のデータ構造の一例を、図5を参照して説明する。図5は、実施例に係る所要時間テーブルのデータ構造の一例を示す図である。図5に示すように、所要時間テーブル262は、BC接続先識別子262a、TXキューサイズ262bおよびブロック生成所要時間(実績)262cを対応付けて記憶する。
BC接続先識別子262aは、BCに対する接続先を一意に識別する識別子である。BC接続先識別子262aは、BC情報テーブル261のBC接続先識別子261aに対応する。
TXキューサイズ262bは、まだブロックに含まれないトランザクションのサイズであって、TXキューに蓄積されたトランザクションのサイズである。TXキューサイズ262bは、BC情報テーブル261のTXキューサイズ261bに対応するので、その説明を省略する。
ブロック生成所要時間(実績)262cは、ブロックを生成する所要時間の実績である。一例として、ブロック生成所要時間(実績)262cは、トランザクションの実行開始から確定までの所要時間の実績である。
一例として、BC接続先識別子262aが「Host−a」である場合に、TXキューサイズ262bとして「2MB」、ブロック生成所要時間(実績)262cとして「32秒」と記憶している。TXキューサイズ262bとして「2MB」、ブロック生成所要時間(実績)262cとして「28秒」と記憶している。TXキューサイズ262bとして「5MB」、ブロック生成所要時間(実績)262cとして「12秒」と記憶している。
図1に戻って、統計情報生成部25は、所要時間テーブル262を用いて、BCごとに、TXキューサイズに対応するブロック生成所要時間(実績)262cの平均を統計情報として生成する。例えば、統計情報生成部25は、所要時間テーブル262を参照して、BCが示すBC接続先識別子262aごとに、TXキューサイズ262bに対応するブロック生成所要時間(実績)262cを取得する。統計情報生成部25は、取得したブロック生成所要時間(実績)262cを用いて、ブロック生成所要時間(実績)の平均を算出し、平均ブロック生成所要時間(予測)とする。そして、統計情報生成部25は、BCが示すBC接続先識別子262aごとに、TXキューサイズ262bに対応する平均ブロック生成所要時間(予測)263cを統計情報テーブル263に保存する。なお、統計情報生成部25は、予め定められた時点に実行されれば良い。
ここで、実施例に係る統計情報テーブル263のデータ構造の一例を、図6を参照して説明する。図6は、実施例に係る統計情報テーブルのデータ構造の一例を示す図である。図6に示すように、統計情報テーブル263は、BC接続先識別子263a、TXキューサイズ263bおよび平均ブロック生成所要時間(予測)263cを対応付けて記憶する。
BC接続先識別子263aは、BCに対する接続先を一意に識別する識別子である。BC接続先識別子263aは、BC情報テーブル261のBC接続先識別子261aに対応する。
TXキューサイズ263bは、まだブロックに含まれないトランザクションのサイズであって、TXキューに蓄積されたトランザクションのサイズである。TXキューサイズ263bは、BC情報テーブル261のTXキューサイズ261bに対応するので、その説明を省略する。
平均ブロック生成所要時間(予測)263cは、ブロックを生成する所要時間の平均である。
一例として、BC接続先識別子263aが「Host−a」である場合に、TXキューサイズ263bとして「2MB」、平均ブロック生成所要時間(予測)263cとして「30秒」と記憶している。TXキューサイズ263bとして「5MB」、平均ブロック生成所要時間(予測)263cとして「12秒」と記憶している。
[BC順序決定の一例]
図7は、実施例に係るBC順序決定の一例を示す図である。図7に示すように、トランザクション対象の複数のBCであるBC−AおよびBC−Bについて、それぞれのBC情報がBC情報テーブル261に記憶されている。BC−Aについて、TXキューサイズ261bは、0.2MBである。ブロックサイズ261cは、1MBである。BC−Bについて、TXキューサイズ261bは、1.0MBである。ブロックサイズ261cは、10MBである。
このような状況の下、BC順序決定部23は、BCごとに、TXキューサイズ261bがブロックサイズ261cより小さいか否かを判定する。ここでは、BC−Aについては、TXキューサイズ261bが0.2MBであり、ブロックサイズ261cが1MBであるので、TXキューサイズ261bは、ブロックサイズ261cより小さいと判定される。BC−Bについても、TXキューサイズ261bが1.0MBであり、ブロックサイズ261cが10MBであるので、TXキューサイズ261bは、ブロックサイズ261cより小さいと判定される。
そして、BC順序決定部23は、TXキューサイズ261bがブロックサイズ261cより小さい場合には、最新ブロック生成日時261eにブロック生成間隔261dを加算し、加算した日時を次回ブロック生成予測日時261fの欄に設定する。これは、TXキューサイズ261bがブロックサイズ261cより小さい場合には、負荷が低く、TXキューサイズ261bのTXが次のブロックに含まれるであろうと推定される。このため、BC順序決定部23は、ブロック生成間隔261dを経過した時点を次回ブロック生成予測日時261fと推定する。
ここでは、BC−Aについては、最新ブロック生成日時261eである「10:40:35」にブロック生成間隔261dである「60秒」を加算した日時「10:41:35」が、次回ブロック生成予測日時261fの欄に設定される。BC−Bについては、最新ブロック生成日時261eである「10:40:58」にブロック生成間隔261dである「20秒」を加算した日時「10:41:18」が、次回ブロック生成予測日時261fの欄に設定される。
そして、BC順序決定部23は、BC情報テーブル261を参照して、トランザクション対象の複数のBC−A,BC−Bに対応するそれぞれの次回ブロック生成予測日時261fの早い順に、それぞれの次のトランザクションの実行順序を決定する。ここでは、BC−Aに対応する次回ブロック生成予測日時261fは、「10:41:35」である。BC−Bに対応する次回ブロック生成予測日時261fは、「10:41:18」である。したがって、BC順序決定部23は、次回ブロック生成予測日時261fが早い順に、すなわち、BC−B,BC−Aの順に、次のトランザクションの実行順序を決定する。
図8は、実施例に係るBC順序決定の別の例を示す図である。図8に示すように、トランザクション対象の複数のBCであるBC−AおよびBC−Bについて、それぞれのBC情報がBC情報テーブル261に記憶されている。BC−Aについて、TXキューサイズ261bは、2MBである。ブロックサイズ261cは、1MBである。BC−Bについて、TXキューサイズ261bは、50MBである。ブロックサイズ261cは、10MBである。
このような状況の下、BC順序決定部23は、BCごとに、TXキューサイズ261bがブロックサイズ261cより小さいか否かを判定する。ここでは、BC−Aについては、TXキューサイズ261bが2MBであり、ブロックサイズ261cが1MBであるので、TXキューサイズ261bは、ブロックサイズ261cより大きいと判定される。BC−Bについても、TXキューサイズ261bが50MBであり、ブロックサイズ261cが10MBであるので、TXキューサイズ261bは、ブロックサイズ261cより大きいと判定される。
そして、BC順序決定部23は、TXキューサイズ261bがブロックサイズ261cより大きい場合には、最新ブロック生成日時261eに、TXキューサイズ261bに対応する平均ブロック生成所要時間(予測)を加算し、加算した日時を次回ブロック生成予測日時261fの欄に設定する。これは、TXキューサイズ261bがブロックサイズ261cより大きい場合には、負荷が高く、TXキューサイズ261bのTXが次のブロックに含まれないであろうと推定される。このため、BC順序決定部23は、TXの総量(TXキューサイズ)がブロックサイズ261cを超えた時点を次回ブロック生成予測日時261fと推定する。
ここでは、BC−Aについては、TXキューサイズ261b「2MB」に対応する平均ブロック生成所要時間(予測)263cが、統計情報テーブル263から「30秒」と取得される。そして、最新ブロック生成日時261eである「10:40:35」に、TXキューサイズ261b「2MB」に対応する平均ブロック生成所要時間(予測)263c「30秒」を加算した日時「10:41:05」が、次回ブロック生成予測日時261fの欄に設定される。BC−Bについては、TXキューサイズ261b「10MB」に対応する平均ブロック生成所要時間(予測)263cが、統計情報テーブル263から、「10秒」と取得される。そして、最新ブロック生成日時261eである「10:40:58」に、TXキューサイズ261b「10MB」に対応する平均ブロック生成所要時間(予測)263c「10秒」を加算した日時「10:41:08」が、次回ブロック生成予測日時261fの欄に設定される。
そして、BC順序決定部23は、BC情報テーブル261を参照して、トランザクション対象の複数のBC−A,BC−Bに対応するそれぞれの次回ブロック生成予測日時261fの早い順に、それぞれの次のトランザクションの実行順序を決定する。ここでは、BC−Aに対応する次回ブロック生成予測日時261fは、「10:41:05」である。BC−Bに対応する次回ブロック生成予測日時261fは、「10:41:08」である。したがって、BC順序決定部23は、次回ブロック生成予測日時261fが早い順に、すなわち、BC−A,BC−Bの順に、次のトランザクションの実行順序を決定する。
これにより、BC順序決定部23は、複数のBC間におけるデータのトランザクション確定の時間短縮を図ることができる。
[トランザクション制御処理のフローチャート]
図9は、実施例に係るトランザクション制御処理のフローチャートの一例を示す図である。
図9に示すように、要求受信部21は、アプリケーション10から送信された、トランザクション(TX)の登録要求を受信する(ステップS11)。
すると、BC順序決定部23は、トランザクション対象のBCに対するTXの実行順序を決定する(ステップS12)。なお、BCに対するTXの実行順序の決定処理のフローチャートは、BC順序決定処理として後述する。
そして、TX実行部24は、決定されたTXの実行順序に従ってTXを実行する(ステップS13)。なお、TX実行処理のフローチャートは、後述する。そして、トランザクション制御処理は、終了する。
[BC順序決定処理のフローチャート]
図10は、実施例に係るBC順序決定処理のフローチャートの一例を示す図である。なお、図10のフローチャート内の「i」は、BC情報テーブル261に保存されたBC情報を指すインデックスであるとする。図10のフローチャート内のxx(i)は、i番目のBC情報に対応する項目xxであることを指す。また、ステップS21〜ステップS24は、複数のBCについて、非同期で実行される。
図10に示すように、BC順序決定部23は、BC情報テーブル261から、i番目のBCのBC情報を取得する(ステップS21)。BC順序決定部23は、i番目のBCについて、TXキューサイズ261bがブロックサイズ261cより小さいか否かを判定する(ステップS22)。
TXキューサイズ261bがブロックサイズ261cより小さいと判定した場合には(ステップS22;Yes)、BC順序決定部23は、最新ブロック生成日時261eにブロック生成間隔261dを加算する。BC順序決定部23は、加算した日時を次回ブロック生成予測日時261fに設定する(ステップS23)。なお、次回ブロック生成予測日時261fが過去の日時になる場合がある。例えば、前回のブロック生成日時にブロックを生成するトランザクションがなかったような場合である。かかる場合には、ステップS23は、現在の日時を超えるまで、次回ブロック生成予測日時261fにブロック生成間隔261dを繰り返し加算すれば良い。そして、BC順序決定部23は、ステップS25に移行する。
一方、TXキューサイズ261bがブロックサイズ261c以上であると判定した場合には(ステップS22;No)、BC順序決定部23は、最新ブロック生成日時261eに、TXキューサイズ261bに対応する平均ブロック生成所要時間(予測)を加算する。そして、BC順序決定部23は、加算した日時を次回ブロック生成予測日時261fに設定する(ステップS24)。なお、BC順序決定部23は、平均ブロック生成所要時間(予測)を、統計情報テーブル263を用いて取得または算出すれば良い。例えば、統計情報テーブル263にTXキューサイズ261bと一致するTXキューサイズ263bが存在する場合には、BC順序決定部23は、TXキューサイズ263bに対応する平均ブロック生成所要時間(予測)263cを取得すれば良い。統計情報テーブル263にTXキューサイズ261bと一致するTXキューサイズ263bが存在しない場合には、BC順序決定部23は、TXキューサイズ261bの前後のTXキューサイズ263bと当該サイズに対応する平均ブロック生成所要時間(予測)263cとを用いて一次関数を生成し、生成した一次関数を用いてTXキューサイズ261bに対応するTXキューサイズを算出すれば良い。そして、BC順序決定部23は、ステップS25に移行する。
ステップS25において、BC順序決定部23は、非同期実行の完了を待ち合わせる(ステップS25)。そして、BC順序決定部23は、次回ブロック生成予測日時の昇順に、TXの実行順序を決定する(ステップS26)。そして、BC順序決定部23は、BC順序決定処理を終了する。
[TX実行処理のフローチャート]
図11は、実施例に係るTX実行処理のフローチャートの一例を示す図である。なお、図11のフローチャート内の「i」は、BC情報テーブル261に保存されたBC情報を指すインデックスであるとする。「i」は、初期値を「1」とする。
図11に示すように、TX実行部24は、i番目のBC情報のBCに対してTXを実行する(ステップS31)。そして、TX実行部24は、TXを実行した現在時刻をstartに設定する。なお、startは、記憶部26の一時領域である。
TX実行部24は、TXが確定したか否かを判定する(ステップS32)。TXが確定していないと判定した場合には(ステップS32;No)、TX実行部24は、TXが確定するのを待つべく、スリープする(ステップS33)。そして、TX実行部24は、ステップS32に移行する。
TXが確定したと判定した場合には(ステップS32;Yes)、TX実行部24は、現在時間からstartに設定された時刻を引いた差分を所要時間に設定する(ステップS34)。そして、TX実行部24は、所要時間を、i番目のBC情報に対応するTXキューサイズ261bに対応付けて、所要時間テーブル262に保存する(ステップS35)。
TX実行部24は、iに設定された値を1加算する(ステップS36)。そして、TX実行部24は、トランザクション対象のBCの数がiより小さいか否かを判定する(ステップS37)。トランザクション対象のBCの数がi以上であると判定した場合には(ステップS37;No)、TX実行部24は、次のi番目のBCにTXを実行すべく、ステップS31に移行する。
一方、トランザクション対象のBCの数がiより小さいと判定した場合には(ステップS37;Yes)、TX実行部24は、TX実行処理を終了する。
[BC情報取得処理のフローチャート]
図12は、実施例に係るBC情報取得処理のフローチャートの一例を示す図である。
図12に示すように、BC情報取得部22は、BC情報の取得タイミングであるか否かを判定する(ステップS41)。BC情報の取得タイミングでないと判定した場合には(ステップS41;No)、BC情報取得部22は、BC情報の取得タイミングになるまで、スリープし(ステップS41A)、判定処理を繰り返す。
一方、BC情報の取得タイミングであると判定した場合には(ステップS41;Yes)、BC情報取得部22は、トランザクション対象のBCからそれぞれ各種の設定値を取得する(ステップS42)。例えば、BC情報取得部22は、トランザクション対象の各BCのミドルウェアから、TXキューサイズ、ブロックサイズ、ブロック生成間隔、最新ブロック生成日時を取得する。
そして、BC情報取得部22は、取得した各種の設定値をBC情報として、BCのBC接続先識別子261aに対応付けてBC情報テーブル261に保存する(ステップS43)。そして、BC情報取得部22は、BC情報取得処理を終了する。
[統計情報生成処理のフローチャート]
図13は、実施例に係る統計情報生成処理のフローチャートの一例を示す図である。
図13に示すように、統計情報生成部25は、統計情報の生成タイミングであるか否かを判定する(ステップS51)。統計情報の生成タイミングでないと判定した場合には(ステップS51;No)、統計情報生成部25は、統計情報の生成タイミングになるまで、スリープし(ステップS51A)、判定処理を繰り返す。
一方、統計情報の生成タイミングであると判定した場合には(ステップS51;Yes)、統計情報生成部25は、所要時間テーブル262から、トランザクション対象のBCごとに、BCに対応するTXキューサイズ262bとブロック生成所要時間(実績)262cとを組み合わせて取得する(ステップS52)。
統計情報生成部25は、トランザクション対象のBCごとに取得したTXキューサイズ262bとブロック生成所要時間(実績)262cとの組み合わせを用いて、BCごとに、TXキューサイズに対応するブロック生成所要時間の平均値を算出する(ステップS53)。
そして、統計情報生成部25は、トランザクション対象のBCと、TXキューサイズと、算出したブロック生成所要時間の平均値とを対応付けて統計情報テーブル263に保存する(ステップS54)。そして、統計情報生成部25は、統計情報生成処理を終了する。
ところで、実施例に係るトランザクション制御装置1は、アプリケーション10をライブラリ部20とともに有する場合を説明した。しかしながら、アプリケーション10をトランザクション制御装置1の外部装置に有するとしても良く、アプリケーション10がネットワーク経由でトランザクション制御装置1に接続するようにしても良い。
[トランザクション制御装置の別の構成]
図14は、実施例に係るトランザクション制御装置の別の構成を示す機能ブロック図である。なお、実施例の図1に示すトランザクション制御装置1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。
図1と図14とが異なるところは、アプリケーション10をアプリケーション10Aに変更した点である。アプリケーション10Aは、ネットワーク経由でトランザクション制御装置1に接続する。そして、要求受信部21が、アプリケーション10Aからトランザクション(TX)の登録要求を受信する。BC順序決定部23が、トランザクション対象の複数のBCそれぞれについて、次のTXの確定の時刻を予測し、予測された時刻の昇順に、次のTXの実行順序を決定する。TX実行部24は、決定された実行順序に基づいて、トランザクション対象の複数のBCそれぞれに対して次のTXを実行する。これにより、BC順序決定部23は、複数のBC間におけるTX確定の時間短縮を図ることができる。
[応用例]
ところで、実施例では、トランザクション制御装置1は、同じトランザクションの対象となる複数のBCそれぞれについて、次のトランザクションの確定の時刻を予測し、予測した時刻が早いほうのBCから先にトランザクションを実行すると説明した。これにより、トランザクション制御装置1は、トランザクション対象の複数のBC間におけるトランザクション確定の時間短縮を図ることができる。しかしながら、トランザクション制御装置1は、これに限定されず、この仕組みを応用することができる。トランザクション制御装置1は、トランザクション対象の複数のBC間におけるデータの整合がとれていない時間の短縮を図ることができる。例えば、トランザクション制御装置1は、トランザクション対象の複数のBCそれぞれについて、次のトランザクションを実行した場合にBC間でデータの不整合がある期間を予測し、予測した不整合がある期間が短くなるほうのBCから先にトランザクションを実行する。なお、かかる場合を実現するために、一例として、トランザクション制御装置1は、トランザクションの複数のBCそれぞれについて、次のトランザクションの確定の時刻を予測し、予測した時刻が遅いほうのBCから先にトランザクションを実行しても良い。データの整合がとれていない時間の短縮を図る場合を、図15を参照して説明する。
図15は、実施例に係るトランザクション制御装置の処理の応用例を示す図である。なお、BC−Aで表わされる1つのBCは、ブロック生成間隔を60秒として、60秒ごとに、トランザクション(TX)を確定するものとする。また、BC−Bで表わされる1つのBCは、ブロック生成間隔を20秒として、20秒ごとに、TXを確定するものとする。
図15に示すように、トランザクション制御装置1は、BCごとに、次のTXを実行した場合にデータの整合がとれていない期間を予測する。例えば、BC−AがTXの登録を実行する場合には、TXの登録要求を受信した時点(t21)後、次の確定時点(t22)でTXを確定する。続いて、BC−BがTXの登録要求を受信した時点(t23)後、次の確定時点(t24)でTXを確定する。したがって、トランザクション制御装置1は、BC−Aについて、データの整合がとれていない期間を(t24−t23)の期間と予測する。
また、BC−BがTXの登録を実行する場合には、TXの登録要求を受信した時点(t31)後、次の確定時点(t32)でTXを確定する。続いて、BC−AがTXの登録要求を受信した時点(t33)後、次の確定時点(t34)でTXを確定する。したがって、トランザクション制御装置1は、BC−Bについて、データの整合がとれていない期間を(t34−t32)の期間と予測する。
そして、トランザクション制御装置1は、予測した整合がとれていない期間が短くなるほうのBCからTXの登録を実行する。図15では、予測した整合がとれていない期間は、BC−BよりBC−Aの方が短い。したがって、トランザクション制御装置1は、予測した期間が短いBC−AからTXの登録を実行すれば良い。これにより、トランザクション制御装置1は、複数のBC間におけるデータの整合がとれていない時間の短縮を図ることができる。
[実施例の効果]
上記実施例によれば、トランザクション制御装置1は、トランザクション対象の複数のBCそれぞれについて、次のトランザクションの確定の時刻を予測する。トランザクション制御装置1は、予測された時刻に基づいて、複数のBCそれぞれの次のトランザクションの実行順序を決定する。トランザクション制御装置1は、決定された実行順序に基づいて、複数のBCそれぞれの次のトランザクションを実行する。かかる構成によれば、トランザクション制御装置1は、複数のBCそれぞれの次のトランザクションの予測確定時刻に基づいて、次のトランザクションを実行することで、BC間におけるトランザクション確定の時間を短縮することができる。この結果、トランザクション制御装置1は、複数のBCでのトランザクション実行時に、利用者へのトランザクションのフィードバックを早期に返すことができる。
また、上記実施例によれば、トランザクション制御装置1は、予測された時刻の早い順に、複数のBCそれぞれの次のトランザクションの実行順序を決定する。かかる構成によれば、複数のBCそれぞれの次のトランザクションの予測確定時刻の早い順に次のトランザクションを実行することで、BC間におけるトランザクション確定の時間を短縮することができる。
また、上記実施例によれば、トランザクション制御装置1は、予測した次のトランザクションの確定の時刻に基づいて、次のトランザクションを実行した場合に複数のBC間でデータの不整合がある期間を予測する。トランザクション制御装置1は、予測された不整合がある期間に基づいて、複数のBCそれぞれの次のトランザクションの実行順序を決定する。かかる構成によれば、トランザクション制御装置1は、複数のBC間におけるデータの整合がとれていない時間の短縮を図ることができる。
また、上記実施例によれば、トランザクション制御装置1は、複数のBCごとに、まだブロックに含まれないトランザクションのサイズを示すトランザクションキューサイズがブロックサイズより小さいか否かを判定する。トランザクション制御装置1は、複数のBCごとに、トランザクションキューサイズがブロックサイズより小さいと判定された場合には、直近のブロックが生成された時刻に、BCごとに定められたブロックの生成間隔を加算し、次のトランザクションの確定時刻を予測する。トランザクション制御装置1は、複数のBCごとに、トランザクションキューサイズがブロックサイズ以上であると判定された場合には、直近のブロックが生成された時刻に、トランザクションキューサイズに対応する、予測されるブロック生成所要時間を加算し、次のトランザクションの確定時刻を予測する。かかる構成によれば、トランザクション制御装置1は、複数のBCの次のトランザクションの確定時刻を予測することで、複数のBCそれぞれの次のトランザクションの実行順序が昇順になるように決定することができる。
また、上記実施例によれば、トランザクション制御装置1は、さらに、複数のBCごとに、実際にトランザクションを実行した際に要した所要時間をトランザクションキューサイズに対応付けて保存する。トランザクション制御装置1は、保存された情報を用いて、複数のBCごとに、トランザクションキューサイズに対応する、予測されるブロック生成所要時間を計算し、計算した時間を統計情報として保存する。かかる構成によれば、トランザクション制御装置1は、統計情報を用いて、トランザクションキューサイズに対応する、予測されるブロック生成所要時間を計算することができる。
[その他]
なお、トランザクション制御装置1は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記したライブラリ部20などの機能を搭載することによって実現することができる。
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、要求受信部21とBC順序決定部23とを1個の部として統合しても良い。一方、BC順序決定部23を、BCごとの次回ブロック生成予測日時を推定する推定部と、推定した情報を用いてTX実行のBCの順序を決定する決定部とに分散しても良い。また、記憶部26をトランザクション制御装置1の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図1に示したトランザクション制御装置1と同様の機能を実現するトランザクション制御プログラムを実行するコンピュータの一例を説明する。図16は、トランザクション制御プログラムを実行するコンピュータの一例を示す図である。
図16に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD(Hard Disk Drive)205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、トランザクション制御プログラム205aおよびトランザクション関連情報205bを記憶する。
CPU203は、トランザクション制御プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、トランザクション制御装置1の各機能部に対応する。トランザクション関連情報205bは、BC情報テーブル261、所要時間テーブル262および統計情報テーブル263に対応する。そして、例えばリムーバブルディスク211が、トランザクション制御プログラム205aなどの各情報を記憶する。
なお、トランザクション制御プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、光磁気ディスク、IC(Integrated Circuit)カード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらからトランザクション制御プログラム205aを読み出して実行するようにしても良い。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)複数のブロックチェーンそれぞれについて、次のトランザクションの確定の時刻を予測する予測部と、
前記予測部によって予測された時刻に基づいて、前記複数のブロックチェーンそれぞれの前記次のトランザクションの実行順序を決定する決定部と、
前記決定部によって決定された実行順序に基づいて、前記複数のブロックチェーンそれぞれについて、前記次のトランザクションを実行する実行部と、
を有することを特徴とするトランザクション制御装置。
(付記2)前記決定部は、前記予測部によって予測された時刻の早い順に、前記複数のブロックチェーンそれぞれの前記次のトランザクションの実行順序を決定する
ことを特徴とする付記1に記載のトランザクション制御装置。
(付記3)前記予測部は、前記予測した次のトランザクションの確定の時刻に基づいて、次のトランザクションを実行した場合に前記複数のブロックチェーン間でデータの不整合がある期間を予測し、
前記決定部は、前記予測部によって予測された不整合がある期間に基づいて、複数のブロックチェーンそれぞれの次のトランザクションの実行順序を決定する、
ことを特徴とする付記1に記載のトランザクション制御装置。
(付記4)前記予測部は、
前記複数のブロックチェーンごとに、まだブロックに含まれないトランザクションのサイズを示すトランザクションキューサイズがブロックサイズより小さいか否かを判定する判定部と、
前記複数のブロックチェーンごとに、前記判定部によって前記トランザクションキューサイズが前記ブロックサイズより小さいと判定された場合には、直近のブロックが生成された時刻に、ブロックチェーンごとに定められたブロックの生成間隔を加算し、前記次のトランザクションの確定時刻を予測する第1の予測部と、
前記複数のブロックチェーンごとに、前記判定部によって前記トランザクションキューサイズが前記ブロックサイズ以上であると判定された場合には、直近のブロックが生成された時刻に、前記トランザクションキューサイズに対応する、予測されるブロック生成所要時間を加算し、前記次のトランザクションの確定時刻を予測する第2の予測部と、
を含むことを特徴とする付記1ないし3のいずれか1つに記載のトランザクション制御装置。
(付記5)前記実行部は、さらに、前記複数のブロックチェーンごとに、実際にトランザクションを実行した際に要した所要時間を前記トランザクションキューサイズに対応付けて保存し、
前記実行部によって保存された情報を用いて、前記複数のブロックチェーンごとに、前記トランザクションキューサイズに対応する、予測されるブロック生成所要時間を計算し、計算した時間を統計情報として保存する保存部と、
をさらに有することを特徴とする付記4に記載のトランザクション制御装置。
(付記6)複数のブロックチェーンそれぞれについて、次のトランザクションの確定の時刻を予測し、
前記予測した時刻に基づいて、前記複数のブロックチェーンそれぞれの前記次のトランザクションの実行順序を決定し、
前記決定した実行順序に基づいて、前記複数のブロックチェーンそれぞれについて、前記次のトランザクションを実行する、
処理をコンピュータに実行させることを特徴とするトランザクション制御プログラム。
(付記7)前記決定する処理は、前記予測した時刻の早い順に、前記複数のブロックチェーンそれぞれの前記次のトランザクションの実行順序を決定する、
処理をコンピュータに実行させることを特徴とする付記6に記載のトランザクション制御プログラム。
(付記8)前記予測した次のトランザクションの確定の時刻に基づいて、次のトランザクションを実行した場合に前記複数のブロックチェーン間でデータの不整合がある期間を予測し、
前記予測し不整合がある期間に基づいて、前記複数のブロックチェーンそれぞれの次のトランザクションの実行順序を決定する、
処理をコンピュータに実行させることを特徴とする付記6に記載のトランザクション制御プログラム。
(付記9)複数のブロックチェーンそれぞれについて、次のトランザクションの確定の時刻を予測し、
予測された時刻に基づいて、前記複数のブロックチェーンそれぞれの前記次のトランザクションの実行順序を決定し、
決定された実行順序に基づいて、前記複数のブロックチェーンそれぞれについて、前記次のトランザクションを実行する、
処理をコンピュータが実行することを特徴とするトランザクション制御方法。
(付記10)前記決定する処理は、予測された時刻の早い順に、前記複数のブロックチェーンそれぞれの前記次のトランザクションの実行順序を決定する、
処理をコンピュータが実行することを特徴とする付記9に記載のトランザクション制御方法。
(付記11)予測された次のトランザクションの確定の時刻に基づいて、次のトランザクションを実行した場合に前記複数のブロックチェーン間でデータの不整合がある期間を予測し、
前記決定する処理は、予測された不整合がある期間に基づいて、前記複数のブロックチェーンそれぞれの次のトランザクションの実行順序を決定する、
処理をコンピュータが実行することを特徴とする付記9に記載のトランザクション制御方法。
1 トランザクション制御装置
10 アプリケーション
11 要求送信部
20 ライブラリ部
21 要求受信部
22 BC情報取得部
23 BC順序決定部
24 TX実行部
25 統計情報生成部
26 記憶部
261 BC情報テーブル
262 所要時間テーブル
263 統計情報テーブル
30 通信部

Claims (7)

  1. 複数のブロックチェーンそれぞれについて、次のトランザクションの確定の時刻を予測する予測部と、
    前記予測部によって予測された時刻に基づいて、前記複数のブロックチェーンそれぞれの前記次のトランザクションの実行順序を決定する決定部と、
    前記決定部によって決定された実行順序に基づいて、前記複数のブロックチェーンそれぞれについて、前記次のトランザクションを実行する実行部と、
    を有することを特徴とするトランザクション制御装置。
  2. 前記決定部は、前記予測部によって予測された時刻の早い順に、前記複数のブロックチェーンそれぞれの前記次のトランザクションの実行順序を決定する
    ことを特徴とする請求項1に記載のトランザクション制御装置。
  3. 前記予測部は、前記予測した次のトランザクションの確定の時刻に基づいて、次のトランザクションを実行した場合に前記複数のブロックチェーン間でデータの不整合がある期間を予測し、
    前記決定部は、前記予測部によって予測された不整合がある期間に基づいて、複数のブロックチェーンそれぞれの次のトランザクションの実行順序を決定する、
    ことを特徴とする請求項1に記載のトランザクション制御装置。
  4. 前記予測部は、
    前記複数のブロックチェーンごとに、まだブロックに含まれないトランザクションのサイズを示すトランザクションキューサイズがブロックサイズより小さいか否かを判定する判定部と、
    前記複数のブロックチェーンごとに、前記判定部によって前記トランザクションキューサイズが前記ブロックサイズより小さいと判定された場合には、直近のブロックが生成された時刻に、ブロックチェーンごとに定められたブロックの生成間隔を加算し、前記次のトランザクションの確定時刻を予測する第1の予測部と、
    前記複数のブロックチェーンごとに、前記判定部によって前記トランザクションキューサイズが前記ブロックサイズ以上であると判定された場合には、直近のブロックが生成された時刻に、前記トランザクションキューサイズに対応する、予測されるブロック生成所要時間を加算し、前記次のトランザクションの確定時刻を予測する第2の予測部と、
    を含むことを特徴とする請求項1ないし3のいずれか1つに記載のトランザクション制御装置。
  5. 前記実行部は、さらに、前記複数のブロックチェーンごとに、実際にトランザクションを実行した際に要した所要時間を前記トランザクションキューサイズに対応付けて保存し、
    前記実行部によって保存された情報を用いて、前記複数のブロックチェーンごとに、前記トランザクションキューサイズに対応する、予測されるブロック生成所要時間を計算し、計算した時間を統計情報として保存する保存部と、
    をさらに有することを特徴とする請求項4に記載のトランザクション制御装置。
  6. 複数のブロックチェーンそれぞれについて、次のトランザクションの確定の時刻を予測し、
    前記予測した時刻に基づいて、前記複数のブロックチェーンそれぞれの前記次のトランザクションの実行順序を決定し、
    前記決定した実行順序に基づいて、前記複数のブロックチェーンそれぞれについて、前記次のトランザクションを実行する、
    処理をコンピュータに実行させることを特徴とするトランザクション制御プログラム。
  7. 複数のブロックチェーンそれぞれについて、次のトランザクションの確定の時刻を予測し、
    予測された時刻に基づいて、前記複数のブロックチェーンそれぞれの前記次のトランザクションの実行順序を決定し、
    決定された実行順序に基づいて、前記複数のブロックチェーンそれぞれについて、前記次のトランザクションを実行する、
    処理をコンピュータが実行することを特徴とするトランザクション制御方法。
JP2018143081A 2018-07-31 2018-07-31 トランザクション制御装置、トランザクション制御プログラムおよびトランザクション制御方法 Withdrawn JP2020021186A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018143081A JP2020021186A (ja) 2018-07-31 2018-07-31 トランザクション制御装置、トランザクション制御プログラムおよびトランザクション制御方法
US16/518,305 US20200042513A1 (en) 2018-07-31 2019-07-22 Transaction control device, transaction control method
EP19188053.3A EP3605422A1 (en) 2018-07-31 2019-07-24 Transaction control device, transaction control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018143081A JP2020021186A (ja) 2018-07-31 2018-07-31 トランザクション制御装置、トランザクション制御プログラムおよびトランザクション制御方法

Publications (1)

Publication Number Publication Date
JP2020021186A true JP2020021186A (ja) 2020-02-06

Family

ID=67438693

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018143081A Withdrawn JP2020021186A (ja) 2018-07-31 2018-07-31 トランザクション制御装置、トランザクション制御プログラムおよびトランザクション制御方法

Country Status (3)

Country Link
US (1) US20200042513A1 (ja)
EP (1) EP3605422A1 (ja)
JP (1) JP2020021186A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11768701B2 (en) * 2019-09-17 2023-09-26 Western Digital Technologies, Inc. Exception analysis for data storage devices
CN110830260B (zh) * 2019-09-27 2021-09-24 电子科技大学 一种基于区块链的数字签名的时间戳生成方法
US11068384B2 (en) * 2019-12-10 2021-07-20 Paypal, Inc. Systems and methods for testing software applications
KR20210075654A (ko) * 2019-12-13 2021-06-23 현대자동차주식회사 블록체인 생성 시스템 및 그 운용 방법
CN112087502B (zh) * 2020-08-28 2022-10-21 成都质数斯达克科技有限公司 处理请求的方法、装置、设备及存储介质
CN116542668A (zh) * 2022-01-25 2023-08-04 腾讯科技(深圳)有限公司 一种基于区块链的数据处理方法、设备及可读存储介质
US20230289750A1 (en) * 2022-03-14 2023-09-14 Fidelity Information Services, Llc Systems and methods for executing real-time electronic transactions by a dynamically determined transfer execution date

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04171538A (ja) * 1990-11-06 1992-06-18 Nec Corp 繰返し型データ処理スケジューリング方式
WO2014196140A1 (ja) * 2013-06-03 2014-12-11 パナソニック株式会社 図形表示処理装置、図形表示処理方法及び図形表示処理装置を備える車両
JP2018055203A (ja) * 2016-09-26 2018-04-05 Gmoインターネット株式会社 データ管理システム、情報処理装置、プログラム、データ管理方法、データ構造

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009534719A (ja) * 2006-01-04 2009-09-24 エヌエックスピー ビー ヴィ マルチプロセッサシステムにおける割り込み分散方法及びシステム
WO2010035617A1 (ja) * 2008-09-29 2010-04-01 インターナショナル・ビジネス・マシーンズ・コーポレーション データの再呼び出し順を決定するための装置、方法、及びプログラム
JP6452156B2 (ja) 2015-09-03 2019-01-16 日本電信電話株式会社 許諾情報管理システム、利用者端末、権利者端末、許諾情報管理方法、および、許諾情報管理プログラム
JP6358658B2 (ja) 2015-11-09 2018-07-18 日本電信電話株式会社 ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
JP6731080B2 (ja) * 2016-06-29 2020-07-29 スクエア, インコーポレイテッド 電子支払いトランザクションの至急処理
US20180130034A1 (en) * 2016-11-07 2018-05-10 LedgerDomain, LLC Extended blockchains for event tracking and management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04171538A (ja) * 1990-11-06 1992-06-18 Nec Corp 繰返し型データ処理スケジューリング方式
WO2014196140A1 (ja) * 2013-06-03 2014-12-11 パナソニック株式会社 図形表示処理装置、図形表示処理方法及び図形表示処理装置を備える車両
JP2018055203A (ja) * 2016-09-26 2018-04-05 Gmoインターネット株式会社 データ管理システム、情報処理装置、プログラム、データ管理方法、データ構造

Also Published As

Publication number Publication date
US20200042513A1 (en) 2020-02-06
EP3605422A1 (en) 2020-02-05

Similar Documents

Publication Publication Date Title
JP2020021186A (ja) トランザクション制御装置、トランザクション制御プログラムおよびトランザクション制御方法
EP1916601A2 (en) Multiprocessor system
CN106537364A (zh) 存储事务
TWI291102B (en) Sender to receiver request retry method and apparatus
US20210125102A1 (en) Information processing system, information processing apparatus, and information processing program
JP5811245B1 (ja) 情報処理装置、メモリ順序保障方法、及び、プログラム
CN113312182B (zh) 一种云计算节点、文件处理方法及装置
US20090235026A1 (en) Data transfer control device and data transfer control method
CN110955461B (zh) 计算任务的处理方法、装置、系统、服务器和存储介质
US10713187B2 (en) Memory controller having data access hint message for specifying the given range of one or more memory addresses
JP2020144540A (ja) 停止コンテナ判定方法、情報処理装置および停止コンテナ判定プログラム
TW201418980A (zh) 記憶控制裝置
CN115421926A (zh) 任务调度方法、分布式系统、电子设备及存储介质
WO2018188959A1 (en) Method and apparatus for managing events in a network that adopts event-driven programming framework
JP6627475B2 (ja) 処理リソース制御プログラム、処理リソース制御装置、および処理リソース制御方法
CN100451962C (zh) 在基于磁盘的操作系统中自适应控制程序的装载
JP3998686B2 (ja) Cpu使用時間カウント方法及びこのcpu使用時間を用いるジョブ制御装置
JP5911395B2 (ja) 発注量算出装置及び発注量算出方法及び発注量算出プログラム
JP3795055B1 (ja) 値予測装置、マルチプロセッサシステムおよび値予測方法
CN109101192B (zh) 数据存储方法和装置
US20220083533A1 (en) Performing Operations based on Distributedly Stored Data
JP2017091213A (ja) データベース更新処理システムおよびデータベース更新処理方法
JP2021093069A (ja) 情報処理装置、同期制御方法及び同期制御プログラム
JP2024008514A (ja) 車両制御装置
JP2005339287A (ja) プログラム実行システム、中央装置、プログラム実行方法及びコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210408

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220301

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20220301