Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7645557B2 - ブロックチェーンに基づくデータ高速処理装置及び方法 - Google Patents
[go: Go Back, main page]

JP7645557B2 - ブロックチェーンに基づくデータ高速処理装置及び方法 - Google Patents

ブロックチェーンに基づくデータ高速処理装置及び方法 Download PDF

Info

Publication number
JP7645557B2
JP7645557B2 JP2023069824A JP2023069824A JP7645557B2 JP 7645557 B2 JP7645557 B2 JP 7645557B2 JP 2023069824 A JP2023069824 A JP 2023069824A JP 2023069824 A JP2023069824 A JP 2023069824A JP 7645557 B2 JP7645557 B2 JP 7645557B2
Authority
JP
Japan
Prior art keywords
value
file
index
key
blockchain
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.)
Active
Application number
JP2023069824A
Other languages
English (en)
Other versions
JP2024049305A (ja
Inventor
チョル パク、ギョン
Original Assignee
ケイフォーセキュリティ カンパニー リミテッド
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 ケイフォーセキュリティ カンパニー リミテッド filed Critical ケイフォーセキュリティ カンパニー リミテッド
Publication of JP2024049305A publication Critical patent/JP2024049305A/ja
Application granted granted Critical
Publication of JP7645557B2 publication Critical patent/JP7645557B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/235Update request formulation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • 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 Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データ処理技術に関し、より詳細には、ブロックチェーンシステムにおいてデータを処理するときに、性能を極大化可能な資料構造型方式により管理するブロックチェーンに基づくデータ高速処理装置及び方法に関する。
ブロックチェーンシステムが利用するデータベースは、既存のシステムにおいて活用されていたリレーショナルデータベース管理システム(RDBMS)ではなく、K-V(Key-Value)データベースと呼ばれるLevelDBである。
LevelDBとは、KeyとValueを1つのペアにして速やかに格納及び参照できるように作成されたデータベースのことをいう。
ブロックチェーンシステムにLevelDBを適用すれば、ブロックIDをKeyに設定し、valueに当たる値については、ブロックIDに当たるブロック情報値を指定することになる。したがって、ブロックIDに基づいて速やかにブロックチェーンに格納されたブロック値を参照することが可能になるのである。
K-V(Key-Value)データベースは、K-Vのペアをファイルに格納するとき、木(ツリー)型の資料構造型として格納することになり、ほぼすべてのLevelDBにおいては、普遍的に頻繁に用いられるB+木(B+ Tree)の形式でデータを積んで格納する。
B+木資料構造型は、Windowsオペレーティングシステム(OS)のファイルシステムのみならず、MySQL/Oracleなどの商用リレーショナルデータベース管理システムの資料格納構造として普遍的に頻繁に用いられる構造のものであって、効率よく多くのデータを格納できる方式であると言われている。
しかしながら、格納性能(速度)と参照性能(読み込み速度)を考慮したとき、格納されるデータの数が増加すれば増加するほど、性能効率がO(nlogn)に低下すると言われている。
ブロックチェーンのデータは、削除をせずに専ら追加専用(append-only)演算のみを行うため、ブロックが増加すれば増加するほど、LevelDBの性能は低下せざるを得ないと認められ、LevelDBがB+木資料構造型方式によりブロックを積むため、性能効率はB+木の効率(格納時にO(logN)、読み込み時にO(logN))に正比例して急減すると判断することができる。
本発明は、ブロックチェーンシステムに性能を極大化させるための資料構造を活用してデータを処理することから、データが増加しても性能効率に影響が出ないブロックチェーンに基づくデータ高速処理装置及び方法を提供する。
本発明が解決しようとする技術的課題は、上述した技術的課題に何ら制限されるものではなく、言及されていない他の技術的課題は、次の記載から本発明が属する技術分野において通常の知識を有する者にとって明らかである。
本発明の一態様によれば、ブロックチェーンに基づくデータ高速処理装置を提供する。
本発明の一実施形態によるブロックチェーンに基づくデータ高速処理装置は、<キー>:<バリュー>のペアのうちのキーを管理するキー管理部と、<キー>:<バリュー>のペアのうちのバリューを管理するバリュー管理部と、を含んでいてもよい。
本発明の他の態様によれば、ブロックチェーンに基づくデータ高速処理方法及びこれを実行するコンピュータープログラムを提供する。
本発明の一実施形態によるブロックチェーンに基づくデータ高速処理方法及びこれを実行するコンピュータープログラムは、駆動のためのコンフィグレーション情報を読み込むステップと、アクティブ(Active)状態のWALファイルの有無を確認するステップと、不変(Immutable)状態のWALファイルの有無を確認するステップと、フラッシュ(Flush)チャンネルを駆動するステップと、を含んでいてもよい。
本発明の実施形態によれば、<キーKey>:<バリューvalue>を格納するとき、最終的なバリューvalueはログ構造マージ(LSM:Log Structured Merge)木資料構造型方式により格納し、格納するときに用いるキーKeyは、B+木資料構造型として別途に格納して格納性能及び参照(読み込み)性能を従来の方式よりも改善することができる。
本発明の効果は、上記の効果に何ら限定されることはなく、本発明の詳細な説明の欄または特許請求の範囲に記載の発明の構成から推論可能なあらゆる効果を網羅する。
本発明の一実施形態によるブロックチェーンに基づくデータ高速処理装置を説明するための図。 本発明の一実施形態によるブロックチェーンに基づくデータ高速処理装置を説明するための図。 本発明の一実施形態によるブロックチェーンに基づくデータ高速処理方法及び構造図を示す例示図。 本発明の一実施形態によるブロックチェーンに基づくデータ高速処理方法及び構造図を示す例示図。 本発明の一実施形態によるブロックチェーンに基づくデータ高速処理方法及び構造図を示す例示図。 本発明の一実施形態によるブロックチェーンに基づくデータ高速処理方法及び構造図を示す例示図。 本発明の一実施形態によるブロックチェーンに基づくデータ高速処理方法及び構造図を示す例示図。 本発明の一実施形態によるブロックチェーンに基づくデータ高速処理方法及び構造図を示す例示図。
本発明は、様々な変更を加えることができ、種々の実施形態を有することができるので、特定の実施形態を図面に例示し、発明の詳細な説明の欄において詳しく説明する。しかし、これは、本発明を特定の実施形態に対して限定しようとするものではなく、本発明の思想及び技術範囲に含まれるあらゆる変更、均等物ないし代替物を含む。本発明について説明するに当たって、本発明と関わる公知の技術についての具体的な説明が本発明の要旨を余計に曖昧にする虞があると認められる場合にはその詳細な説明を省略する。なお、この明細書及び特許請求の範囲において用いられる単数の表現は、文脈からみて明らかに他の意味を有さない限り、一般的に「一つ以上」を意味する。
以下、添付図面に基づいて、本発明の好適な実施形態について詳しく説明する。添付図面に基づいて説明するに当たって、同一のまたは対応する構成要素には、同一の図面符号を付し、これについての重複する説明は省略する。
ブロックチェーンシステムは、既存のシステムにおいて活用されていたリレーショナルデータベース管理システム(RDBMS)ではなく、キーKeyとバリューValueとを<キーKey>:<バリューvalue>の1つのペアにして速やかに格納及び参照できるように作成されたキー-バリュー(Key-Value)データベースを適用して利用する。キー-バリュー(Key-Value)データベースは、<キーKey>:<バリューvalue>のペアを格納するとき、普遍的にB+木の資料構造の形式でデータを格納する。
本発明の実施形態によるブロックチェーンに基づくデータ高速処理装置10は、ブロックチェーンシステムにおいてキー-バリュー(Key-Value)を格納するとき、最終的なバリューvalueはログ構造マージ(LSM:Log Structured Merge)木資料構造型方式により格納し、格納するときに用いるキーKeyは、B+木資料構造型として別途に格納して格納性能及び参照(読み込み)性能を従来の方式よりも改善することができる。
図1及び図2は、本発明の一実施形態によるブロックチェーンに基づくデータ高速処理装置を説明するための図である。
図1を参照すると、ブロックチェーンに基づくデータ高速処理装置10は、キー管理部100及びバリュー管理部200を含んでいてもよい。
キー管理部100は、<キーKey>:<バリューvalue>のペアのうちのキーKeyを管理することができる。キー管理部100は、キーKeyをB+木資料構造型として格納することができる。キー管理部100は、キーKeyに対する速やかな検索のためにダイレクトキーインデックス(DKI:Direct Key Index)ファイルにキーKeyと索引Internal indeX, IXを登録(格納)することができる。キー管理部100は、<キーKey>:<バリューvalue>を読み込む過程において、<キーKey>に対する索引internal indeX, IXを速やかに検索することができる。
バリュー管理部200は、<キーKey>:<バリューvalue>のペアのうちのバリューValueを管理することができる。
バリュー管理部200は、バリューValueをログ構造マージ(LSM:Log Structured Merge)木資料構造型方式により格納することができる。例えば、バリュー管理部200は、バリューValueをValue Logファイルに格納することができる。
ブロックチェーンに基づくデータ高速処理装置10は、<キーKey>:<索引Internal indeX, IX>をDKIファイルに登録することができる。例えば、DKIファイルは、B+木資料構造型方式のものであってもよい。
ブロックチェーンに基づくデータ高速処理装置10は、<索引Internal indeX, IX>をValue Indexファイルに登録することができる。例えば、Value Indexファイルは、B+木資料構造型方式のものであってもよい。
ブロックチェーンに基づくデータ高速処理装置10は、<バリューvalue>をValue Logファイルに格納することができる。例えば、Value Logファイルは、ログ構造マージ(LSM:Log Structured Merge)木資料構造型方式によるLogファイルであってもよい。
ブロックチェーンに基づくデータ高速処理装置10は、入力されたキーKeyを用いて、DKIファイルから索引IX情報を探し出し、索引IX情報を用いて、Value Indexファイルからバリューvalueの位置情報を探し出し、バリューvalueを用いて、Value Logファイルからバリューvalueの位置情報を照会することができる。
ブロックチェーンに基づくデータ高速処理装置10は、バリューValueを照会するために、キーKeyを入力すれば、B+木ファイル構造のDKIファイル(Direct Key Index File)からキーKeyを探し出す。ブロックチェーンに基づくデータ高速処理装置10は、Logファイルから検索されたキーKeyに対応するバリューvalueの位置情報(Fid, Offset, EntrySize)を取得することができる。ブロックチェーンに基づくデータ高速処理装置10は、取得したFid(file id)に相当するLogファイルを探し出し、当該Logファイルにおいて定められた方式のオフセットOffsetを計算した後、エントリーサイズEntrySizeに見合う分のデータを読み込むと、当該データ構造の中にあるバリューValueを照会することができる。
図2を参照すると、ブロックチェーンに基づくデータ高速処理装置10は、DKIファイル(Direct Key Index File)に<キーKey>:<索引Internal indeX, IX>を登録し、<キーKey>:<バリューvalue>の読み込み過程においてキーKeyに対する索引Internal indeX, IXを読み込んで速やかにバリューValueを照会することができる。例えば、索引Internal indeX, IXは、キーKeyに対応するバリューvalueの位置情報(Fid, Offset, EnteySize)を含んでいてもよい。
ブロックチェーンに基づくデータ高速処理装置10は、<キーKey>:<バリューvalue>の書き込み/読み込みを処理する過程において、アクティブ(Active)、不変(Immutable)、及びフラッシュト(Flushed)の状態のうちのいずれか一つに情報を保持することができる。ブロックチェーンに基づくデータ高速処理装置10は、<キーKey>:<バリューvalue>の書き込み/読み込みを処理する過程において、同じデータをログ先行書き込み(WAL)ファイルとメモリー(MEMTable)の上に重複して格納し、かつ、保持することができる。
ブロックチェーンに基づくデータ高速処理装置10は、アクティブ(Active)状態のMEMTableとWALファイルを一定のサイズに設定して、リアルタイム入力値<索引Internal indeX, IX>:<バリューvalue>の書き込み/読み込みに用いることができる。
ブロックチェーンに基づくデータ高速処理装置10は、アクティブ(Active)状態のMEMTableの設定サイズが上限に達する(あるいは、フルになる、満杯になる、いっぱいになる)と、MEMTableとWALファイルを不変(Immutable)のMEMTableに登録し、不変(Immutable)の状態に設定する。
ブロックチェーンに基づくデータ高速処理装置10は、不変(Immutable)状態のMEMTableとWALファイルを非同期的にValue IndexファイルとValue Logファイルとしてデータを移した後、削除することができる。
ブロックチェーンに基づくデータ高速処理装置10は、フラッシュト(Flushed)状態であるValue LogファイルにはバリューValueを格納し、バリューValueの検索情報であるエントリーEntryを索引IXとともにValue Indexファイルに格納することができる。
図3から図8は、本発明の一実施形態によるブロックチェーンに基づくデータ高速処理方法及び構造図を示す例示図である。後述する各過程は、ブロックチェーンに基づくデータ高速処理装置を構成する各機能部が行う過程であるが、本発明についての簡潔かつ明確な説明のために、各ステップの主体をブロックチェーンに基づくデータ高速処理装置とまとめて称することにする。
図3を参照すると、ブロックチェーンに基づくデータ高速処理装置10は、ブロックチェーンシステムの駆動のための初期化作業を行うことができる。
ステップS310において、ブロックチェーンに基づくデータ高速処理装置10は、ブロックチェーンシステムの駆動のためのコンフィグレーション情報を読み込む。
ステップS320において、ブロックチェーンに基づくデータ高速処理装置10は、アクティブ(Active)状態のWALファイルの有無を把握することができる。ブロックチェーンに基づくデータ高速処理装置10は、アクティブ(Active)状態のWALファイルがある場合、アクティブ(Active)状態のWALファイル情報を活用して、アクティブ(Active)状態のMEMTableを生成することができる。ブロックチェーンに基づくデータ高速処理装置10は、アクティブ(Active)状態のWALファイルがない場合、ステップS330を行う。
ステップS330において、ブロックチェーンに基づくデータ高速処理装置10は、不変(Immutable)状態のWALファイルの有無を確認することができる。ブロックチェーンに基づくデータ高速処理装置10は、不変(Immutable)状態のWALファイルがある場合、不変(Immutable)状態のWALファイル情報を活用して、不変(Immutable)状態のMEMTableを生成することができる。ブロックチェーンに基づくデータ高速処理装置10は、不変(Immutable)状態のWALファイルがない場合、ステップS340を行う。
ステップS340において、ブロックチェーンに基づくデータ高速処理装置10は、Flushチャンネルを駆動することができる。
図4を参照すると、ブロックチェーンに基づくデータ高速処理装置10は、キーKeyをDKIファイル(Direct Key Index File)に格納することができる。例えば、ブロックチェーンに基づくデータ高速処理装置10は、[DID]:[BlockHeight]情報をDKIファイル(Direct Key Index File)に格納することができる。
ブロックチェーンに基づくデータ高速処理装置10は、システムの駆動に際して、アクティブ(Active)状態のWALファイル情報を用いて、Active MEMTableを生成することができる。
ブロックチェーンに基づくデータ高速処理装置10は、アクティブ(Active)状態のWALファイルとMEMTableを一定のサイズに見合う分だけ設定して、リアルタイムにて入力値<索引Internal indeX,IX>:<バリューvalue>の書き込み/読み込みに用いることができる。
ブロックチェーンに基づくデータ高速処理装置10は、アクティブ(Active)状態のMEMTableの設定サイズが上限に達すると(あるいは、フルになると、満杯になると、いっぱいになると)、不変(Immutable)状態に切り換え、新たなアクティブ(Active)状態のWALファイル生成し、WALファイル情報を用いて、新たなActive MEMTableを生成することができる。
ブロックチェーンに基づくデータ高速処理装置10は、同じデータ[BlockHeight]:[Block]をファイル(WALファイル)とメモリー(MEMTable)の上に重複して格納し、かつ、保持することができる。
ブロックチェーンに基づくデータ高速処理装置10は、システムの駆動に際して、不変(Immutable)状態のWALファイル情報を用いて、Immutable MEMTableを生成することができる。
ブロックチェーンに基づくデータ高速処理装置10は、周期的なフラッシュ(Flush)を通じて、不変(Immutable)状態に対応するValue Logファイルを生成し、Value Indexファイルをアップデートすることができる。
ブロックチェーンに基づくデータ高速処理装置10は、フラッシュト(Flushed)状態のValue Logファイルにはバリューvalueが格納され、バリューValueの検索情報であるエントリーEntryを索引IXとともにValue Indexファイルに格納することができる。
ブロックチェーンに基づくデータ高速処理装置10は、B+木資料構造型であるValue Indexファイルにブロックのメタ情報[BlockHeight]:[METAINFO]を格納することができる。例えば、メタ情報([METAINFO]={Fid, Offset, EntrySize})は、Value Logファイル(Fid)内のブロックの物理的な格納位置(Offset, EntrySize)情報であってもよい。
ブロックチェーンに基づくデータ高速処理装置10は、非同期的に不変(Immutable)状態のMEMTableとWALファイルをValue IndexファイルとValue Logファイルとしてデータを移した後、削除することができる。
図5は、本発明の一実施形態によるブロックチェーンに基づくデータ高速処理装置10がデータを格納(Put)する方法を説明する図である。
ここで、Put、Write、Saveはいずれも同じ意味で解釈して、「データをファイルに格納する」と表現することにする。
図5を参照すると、ステップS510において、ブロックチェーンに基づくデータ高速処理装置10は、<キーKey>:<索引IX>をDKIファイル(Direct Key Index File)に格納(write)することができる。
ステップS520において、ブロックチェーンに基づくデータ高速処理装置10は、<索引IX>:<バリューValue>をMEMTable/WALに格納(Put)する。
ステップS530において、ブロックチェーンに基づくデータ高速処理装置10は、Active MEMTableが満杯(full)になったか否かを判断することができる。格納(write)できるスペースがあれば、ブロックチェーンに基づくデータ高速処理装置10は、ステップS540を行う。
ステップS540において、ブロックチェーンに基づくデータ高速処理装置10は、<索引IX>:<バリューValue>をActive WALファイルに格納(write)する。
ステップS550において、ブロックチェーンに基づくデータ高速処理装置10は、<索引IX>:<バリューValue>をActive MEMTableに格納(write)する。
ステップS530において、Active MEMTableが満杯になって格納できるスペースがなければ、ブロックチェーンに基づくデータ高速処理装置10は、ステップS560を行う。
ステップS560において、ブロックチェーンに基づくデータ高速処理装置10は、新たなMEMTableで処理するか否かを判断して、新たなMEMTableが必要であれば、ステップS5610を行うことができる。
ステップS5610において、ブロックチェーンに基づくデータ高速処理装置10は、MEMTableの状態をアクティブ(Active)から不変(Immutable)に切り換えてImmutable MEMTableプール(pool)に追加することができる。
ステップS5620において、ブロックチェーンに基づくデータ高速処理装置10は、WALファイルの状態もまた不変(Immutable)状態に切り換えてImmutable WALファイルと明記することができる。
ステップS5630において、ブロックチェーンに基づくデータ高速処理装置10は、新たなActive WALファイルを生成することができる。
ステップS5640において、ブロックチェーンに基づくデータ高速処理装置10は、新たなActive MEMTableを生成することができる。
また、ブロックチェーンに基づくデータ高速処理装置10は、ステップS30とステップ40を同時に行うことができる。
ブロックチェーンに基づくデータ高速処理装置10は、新たなActive MEMTble及びWALファイルを生成した後、各ファイルに情報を格納するステップ(S540)を行うことができる。
ステップS560において、新たなMEMTableが不要である場合、ステップS570を行うことができる。
ステップS570において、ブロックチェーンに基づくデータ高速処理装置10は、ImmutableにFlushチャンネルを伝送することができる。
ブロックチェーンに基づくデータ高速処理装置10は、ステップS580において、FlushチャンネルへのMEMTableの伝送有無を確認し、ステップS5810において、MEMTableの受信有無を確認することができる。
ステップS5810において、MEMTableが受信された場合、ブロックチェーンに基づくデータ高速処理装置10は、ステップS5820において、バリューValueをValue Logファイルに格納(write)することができる。
ステップS5830において、ブロックチェーンに基づくデータ高速処理装置10は、<索引IX>:<バリューValue>をValue Indexファイルに格納(write)することができる。
ステップS5840において、ブロックチェーンに基づくデータ高速処理装置10は、Immutable MEMTableとImmutable WALファイルを削除することができる。
図6は、本発明の一実施形態により、ブロックチェーンに基づくデータ高速処理装置10がデータを格納(Put)する構造図の例示である。
ブロックチェーンに基づくデータ高速処理装置10は、キーKeyをDKIファイル(Direct Key Index File)に格納することができる。例えば、ブロックチェーンに基づくデータ高速処理装置10は、[DID]:[BlockHeight]情報をDKIファイル(Direct Key Index File)に格納することができる。
ブロックチェーンに基づくデータ高速処理装置10は、同じデータ[BlockHeight]:[Block]をファイル(WALファイル)とメモリーの上(MEMTable)に重複格納し、かつ、保持することができる。
ブロックチェーンに基づくデータ高速処理装置10は、MEMTableの状態をアクティブ(Active)から不変(Immutable)に切り換えてImmutable MEMTableプール(pool)に追加することができる。
ブロックチェーンに基づくデータ高速処理装置10は、WALファイルの状態もまた不変(Immutable)状態に切り換えてImmutable WALファイルと明記することができる。
ブロックチェーンに基づくデータ高速処理装置10は、周期的なフラッシュ(Flush)を通じて不変(Immutable)状態に対応するValue Logファイルを生成し、Value Indexファイルをアップデートすることができる。
ブロックチェーンに基づくデータ高速処理装置10は、フラッシュト(Flushed)状態のValue Logファイルにはバリューvalueが格納され、バリューvalueの検索情報であるエントリーEntryを索引Internal indeX, IXとともにValue Indexファイルに格納することができる。
ブロックチェーンに基づくデータ高速処理装置10は、B+木資料構造型であるValue Indexファイルにブロックのメタ情報[BlockHeight]:[METAINFO]を格納することができる。例えば、情報([METAINFO]={Fid, Offset, EntrySize})は、Value Logファイル(Fid)内のブロックの物理的な格納位置(Offset, EntrySize)情報である。
図7は、本発明の一実施形態によるブロックチェーンに基づくデータ高速処理装置10がデータを読み込む(Read)ための方法を説明する図である。
図7を参照すると、ブロックチェーンに基づくデータ高速処理装置10は、キーKeyを入力値として<キーKey>:<バリューvalue>のペアに対応するバリューValueを照会(Get)することができる。
ステップS710において、ブロックチェーンに基づくデータ高速処理装置10は、DKIファイルから入力されたキーKeyの索引IXを探し出す。
ステップS710において、ブロックチェーンに基づくデータ高速処理装置10は、索引IXがなければ、バリューValueを探し出すことができないため、誤りであると判断して終了する。ブロックチェーンに基づくデータ高速処理装置10は、入力されたキーKeyに対応する索引IXがある場合、ステップS730を行う。
ステップS730において、ブロックチェーンに基づくデータ高速処理装置10は、アクティブ(Active)状態のMEMTableとWALファイルに<索引IX>がある場合、<索引IX>:<バリューvalue>を読み込むことができる。ブロックチェーンに基づくデータ高速処理装置10は、アクティブ(Active)状態のMEMTableとWALファイルに索引IXがない場合、ステップS740を行う。
ステップS740において、ブロックチェーンに基づくデータ高速処理装置10は、不変(Immutable)状態のMEMTableとWALファイルに<索引IX>がある場合、<索引IX>:<バリューvalue>を読み込むことができる。ブロックチェーンに基づくデータ高速処理装置10は、不変(Immutable)状態のMEMTableとWALファイルに<索引IX>がない場合、ステップS750を行う。
ステップS750において、ブロックチェーンに基づくデータ高速処理装置10は、Value Indexファイルに索引IXがある場合、Value Logファイルから索引IXに対応するバリューValueを読み込むことができる。
図8を参照すると、ブロックチェーンに基づくデータ高速処理装置10は、B+木ファイルであるDKIファイルからキーKeyを探し出し、キーKeyに対応するバリューvalueの位置情報(Fid, Offset, EntrySize)をValue Indexファイルから取得することができる。ブロックチェーンに基づくデータ高速処理装置10は、取得した位置情報Fidに相当するLogファイルをValue Logファイルから探し出して、当該ファイルから定められた方式のオフセットOffsetを計算した後、エントリーサイズEntrySizeに見合う分のデータを読み込むと、当該データ構造の中にある入力されたキーKeyに対応するバリューValueを照会することができる。
上述したブロックチェーンに基づくデータ高速処理方法は、コンピューターにて読み取り可能な媒体の上にコンピューターにて読み取り可能なコードにより実現され得る。上記のコンピューターにて読み取り可能な記録媒体は、例えば、移動型記録媒体(コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイディスク、ユニバーサルシリアルバス(USB)記憶装置、移動式ハードディスク)であり得、固定式記録媒体(リードオンリーメモリ(ROM:read-onlymemory)、ランダムアクセスメモリ(RAM:randomaccessmemory)、パソコン内蔵型ハードディスク)であり得る。前記コンピューターにて読み取り可能な記録媒体に記録された前記コンピュータープログラムは、インターネットなどのネットワークを介して他のコンピューティング装置に伝送されて前記他のコンピューティング装置にインストールされてもよく、これにより、前記他のコンピューティング装置において使用可能になる。
以上において、本発明の実施形態を構成するすべての構成要素が一つに結合されたり、結合されて動作したりすると説明されたとして、本発明が必ずしもこのような実施形態に限定されるとは限らない。すなわち、本発明の目的範囲内であれば、そのすべての構成要素が一つ以上に選択的に結合して動作することもできる。
図中、動作が特定の順序に従って示されているが、必ず動作が図示の特定の順序に従って、または順次的な順序に従って実行されなければならないものと、あるいは、すべての図示の動作が実行されてはじめて所望の結果が得られるものではない。特定の状況においては、マルチタスキング及び並列処理が有利になることもある。さらに、上述した実施形態において様々な構成の分離は、そのような分離が必ず必要ではなく、説明されたプログラムコンポネント及びシステムは、一般に、単一のソフトウェア製品として一緒に統合されるということや、多数のソフトウェア製品としてパッケージできる。
以上、本発明についてその実施形態を中心として述べたきた。本発明が属する技術分野において通常の知識を有する者であれば、本発明が、本発明の本質的な特性を逸脱しない範囲内において変形された形態として実現され得る。よって、開示された実施形態は、限定的な視点ではなく、説明的な視点において考慮される。本発明の範囲は、前述した説明ではなく、特許請求の範囲に開示されており、それと同等の範囲内にあるあらゆる相違点は本発明に含まれている。
10 ブロックチェーンに基づくデータ高速処理装置
100 キー管理部
200 バリュー管理部

Claims (2)

  1. ブロックチェーンに基づくデータ高速処理装置において、
    <キー>:<バリュー>のペアのうちのキーを管理するキー管理部と、
    <キー>:<バリュー>のペアのうちのバリューをValue Logファイルに格納して管理するバリュー管理部と、を含み、
    前記キー管理部は、
    <キー>と<索引(IX)>をDKI(direct key index)ファイルに登録し、
    前記<索引(IX)>は、Value Indexファイルに格納し、
    前記<索引(IX)>は、<キー>に対応する<バリュー>の位置情報であるFid,Offset及びEntrySizeを含み、
    <キー>を用いてDKI(direct key index)ファイルから<索引(IX)>を探し出し、
    前記<索引(IX)>を用いてValue Indexファイルから<バリュー>の位置情報を探し出し、
    前記<バリュー>の位置情報のFidに該当するValue Logファイルを探し出し、前記Value Logファイルにおいて定められた方式のオフセットOffsetを計算した後、エントリーサイズEntrySizeに見合う分のデータを読み込んで、<バリュー>を照会し、
    前記DKI(direct key index)ファイル及びValue IndexファイルはB+木資料構造型であり、
    前記Value LogファイルはLSM木資料構造型である
    ことを特徴とするブロックチェーンに基づくデータ高速処理装置。
  2. ブロックチェーンに基づくデータ高速処理装置がコンピューターで実現され得る方法において、
    <キーKey>:<バリューvalue>の書き込み/読み込みを行う際、
    状態はアクティブ(Active)、不変(Immutable)、及びフラッシュト(Flushed)のうちのいずれか一つであり、
    同じデータをログ先行書き込み(WAL)ファイルとメモリー(MEMTable)の上に重複して格納し、
    アクティブ(Active)状態のMEMTableとWALファイルを一定のサイズに設定し、
    アクティブ(Active)状態のMEMTableの設定サイズが上限に達すると、MEMTableとWALファイルを不変(Immutable)のMEMTableに登録し、不変(Immutable)の状態に設定し、
    不変(Immutable)状態のMEMTableとWALファイルを非同期的にValue IndexファイルとValue Logファイル移した後、削除し、
    フラッシュト(Flushed)状態であるValue LogファイルにはバリューValueを格納し、バリューValueの検索情報であるエントリーEntryを索引IXとともにValue Indexファイルに格納し、
    <キーKey>:<索引IX>をDKIファイル(Direct Key Index File)に登録し、
    前記DKIファイル(Direct Key Index File)及びValue IndexファイルはB+木資料構造型であり、
    前記Value LogファイルはLSM木資料構造型である
    ことを特徴とするブロックチェーンに基づくデータ高速処理方法。
JP2023069824A 2022-09-28 2023-04-21 ブロックチェーンに基づくデータ高速処理装置及び方法 Active JP7645557B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2022-0123759 2022-09-28
KR1020220123759A KR102917073B1 (ko) 2022-09-28 2022-09-28 블록체인 기반 데이터 고속 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
JP2024049305A JP2024049305A (ja) 2024-04-09
JP7645557B2 true JP7645557B2 (ja) 2025-03-14

Family

ID=90140549

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023069824A Active JP7645557B2 (ja) 2022-09-28 2023-04-21 ブロックチェーンに基づくデータ高速処理装置及び方法

Country Status (4)

Country Link
US (1) US12013833B2 (ja)
JP (1) JP7645557B2 (ja)
KR (1) KR102917073B1 (ja)
GB (1) GB2622906B (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109285005A (zh) 2018-08-16 2019-01-29 北京京东尚科信息技术有限公司 区块链的拆分处理方法、装置、区块链节点及存储介质
CN109407979A (zh) 2018-09-27 2019-03-01 清华大学 多线程持久性b+树数据结构设计与实现方法
US20200167345A1 (en) 2019-07-31 2020-05-28 Alibaba Group Holding Limited Method and apparatus for storing blockchain state data and electronic device
US20200242103A1 (en) 2019-01-24 2020-07-30 EMC IP Holding Company LLC Storing a non-ordered associative array of pairs using an append-only storage medium
US10885022B1 (en) 2019-09-12 2021-01-05 Advanced New Technologies Co., Ltd. Log-structured storage systems
JP2021531564A (ja) 2018-12-26 2021-11-18 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド データ記憶方法、装置、機器及び記憶媒体

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109726206B (zh) 2018-12-26 2021-03-30 百度在线网络技术(北京)有限公司 区块链节点的数据处理方法、装置、设备和存储介质
CN109684334A (zh) 2018-12-26 2019-04-26 百度在线网络技术(北京)有限公司 键值对存储系统的数据存储方法、装置、设备和存储介质
CN110347660B (zh) 2019-06-28 2020-08-11 阿里巴巴集团控股有限公司 基于区块链的分级存储方法及装置、电子设备
EP3673376B1 (en) 2019-09-12 2022-11-30 Advanced New Technologies Co., Ltd. Log-structured storage systems
WO2021174499A1 (zh) 2020-03-05 2021-09-10 合肥达朴汇联科技有限公司 一种基于区块链的数据验证方法、装置及系统
CN112988761B (zh) 2021-05-07 2022-04-08 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109285005A (zh) 2018-08-16 2019-01-29 北京京东尚科信息技术有限公司 区块链的拆分处理方法、装置、区块链节点及存储介质
CN109407979A (zh) 2018-09-27 2019-03-01 清华大学 多线程持久性b+树数据结构设计与实现方法
JP2021531564A (ja) 2018-12-26 2021-11-18 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド データ記憶方法、装置、機器及び記憶媒体
US20200242103A1 (en) 2019-01-24 2020-07-30 EMC IP Holding Company LLC Storing a non-ordered associative array of pairs using an append-only storage medium
US20200167345A1 (en) 2019-07-31 2020-05-28 Alibaba Group Holding Limited Method and apparatus for storing blockchain state data and electronic device
US10885022B1 (en) 2019-09-12 2021-01-05 Advanced New Technologies Co., Ltd. Log-structured storage systems

Also Published As

Publication number Publication date
US20240104078A1 (en) 2024-03-28
US12013833B2 (en) 2024-06-18
JP2024049305A (ja) 2024-04-09
GB2622906A (en) 2024-04-03
KR20240044230A (ko) 2024-04-04
GB2622906B (en) 2024-11-20
KR102917073B1 (ko) 2026-01-26

Similar Documents

Publication Publication Date Title
CN110825748B (zh) 利用差异化索引机制的高性能和易扩展的键值存储方法
JP6639420B2 (ja) フラッシュ最適化データ・レイアウトのための方法、フラッシュ最適化記憶のための装置、およびコンピュータ・プログラム
US8161240B2 (en) Cache management
CN103902623B (zh) 用于在存储系统上存取文件的方法和系统
CN102722449B (zh) 基于SSD的Key-Value型本地存储方法及系统
US9996557B2 (en) Database storage system based on optical disk and method using the system
US9418094B2 (en) Method and apparatus for performing multi-stage table updates
US7689574B2 (en) Index and method for extending and querying index
CN104424219B (zh) 一种数据文件的管理方法及装置
JP2006018632A (ja) リレーショナルデータベースのインデックス追加プログラム,インデックス追加装置及びインデックス追加方法
WO2012083754A1 (zh) 处理脏数据的方法及装置
WO2012169102A1 (ja) データベース性能予測装置及びデータベース予測方法
CN113535670A (zh) 一种虚拟化资源镜像存储系统及其实现方法
WO2025236959A1 (zh) 分布式数据库的数据备份、恢复、查询方法及装置
CN102467523A (zh) 索引文件的建立方法与利用索引文件查询数据区块的方法
CN111124258B (zh) 全闪存阵列的数据存储方法、装置、设备及可读存储介质
Fevgas et al. LB-Grid: An SSD efficient grid file
CN108182244B (zh) 一种基于多层次列式存储结构的时序数据存储方法
US10585802B1 (en) Method and system for caching directories in a storage system
JP7645557B2 (ja) ブロックチェーンに基づくデータ高速処理装置及び方法
He et al. Read as Needed: Building {WiSER}, a {Flash-Optimized} Search Engine
JP2014130492A (ja) インデックスの生成方法及び計算機システム
KR20240044231A (ko) Dki 기반 데이터 고속 처리 장치 및 방법
GB2504894B (en) Data storage system
WO2011099114A1 (ja) ハイブリッド型データベースシステム及びその動作方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20241119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250225

R150 Certificate of patent or registration of utility model

Ref document number: 7645557

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150