KR20240044231A - Dki 기반 데이터 고속 처리 장치 및 방법 - Google Patents

Dki 기반 데이터 고속 처리 장치 및 방법 Download PDF

Info

Publication number
KR20240044231A
KR20240044231A KR1020220123760A KR20220123760A KR20240044231A KR 20240044231 A KR20240044231 A KR 20240044231A KR 1020220123760 A KR1020220123760 A KR 1020220123760A KR 20220123760 A KR20220123760 A KR 20220123760A KR 20240044231 A KR20240044231 A KR 20240044231A
Authority
KR
South Korea
Prior art keywords
dki
value
processing device
data processing
key
Prior art date
Application number
KR1020220123760A
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 KR1020220123760A priority Critical patent/KR20240044231A/ko
Publication of KR20240044231A publication Critical patent/KR20240044231A/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/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
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • 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)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

DKI 기반 데이터 고속 처리 장치 및 방법{DEVICE AND METHOD FOR DATA HIGH-SPEED PROCESSING BASED ON DIRECT KEY INDEX}
본 발명은 데이터 처리 기술에 관한 것으로, 더욱 상세하게는 블록체인 시스템에서 데이터를 처리할 때 성능을 극대화할 수 있는 자료 구조형 방식으로 관리하는 DKI 기반 데이터 고속 처리 장치 및 방법에 대한 것이다.
블록체인 시스템이 사용하는 데이터베이스는 기존 시스템에서 활용되던 관계형데이터베이스(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))에 정비례하여 급감한다고 판단할 수 있다
본 발명은 블록체인 시스템에 성능을 극대화하기 위한 자료 구조를 활용하여 데이터를 처리하므로 데이터가 증가하여도 성능 효율에 영향이 없는 DKI 기반 데이터 고속 처리 장치 및 방법을 제공한다.
본 발명이 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 측면에 따르면, DKI 기반 데이터 고속 처리 장치를 제공한다.
본 발명의 일 실시 예에 따른 DKI 기반 데이터 고속 처리 장치는 <키>:<밸류> 쌍 중 키를 관리하는 키 관리부 및 <키>:<밸류> 쌍 중 밸류를 관리하는 밸류 관리부를 포함하되, 상기 키는 B+트리(Tree) 자료 구조형 방식의 디이렉트 키 인덱스 파일에 저장할 수 있다.
본 발명의 다른 일 측면에 따르면, DKI 기반 데이터 고속 처리 방법 및 이를 실행하는 컴퓨터 프로그램을 제공한다.
본 발명의 일 실시 예에 따른 DKI 기반 데이터 고속 처리 방법 및 이를 실행하는 컴퓨터 프로그램은 구동을 위한 구성 정보를 읽는 단계, 액티브(Active) 상태의 WAL파일의 유무를 확인하는 단계, 불변(Immutable) 상태의 WAL파일 유무를 확인하는 단계, 플러시(Flush) 채널을 구동 시키는 단계를 포함할 수 있다.
본 발명의 실시예에 따르면, <키(Key)>:<밸류(Value)>를 저장할 때 최종적인 밸류(value)는 LSM(Log Structured Merge) Tree 자료 구조형 방식을 저장하고, 저장할 때 사용하는 키(key)는 B+Tree 자료 구조형으로 별도로 저장하여 저장 성능 및 참조(읽기) 성능을 종래의 방식보다 개선할 수 있다.
본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 설명 또는 청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.
도 1 및 도 2는 본 발명의 일 실시예에 따른 DKI 기반 데이터 고속 처리 장치를 설명하기 위한 도면들.
도 3 내지 도 8은 본 발명의 일 실시예에 따른 DKI 기반 데이터 고속 처리 방법 및 구조도를 나타낸 예시 도면들.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서 및 청구항에서 사용되는 단수 표현은, 달리 언급하지 않는 한 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다.
이하, 본 발명의 바람직한 실시 예를 첨부도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
블록체인 시스템은 기존 시스템에서 활용되던 관계형 데이터베이스(RDBMS)가 아닌 키(key)와 밸류(Value)를 <키(key)>:<밸류(Value)> 한 쌍으로 묶어 빠르게 저장 및 참조될 수 있도록 만들어진 키-밸류(Key-Value) DB를 적용하여 사용한다. 키-밸류(Key-Value) DB는 <키(key)>:<밸류(Value)> 쌍을 저장할 때 보편적으로 B+Tree 자료 구조 형식으로 데이터를 저장한다.
본 발명의 실시예에 따른 DKI 기반 데이터 고속 처리 장치(10)는 블록체인 시스템에서 키-밸류(Key-Value)를 저장할 때 최종적인 밸류(value)는 LSM(Log Structured Merge) Tree 자료 구조형 방식을 저장하고, 저장할 때 사용하는 키(key)는 B+Tree 자료 구조형으로 별도로 저장하여 저장 성능 및 참조(읽기) 성능을 종래의 방식보다 개선할 수 있다.
도 1 및 도 2는 본 발명의 일 실시예에 따른 DKI 기반 데이터 고속 처리 장치를 설명하기 위한 도면들이다.
도 1을 참조하면, DKI 기반 데이터 고속 처리 장치(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 파일에 저장할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 <키(Key)>:<색인(IX, Internal indeX)>를 DKI 파일에 등록할 수 있다. 예를 들면, DKI 파일은 B+Tree 자료 구조형 방식일 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 <색인(IX, Internal indeX)>를 Value Index 파일에 등록할 수 있다. 예를 들면, Value Index 파일은 B+Tree 자료 구조형 방식일 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 <밸류(Value)>를 Value Log 파일에 저장할 수 있다. 예를 들면, Value Log 파일은 LSM(Log-Structured Merge) Tree 자료 구조형 방식으로 Log 파일일 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 입력된 키(Key)를 이용해 DKI 파일에서 색인(IX) 정보를 찾고, 색인(IX) 정보를 이용해 Value Index 파일에서 밸류(Value)의 위치 정보를 찾고, 밸류(Value)의 위치 정보를 이용해 Value Log 파일에서 밸류(Value)의 위치 정보를 조회할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 밸류(Value)를 조회하기 위해 키(Key)를 입력하면 B+Tree 파일구조의 DKI 파일(Direct Key Index File)에서 키(Key)를 찾는다. DKI 기반 데이터 고속 처리 장치(10)는 Log 파일에서 검색된 키(Key)에 대응하는 밸류(Value)의 위치 정보(Fid, Offset, EntrySize)를 획득할 수 있다. DKI 기반 데이터 고속 처리 장치(10)는 획득한 Fid(file id)에 해당하는 Log 파일을 찾고, 해당 Log 파일에서 정해진 방식의 Offset을 계산한 후 EntrySize 만큼의 데이터를 읽어 들이면, 해당 데이터 구조 안에 있는 밸류(Value)를 조회할 수 있다.
도 2를 참조하면, DKI 기반 데이터 고속 처리 장치(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)를 포함할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 <키(Key)>:<밸류(Value)> 쓰기/읽기를 처리하는 과정에서 Active, Immutable, 및 Flushed 상태 중 어느 하나로 정보를 유지할 수 있다. DKI 기반 데이터 고속 처리 장치(10)는 <키(Key)>:<밸류(Value)> 쓰기/읽기를 처리하는 과정에서 동일한 데이터를 WAL파일과 메모리 상에MEMTable로 중복 저장하고 유지할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 Active 상태의 MEMTable과 WAL 파일을 일정한 크기로 설정하여 실시간 입력값 <색인(IX, Internal indeX)>:<밸류(Value)>를 쓰기/읽기에 사용할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 Active 상태의 MEMTable 설정 크기가 full에 도달하면 MEMTable과 WAL파일을 Immutable MEMTable에 등록하고Immutable 상태로 설정한다.
DKI 기반 데이터 고속 처리 장치(10)는 Immutable 상태의MEMTable과 WAL파일을 비동기적으로 Value Index 파일과 Value Log 파일로 데이터를 옮긴 후 삭제할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 Flushed 상태인 Value Log 파일에는 밸류(Value)를 저장하고, 밸류(Value)의 검색 정보인 Entry를 색인(IX)과 함께 Value Index 파일에 저장할 수 있다.
도 3 내지 도 8은 본 발명의 일 실시예에 따른 DKI 기반 데이터 고속 처리 방법 및 구조도를 나타낸 예시 도면들이다. 이하 설명하는 각 과정은 단계에서 DKI 기반 데이터 고속 처리 장치를 구성하는 각 기능부가 수행하는 과정이나, 본 발명의 간결하고 명확한 설명을 위해 각 단계의 주체를 DKI 기반 데이터 고속 처리 장치로 통칭하도록 한다.
도 3을 참조하면, DKI 기반 데이터 고속 처리 장치(10)는 블록체인 시스템 구동을 위한 초기화 작업을 수행할 수 있다.
S310 단계에서 DKI 기반 데이터 고속 처리 장치(10)는 블록체인 시스템 구동을 위한 구성 정보를 읽는다.
S320 단계에서 DKI 기반 데이터 고속 처리 장치(10)는 Active 상태의 WAL 파일의 유무를 파악할 수 있다. DKI 기반 데이터 고속 처리 장치(10)는 Active 상태의 WAL 파일이 있는 경우 Active 상태의 WAL 파일 정보를 활용하여Active 상태의 MEMTable을 생성할 수 있다. DKI 기반 데이터 고속 처리 장치(10)는 Active 상태의 WAL 파일이 없는 경우 S330 단계를 수행한다.
S330 단계에서 DKI 기반 데이터 고속 처리 장치(10)는 Immutable 상태의 WAL 파일 유무를 확인할 수 있다. DKI 기반 데이터 고속 처리 장치(10)는 Immutable 상태의 WAL 파일이 있는 경우 Immutable 상태의 WAL 파일 정보를 활용하여 Immutable 상태의 MEMTable을 생성할 수 있다. DKI 기반 데이터 고속 처리 장치(10)는 Immutable 상태의 WAL 파일이 없는 경우 S340 단계를 수행한다.
S340단계에서 DKI 기반 데이터 고속 처리 장치(10)는 Flush 채널을 구동시킬 수 있다.
도 4를 참조하면, DKI 기반 데이터 고속 처리 장치(10)는 키(key)를 DKI 파일(Direct Key Index File)에 저장할 수 있다. 예를 들면, DKI 기반 데이터 고속 처리 장치(10)는 [DID]:[BlockHeight] 정보를 DKI 파일(Direct Key Index File)에 저장할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 시스템 구동 시 Active 상태의 WAL 파일 정보를 이용해 Active MEMTable을 생성할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 Active 상태의 WAL 파일과 MEMTable을 일정한 크기 만큼 설정하여 실시간으로 입력값<색인(Internal indeX, IX)>:<밸류(Value)>을 쓰기/읽기에 사용할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 Active 상태의 MEMTable이 설정된 크기만큼 다 차면 Immutable로 상태 변환하고, 새로운 Active 상태의 WAL 파일 생성하고, WAL 파일 정보를 이용해 새로운Active MEMTable을 생성할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 동일한 데이터 [BlockHeight]:[Block]을 파일(WAL파일)과 메모리 상(MEMTable)에 중복 저장하고 유지할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 시스템 구동 시 Immutable 상태의 WAL 파일 정보를 이용해 Immutable MEMTable을 생성할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 주기적 Flush를 통해 Immutable 상태에 대응되는 Value Log 파일을 생성하고, Value Index 파일을 업데이트할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 Flushed 상태의 Value Log 파일에는 밸류(Value)가 저장되고, 값(Value)의 검색 정보인 엔트리(entry)를 색인(IX)와 함께 Value Index 파일에 저장할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 B+Tree 자료 구조형인 Value Index File에 블록의 메타정보 [BlockHeight]:[METAINFO]를 저장할 수 있다. 예를 들면 메타 정보([METAINFO]={Fid, Offset, EntrySize})는 Value Log File(Fid) 내 블록의 물리적 저장 위치(offset, EntrySize) 정보일 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 비동기적으로 Immutable 상태의 MEMTable과 WAL 파일을 Value Index 파일과 Value Log 파일로 데이터를 옮긴 후 삭제할 수 있다.
도5는 본 발명의 일 실시예에 따른 DKI 기반 데이터 고속 처리 장치(10)가 데이터를 저장(Put) 방법을 설명한 도면이다.
여기서 Put, write, save 모두 동일한 뜻으로 해석하여 데이터를 파일에 저장한다고 표현하도록 한다.
도 5를 참조하면, S510단계에서 DKI 기반 데이터 고속 처리 장치(10)는 <키(Key)>:<색인(IX)> 를 DKI 파일(Direct Key Index File)에 저장(write)할 수 있다.
S520단계에서 DKI 기반 데이터 고속 처리 장치(10)는 <색인(IX)>:<밸류(Value)를 MEMTable/WAL에 저장(Put)한다.
S530단계에서 DKI 기반 데이터 고속 처리 장치(10)는 Active MEMTable이 다 찼는지(Full) 판단할 수 있다. 저장(write) 할 수 있는 공간이 있다면 DKI 기반 데이터 고속 처리 장치(10)는 S540 단계를 수행한다.
S540단계에서 DKI 기반 데이터 고속 처리 장치(10)는 <색인(IX)>:<값(Value)> 을 Active WAL File에 저장(write)한다.
S550단계에서 DKI 기반 데이터 고속 처리 장치(10)는 <색인(IX)>:<값(Value)> 을 Active MEMTable에 저장(write)한다.
S530단계에서 Active MEMTable이 다 차서 저장할 공간이 없다면 DKI 기반 데이터 고속 처리 장치(10)는 S560 단계를 수행한다.
S560단계에서 DKI 기반 데이터 고속 처리 장치(10)는 새로운 MEMTable 로 처리할 것인지 판단하여, 새로운 MEMTable이 필요하면 S5610 단계를 수행할 수 있다.
S5610 단계에서 DKI 기반 데이터 고속 처리 장치(10)는 MEMTable의 상태를 Active에서 Immutable로 변경하여 Immutable MEMTable풀(pool)에 추가할 수 있다.
S5620 단계에서 DKI 기반 데이터 고속 처리 장치(10)는 WAL 파일의 상태도 immutable 상태로 변경하여 Immutable WAL 파일로 명기할 수 있다.
S5630 단계에서 DKI 기반 데이터 고속 처리 장치(10)는 새로운 Active WAL 파일을 생성할 수 있다.
S5640 단계에서 DKI 기반 데이터 고속 처리 장치(10)는 새로운 Active MEMTable을 생성할 수 있다.
또한 블록체인 기반 데이터 고속 처리 장치(10)는 S630단계와 S640단계를 동시에 수행할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 새로운Active MEMTable 및 WAL 파일을 생성한 후 각 파일에 정보를 저장하는 S540 단계를 수행할 수 있다.
S560단계에서 새로운 MEMTable이 필요하지 않는 경우 S570 단계를 수행할 수 있다.
S570 단계에서 DKI 기반 데이터 고속 처리 장치(10)는 Immutable로 Flush 채널을 전송할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 S580 단계에서 Flush 채널로 MEMTable의 전송 유무를 확인하고, S5810단계에서 MEMTable의 수신 여부를 확인할 수 있다.
S5810 단계에서 MEMTable 수신된 경우 DKI 기반 데이터 고속 처리 장치(10)는 S5820 단계에서 밸류(Value)를 Value Log 파일에 저장(write)할 수 있다.
S5830단계에서 DKI 기반 데이터 고속 처리 장치(10)는 <색인(IX)>:<값(Value)> 을 Value Index 파일에 저장(write)할 수 있다.
S5840단계에서 DKI 기반 데이터 고속 처리 장치(10)는 Immutable MEMTable과 Immutable WAL 파일을 삭제할 수 있다.
도 6은 본 발명의 일 실시 예에 따라 DKI 기반 데이터 고속 처리 장치(10)가 데이터를 저장(put)하는 구조도 예시이다.
DKI 기반 데이터 고속 처리 장치(10)는 키(key)를 DKI 파일(Direct Key Index File)에 저장할 수 있다. 예를 들면 DKI 기반 데이터 고속 처리 장치(10)는 [DID]:[BlockHeight] 정보를 DKI파일(Direct Key Index File)에 저장할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 동일한 데이터 [BlockHeight]:[Block]을 파일(WAL파일)과 메모리 상(MEMTable)에 중복 저장하고 유지할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 MEMTable의 상태를 Active에서 Immutable로 변경하여 Immutable MEMTable풀(pool)에 추가할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 WAL 파일의 상태도 immutable 상태로 변경하여 Immutable WAL 파일로 명기할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 주기적 Flush를 통해 Immutable 상태에 대응되는 Value Log 파일을 생성하고, Value Index 파일을 업데이트할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 Flushed 상태의 Value Log 파일에는 밸류(Value)가 저장되고, 밸류(Value)의 검색 정보인 엔트리(entry)를 색인(IX, Internal Index)와 함께 Value Index 파일에 저장할 수 있다.
DKI 기반 데이터 고속 처리 장치(10)는 B+Tree 자료 구조형인 Value Index 파일에 블록의 메타정보 [BlockHeight]:[METAINFO]를 저장할 수 있다. 예를 들면 메타 정보([METAINFO]={Fid, Offset, EntrySize})는 Value Log 파일(Fid) 내 블록의 물리적 저장 위치(Offset, EntrySize) 정보이다.
도7는 본 발명의 일 실시예에 따른 DKI 기반 데이터 고속 처리 장치(10)가 데이터를 읽기(read) 위한 방법을 설명한 도면이다.
도 7을 참조하면, DKI 기반 데이터 고속 처리 장치(10)는 키(Key)를 입력값으로 하여 <키(Key)>:<밸류(Value)> 쌍으로 대응되는 밸류(Value)를 조회(Get)할 수 있다.
S710 단계에서 DKI 기반 데이터 고속 처리 장치(10)는 DKI 파일에서 입력된 키(Key)의 색인(IX)을 찾는다.
S710 단계에서 DKI 기반 데이터 고속 처리 장치(10)는 색인(IX)이 없다면 밸류(Value)를 찾을 수 없으므로 오류로 판단하고 종료한다. DKI 기반 데이터 고속 처리 장치(10)는 입력된 키(Key)에 대응되는 색인(IX)이 있는 경우 S730 단계를 수행한다.
S730단계에서 DKI 기반 데이터 고속 처리 장치(10)는 Active 상태의 MEMTable과 WAL 파일에 <색인(IX)>이 있는 경우 <색인(IX)>:<밸류(Value)>를 읽을 수 있다. DKI 기반 데이터 고속 처리 장치(10)는 Active 상태의 MEMTable과 WAL 파일에 색인(IX)이 없는 경우 S740 단계를 수행한다.
S740 단계에서 DKI 기반 데이터 고속 처리 장치(10)는 Immutable 상태의 MEMTable과 WAL 파일에 <색인(IX)>이 있는 경우 <색인(IX)>:<밸류(Value)>를 읽을 수 있다. DKI 기반 데이터 고속 처리 장치(10)는 Immutable 상태의 MEMTable과 WAL 파일에 <색인(IX)>이 없는 경우 S750 단계를 수행한다.
S750 단계에서 DKI 기반 데이터 고속 처리 장치(10)는 Value Index 파일에 색인(IX)이 있는 경우 Value Log 파일에서 색인(IX)에 대응되는 밸류(Value)를 읽을 수 있다.
도8을 참조하면, DKI 기반 데이터 고속 처리 장치(10)는 B+ Tree 파일인 DKI파일에서 키(Key)를 찾고, 키(Key)에 대응되는 밸류(Value)의 위치 정보(Fid, offset, EntrySize)를 Value Index 파일에서 획득할 수 있다. DKI 기반 데이터 고속 처리 장치(10)는 획득한 위치정보 Fid에 해당하는 Log 파일을 Value Log 파일에서 찾아, 해당 파일에서 정해진 방식의 Offset을 계산한 후 EntrySize 만큼의 데이터를 읽어 들이면, 해당 데이터 구조 안에 있는 입력된 키(Key)에 대응되는 밸류(Value)를 조회할 수 있다.
상술한 DKI 기반 데이터 고속 처리 방법은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 발명의 실시 예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시 예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시 예 들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이제까지 본 발명에 대하여 그 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
10: DKI 기반 데이터 고속 처리 장치
100: 키 관리부
200: 밸류 관리부

Claims (6)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220123760A KR20240044231A (ko) 2022-09-28 2022-09-28 Dki 기반 데이터 고속 처리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220123760A KR20240044231A (ko) 2022-09-28 2022-09-28 Dki 기반 데이터 고속 처리 장치 및 방법

Publications (1)

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

Family

ID=90638037

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220123760A KR20240044231A (ko) 2022-09-28 2022-09-28 Dki 기반 데이터 고속 처리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20240044231A (ko)

Similar Documents

Publication Publication Date Title
US10248676B2 (en) Efficient B-Tree data serialization
US7418544B2 (en) Method and system for log structured relational database objects
CA2279119C (en) Heuristic-based conditional data indexing
US7689574B2 (en) Index and method for extending and querying index
US20070118547A1 (en) Efficient index versioning in multi-version databases
US9418094B2 (en) Method and apparatus for performing multi-stage table updates
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
US8560500B2 (en) Method and system for removing rows from directory tables
EP3362916B1 (en) Signature-based cache optimization for data preparation
CN106663047A (zh) 用于优化的签名比较和数据复制的系统和方法
JP2011510379A (ja) 多次元データベースアーキテクチャ
CN113868028B (zh) 一种在数据节点上回放日志的方法、数据节点及系统
KR20170024039A (ko) 유연한 스키마를 사용한 데이터 관리
Yang et al. F1 Lightning: HTAP as a Service
US11537582B2 (en) Data access method, a data access control device, and a data access system
US10083192B2 (en) Deleted database record reuse
KR101806394B1 (ko) 모바일 dbms환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법
CN101853278A (zh) 数据存储系统应用方法
KR20240044231A (ko) Dki 기반 데이터 고속 처리 장치 및 방법
KR20240044232A (ko) 키-밸류 데이터베이스 기반 데이터 고속 처리 장치 및 방법
CN114896250B (zh) 一种键值分离的键值存储引擎索引优化方法及装置
KR20240044230A (ko) 블록체인 기반 데이터 고속 처리 장치 및 방법
KR20240044233A (ko) 로그 및 인덱스 최근접 데이터 고속 처리 장치 및 방법
US20220113886A1 (en) Extent operation processing