KR20240044230A - 블록체인 기반 데이터 고속 처리 장치 및 방법 - Google Patents

블록체인 기반 데이터 고속 처리 장치 및 방법 Download PDF

Info

Publication number
KR20240044230A
KR20240044230A KR1020220123759A KR20220123759A KR20240044230A KR 20240044230 A KR20240044230 A KR 20240044230A KR 1020220123759 A KR1020220123759 A KR 1020220123759A KR 20220123759 A KR20220123759 A KR 20220123759A KR 20240044230 A KR20240044230 A KR 20240044230A
Authority
KR
South Korea
Prior art keywords
blockchain
value
processing device
data processing
based high
Prior art date
Application number
KR1020220123759A
Other languages
English (en)
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 케이포시큐리티 주식회사
Priority to KR1020220123759A priority Critical patent/KR20240044230A/ko
Priority to US17/974,026 priority patent/US20240104078A1/en
Priority to GB2304089.2A priority patent/GB2622906A/en
Priority to JP2023069824A priority patent/JP2024049305A/ja
Publication of KR20240044230A publication Critical patent/KR20240044230A/ko

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/22Indexing; Data structures therefor; Storage structures
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • 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/235Update request formulation
    • 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/2358Change logging, detection, and notification
    • 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
    • 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

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)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)

Abstract

본 발명은 데이터 처리 기술에 관한 것으로, 더욱 상세하게는 블록체인 시스템에서 데이터를 처리할 때 성능을 극대화할 수 있는 자료 구조형 방식으로 관리하는 블록체인 기반 데이터 고속 처리 장치 및 방법에 대한 것이다. 본 발명의 실시예에 따르면, <키(Key)>:<밸류(Value)>를 저장할 때 최종적인 밸류(value)는 LSM(Log Structured Merge) Tree 자료 구조형 방식을 저장하고, 저장할 때 사용하는 키(key)는 B+Tree 자료 구조형으로 별도로 저장하여 저장 성능 및 참조(읽기) 성능을 종래의 방식보다 개선할 수 있다.

Description

블록체인 기반 데이터 고속 처리 장치 및 방법 {DEVICE AND METHOD FOR DATA HIGH-SPEED PROCESSING BLOCKCHAIN-BASED}
본 발명은 데이터 처리 기술에 관한 것으로, 더욱 상세하게는 블록체인 시스템에서 데이터를 처리할 때 성능을 극대화할 수 있는 자료 구조형 방식으로 관리하는 블록체인 기반 데이터 고속 처리 장치 및 방법에 대한 것이다.
블록체인 시스템이 사용하는 데이터베이스는 기존 시스템에서 활용되던 관계형데이터베이스(RDBMS)가 아닌 K-V(Key-Value) DB로 일컬어지는 LevelDB를 사용한다
LevelDB는 Key와 Value를 한 쌍으로 묶어 빠르게 저장 및 참조될 수 있도록 만들어진 데이터베이스를 일컫는다
블록체인 시스템에 LevelDB를 적용하게 되면 블록ID를 Key로 설정하고, value에 해당하는 값은 블록ID에 해당하는 블록 정보 값을 지정하게 된다. 따라서 블록ID를 기반으로 빠르게 블록체인에 저장된 블록 값을 참조할 수 있게 되는 것이다
K-V(Key-Value) DB는 K-V 쌍을 file에 저장할 때 Tree 형의 자료구조형으로 저장하게 되며, 거의 모든 LevelDB에서는 보편적으로 많이 사용되는 B+ Tree 형식으로 데이터를 쌓아 저장한다.
B+ Tree 자료구조형은 Windows OS의 File System 뿐 아니라 MySQL/ Oracle과 같은 상용 관계형데이터베이스의 자료 저장 구조로 보편적으로 가장 많이 사용되는 구조로서 효율적으로 많은 데이터를 저장할 수 있는 방식으로 알려져 있다.
하지만 저장 성능(속도)와 참조 성능(읽기 속도)를 고려했을 때 저장되는 데이터의 개수가 증가할수록 성능 효율이 O(nlogn)으로 떨어진다고 알려져 있다.
하지만 저장 성능(속도)와 참조 성능(읽기 속도)를 고려했을 때 저장되는 데이터의 개수가 증가할수록 성능 효율이 O(nlogn)으로 떨어진다고 알려져 있다.
블록체인의 데이터는 삭제를 하지 않고 오로지 append-only 연산만을 수행하기 때문에 블록이 증가할수록 LevelDB의 성능은 떨어질 수밖에 없다고 볼 수 있으며 LevelDB가 B+ Tree 자료구조형으로 블록을 쌓기 때문에 성능 효율은 B+ Tree의 효율(저장 시 O(logN), 읽기 시 O(logN))에 정비례하여 급감한다고 판단할 수 있다
본 발명은 블록체인 시스템에 성능을 극대화하기 위한 자료 구조를 활용하여 데이터를 처리하므로 데이터가 증가하여도 성능 효율에 영향이 없는 블록체인 기반 데이터 고속 처리 장치 및 방법을 제공한다.
본 발명이 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 측면에 따르면, 블록체인 기반 데이터 고속 처리 장치를 제공한다.
본 발명의 일 실시 예에 따른 블록체인 기반 데이터 고속 처리 장치는 <키>:<밸류> 쌍 중 키를 관리하는 키 관리부 및 <키>:<밸류> 쌍 중 밸류를 관리하는 밸류 관리부를 포함할 수 있다.
본 발명의 다른 일 측면에 따르면, 블록체인 기반 데이터 고속 처리 방법 및 이를 실행하는 컴퓨터 프로그램을 제공한다.
본 발명의 일 실시 예에 따른 블록체인 기반 데이터 고속 처리 방법 및 이를 실행하는 컴퓨터 프로그램은 구동을 위한 구성 정보를 읽는 단계, 액티브(Active) 상태의 WAL파일의 유무를 확인하는 단계, 불변(Immutable) 상태의 WAL파일 유무를 확인하는 단계, 플러시(Flush) 채널을 구동 시키는 단계를 포함할 수 있다.
본 발명의 실시예에 따르면, <키(Key)>:<밸류(Value)>를 저장할 때 최종적인 밸류(value)는 LSM(Log Structured Merge) Tree 자료 구조형 방식을 저장하고, 저장할 때 사용하는 키(key)는 B+Tree 자료 구조형으로 별도로 저장하여 저장 성능 및 참조(읽기) 성능을 종래의 방식보다 개선할 수 있다.
본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 설명 또는 청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.
도 1 및 도 2는 본 발명의 일 실시예에 따른 블록체인 기반 데이터 고속 처리 장치를 설명하기 위한 도면들.
도 3 내지 도 8은 본 발명의 일 실시예에 따른 블록체인 기반 데이터 고속 처리 방법 및 구조도를 나타낸 예시 도면들.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서 및 청구항에서 사용되는 단수 표현은, 달리 언급하지 않는 한 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다.
이하, 본 발명의 바람직한 실시 예를 첨부도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
블록체인 시스템은 기존 시스템에서 활용되던 관계형 데이터베이스(RDBMS)가 아닌 키(key)와 밸류(Value)를 <키(key)>:<밸류(Value)> 한 쌍으로 묶어 빠르게 저장 및 참조될 수 있도록 만들어진 키-밸류(Key-Value) DB를 적용하여 사용한다. 키-밸류(Key-Value) DB는 <키(key)>:<밸류(Value)> 쌍을 저장할 때 보편적으로 B+Tree 자료 구조 형식으로 데이터를 저장한다.
본 발명의 실시예에 따른 블록체인 기반 데이터 고속 처리 장치(10)는 블록체인 시스템에서 키-밸류(Key-Value)를 저장할 때 최종적인 밸류(value)는 LSM(Log Structured Merge) Tree 자료 구조형 방식을 저장하고, 저장할 때 사용하는 키(key)는 B+Tree 자료 구조형으로 별도로 저장하여 저장 성능 및 참조(읽기) 성능을 종래의 방식보다 개선할 수 있다.
도 1 및 도 2는 본 발명의 일 실시예에 따른 블록체인 기반 데이터 고속 처리 장치를 설명하기 위한 도면들이다.
도 1을 참조하면, 블록체인 기반 데이터 고속 처리 장치(10)는 키 관리부(100) 및 밸류 관리부(200)를 포함할 수 있다.
키 관리부(100)는 <키(Key)>:<밸류(Value)> 쌍 중 키(Key)를 관리할 수 있다. 키 관리부(100)는 키(Key)를 B+Tree 자료 구조형으로 저장할 수 있다. 키 관리부(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) Tree 자료 구조형 방식을 저장할 수 있다. 예를 들면 밸류 저장부(200)는 밸류(Value)를 Value Log 파일에 저장할 수 있다.
블록체인 기반 데이터 고속 처리 장치(10)는 <키(Key)>:<색인(IX, Internal indeX)>를 DKI 파일에 등록할 수 있다. 예를 들면, DKI 파일은 B+Tree 자료 구조형 방식일 수 있다.
블록체인 기반 데이터 고속 처리 장치(10)는 <색인(IX, Internal indeX)>를 Value Index 파일에 등록할 수 있다. 예를 들면, Value Index 파일은 B+Tree 자료 구조형 방식일 수 있다.
블록체인 기반 데이터 고속 처리 장치(10)는 <밸류(Value)>를 Value Log 파일에 저장할 수 있다. 예를 들면, Value Log 파일은 LSM(Log-Structured Merge) Tree 자료 구조형 방식으로 Log 파일일 수 있다.
블록체인 기반 데이터 고속 처리 장치(10)는 입력된 키(Key)를 이용해 DKI 파일에서 색인(IX) 정보를 찾고, 색인(IX) 정보를 이용해 Value Index 파일에서 밸류(Value)의 위치 정보를 찾고, 밸류(Value)의 위치 정보를 이용해 Value Log 파일에서 밸류(Value)의 위치 정보를 조회할 수 있다.
블록체인 기반 데이터 고속 처리 장치(10)는 밸류(Value)를 조회하기 위해 키(Key)를 입력하면 B+Tree 파일구조의 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)>:<색인(IX, Internal indeX)>를 등록시키고, <키(Key)>:<밸류(Value)> 읽기 과정에서 키(Key)에 대한 색인(IX, Internal indeX)를 읽어 빠르게 밸류(Value)를 조회할 수 있다. 예를 들면, 색인(IX, Internal indeX)은 키(Key)에 대응하는 밸류(Value)의 위치 정보(Fid, Offset, EnteySize)를 포함할 수 있다.
블록체인 기반 데이터 고속 처리 장치(10)는 <키(Key)>:<밸류(Value)> 쓰기/읽기를 처리하는 과정에서 Active, Immutable, 및 Flushed 상태 중 어느 하나로 정보를 유지할 수 있다. 블록체인 기반 데이터 고속 처리 장치(10)는 <키(Key)>:<밸류(Value)> 쓰기/읽기를 처리하는 과정에서 동일한 데이터를 WAL파일과 메모리 상에MEMTable로 중복 저장하고 유지할 수 있다.
블록체인 기반 데이터 고속 처리 장치(10)는 Active 상태의 MEMTable과 WAL 파일을 일정한 크기로 설정하여 실시간 입력값 <색인(IX, Internal indeX)>:<밸류(Value)>를 쓰기/읽기에 사용할 수 있다.
블록체인 기반 데이터 고속 처리 장치(10)는 Active 상태의 MEMTable 설정 크기가 full에 도달하면 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+Tree 자료 구조형인 Value Index File에 블록의 메타정보 [BlockHeight]:[METAINFO]를 저장할 수 있다. 예를 들면 메타 정보([METAINFO]={Fid, Offset, EntrySize})는 Value Log File(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 File에 저장(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 MEMTable 및 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)를 색인(IX, Internal Index)와 함께 Value Index 파일에 저장할 수 있다.
블록체인 기반 데이터 고속 처리 장치(10)는 B+Tree 자료 구조형인 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+ Tree 파일인 DKI파일에서 키(Key)를 찾고, 키(Key)에 대응되는 밸류(Value)의 위치 정보(Fid, offset, EntrySize)를 Value Index 파일에서 획득할 수 있다. 블록체인 기반 데이터 고속 처리 장치(10)는 획득한 위치정보 Fid에 해당하는 Log 파일을 Value Log 파일에서 찾아, 해당 파일에서 정해진 방식의 Offset을 계산한 후 EntrySize 만큼의 데이터를 읽어 들이면, 해당 데이터 구조 안에 있는 입력된 키(Key)에 대응되는 밸류(Value)를 조회할 수 있다.
상술한 블록체인 기반 데이터 고속 처리 방법은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 발명의 실시 예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시 예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시 예 들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이제까지 본 발명에 대하여 그 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
10: 블록체인 기반 데이터 고속 처리 장치
100: 키 관리부
200: 밸류 관리부

Claims (9)

  1. 블록체인 기반 데이터 고속 처리 장치에 있어서,
    <키>:<밸류> 쌍 중 키를 관리하는 키 관리부; 및
    <키>:<밸류> 쌍 중 밸류를 관리하는 밸류 관리부를 포함하는 블록체인 기반 데이터 고속 처리 장치.
  2. 제1항에 있어서,
    상기 키는
    B+트리(Tree) 자료 구조형 파일에 저장하는 블록체인 기반 데이터 고속 처리 장치.
  3. 제1 항에 있어서,
    색인(IX)을 B+트리(Tree) 자료 구조형 파일에 저장하는 블록체인 기반 데이터 고속 처리 장치.
  4. 제3항에 있어서,
    상기 색인(IX)은
    상기 키에 대응되는 밸류의 위치 정보를 포함하는 블록체인 기반 데이터 고속 처리 장치.
  5. 블록체인 기반 데이터 고속 처리 장치가 초기화 하는 방법에 있어서,
    구동을 위한 구성 정보를 읽는 단계;
    액티브(Active) 상태의 WAL파일의 유무를 확인하는 단계;
    불변(Immutable) 상태의 WAL파일 유무를 확인하는 단계;
    플러시(Flush) 채널을 구동 시키는 단계를 포함하는 블록체인 기반 데이터 고속 처리 방법.
  6. 제5항에 있어서
    WAL 파일 정보를 활용하여 MEMTable을 생성하는 블록체인 기반 데이터 고속 처리 장치.
  7. 제6항에 있어서
    상기 MEMTable이 다 차면 새로운 WAL 파일을 생성하는 블록체인 기반 데이터 고속 처리 장치.
  8. 제5항에 있어서,
    주기적 플러시(Flush)를 통해 불변(Immutable) 상태에 대응되는 밸류 로그(Value Log) 파일을 생성하고, 밸류 인덱스(Value Index) 파일을 업데이트하는 블록체인 기반 데이터 고속 처리 방법.
  9. 제5항 내지 제8항 중 어느 하나에 따른 블록체인 기반 데이터 고속 처리 방법을 실행하는 컴퓨터가 판독 가능한 기록매체에 기록된 컴퓨터 프로그램.
KR1020220123759A 2022-09-28 2022-09-28 블록체인 기반 데이터 고속 처리 장치 및 방법 KR20240044230A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020220123759A KR20240044230A (ko) 2022-09-28 2022-09-28 블록체인 기반 데이터 고속 처리 장치 및 방법
US17/974,026 US20240104078A1 (en) 2022-09-28 2022-10-26 Blockchain-based high-speed data processing device and method thereof
GB2304089.2A GB2622906A (en) 2022-09-28 2023-03-21 Device and method for data high-speed processing blockchain-based
JP2023069824A JP2024049305A (ja) 2022-09-28 2023-04-21 ブロックチェーンに基づくデータ高速処理装置及び方法

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
KR20240044230A true KR20240044230A (ko) 2024-04-04

Family

ID=90140549

Family Applications (1)

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

Country Status (4)

Country Link
US (1) US20240104078A1 (ko)
JP (1) JP2024049305A (ko)
KR (1) KR20240044230A (ko)
GB (1) GB2622906A (ko)

Family Cites Families (7)

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

Also Published As

Publication number Publication date
GB2622906A (en) 2024-04-03
JP2024049305A (ja) 2024-04-09
US20240104078A1 (en) 2024-03-28

Similar Documents

Publication Publication Date Title
CN110825748B (zh) 利用差异化索引机制的高性能和易扩展的键值存储方法
US9195657B2 (en) Columnar storage of a database index
US10248676B2 (en) Efficient B-Tree data serialization
US7418544B2 (en) Method and system for log structured relational database objects
US10255235B2 (en) Database storage system based on jukebox and method using the system
US8572063B2 (en) Computer-implemented method for operating a database and corresponding computer-system
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
EP2270692A1 (en) Lifecycle-based horizontal partitioning
Plattner Sanssoucidb: An in-memory database for processing enterprise workloads
JP2011510379A (ja) 多次元データベースアーキテクチャ
US9477729B2 (en) Domain based keyword search
EP2562657B1 (en) Management of update transactions and crash recovery for columnar database
Yang et al. F1 Lightning: HTAP as a Service
US10083192B2 (en) Deleted database record reuse
US20180011897A1 (en) Data processing method having structure of cache index specified to transaction in mobile environment dbms
Wust et al. Efficient logging for enterprise workloads on column-oriented in-memory databases
CN101853278A (zh) 数据存储系统应用方法
KR20240044230A (ko) 블록체인 기반 데이터 고속 처리 장치 및 방법
KR20240044232A (ko) 키-밸류 데이터베이스 기반 데이터 고속 처리 장치 및 방법
KR20240044231A (ko) Dki 기반 데이터 고속 처리 장치 및 방법
KR20240044233A (ko) 로그 및 인덱스 최근접 데이터 고속 처리 장치 및 방법
CN115630087A (zh) 数据库语句的执行计划确定方法、装置、电子设备及介质
KR100982591B1 (ko) 단계적 인덱싱을 위한 파일 시스템, 메인 기억장치 및플래시 기억장치 그리고 상기 단계적 인덱싱을 통한 데이터관리 방법
TWI805544B (zh) 資料庫操作方法及裝置