KR20230096180A - 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 lsm 트리 장치 및 방법 - Google Patents

블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 lsm 트리 장치 및 방법 Download PDF

Info

Publication number
KR20230096180A
KR20230096180A KR1020210184797A KR20210184797A KR20230096180A KR 20230096180 A KR20230096180 A KR 20230096180A KR 1020210184797 A KR1020210184797 A KR 1020210184797A KR 20210184797 A KR20210184797 A KR 20210184797A KR 20230096180 A KR20230096180 A KR 20230096180A
Authority
KR
South Korea
Prior art keywords
spatial
point data
component
blockchain
lsm tree
Prior art date
Application number
KR1020210184797A
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 KR1020210184797A priority Critical patent/KR20230096180A/ko
Priority to US17/861,847 priority patent/US20230195761A1/en
Publication of KR20230096180A publication Critical patent/KR20230096180A/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/29Geographical information databases
    • 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
    • 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/2255Hash tables
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management 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/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • 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 Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Remote Sensing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 장치 및 방법에 관한 것으로, 상기 장치는 각각이 전체 공간 영역에 분포된 포인트 데이터들을 저장하는 복수의 데이터 블록들로 구성된 블록체인; 상기 블록체인에 가장 최근 저장된 포인트 데이터의 제1 인덱스를 저장하는 메모리 컴포넌트와, 상기 포인트 데이터들을 인덱싱하여 상기 전체 공간 영역을 커버하는 공간 LSM 트리의 모든 컴포넌트에 관한 정보를 저장하는 컴포넌트 테이블을 포함하는 메모리부; 및 복수의 레벨들 간의 계층적 구조로 형성된 복수의 디스크 컴포넌트들을 통해 상기 블록체인에 저장된 시간 순서대로 상기 포인트 데이터들에 관한 제2 인덱스를 저장하는 디스크부;를 포함한다.

Description

블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 장치 및 방법{SPATIAL LSM TREE APPARATUS AND METHOD FOR INDEXING BLOCKCHAIN BASED GEOSPATIAL POINT DATA}
본 발명은 지리 공간 데이터 인덱싱 기술에 관한 것으로, 보다 상세하게는 블록체인의 쓰기-집중적인 특성을 반영하여 지리 공간 데이터를 블록체인 환경에서 삽입 시 I/O 비용을 감소시키는 공간 LSM 트리 인덱싱 기법에 관한 것이다.
최근 블록체인 기술이 다양한 응용분야에 접목됨에 따라 블록체인 기반의 공간 정보 서비스가 많은 주목을 받고 있다. IBM에서는 소비자가 배송의 전 단계를 추적할 수 있는 블록체인 기반의 식품 유통 정보 시스템을 개발하였고, 공간 블록체인 시스템인 FOAM은 블록체인 주소와 지리 정보를 결합한 거래 서비스를 제공할 수 있는 프로토콜을 개발하고, 영국의 대학에서는 블록체인 분산형 P2P를 이용해 드론과 자율주행차에 데이터를 전달해 재난에 대응하기 위한 개발을 진행하였다. 이 밖에도 블록체인은 신뢰성과 개방성을 필요로 하는 다양한 분야에서 활용된다. 그러나, 블록체인 기반의 위치 정보 서비스에 대한 관심에 비해, 블록체인에 저장된 지리 공간 데이터의 검색 및 분석 기법은 많은 연구가 진행되지 않았다.
블록체인은 기존의 공간 데이터베이스에서 가정하고 있는 환경과는 다른 특징을 갖는다. 첫 번째로, 블록체인은 실시간으로 대량의 업데이트를 발생시키는 쓰기-집중적인(write-intensive) 환경이다. 예를 들어, 대표적인 블록체인 중 하나인 이더리움(Ethereum)의 경우 트랜잭션 데이터는 블록 단위로 전송되며, 14~15초 간격으로 지속적인 업데이트가 발생한다. 다양한 데이터베이스 시스템에서 사용되는 R-tree와 같은 기법들은 인덱스의 유지 및 업데이트 비용이 크기 때문에, 업데이트가 잦은 환경에서는 병목현상을 유발할 수 있다. 두 번째 특징은 데이터의 불변성(immutability)이다. 블록체인에 저장된 데이터는 삭제나 변경이 되지 않는 것을 원칙으로 한다. 따라서, 블록체인의 크기는 서비스가 지속됨에 따라 증가하게 되고, 데이터베이스의 인덱스를 메모리상에서 관리하는 것은 점차 어려워진다.
현재 다수의 블록체인에서 공간 정보에 대한 검색은 NoSQL DBMS의 보조 인덱스에 의존하고 있다. 그러나, NoSQL의 보조 인덱스는 시스템의 주 인덱스 및 디스크에 대한 반복적인 접근을 필요로 하기 때문에 데이터베이스에 따라 충분한 성능 향상을 얻기 힘들다.
한국등록특허 제10-1784612호 (2017.09.27)
본 발명의 일 실시예는 블록체인의 쓰기-집중적인 특성을 반영하여 지리 공간 데이터를 블록체인 환경에서 삽입 시 I/O 비용을 감소시키는 공간 LSM 트리 인덱싱 기법을 제공하고자 한다.
본 발명의 일 실시예는 공간 포인트 데이터의 좌표를 지오해시를 통해 선형화하고 데이터 간의 공간적 인접성을 기초로 LSM 트리의 컴포넌트에 배치하여 질의와 연관이 없는 영역에 대한 탐색을 피할 수 있는 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 장치 및 방법을 제공하고자 한다.
실시예들 중에서, 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 장치는 각각이 전체 공간 영역에 분포된 포인트 데이터들을 저장하는 복수의 데이터 블록들로 구성된 블록체인; 상기 블록체인에 가장 최근 저장된 포인트 데이터의 제1 인덱스를 저장하는 메모리 컴포넌트와, 상기 포인트 데이터들을 인덱싱하여 상기 전체 공간 영역을 커버하는 공간 LSM 트리의 모든 컴포넌트에 관한 정보를 저장하는 컴포넌트 테이블을 포함하는 메모리부; 및 복수의 레벨들 간의 계층적 구조로 형성된 복수의 디스크 컴포넌트들을 통해 상기 블록체인에 저장된 시간 순서대로 상기 포인트 데이터들에 관한 제2 인덱스를 저장하는 디스크부;를 포함하고, 상기 메모리 컴포넌트와 상기 복수의 디스크 컴포넌트들은 상기 공간 LSM 트리를 구성하고 각각이 독립된 데이터 저장 범위와 임계값을 갖는다.
상기 컴포넌트 테이블은 각 컴포넌트에 관한 레벨(level), 키 범위(key range) 및 공간 필터(spatial filter)를 저장할 수 있다.
상기 복수의 디스크 컴포넌트들 각각은 상기 포인트 데이터들에 관한 지오해시(geohash) 값과 블록 주소(block address)를 상기 제2 인덱스로서 저장하는 Z-오더 기반 B-트리로 구현될 수 있다.
상기 복수의 디스크 컴포넌트들 각각은 상기 포인트 데이터의 저장 과정에서 데이터 개수가 상기 임계값을 초과하는 경우 소정의 개수만큼 공간 분할되어 상기 계층적 구조의 하위 레벨로 플러시(flush)될 수 있다.
상기 복수의 디스크 컴포넌트들 각각은 상기 플러시 이후 해당 레벨에서 키 범위가 동일한 다른 컴포넌트와 병합(merge)될 수 있다.
상기 공간 필터는 해당 컴포넌트에 저장된 포인트 데이터의 공간적 분포를 나타내는 비트 스트링(bit string)으로 구현될 수 있다.
상기 공간 필터는 상기 해당 컴포넌트가 커버하는 공간 영역이 복수의 부분 공간 영역들로 분할된 경우 분할된 부분 공간 영역들의 개수에 상응하는 길이의 비트 스트링으로 구현되고 특정 부분 공간 영역 내에 상기 포인트 데이터가 존재하면 상기 비트 스트링의 해당 비트는 1로 표현되며 그렇지 않은 경우 0으로 표현될 수 있다.
실시예들 중에서, 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 방법은 각각이 전체 공간 영역에 분포된 복수의 포인트 데이터들을 수신하는 단계; 상기 복수의 포인트 데이터들을 저장하는 신규 데이터 블록을 생성하는 단계; 상기 신규 데이터 블록을 블록체인에 추가하고 상기 복수의 포인트 데이터들을 상기 전체 공간 영역을 커버하는 공간 LSM 트리에 인덱싱하는 단계; 상기 인덱싱 과정에서 메모리 컴포넌트에 저장되는 데이터 개수가 임계값을 초과하는 경우 디스크 컴포넌트에게 플러시(flush)하는 단계; 및 상기 플러시의 결과를 기초로 컴포넌트 테이블을 갱신하는 단계;를 포함한다.
상기 인덱싱하는 단계는 포인트 데이터에 관한 지오해시(geohash)값과 블록 주소(block address)를 생성하여 상기 공간 LSM 트리의 컴포넌트에 저장하는 단계를 포함할 수 있다.
상기 플러시 하는 단계는 임계값을 초과한 컴포넌트가 커버하는 공간 영역을 소정의 개수만큼 공간 분할한 다음 하위 레벨 컴포넌트들로서 추가하는 단계를 포함할 수 있다.
상기 플러시 하는 단계는 상기 하위 레벨 컴포넌트들의 추가로 인해 동일한 키 범위를 갖는 컴포넌트들이 존재하는 경우 해당 컴포넌트들을 병합하는 단계를 포함할 수 있다.
상기 플러시 하는 단계는 상기 컴포넌트의 현재 레벨이 기 설정된 제한 레벨과 동일한 경우 상기 공간 분할 없이 하위 레벨의 동일한 공간 영역으로 플러시 하는 단계를 포함할 수 있다.
상기 플러시 하는 단계는 상기 디스크 컴포넌트에 저장된 데이터 개수가 임계값을 초과하는 경우 상기 플러시를 반복하는 단계를 포함할 수 있다.
상기 방법은 특정 포인트 데이터에 관한 범위 질의(range query)를 수신하는 단계; 상기 컴포넌트 테이블의 공간 필터를 이용하여 상기 범위 질의에 관한 탐색을 수행하는 단계; 및 상기 탐색의 결과를 기초로 상기 범위 질의에 관한 응답을 생성하는 단계;를 더 포함할 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 장치 및 방법은 일차원 데이터에 대한 인덱싱 기법인 LSM-tree를 확장하여 블록체인에 저장된 대용량 지리 공간 데이터에 대한 빠른 업데이트를 지원하는 인덱스 구조인 공간 LSM 트리를 구현할 수 있다.
본 발명의 일 실시예에 따른 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 장치 및 방법은 공간 LSM 트리에 기반한 포인트 데이터 검색 질의 시 불필요한 탐색을 제거하여 I/O 비용을 최소화하는 공간 필터를 제공할 수 있다.
도 1은 본 발명에 따른 공간 LSM 트리 시스템을 설명하는 도면이다.
도 2는 도 1의 공간 LSM 트리 장치의 시스템 구성을 설명하는 도면이다.
도 3은 도 1의 공간 LSM 트리 장치의 기능적 구성을 설명하는 도면이다.
도 4는 본 발명에 따른 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 방법을 설명하는 순서도이다.
도 5는 본 발명에 따른 공간 LSM 트리 구조의 일 실시예를 설명하는 도면이다.
도 6은 본 발명에 따른 각 레벨별 컴포넌트의 개수와 임계값을 설명하는 도면이다.
도 7은 본 발명에 따른 컴포넌트의 구조를 설명하는 도면이다.
도 8은 본 발명에 따른 컴포넌트 테이블의 일 실시예를 설명하는 도면이다.
도 9는 본 발명에 따른 컴포넌트와 공간 필터를 설명하는 도면이다.
도 10은 본 발명에 따른 컴포넌트 플러시와 병합을 설명하는 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명에 따른 공간 LSM 트리 시스템을 설명하는 도면이다.
도 1을 참조하면, 공간 LSM 트리 시스템(100)은 사용자 단말(110), 공간 LSM 트리 장치(130) 및 데이터베이스(150)를 포함할 수 있다.
사용자 단말(110)은 공간 LSM 트리 장치(130)와 연결되어 지리 공간 포인트 데이터에 관한 입력, 조회 등의 동작을 수행할 수 있는 컴퓨팅 장치에 해당할 수 있다. 사용자 단말(110)은 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 다양한 디바이스로도 구현될 수 있다. 사용자 단말(110)은 공간 LSM 트리 장치(130)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(110)들이 공간 LSM 트리 장치(130)와 동시에 연결될 수도 있다.
공간 LSM 트리 장치(130)는 본 발명에 따른 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 방법을 수행하는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 공간 LSM 트리 장치(130)는 사용자 단말(110)과 유선 또는 무선 네트워크를 통해 연결될 수 있고 상호 간에 데이터를 주고받을 수 있다.
일 실시예에서, 공간 LSM 트리 장치(130)는 본 발명에 따른 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 방법을 수행하는 과정에서 다양한 외부 시스템(또는 서버)과 연동하여 동작할 수 있다. 또한, 공간 LSM 트리 장치(130)는 사용자의 범위 질의에 대한 응답으로서 특정 공간 영역에 분포하는 포인트 데이터들 중에서 질의 조건을 충족하는 포인트 데이터를 검색하여 제공할 수 있다.
데이터베이스(150)는 공간 LSM 트리 장치(130)의 동작 과정에서 필요한 다양한 정보들을 저장하는 저장장치에 해당할 수 있다. 예를 들어, 데이터베이스(150)는 지리 공간 포인트 데이터에 관한 정보를 저장할 수 있고, 포인트 데이터에 관한 공간 LSM 트리에 관한 정보를 저장할 수 있으며, 반드시 이에 한정되지 않고, 공간 LSM 트리 장치(130)가 본 발명에 따른 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 방법을 수행하는 과정에서 다양한 형태로 수집 또는 가공된 정보들을 저장할 수 있다.
도 2는 도 1의 공간 LSM 트리 장치의 시스템 구성을 설명하는 도면이다.
도 2를 참조하면, 공간 LSM 트리 장치(130)는 프로세서(210), 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)를 포함할 수 있다.
프로세서(210)는 본 발명에 따른 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 프로시저를 실행할 수 있고, 이러한 과정에서 읽혀지거나 작성되는 메모리(230)를 관리할 수 있으며, 메모리(230)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄 할 수 있다. 프로세서(210)는 공간 LSM 트리 장치(130)의 동작 전반을 제어할 수 있고, 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)와 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(210)는 공간 LSM 트리 장치(130)의 CPU(Central Processing Unit)로 구현될 수 있다.
메모리(230)는 SSD(Solid State Disk) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 공간 LSM 트리 장치(130)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다. 또한, 메모리(230)는 전기적으로 연결된 프로세서(210)에 의해 실행됨으로써 본 발명에 따른 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 방법을 실행하는 명령들의 집합을 저장할 수 있다.
사용자 입출력부(250)은 사용자 입력을 수신하기 위한 환경 및 사용자에게 특정 정보를 출력하기 위한 환경을 포함하고, 예를 들어, 터치 패드, 터치 스크린, 화상 키보드 또는 포인팅 장치와 같은 어댑터를 포함하는 입력장치 및 모니터 또는 터치 스크린과 같은 어댑터를 포함하는 출력장치를 포함할 수 있다. 일 실시예에서, 사용자 입출력부(250)은 원격 접속을 통해 접속되는 컴퓨팅 장치에 해당할 수 있고, 그러한 경우, 공간 LSM 트리 장치(130)는 독립적인 서버로서 수행될 수 있다.
네트워크 입출력부(270)은 네트워크를 통해 사용자 단말(110)과 연결되기 위한 통신 환경을 제공하고, 예를 들어, LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 및 VAN(Value Added Network) 등의 통신을 위한 어댑터를 포함할 수 있다. 또한, 네트워크 입출력부(270)는 데이터의 무선 전송을 위해 WiFi, 블루투스 등의 근거리 통신 기능이나 4G 이상의 무선 통신 기능을 제공하도록 구현될 수 있다.
도 3은 도 1의 공간 LSM 트리 장치의 기능적 구성을 설명하는 도면이다.
도 3을 참조하면, 공간 LSM 트리 장치(130)는 블록체인(310), 메모리부(330), 디스크부(350) 및 제어부(370)를 포함할 수 있다.
블록체인(310)은 데이터를 저장하는 데이터 블록들로 구성될 수 있으며, 각 데이터 블록들은 체인(chain) 형태로 연결될 수 있다. 즉, 신규의 데이터 블록이 생성되면 가장 최근에 생성된 데이터 블록에 연결되어 블록체인(310)에 추가될 수 있다. 블록체인(310)은 지리 공간 포인트 데이터를 저장하는 역할을 수행할 수 있으며, 데이터베이스(150)에 저장될 수 있다. 일 실시예에서, 블록체인(310)은 별도의 독립된 데이터 관리 시스템으로 구현될 수 있고, 이 경우 공간 LSM 트리 장치(130)와 상호 연결되어 동작할 수 있다. 이때, 공간 LSM 트리 장치(130)의 제어부(370)는 상호 간의 연동을 제어할 수 있다.
특히, 블록체인(310)은 복수의 데이터 블록들을 통해 포인트 데이터들을 저장하여 관리할 수 있으며, 포인트 데이터들은 전체 공간 영역 상에 분포하는 지리 공간 데이터에 해당할 수 있다. 또한, 블록체인(310)에 저장된 포인트 데이터들은 공간 LSM 트리를 통해 인덱싱될 수 있다. 즉, 공간 LSM 트리는 블록체인(310)에 저장된 포인트 데이터들에 관한 인덱스(index)를 저장하는 인덱스 구조에 해당할 수 있다. 공간 LSM 트리는 일차원 데이터에 대한 인덱싱 기법인 LSM-tree를 확장하여 블록체인(310)에 저장된 대용량 지리 공간 데이터에 대한 빠른 업데이트를 지원할 수 있다. 공간 LSM 트리는 전체 공간 영역 상에 분포하는 포인트 데이터들을 인덱싱하여 전체 공간 영역을 커버할 수 있다.
메모리부(330)는 블록체인(310)에 가장 최근 저장된 포인트 데이터의 제1 인덱스를 저장하는 메모리 컴포넌트와, 공간 LSM 트리의 모든 컴포넌트에 관한 정보를 저장하는 컴포넌트 테이블을 포함하여 구현될 수 있다. 또한, 메모리부(330)는 도 2의 물리적인 메모리(230)와 연동하여 동작하도록 구현될 수 있다. 메모리 컴포넌트는 메모리 상에 저장되어 관리될 수 있으며, 공간 LSM 트리를 구성하는 컴포넌트들 중 하나에 해당할 수 있다. 메모리 컴포넌트는 블록체인(310)에 저장된 가장 마지막 포인트 데이터의 인덱스 정보를 저장할 수 있다. 즉, 제1 인덱스는 메모리 상에 저장되는 포인트 데이터의 인덱스 정보에 해당할 수 있으며, 전체 공간 영역의 위치에 관계없이 포인트 데이터를 인덱싱할 수 있다.
컴포넌트 테이블은 공간 LSM 트리의 각 컴포넌트에 관한 레벨(level), 키 범위(key range) 및 공간 필터(spatial filter)를 저장하는 테이블 구조체에 해당할 수 있다. 컴포넌트 테이블은 공간 LSM 트리에서의 질의 처리 시 데이터 분포에 관한 정보를 제공하는 역할을 수행할 수 있다. 여기에서, 레벨은 컴포넌트가 존재하는 단계에 해당할 수 있고, 키 범위는 각 컴포넌트가 포인트 데이터를 저장할 수 있는 범위에 해당할 수 있으며, 공간 필터는 컴포넌트에 저장된 포인트 데이터의 공간적 분포를 나타내는 데이터에 해당할 수 있다.
일 실시예에서, 공간 필터는 해당 컴포넌트에 저장된 포인트 데이터의 공간적 분포를 나타내는 비트 스트링(bit string)으로 구현될 수 있다. 일 실시예에서, 공간 필터는 해당 컴포넌트가 커버하는 공간 영역이 복수의 부분 공간 영역들로 분할된 경우 분할된 부분 공간 영역들의 개수에 상응하는 길이의 비트 스트링으로 구현될 수 있고, 특정 부분 공간 영역 내에 포인트 데이터가 존재하면 비트 스트링의 해당 비트는 1로 표현되며 그렇지 않은 경우 0으로 표현될 수 있다. 예를 들어, 4분할의 경우 비트 스트링은 4비트(bits)의 길이로 구현될 수 있다. 이에 대해서는 도 9에서 보다 자세히 설명한다.
디스크부(350)는 복수의 레벨들 간의 계층적 구조로 형성된 복수의 디스크 컴포넌트들을 통해 블록체인에 저장된 시간 순서대로 포인트 데이터들에 관한 제2 인덱스를 저장할 수 있다. 디스크부(350)는 도 1의 물리적인 데이터베이스(150)와 연동하여 동작하도록 구현될 수 있다. 디스크 컴포넌트는 디스크 상에서 저장되어 관리될 수 있으며, 공간 LSM 트리를 구성하는 컴포넌트들 중 하나에 해당할 수 있다. 디스크 컴포넌트는 블록체인(310)에 순차적으로 저장된 포인트 데이터의 인덱스 정보를 저장할 수 있다.
또한, 디스크 컴포넌트는 단일로 구현되는 메모리 컴포넌트와 달리 복수개로 구현될 수 있다. 특히, 디스크 컴포넌트는 복수의 레벨들에 배치되어 계층적 구조를 형성할 수 있다. 이때, 복수의 레벨들은 해당 디스크 컴포넌트가 커버하는 공간 영역의 크기에 따라 결정될 수 있다. 예를 들어, 전체 공간 영역을 4개의 쿼드런트로 공간 분할하는 경우 각 쿼드런트 영역을 커버하는 디스크 컴포넌트는 레벨 1에 배치될 수 있고, 레벨 1에 배치된 디스크 컴포넌트가 커버하는 영역을 다시 4개의 영역들로 공간 분할하는 경우 분할된 영역을 커버하는 디스크 컴포넌트는 레벨 2에 배치될 수 있다.
한편, 계층적 구조의 레벨이 높아질수록 디스크 컴포넌트가 커버하는 공간 영역의 크기는 작아질 수 있으나, 기 설정된 제한 레벨을 초과하는 레벨에서는 공간 영역의 크기가 더 이상 작아지지 않고 동일하게 유지될 수 있다.
일 실시예에서, 복수의 디스크 컴포넌트들 각각은 포인트 데이터들에 관한 지오해시(geohash) 값과 블록 주소(block address)를 제2 인덱스로서 저장하는 Z-오더 기반 B-트리(Z-order based B-Tree)로 구현될 수 있다. 여기에서, 지오해시 값은 2차원 포인트 데이터를 1차원으로 표현하기 위해 (x, y) 쌍의 좌표 정보를 Z-순서값(Z-ordering-value)으로 표현한 비트 스트링(bit string)에 해당할 수 있고, 블록 주소는 블록체인(310)에서 정보가 저장된 데이터 블록의 주소에 해당할 수 있다.
즉, 공간 LSM 트리를 구성하는 각 컴포넌트는 Z-오더 기반 B-트리를 통해 포인트 데이터를 저장하는 구조체로 구현될 수 있으며, 블록체인(310)에 저장된 포인트 데이터를 인덱싱하는 인덱스 정보로서 지오해시 값과 블록 주소의 쌍 정보를 저장할 수 있다. 즉, 제2 인덱스는 디스크 상에 저장되는 포인트 데이터의 인덱스 정보에 해당할 수 있다. Z-오더 기반 B-트리에 저장되는 포인트 데이터들은 지오해시 값을 기준으로 정렬될 수 있다.
일 실시예에서, 복수의 디스크 컴포넌트들 각각은 포인트 데이터의 저장 과정에서 데이터 개수가 임계값을 초과하는 경우 소정의 개수(예를 들어, 4개)만큼 공간 분할되어 계층적 구조의 하위 레벨로 플러시(flush)될 수 있다. 공간 LSM 트리의 각 컴포넌트는 데이터 저장 범위와 임계값을 포함하여 정의될 수 있으며, 디스크 컴포넌트는 포인트 데이터의 저장 과정에서 데이터 개수가 임계값을 초과하는 경우 플러시 동작을 통해 계층적 구조를 형성하는 하위 레벨의 디스크 컴포넌트들로 포인트 데이터들을 분산시킬 수 있다.
이때, 플러시 동작은 컴포넌트 단위로 수행될 수 있으며, 디스크 컴포넌트가 커버하는 공간 영역을 소정의 개수(예를 들어, 4개)만큼의 부분 공간 영역들로 분할할 수 있다. 이때, 분할된 부분 공간 영역들 중에서 포인트 데이터가 분포하는 영역에 대해서만 하위 레벨의 디스크 컴포넌트로 추가될 수 있다. 따라서, 플러시 동작에 따라 하위 레벨에 추가되는 디스크 컴포넌트의 개수는 최소 1개에서 최대 분할 개수(예를 들어, 4분할의 경우 4개)까지 동적으로 결정될 수 있다.
일 실시예에서, 복수의 디스크 컴포넌트들 각각은 플러시 이후 해당 레벨에서 키 범위가 동일한 다른 컴포넌트와 병합(merge)될 수 있다. 플러시 동작에 따라 계층적 구조의 하위 레벨에 디스크 컴포넌트들이 추가될 수 있으며, 플러시 동작으로 인한 지속적인 컴포넌트 증가와 저장 공간의 분할은 질의 처리 시 I/O증가로 인해 탐색 시간 증가와 질의 속도 저하를 초래할 수 있다. 따라서, 동일 레벨에 속하는 컴포넌트들 중에서 키 범위가 동일한 컴포넌트들을 하나의 컴포넌트로 병합하는 동작이 플러시 동작 이후 수행될 수 있다.
제어부(370)는 공간 LSM 트리 장치(130)의 전체적인 동작을 제어하고, 블록체인(310), 메모리부(330) 및 디스크부(350) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.
도 4는 본 발명에 따른 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 방법을 설명하는 순서도이다.
도 4를 참조하면, 공간 LSM 트리 장치(130)는 각각이 전체 공간 영역에 분포된 복수의 포인트 데이터들을 수신할 수 있다(단계 S410). 공간 LSM 트리 장치(130)는 복수의 포인트 데이터들을 저장하는 신규 데이터 블록을 생성할 수 있다(단계 S430). 공간 LSM 트리 장치(130)는 신규 데이터 블록을 블록체인(310)에 추가하고 복수의 포인트 데이터들을 전체 공간 영역을 커버하는 공간 LSM 트리에 인덱싱할 수 있다(단계 S450).
또한, 공간 LSM 트리 장치(130)는 인덱싱 과정에서 메모리 컴포넌트에 저장되는 데이터 개수가 임계값을 초과하는 경우 디스크 컴포넌트에게 플러시(flush)할 수 있다(단계 S470). 이때, 플러시 동작은 계층적 구조를 따라 반복적으로 수행될 수 있다. 공간 LSM 트리 장치(130)는 플러시의 결과를 기초로 컴포넌트 테이블을 갱신할 수 있다(단계 S490).
일 실시예에서, 공간 LSM 트리 장치(130)는 사용자 단말(110)로부터 특정 포인트 데이터에 관한 범위 질의(range query)를 수신하는 경우 컴포넌트 테이블의 공간 필터를 이용하여 범위 질의에 관한 탐색을 수행할 수 있다. 즉, 공간 LSM 트리 장치(130)는 공간 필터를 통해 응답 생성 과정에서 불필요한 탐색을 줄일 수 있다. 공간 LSM 트리 장치(130)는 탐색 결과에 따라 범위 질의에 관한 질의 응답을 생성할 수 있으며, 사용자 단말(110)에게 질의 응답을 제공할 수 있다.
이하, 도 5 내지 10을 참조하여 본 발명에 따른 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 장치 및 방법을 보다 자세히 설명한다.
도 5를 참조하면, 공간 LSM 트리는 블록체인(570)의 쓰기-집중적인(write intensive) 특성을 반영하여 지리 공간 데이터를 블록체인 환경에서 삽입 시 I/O 비용을 감소시키는 인덱싱 기법에 해당할 수 있다.
보다 구체적으로, 공간 LSM 트리는 메모리 영역에 하나의 메모리 컴포넌트(510)와 컴포넌트 테이블(530)을 저장하고, 디스크 영역에 디스크 컴포넌트(550)를 저장할 수 있다. 이때, 메모리 영역은 도 2의 메모리(230)에 대응될 수 있으며, 디스크 영역은 도 1의 데이터베이스(150)에 대응될 수 있다.
먼저 메모리 컴포넌트(510)는 블록체인(570)에 가장 최근 저장된 포인트 데이터의 인덱스를 갖는 최상위 단계의 컴포넌트에 해당할 수 있다. 디스크 컴포넌트(550)는 포인트 데이터를 블록체인에 저장된 시간 순서대로 저장할 수 있으며, Level 1에 최근의 데이터가, Level n에 가장 오래된 데이터가 저장될 수 있다.
또한, 각 컴포넌트(510, 550)는 도 6과 같은 데이터 저장 범위와 임계값을 가질 수 있다. 예를 들어, 메모리 컴포넌트(510)는 위치에 관계없이 포인트 데이터를 저장할 수 있고, x라는 임계값을 가질 수 있다. 또한, Level 1의 디스크 컴포넌트(550)는 메모리 컴포넌트(510)의 영역을 NW, NE, SW, SE의 4개 쿼드런트(quadrant)들로 공간 분할한 범위를 가질 수 있으며, 예를 들어 도 6의 1_1은 SW, 1_2는 NW, 1_3은 SW, 1_4는 NE에 해당할 수 있다. 또한, 도 5의 C1_2는 도 6의 Level 1에서의 1_2와 같은 범위를 가질 수 있다. Level 2의 디스크 컴포넌트(550) 역시 Level 1의 디스크 컴포넌트(550)가 임계값을 초과할 경우 4개의 영역으로 분할되어 Level 2에 저장될 수 있다. 예를 들어, 도 5의 C1_2가 임계값 x를 초과할 경우 4개의 영역으로 분할되어 C2_5, C2_6, C2_7, C2_8에 각각 저장될 수 있으며, 도 6의 level 2에서 5, 6, 7 및 8에 각각 대응될 수 있다.
하지만, 지속적인 컴포넌트 증가와 저장 공간의 분할은 질의 처리 시 I/O증가로 인해 탐색 시간 증가와 질의 속도 저하를 초래할 수 있다. 따라서, 도 6과 같이 특정 level에서 컴포넌트의 증가와 공간 분할을 제한하고, 분할이 제한되는 Level부터 컴포넌트의 임계값을 2배로 증가시켜 지속적인 컴포넌트 증가를 방지할 수 있다. 이때, 제한되는 Level은 데이터의 크기에 따라 유동적으로 조정될 수 있다. 예를 들어, 도 6의 경우 제한 레벨은 3으로 설정될 수 있으며, 이에 따라 도 6의 level 3 및 4에서 컴포넌트의 개수는 동일한 반면 임계값만 x에서 2x로 증가할 수 있다.
도 7을 참조하면, 컴포넌트는 Z-오더 기반 B-트리(Z-order based B-Tree)를 통해 포인트 데이터를 저장하는 구조체에 해당할 수 있으며, 데이터를 (Geohash, BlockAddress) 형태로 저장하고 Geohash값을 기준으로 정렬시킬 수 있다. 지오해시(Geohash)는 2차원 포인트 데이터를 1차원으로 나타내기 위해 (x, y) 쌍의 좌표 정보를 Z-순서값(Z-ordering-value)으로 계산한 비트 스트링(bit string)에 해당할 수 있고, 블록 주소(Block Address)는 블록체인에서 정보가 저장된 블록의 주소에 해당할 수 있다. 각 컴포넌트의 데이터로 접근할 때 해당 포인트 데이터의 지오해시 값을 찾은 뒤 대응되는 블록 주소를 참조하여 데이터가 저장된 블록에 접근할 수 있다.
도 8을 참조하면, 컴포넌트 테이블(도 8의 그림 (b))은 메모리(230)에서 관리될 수 있으며, 공간 LSM 트리를 구성하는 모든 컴포넌트에 대한 정보를 저장할 수 있다. 즉, 컴포넌트 테이블에 저장된 정보를 통해 질의 처리 시 불필요한 컴포넌트의 탐색을 제거해 I/O비용을 줄이고 빠른 질의가 가능할 수 있다.
또한, 컴포넌트 테이블은 컴포넌트의 레벨(level)과 키 범위(key range) 및 공간 필터를 저장할 수 있다. 레벨은 컴포넌트가 존재하는 단계이고, 키 범위는 각 컴포넌트가 포인트 데이터를 저장할 수 있는 범위에 해당할 수 있다. 도 8에서, Index 0로 저장되는 메모리 컴포넌트는 전체 공간에 해당하는 키 범위를 가지므로 위치와 관계없이 포인트 데이터를 저장할 수 있다. Level 1의 디스크 컴포넌트는 전체 데이터 공간을 4등분 한 0-15, 16-31과 같은 키 범위를 가질 수 있다. 마찬가지로, level 2의 디스크 컴포넌트는 level 1의 디스크 컴포넌트를 4등분 한 것 중 한 개, 즉 전체 영역을 16분할 한 0-3, 8-11과 같은 키 범위를 가질 수 있다.
예를 들어, 도 8의 그림 (a)는 각 컴포넌트에 저장된 데이터를 표시한 예이고, 그림 (b)는 공간 LSM 트리가 그림 (a)와 같이 주어질 때의 컴포넌트 테이블에 해당할 수 있다. 이에 따라, 공간 LSM 트리에서의 질의 처리 시 컴포넌트 테이블을 통해 데이터 분포를 확인할 수 있다.
도 9를 참조하면, 컴포넌트의 공간 필터는 질의 처리 시 불필요한 컴포넌트의 탐색을 제거해 I/O비용을 줄이고 빠른 질의 처리를 위해 활용될 수 있다. 또한, 공간 필터는 컴포넌트에 저장된 데이터의 공간적 분포를 나타내는 비트 스트링(bit string)으로 구현될 수 있다. 공간 필터는 컴포넌트가 커버하는 영역을 4등분하여 데이터가 존재하면 대응되는 위치에 1, 존재하지 않으면 0을 표시하여 생성될 수 있다. 도 9의 그림 (a)에서, 컴포넌트 A(Component A)에 포인트 O1, O2 가 분포해 있을 때, 전체 데이터 영역을 4등분하여 그림 (b)와 같이 인덱스가 부여될 수 있고, 그림 (c)와 같이 공간 필터를 4자리 비트 스트링으로 생성할 수 있다.
또한, 공간 LSM 트리는 각 컴포넌트에 새로운 포인트를 저장할 때 공간 필터를 업데이트할 수 있다. 예를 들어, 컴포넌트 A에 포인트 O3를 저장하면 도 9의 그림 (d)와 같이 공간 필터를 업데이트할 수 있다. 즉, 컴포넌트 A가 커버하는 영역들(그림 (b)의 1 ~ 4) 중 영역 1에 포인트 O3이 저장된 결과, 영역 1에 대응되는 공간 필터의 첫번째 영역의 값이 0에서 1로 갱신될 수 있다.
도 10을 참조하면, 블록체인 환경에서 실시간으로 대량의 포인트 데이터가 블록에 추가될 때마다 새로운 블록에 있는 포인트 데이터들은 공간 LSM 트리에 인덱싱될 수 있다. 데이터 삽입 시 메모리 컴포넌트가 임계값을 초과하면 메모리 컴포넌트에 있는 Z-order based B-Tree를 플러시(flush)할 수 있다. 플러시는 도 10의 그림 (a)와 같이 컴포넌트 단위로 수행될 수 있으며, 한 번의 플러시는 해당 컴포넌트의 Z-order based B-Tree를 도 6와 같이 공간 분할 후 최소 1개, 최대 4개의 하위 level 컴포넌트에 추가하는 동작에 해당할 수 있다. 플러시 진행 시 파라미터로 입력받은 특정 레벨(level)까지는 Z-order based B-Tree를 4분할하는 과정을 통해 진행될 수 있으나, 그 이후의 레벨부터는 도 6과 같이 컴포넌트의 증가가 없으므로 공간 분할 없이 하위 레벨에 있는 같은 공간으로 진행될 수 있다.
또한, 플러시 이후 새로 생성되거나 업데이트된 컴포넌트의 데이터 분포를 확인하기 위해 공간 필터가 갱신될 수 있다. 하지만, 플러시로 인한 컴포넌트 개수 증가는 LSM 트리의 탐색 시간을 증가시킬 수 있다. 따라서, 동일 레벨에 속하는 컴포넌트 중 키 범위(key range)가 같은 컴포넌트들은 하나의 컴포넌트로 병합될 수 있다. 예를 들어, 도 10의 그림 (b)에 있는 Level 2의 key range값 0-3, 4-7영역에 대응되는 컴포넌트들이 각각 병합되어 하나의 컴포넌트로 업데이트될 수 있다. 또한, 컴포넌트 병합 이후 병합된 컴포넌트의 크기가 임계값을 초과하면 추가적인 플러시 동작이 수행될 수 있다.
본 발명에 따른 공간 LSM 트리 장치(130)는 블록체인의 쓰기-집중적인(write-intensive) 특성을 반영하여 지리 공간 데이터를 블록체인 환경에서 삽입 시 I/O 비용을 감소시키는 공간 LSM 트리를 구현할 수 있다. 이때, 공간 LSM 트리의 메모리 컴포넌트와 하위 레벨의 컴포넌트는 내려갈수록(또는 레벨이 증가할수록) 공간을 4등분 한 범위를 가질 수 있으며, 이를 통해 계층적 구조를 형성할 수 있다. 또한, 본 발명에 따른 공간 LSM 트리 방법은 공간 필터를 통해 각 컴포넌트에서의 데이터 분포를 획득할 수 있으며, 이를 활용하여 지리 공간 데이터에 대한 질의 처리 시 불필요한 탐색을 줄일 수 있고 I/O 비용을 최소화할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 공간 LSM 트리 시스템
110: 사용자 단말 130: 공간 LSM 트리 장치
150: 데이터베이스
210: 프로세서 230: 메모리
250: 사용자 입출력부 270: 네트워크 입출력부
310: 블록체인 330: 메모리부
350: 디스크부 370: 제어부

Claims (14)

  1. 각각이 전체 공간 영역에 분포된 포인트 데이터들을 저장하는 복수의 데이터 블록들로 구성된 블록체인;
    상기 블록체인에 가장 최근 저장된 포인트 데이터의 제1 인덱스를 저장하는 메모리 컴포넌트와, 상기 포인트 데이터들을 인덱싱하여 상기 전체 공간 영역을 커버하는 공간 LSM 트리의 모든 컴포넌트에 관한 정보를 저장하는 컴포넌트 테이블을 포함하는 메모리부; 및
    복수의 레벨들 간의 계층적 구조로 형성된 복수의 디스크 컴포넌트들을 통해 상기 블록체인에 저장된 시간 순서대로 상기 포인트 데이터들에 관한 제2 인덱스를 저장하는 디스크부;를 포함하고,
    상기 메모리 컴포넌트와 상기 복수의 디스크 컴포넌트들은 상기 공간 LSM 트리를 구성하고 각각이 독립된 데이터 저장 범위와 임계값을 갖는 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 장치.
  2. 제1항에 있어서, 상기 컴포넌트 테이블은
    각 컴포넌트에 관한 레벨(level), 키 범위(key range) 및 공간 필터(spatial filter)를 저장하는 것을 특징으로 하는 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 장치.
  3. 제1항에 있어서, 상기 복수의 디스크 컴포넌트들 각각은
    상기 포인트 데이터들에 관한 지오해시(geohash) 값과 블록 주소(block address)를 상기 제2 인덱스로서 저장하는 Z-오더 기반 B-트리로 구현되는 것을 특징으로 하는 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 장치.
  4. 제1항에 있어서, 상기 복수의 디스크 컴포넌트들 각각은
    상기 포인트 데이터의 저장 과정에서 데이터 개수가 상기 임계값을 초과하는 경우 소정의 개수만큼 공간 분할되어 상기 계층적 구조의 하위 레벨로 플러시(flush)되는 것을 특징으로 하는 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 장치.
  5. 제4항에 있어서, 상기 복수의 디스크 컴포넌트들 각각은
    상기 플러시 이후 해당 레벨에서 키 범위가 동일한 다른 컴포넌트와 병합(merge)되는 것을 특징으로 하는 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 장치.
  6. 제1항에 있어서, 상기 공간 필터는
    해당 컴포넌트에 저장된 포인트 데이터의 공간적 분포를 나타내는 비트 스트링(bit string)으로 구현되는 것을 특징으로 하는 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 장치.
  7. 제6항에 있어서, 상기 공간 필터는
    상기 해당 컴포넌트가 커버하는 공간 영역이 복수의 부분 공간 영역들로 분할된 경우 분할된 부분 공간 영역들의 개수에 상응하는 길이의 비트 스트링으로 구현되고 특정 부분 공간 영역 내에 상기 포인트 데이터가 존재하면 상기 비트 스트링의 해당 비트는 1로 표현되며 그렇지 않은 경우 0으로 표현되는 것을 특징으로 하는 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 장치.
  8. 각각이 전체 공간 영역에 분포된 복수의 포인트 데이터들을 수신하는 단계;
    상기 복수의 포인트 데이터들을 저장하는 신규 데이터 블록을 생성하는 단계;
    상기 신규 데이터 블록을 블록체인에 추가하고 상기 복수의 포인트 데이터들을 상기 전체 공간 영역을 커버하는 공간 LSM 트리에 인덱싱하는 단계;
    상기 인덱싱 과정에서 메모리 컴포넌트에 저장되는 데이터 개수가 임계값을 초과하는 경우 디스크 컴포넌트에게 플러시(flush)하는 단계; 및
    상기 플러시의 결과를 기초로 컴포넌트 테이블을 갱신하는 단계;를 포함하는 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 방법.
  9. 제8항에 있어서, 상기 인덱싱하는 단계는
    포인트 데이터에 관한 지오해시(geohash)값과 블록 주소(block address)를 생성하여 상기 공간 LSM 트리의 컴포넌트에 저장하는 단계를 포함하는 것을 특징을 하는 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 방법.
  10. 제8항에 있어서, 상기 플러시하는 단계는
    임계값을 초과한 컴포넌트가 커버하는 공간 영역을 소정의 개수만큼 공간 분할한 다음 하위 레벨 컴포넌트들로서 추가하는 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 방법.
  11. 제10항에 있어서, 상기 플러시하는 단계는
    상기 하위 레벨 컴포넌트들의 추가로 인해 동일한 키 범위를 갖는 컴포넌트들이 존재하는 경우 해당 컴포넌트들을 병합하는 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 방법.
  12. 제10항에 있어서, 상기 플러시하는 단계는
    상기 컴포넌트의 현재 레벨이 기 설정된 제한 레벨과 동일한 경우 상기 공간 분할 없이 하위 레벨의 동일한 공간 영역으로 플러시 하는 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 방법.
  13. 제8항에 있어서, 상기 플러시하는 단계는
    상기 디스크 컴포넌트에 저장된 데이터 개수가 임계값을 초과하는 경우 상기 플러시를 반복하는 단계를 포함하는 것을 특징으로 하는 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 방법.
  14. 제8항에 있어서,
    특정 포인트 데이터에 관한 범위 질의(range query)를 수신하는 단계;
    상기 컴포넌트 테이블의 공간 필터를 이용하여 상기 범위 질의에 관한 탐색을 수행하는 단계; 및
    상기 탐색의 결과를 기초로 상기 범위 질의에 관한 응답을 생성하는 단계;를 더 포함하는 것을 특징으로 하는 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 LSM 트리 방법.
KR1020210184797A 2021-12-22 2021-12-22 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 lsm 트리 장치 및 방법 KR20230096180A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210184797A KR20230096180A (ko) 2021-12-22 2021-12-22 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 lsm 트리 장치 및 방법
US17/861,847 US20230195761A1 (en) 2021-12-22 2022-07-11 Spatial lsm tree apparatus and method for indexing blockchain based geospatial point data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210184797A KR20230096180A (ko) 2021-12-22 2021-12-22 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 lsm 트리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20230096180A true KR20230096180A (ko) 2023-06-30

Family

ID=86768166

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210184797A KR20230096180A (ko) 2021-12-22 2021-12-22 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 lsm 트리 장치 및 방법

Country Status (2)

Country Link
US (1) US20230195761A1 (ko)
KR (1) KR20230096180A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101784612B1 (ko) 2016-06-10 2017-10-12 인하대학교 산학협력단 위치기반 WBAN 모니터링 시스템을 위한 Geo-hash 기반 인덱싱 기법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101784612B1 (ko) 2016-06-10 2017-10-12 인하대학교 산학협력단 위치기반 WBAN 모니터링 시스템을 위한 Geo-hash 기반 인덱싱 기법

Also Published As

Publication number Publication date
US20230195761A1 (en) 2023-06-22

Similar Documents

Publication Publication Date Title
US11468027B2 (en) Method and apparatus for providing efficient indexing and computer program included in computer readable medium therefor
US9672235B2 (en) Method and system for dynamically partitioning very large database indices on write-once tables
US10102253B2 (en) Minimizing index maintenance costs for database storage regions using hybrid zone maps and indices
CN103902623B (zh) 用于在存储系统上存取文件的方法和系统
US20150347481A1 (en) Storing and querying multidimensional data using first and second indicies
CN110168532B (zh) 数据更新方法和存储装置
CN111241108B (zh) 基于键值对kv系统的索引方法、装置、电子设备和介质
CN101566986A (zh) 联机事务处理中的数据处理方法和装置
JP2004518226A (ja) データベースシステムおよびクエリオプティマイザ
KR20190079354A (ko) 분할 공간 기반의 공간 데이터 객체 질의처리장치 및 방법, 이를 기록한 기록매체
CN114840487A (zh) 分布式文件系统的元数据管理方法和装置
US10437806B2 (en) Database management method and information processing apparatus
CN115918110A (zh) 使用键值存储库的空间搜索
US11520763B2 (en) Automated optimization for in-memory data structures of column store databases
CN111666302A (zh) 用户排名的查询方法、装置、设备及存储介质
CN111858613A (zh) 一种业务数据的检索方法
WO2023083237A1 (zh) 图数据的管理
CN111522820A (zh) 数据存储结构、存储检索方法、系统、设备及存储介质
CN111290714A (zh) 数据读取方法和装置
KR102354343B1 (ko) 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치
JP6006740B2 (ja) インデックス管理装置
KR20230096180A (ko) 블록체인 기반의 지리 공간 포인트 데이터 인덱싱을 위한 공간 lsm 트리 장치 및 방법
KR20220099745A (ko) 지리공간 블록체인 데이터 검색을 위한 공간 분할 기반의 트리 인덱싱 및 질의어 처리 방법 및 장치
EP3096248B1 (en) Data management system and data management method
KR102233944B1 (ko) 데이터베이스 관리를 위한 컴퓨터 프로그램