JP2024049305A - ブロックチェーンに基づくデータ高速処理装置及び方法 - Google Patents
ブロックチェーンに基づくデータ高速処理装置及び方法 Download PDFInfo
- Publication number
- JP2024049305A JP2024049305A JP2023069824A JP2023069824A JP2024049305A JP 2024049305 A JP2024049305 A JP 2024049305A JP 2023069824 A JP2023069824 A JP 2023069824A JP 2023069824 A JP2023069824 A JP 2023069824A JP 2024049305 A JP2024049305 A JP 2024049305A
- Authority
- JP
- Japan
- Prior art keywords
- blockchain
- data processing
- processing device
- value
- speed data
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000004590 computer program Methods 0.000 claims description 4
- 238000003672 processing method Methods 0.000 claims description 4
- 238000011010 flushing procedure Methods 0.000 claims description 3
- 230000000737 periodic effect Effects 0.000 claims description 3
- 238000007796 conventional method Methods 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 230000000694 effects Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/235—Update request formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key 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/0833—Key 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/0836—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic 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)
Abstract
【課題】 ブロックチェーンシステムに性能を極大化させるための資料構造を活用してデータを処理することから、データが増加しても性能効率に影響が出ないブロックチェーンに基づくデータ高速処理装置及び方法を提供すること。【解決手段】 データ処理技術に関し、詳細には、ブロックチェーンシステムにおいてデータを処理するときに、性能を極大化可能な資料構造型方式により管理するブロックチェーンに基づくデータ高速処理装置及び方法に関する。<キーKey>:<バリューvalue>を格納するとき、最終的なバリューvalueはログ構造マージ(LSM:Log Structured Merge)木資料構造型方式により格納し、格納するときに用いるキーKeyは、B+木資料構造型として別途に格納して格納性能及び参照(読み込み)性能を従来の方式よりも改善することができる。【選択図】 図1
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は、ステップS630とステップS640を同時に行うことができる。
ブロックチェーンに基づくデータ高速処理装置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 バリュー管理部
100 キー管理部
200 バリュー管理部
Claims (9)
- ブロックチェーンに基づくデータ高速処理装置において、
<キー>:<バリュー>のペアのうちのキーを管理するキー管理部と、
<キー>:<バリュー>のペアのうちのバリューを管理するバリュー管理部と、
を含む
ことを特徴とするブロックチェーンに基づくデータ高速処理装置。 - 前記キーは、
B+木(B+ Tree)資料構造型ファイルに格納する
請求項1に記載のブロックチェーンに基づくデータ高速処理装置。 - 索引(IX)をB+木(B+ Tree)資料構造型ファイルに格納する
請求項1に記載のブロックチェーンに基づくデータ高速処理装置。 - 前記索引(IX)は、
前記キーに対応するバリューの位置情報を含む
請求項3に記載のブロックチェーンに基づくデータ高速処理装置。 - ブロックチェーンに基づくデータ高速処理装置が初期化をする方法において、
駆動のためのコンフィグレーション情報を読み込むステップと、
アクティブ(Active)状態のWALファイルの有無を確認するステップと、
不変(Immutable)状態のWALファイルの有無を確認するステップと、
フラッシュ(Flush)チャンネルを駆動するステップと、を含む
ことを特徴とするブロックチェーンに基づくデータ高速処理方法。 - WALファイル情報を活用して、MEMTableを生成する
請求項5に記載のブロックチェーンに基づくデータ高速処理装置。 - 前記MEMTableが満杯になると、新たなWALファイルを生成する
請求項6に記載のブロックチェーンに基づくデータ高速処理装置。 - 周期的なフラッシュ(Flush)を通じて、不変(Immutable)状態に対応するバリューログ(Value Log)ファイルを生成し、バリューインデックス(Value Index)ファイルをアップデートする
請求項5に記載のブロックチェーンに基づくデータ高速処理方法。 - 請求項5に記載のブロックチェーンに基づくデータ高速処理方法を実行する
ことを特徴とするコンピューターにて読み取り可能な記録媒体に記録されたコンピュータープログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220123759A KR20240044230A (ko) | 2022-09-28 | 2022-09-28 | 블록체인 기반 데이터 고속 처리 장치 및 방법 |
KR10-2022-0123759 | 2022-09-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024049305A true JP2024049305A (ja) | 2024-04-09 |
Family
ID=90140549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023069824A Pending JP2024049305A (ja) | 2022-09-28 | 2023-04-21 | ブロックチェーンに基づくデータ高速処理装置及び方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US12013833B2 (ja) |
JP (1) | JP2024049305A (ja) |
KR (1) | KR20240044230A (ja) |
GB (1) | GB2622906A (ja) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684307B (zh) | 2018-12-26 | 2021-06-22 | 百度在线网络技术(北京)有限公司 | 一种数据存储方法、装置、设备及存储介质 |
CN109684334A (zh) | 2018-12-26 | 2019-04-26 | 百度在线网络技术(北京)有限公司 | 键值对存储系统的数据存储方法、装置、设备和存储介质 |
CN109726206B (zh) | 2018-12-26 | 2021-03-30 | 百度在线网络技术(北京)有限公司 | 区块链节点的数据处理方法、装置、设备和存储介质 |
US11113270B2 (en) * | 2019-01-24 | 2021-09-07 | EMC IP Holding Company LLC | Storing a non-ordered associative array of pairs using an append-only storage medium |
CN110347660B (zh) | 2019-06-28 | 2020-08-11 | 阿里巴巴集团控股有限公司 | 基于区块链的分级存储方法及装置、电子设备 |
US11113272B2 (en) * | 2019-07-31 | 2021-09-07 | Advanced New Technologies Co., Ltd. | Method and apparatus for storing blockchain state data and electronic device |
WO2019228569A2 (en) * | 2019-09-12 | 2019-12-05 | Alibaba Group Holding Limited | Log-structured storage systems |
CN111886591A (zh) | 2019-09-12 | 2020-11-03 | 创新先进技术有限公司 | 日志结构存储系统 |
WO2021174499A1 (zh) | 2020-03-05 | 2021-09-10 | 合肥达朴汇联科技有限公司 | 一种基于区块链的数据验证方法、装置及系统 |
CN112988761B (zh) | 2021-05-07 | 2022-04-08 | 支付宝(杭州)信息技术有限公司 | 区块链数据存储方法及装置、电子设备 |
-
2022
- 2022-09-28 KR KR1020220123759A patent/KR20240044230A/ko unknown
- 2022-10-26 US US17/974,026 patent/US12013833B2/en active Active
-
2023
- 2023-03-21 GB GB2304089.2A patent/GB2622906A/en active Pending
- 2023-04-21 JP JP2023069824A patent/JP2024049305A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
GB2622906A (en) | 2024-04-03 |
US12013833B2 (en) | 2024-06-18 |
US20240104078A1 (en) | 2024-03-28 |
KR20240044230A (ko) | 2024-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6639420B2 (ja) | フラッシュ最適化データ・レイアウトのための方法、フラッシュ最適化記憶のための装置、およびコンピュータ・プログラム | |
JP4313323B2 (ja) | サーチ可能なアーカイブ | |
US9418094B2 (en) | Method and apparatus for performing multi-stage table updates | |
US7689574B2 (en) | Index and method for extending and querying index | |
CN102541968B (zh) | 一种索引方法 | |
US8161240B2 (en) | Cache management | |
US9996557B2 (en) | Database storage system based on optical disk and method using the system | |
US11580162B2 (en) | Key value append | |
JP6329247B2 (ja) | ジュークボックスに基づくデータベース記憶システム及びそれを用いた方法 | |
EP2735978A1 (en) | Storage system and management method used for metadata of cluster file system | |
CN110825748A (zh) | 利用差异化索引机制的高性能和易扩展的键值存储方法 | |
US11221999B2 (en) | Database key compression | |
WO2012083754A1 (zh) | 处理脏数据的方法及装置 | |
CN102567415B (zh) | 一种数据库的控制方法和装置 | |
CN111124258B (zh) | 全闪存阵列的数据存储方法、装置、设备及可读存储介质 | |
KR20220143578A (ko) | 데이터 접속 방법, 데이터 접속 제어 장치 및 데이터 접속 시스템 | |
US10083192B2 (en) | Deleted database record reuse | |
KR20090066071A (ko) | 메타 데이터 관리 시스템 및 방법 | |
CN102508790B (zh) | 一种应用于内容解析存储的基于内容的缓存方法 | |
JP2024049305A (ja) | ブロックチェーンに基づくデータ高速処理装置及び方法 | |
US20050246385A1 (en) | Database-rearranging program, database-rearranging method, and database-rearranging apparatus | |
He et al. | Read as Needed: Building {WiSER}, a {Flash-Optimized} Search Engine | |
KR20240044232A (ko) | 키-밸류 데이터베이스 기반 데이터 고속 처리 장치 및 방법 | |
KR20240044231A (ko) | Dki 기반 데이터 고속 처리 장치 및 방법 | |
GB2504894B (en) | Data storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230421 |