[go: up one dir, main page]

JP2024037585A - トランザクション管理方法及びトランザクション管理装置 - Google Patents

トランザクション管理方法及びトランザクション管理装置 Download PDF

Info

Publication number
JP2024037585A
JP2024037585A JP2022142514A JP2022142514A JP2024037585A JP 2024037585 A JP2024037585 A JP 2024037585A JP 2022142514 A JP2022142514 A JP 2022142514A JP 2022142514 A JP2022142514 A JP 2022142514A JP 2024037585 A JP2024037585 A JP 2024037585A
Authority
JP
Japan
Prior art keywords
transaction
server
distributed ledger
history
queuing
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.)
Pending
Application number
JP2022142514A
Other languages
English (en)
Inventor
直 西島
Sunao Nishijima
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2022142514A priority Critical patent/JP2024037585A/ja
Priority to US18/179,416 priority patent/US20240078225A1/en
Publication of JP2024037585A publication Critical patent/JP2024037585A/ja
Pending 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】一般的なユースケースでもMVCCによる性能低下を低減可能とする。【解決手段】トランザクション管理装置たるキューイングサーバ120が、ブロックチェーンシステムにおける、WEBサーバ110(クライアント)と分散台帳サーバ130との間においてトランザクションの履歴を保持する処理と、当該履歴に基づいて、同一キーの更新を行うトランザクションを特定し、当該トランザクションをキューに保存する処理と、同じブロックで同一キー更新を行わない規定期間の経過後に前記トランザクションを分散台帳サーバ130に送信する処理を実行する。【選択図】図1

Description

本発明は、トランザクション管理方法及びトランザクション管理装置に関するものである。
ブロックチェーンは分散台帳技術の1つである。ブロックチェーンは、各ノードから発行され合意形成されたトランザクションを、一定期間毎にまとめたブロックの連なりであり、一種の分散型データベースである。
上述のブロックチェーンを構成する各ブロックには、タイムスタンプと前のブロックのハッシュ値が含まれる。そのため、ブロックチェーン上における任意の単一ブロックを遡及的に変更することは非常に困難である。つまり、耐改竄性が高いと言える。
こうしたブロックチェーンは、分散台帳ネットワーク上の複数の場所、すなわち分散台帳ノードそれぞれに分散し、同じ内容で格納される。換言すると、ブロックチェーンで保持するデータは、従来システムのごとく中央集権的に保持、管理されることがない。
また、スマートコントラクトにより、トランザクションを適宜に自動実行、管理し、様々な機能を柔軟に実装することも可能である。トランザクションをスマートコントラクトで実行した結果に対して、その正当性を証明するエンドースメントを実装することも可能である。
スマートコントラクトは、今までにブロックに格納されたトランザクションに書かれているデータ操作の最新の状態に対して行われる。この最新の状態に対応する情報を保持するステートデータベースを実装することも可能である。
ところで、ブロックチェーンにおけるトランザクションは複数箇所から同時に発行される。そのため、同一キーの値を更新する場合、同時並行性を失わずにデータの一貫性を保証する仕組みが必要である。
この仕組みはMulti Version Concurrency Control(MVCC)と呼ばれ、データベースの可用性を向上させる制御技術によって様々な対策が行
われている。分散システムにおけるMVCCは、同一キー更新の検知に伴って再送信処理を依頼するケースが多い。そのためMVCCは性能低下の要因となりうる。所定の性能を必要とするブロックチェーンシステムにおいては、こうした性能低下を防ぐためにMVCC対策を行うことが必要である。
こうしたブロックチェーンにおけるMVCCとして、非特許文献1に示す技術が提案されている。
また、他にも、指定された対象の状態更新処理において検索性の向上及び改ざん検知性の担保を実現するデータ管理システム(特許文献1参照)も提案されている。
この技術は、対象を指定した状態更新要求を受け付ける受付部と、記状態更新要求で指定されている対象の状態を更新する状態更新処理を実行する実行部とを備え、前記状態更新処理は、第1の情報と第2の情報とをACID(Atomicity, Consistency, Isolation, Durability)トランザクショナルに更新する処理であるトランザクション処理を含み、前記第1の情報は、対象の第1のオブジェクト群であり、第1のオブジェクト群は、一
つ以上の第1のオブジェクトであり、第1のオブジェクトは、対象の状態を表すデータであり、前記第2の情報は、対象の第2のオブジェクト群であり、第2のオブジェクト群は、一つ以上の第2のオブジェクトであり、前記トランザクション処理は、前記指定された対象に対応した第1のオブジェクトを作成、更新又は消去する第1の処理と、当該第1の処理の内容と第1のオブジェクトのサマリとの少なくとも一つを含む第2のオブジェクトを、前記指定された対象に対応した第2のオブジェクト群に追加する第2の処理とを含み、前記状態更新要求は、前記第1の処理に使用される一つ以上の引数である第1の引数群と、前記第1の引数群のサマリである引数群サマリと、前記引数群サマリに対する電子署名とを含み、前記実行部は、前記電子署名を用いて、前記引数群サマリの改ざんの有無を検知する第1の改ざん検知処理と、前記第1の改ざん検知処理において改ざんが無いことが検知された場合に、前記引数群サマリを用いて、前記第1の引数群の改ざんの有無を検知する第2の改ざん検知処理とを行うデータ管理システムに係る。
https://blogs.oracle.com/blockchain/post/obptokenoptimization
特開2021-184252号公報
エンタープライズにおける分散台帳システムは、所定の性能が求められることが多く、高負荷時におけるMVCC対策は必要になる。
非特許文献が示す技術では、分散台帳システムにおけるMVCC最適化機能を提供している。しかし、UXTO(Unspent Transaction Output)形式を用いたユースケースのみに対応し、一般的なユースケースには適応できない。
そこで本発明の目的は、一般的なユースケースでもMVCCによる性能低下を低減可能とする技術を提供することにある。
上記課題を解決する本発明のトランザクション管理方法は、キューイングサーバが、ブロックチェーンシステムにおける、クライアントと分散台帳サーバとの間においてトランザクションの履歴を保持する処理と、当該履歴に基づいて、同一キーの更新を行うトランザクションを特定し、当該トランザクションをキューに保存する処理と、同じブロックで同一キー更新を行わない規定期間の経過後に前記トランザクションを分散台帳サーバに送信する処理を実行する、ことを特徴とする。
また、本発明のトランザクション管理装置は、キューイングサーバであって、ブロックチェーンシステムにおける、クライアントとピアとの間においてトランザクションの履歴を保持する処理と、当該履歴に基づいて、同一キーの更新を行うトランザクションを特定し、当該トランザクションをキューに保存する処理と、同じブロックで同一キー更新を行わない規定期間の経過後に前記トランザクションを送信する処理を実行するものである、ことを特徴とする。
本発明によれば、一般的なユースケースでもMVCCによる性能低下を低減可能となる。
本実施形態におけるキューイングサーバを含むネットワーク構成例を示す図である。 本実施形態における分散台帳システムの構成例を示す図である。 本実施形態におけるキューイングサーバ(トランザクション管理装置)のハードウェア構成例を示す図である。 本実施形態におけるトランザクション管理方法のフロー例を示す図である。 本実施形態におけるトランザクション履歴のテーブル例を示す図である。 本実施形態におけるトランザクションキューのテーブル例を示す図である。示す図である。 他の本実施形態におけるキューイングサーバを含むネットワーク構成例を示す図である。
<実施例1>
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態のトランザクション管理装置たるキューイングサーバ120(以下、キューイングサーバ120)を含むネットワーク構成図である。
図1に示すキューイングサーバ120は、一般的なユースケースでもMVCCによる性能低下を低減可能とするサーバ装置である。
本実施形態のキューイングサーバ120は、図1で示すように、インターネットやLAN(Local Area Network)などの適宜なネットワーク1を介して、WEBサーバ110や分散台帳サーバ130らと通信可能に接続されている。これらは、いわゆるブロックチェーンシステムを構成する装置となる。
なお、上述のWEBサーバ110は、適宜なUI(User interface)やアプリケーションを介して所定のサービスをユーザに提供し、それに伴うトランザクションを発行するクライアントとなる。
本実施形態のキューイングサーバ120は、トランザクション管理機能121と、トランザクションキュー122及びトランザクション履歴123の各データベースとを有する。
このトランザクションサーバ120は、ユーザ100による端末操作を受けてWEBサーバ110にて発行されたトランザクションを受信する。トランザクションは、Keyが一意であればよく、一般的なKey-Value形式でもよい。
また、トランザクションサーバ120は、このトランザクションを、トランザクション管理機能121によってトランザクションキュー122に保存、もしくは分散台帳サーバ130に送信する。
キューイングサーバ120は、WEBサーバ110から受信したトランザクションをそのまま分散台帳サーバ130に送信しない場合、当該トランザクションをトランザクションキュー122に保存する。また、トランザクション履歴123は、キューイングサーバ120が受信したトランザクションの履歴である。
一方、分散台帳サーバ130は、キューイングサーバ120からトランザクションを受信してスマートコントラクト131を実行し、その結果を分散台帳132に保存する。い
わゆるブロックチェーンシステムにおける分散台帳ノードである。
なお、上述の各装置の間の通信は、https(Hypertext Transfer Protocol Secure)などの適宜なプロトコルを用いて暗号化されているものとする。
図2は、本実施形態における分散台帳システム500の構成例を示す図である。本実施形態の分散台帳システム500は、1つ以上の組織それぞれが運用する各機器らから構成されている。
図2で例示するケースでは、分散台帳システム500が、3つの組織510、520、530の各機器を含んでいる。それぞれの組織、例えば、組織510は、分散台帳サーバ130、キューイングサーバ120、及びWEBサーバ110を運用している。
この例の場合、分散台帳システム500は、1または複数の組織の分散台帳サーバ130を含むことになる。また、それぞれの分散台帳サーバ130は、インターネットなどの適宜なネットワーク540を介して互いに通信可能である。
図3は、本実施形態におけるキューイングサーバ120のハードウェア構成例を示す図である。本実施形態のキューイングサーバ120の構成は、複数の物理サーバまたは任意の数の方法で実現されても良いし、1つのサーバで実現しても良い。
キューイングサーバ120は、CPU(Central Processing Unit)601、メモリ602、ストレージ603、ネットワークインターフェイス604、及び入出力装置605を含む。なお、こうした各構成は内部バスなどのインターフェイス606を介して接続されている。
このうちCPU601は、メモリ602に記録されたプログラムを実行することで各種の機能を実現する。
また、メモリ602は、CPU601により実行されるプログラムの保持や、当該プログラムの実行時に各種情報を一時的に保持する、RAM(Random Access Memory)などの揮発性記憶素子である。
また、ストレージ603は、各種データ、プログラムを格納する、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶素子である。
このストレージ603には、本実施形態のトランザクション管理装置として必要な機能を実装する為のプログラムに加えて、トランザクションキュー122やトランザクション履歴123が少なくとも記憶されている。ただし、これらデータベースについての詳細は後述する。また、プログラムは、CPU601により実行されることで、トランザクション管理機能121を実装することになる。
また、ネットワークインターフェイス604は、キューイングサーバ120をネットワーク607(図2におけるネットワーク540)に接続するための通信装置である。
また、入出力装置605は、組織の担当者等が操作するキーボードやマウス、ディスプレイ等、またはそうした装置らと入出力データの授受を行うインターフェイスである。
なお、図6でキューイングサーバ120について示したハードウェア構成は、WEBサーバ110や分散台帳サーバ130においても同様である。ただし、分散台帳サーバ130は、そのストレージにおいてスマートコントラクト131及び分散台帳132を保持することになる。
以下、本実施形態におけるトランザクション管理方法の実際手順について図に基づき説明する。以下で説明するトランザクション管理方法に対応する各種動作は、トランザクション管理装置たるキューイングサーバ120がメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
図4は、本実施形態におけるトランザクション管理方法のフロー例を示す図である。この場合、キューイングサーバ120は、WEBサーバ110からトランザクションを受信する(s10)。この時、WEBサーバ110は、本発明のトランザクション管理方法に基づく特定の処理を行ってトランザクションを発行している訳では無く、通常の分散台帳ノードとしてトランザクションを発行している。
続いて、キューイングサーバ120は、s10で受信したトランザクションについて、キーが同一の既存トランザクションがトランザクション履歴123に格納済みか判定する(s11)。
上述の判定の結果、トランザクション履歴123にてキーが同一のトランザクションが特定されなかった場合(s12:N)、キューイングサーバ120は、s10で受信したトランザクションのキーと送信時刻(現在時刻)をトランザクション履歴123に記録し、当該トランザクションを分散台帳サーバ130に送信する(s13)。
一方、上述の判定の結果、トランザクション履歴123にてキーが同一のトランザクションが特定された場合(s12:Y)、キューイングサーバ120は、トランザクション履歴123にて特定されたトランザクションの送信時刻に、あらかじめ設定したブロックの生成時間を加えて基準時刻を算定する(s14)。
また、キューイングサーバ120は、上述のs14で得た基準時刻と現在時刻とを比較し、現在時刻が当該基準時刻を経過しているか判定する(s15)。
上述の判定の結果、現在時刻が上述の基準時刻を経過していた場合(s15:Y)、キューイングサーバ120は、トランザクション履歴123において、上述のトランザクションに関して保持している送信時刻を、現在時刻(新たな送信時刻)に更新し、当該トランザクションを分散台帳サーバ130に送信する(s16)。
一方、上述の判定の結果、現在時刻が上述の基準時刻を経過していない場合(s15:N)、キューイングサーバ120は、トランザクション履歴123において、上述のトランザクションに関して保持している送信時刻を、当該送信時刻にブロック生成時間を加えた時刻で更新する(s17)。また、キューイングサーバ120は、当該トランザクションをトランザクションキュー122に保存し、所定のタイマーをs17で更新した時刻に設定する(s18)。
キューイングサーバ120は、上述のトランザクションキュー122に保存されているトランザクションを、上述のタイマーが残り0となったことに応じて分散台帳サーバ13
0に送信する(s19)。
上述のトランザクション履歴123の具体的な例を図5にて示す。本実施形態における、トランザクション履歴123のテーブル構成例において、キー301はWEBサーバ110から受信したトランザクションのキーであり、送信時刻302は当該トランザクションの送信時刻である。
また図6に、本実施形態のトランザクションキュー122のテーブル構成例を示す。本実施形態におけるトランザクションキュー122において、キー401は、図4のフローチャートのステップs12でトランザクション履歴123に同一のキーを含むトランザクションが存在した場合のキーである。また値402は、当該キーを持つトランザクションのデータである。また、タイマー403は、図4のフローチャートのステップs18で設定したタイマーである。
<実施例2>
本実施例は、上述の実施例1におけるキューインサーバ120の他実施形態を示すものであり、監視機能124を備えた構成を示す。具体的な構成としては、図1におけるキューイングサーバ120に監視機能124を組み込んだものとなる。
図7は、本実施例におけるキューイングサーバ120の構成例を示す図である。ここで、監視機能124は、自組織の分散台帳サーバ130を監視してブロックの生成時間を監視する。また、他組織の監視機能124と通信を行い、それぞれのブロック生成時間を収集する。
各キューイングサーバ120における監視機能124は、それぞれの分散台帳サーバ130の分散台帳132におけるブロック生成時間を監視し、当該状態を保持している。ブロック生成時間の長短は、当該分散台帳サーバ130における処理負荷の大小を反映しやすい。よって、ブロック生成時間が基準よりも又は他分散台帳サーバ130よりも長い場合、その分散台帳サーバ130は処理負荷が大きくなっている、と推定できる。
そこでキューイングサーバ120は、図4のフローチャートにおけるステップs13、s16、s19に際し、無条件に自組織の分散台帳サーバ130にトランザクションを送信するのではなく、(監視機能124の監視結果で特定した)ブロック生成時間の短い組織の分散台帳サーバ130に当該トランザクションを送信するものとする。こうした制御を行うことで、分散台帳システムの性能向上が可能になる。
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
こうした本実施形態によれば、一般的なユースケースでもMVCCによる性能低下を低減可能となる。
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態のトランザクション管理方法において、前記キューイングサーバが、前記トランザクションの送信に際し、前記分散台帳サーバの負荷監視結果に基づいて、分散台帳サーバ間でより負荷の低い分散台帳サーバに前記トランザクションを送信する、としてもよい。
これによれば、分散台帳サーバそれぞれの処理負荷状況に基づき、より処理負荷の小さい状況にある分散台帳サーバにトランザクションを送信して、分散台帳システムの性能向上が可能になる。
また、本実施形態のトランザクション管理装置において、前記キューイングサーバが、前記トランザクションの送信に際し、前記分散台帳サーバの負荷監視結果に基づいて、分
散台帳サーバ間でより負荷の低い分散台帳サーバに前記トランザクションを送信するものである、としてもよい。
100 ユーザ
110 WEBサーバ
120 キューイングサーバ(トランザクション管理装置)
122 トランザクションキュー
123 トランザクション履歴
130 分散台帳サーバ
131 スマートコントラクト
132 分散台帳
510~530 組織
540、607 ネットワーク
601 CPU
602 メモリ
603 ストレージ
604 ネットワークインターフェイス
605 入出力装置

Claims (4)

  1. キューイングサーバが、
    ブロックチェーンシステムにおける、クライアントと分散台帳サーバとの間においてトランザクションの履歴を保持する処理と、当該履歴に基づいて、同一キーの更新を行うトランザクションを特定し、当該トランザクションをキューに保存する処理と、同じブロックで同一キー更新を行わない規定期間の経過後に前記トランザクションを分散台帳サーバに送信する処理を実行する、
    ことを特徴とするトランザクション管理方法。
  2. 前記キューイングサーバが、
    前記トランザクションの送信に際し、前記分散台帳サーバの負荷監視結果に基づいて、分散台帳サーバ間でより負荷の低い分散台帳サーバに前記トランザクションを送信する、
    ことを特徴とする請求項1に記載のトランザクション管理方法。
  3. キューイングサーバであって、
    ブロックチェーンシステムにおける、クライアントと分散台帳サーバとの間においてトランザクションの履歴を保持する処理と、当該履歴に基づいて、同一キーの更新を行うトランザクションを特定し、当該トランザクションをキューに保存する処理と、同じブロックで同一キー更新を行わない規定期間の経過後に前記トランザクションを送信する処理を実行するものである、
    ことを特徴とするトランザクション管理装置。
  4. 前記キューイングサーバが、
    前記トランザクションの送信に際し、前記分散台帳サーバの負荷監視結果に基づいて、分散台帳サーバ間でより負荷の低い分散台帳サーバに前記トランザクションを送信するものである、
    ことを特徴とする請求項3に記載のトランザクション管理装置。
JP2022142514A 2022-09-07 2022-09-07 トランザクション管理方法及びトランザクション管理装置 Pending JP2024037585A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022142514A JP2024037585A (ja) 2022-09-07 2022-09-07 トランザクション管理方法及びトランザクション管理装置
US18/179,416 US20240078225A1 (en) 2022-09-07 2023-03-07 Transaction management method and transaction management apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022142514A JP2024037585A (ja) 2022-09-07 2022-09-07 トランザクション管理方法及びトランザクション管理装置

Publications (1)

Publication Number Publication Date
JP2024037585A true JP2024037585A (ja) 2024-03-19

Family

ID=90060806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022142514A Pending JP2024037585A (ja) 2022-09-07 2022-09-07 トランザクション管理方法及びトランザクション管理装置

Country Status (2)

Country Link
US (1) US20240078225A1 (ja)
JP (1) JP2024037585A (ja)

Also Published As

Publication number Publication date
US20240078225A1 (en) 2024-03-07

Similar Documents

Publication Publication Date Title
US10467105B2 (en) Chained replication techniques for large-scale data streams
US10795905B2 (en) Data stream ingestion and persistence techniques
US9471585B1 (en) Decentralized de-duplication techniques for largescale data streams
US10691716B2 (en) Dynamic partitioning techniques for data streams
JP4621273B2 (ja) データ同期方法、データ同期プログラム、データベースサーバ装置、および、データベースシステム
US9971823B2 (en) Dynamic replica failure detection and healing
US9817703B1 (en) Distributed lock management using conditional updates to a distributed key value data store
US7702741B2 (en) Configuring or reconfiguring a multi-master information sharing environment
US9367261B2 (en) Computer system, data management method and data management program
JP7389793B2 (ja) 分散型異種ストレージシステムにおけるデータ一貫性のリアルタイムチェックのための方法、デバイス、およびシステム
JP5686034B2 (ja) クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム
US10606709B1 (en) Method and system for intelligently load balancing database backup operations in information technology environments
US12105735B2 (en) Asynchronous accounting method and apparatus for blockchain, medium and electronic device
US20210182246A1 (en) Efficient transaction log and database processing
US9984139B1 (en) Publish session framework for datastore operation records
CN111597270B (zh) 数据同步方法、装置、设备及计算机存储介质
CN110413694A (zh) 元数据管理方法及相关装置
US11397632B2 (en) Safely recovering workloads within a finite timeframe from unhealthy cluster nodes
US10185735B2 (en) Distributed database system and a non-transitory computer readable medium
CN114791925A (zh) 数据处理方法、装置、设备及计算机可读存储介质
JP5480046B2 (ja) 分散トランザクション処理システム、装置、方法およびプログラム
JP2024037585A (ja) トランザクション管理方法及びトランザクション管理装置
US10348596B1 (en) Data integrity monitoring for a usage analysis system
JP2013186765A (ja) バッチ処理システム、進捗状況確認装置、進捗状況確認方法、及びプログラム
CN112632033B (zh) 集群数据迁移方法、装置及电子设备