KR20200092710A - 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치 - Google Patents

이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치 Download PDF

Info

Publication number
KR20200092710A
KR20200092710A KR1020190009961A KR20190009961A KR20200092710A KR 20200092710 A KR20200092710 A KR 20200092710A KR 1020190009961 A KR1020190009961 A KR 1020190009961A KR 20190009961 A KR20190009961 A KR 20190009961A KR 20200092710 A KR20200092710 A KR 20200092710A
Authority
KR
South Korea
Prior art keywords
data
storage
stored
index
dram
Prior art date
Application number
KR1020190009961A
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 KR1020190009961A priority Critical patent/KR20200092710A/ko
Priority to PCT/KR2019/001244 priority patent/WO2020153522A1/ko
Publication of KR20200092710A publication Critical patent/KR20200092710A/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
    • 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/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

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)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 데이터를 DRAM, NVM 또는 DISK와 같이 상이한 스토리지에 저장하는 데이터베이스 관리 시스템에 관한 것으로, 각 스토리지에 저장 데이터에 대응되는 검색 필터를 각각 구비하여, 검색 필터를 통해 요청 데이터가 저장된 스토리지를 선택하여 데이터 검색처리를 수행함으로써, 필요한 데이터에 보다 빠르게 접근할 수 있도록 해 주는 기술에 관한 것이다.
본 발명에 따른 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치는 DRAM(dynamic random access memory)과, NVM(non-volatile memory) 및, DISK를 포함하고, 각 스토리지는 해당 스토리지에 저장된 데이터에 대응되는 인덱스 데이터가 저장되는 인덱스 데이터 저장소와, 일정 비트열을 가지면서 해당 스토리지에 저장된 데이터에 대응되는 위치의 비트값이 유효값으로 설정되는 검색필터를 포함하여 구성되는 다수의 스토리지와, 외부로부터의 데이터 삽입 요청에 대해서는 DRAM에 해당 데이터를 저장함과 더불어, 저장된 데이터에 대응되는 새로운 인덱스 데이터를 생성하여 DRAM의 인덱스 데이터 저장소에 저장하고, 해당 데이터를 기 설정된 해시 함수에 적용하여 그 해시값에 대응되는 위치의 DRAM의 검색필터 비트를 유효값으로 설정하며, 외부로부터의 데이터 수정 및 삭제를 포함하는 데이터 변경요청에 대해서는 변경 대상 데이터를 기 설정된 해시함수에 적용하여 해시값을 산출한 후, 각 스토리지에서 해시값에 대응되는 위치의 비트값을 근거로 변경 대상 데이터가 저장된 스토리지를 결정하고, 결정된 스토리지에서 변경 대상 데이터를 검색하여 데이터 변경처리를 수행함과 더불어 변경내용에 대응하여 인덱스 데이터 저장소에 저장된 인덱스 데이터를 변경하는 데이터 관리를 수행하는 데이터 처리수단을 포함하여 구성되는 것을 특징으로 한다.

Description

이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치{HYBRIDE INDEX APPRATUS IN DATABASE MANAGEMENT SYSTEM BASED HETEROGENEOUS STORAGE}
본 발명은 데이터를 DRAM, NVM 또는 DISK와 같이 상이한 스토리지에 저장하는 데이터베이스 관리 시스템에 관한 것으로, 각 스토리지에 해당 저장 데이터에 대응되는 인덱스 데이터를 각각 저장하여 보다 효율적으로 인덱스 데이터 관리를 수행함은 물론, 각 스토리지에 검색 필터를 각각 구비하여 요청 데이터가 저장된 스토리지에서 데이터 검색처리를 수행함으로써, 필요한 데이터에 보다 빠르게 접근할 수 있도록 해 주는 기술에 관한 것이다.
데이터베이스 관리 시스템(DataBase Management System, DBMS)은 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 하는 소프트웨어 도구의 집합이다. 보다 구체적으로, DBMS는 데이터베이스 서버에 구현되어 다수의 사용자들 또는 프로그램들의 요구를 체계적으로 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다.
한편, DBMS는 외부로부터 특정 질의(Query)가 입력되는 경우, 입력된 질의에 따라 데이터베이스에 데이터를 선택, 삽입, 갱신, 삭제 등의 기능을 수행한다. 여기서 질의란 데이터베이스의 테이블에 저장되어 있는 데이터에 대한 어떠한 요구, 즉 데이터에 대한 어떠한 조작을 하기 원하는지를 기술한 것을 의미하는 것으로서, SQL(Structured Query Language)과 같은 언어를 이용하여 표현한다.
그리고, 데이터의 양이 갈수록 방대해짐에 따라 DBMS는 일반적으로 색인(index)을 구비한다. 여기서, 인덱스는 데이터베이스 분야에 있어서 테이블에 대한 탐색 속도를 높여주는 자료구조를 의미한다.
한편, 최근에는 각기 다른 성능을 가진 스토리지를 구비하는 하이브리드 DBMS가 제안되어 운용되고 있다. 이러한 하이브리드 DBMS에 구비되는 스토리지는 DRAM, NVM, DISK 등이 있다.
DRAM은 읽기 및 쓰기 작업이 빠르지만 가격이 크게 떨어졌음에도 불구하고 아직도 비교적 비싼 편에 속한다.
NVM은 쓰기 작업의 성능은 DRAM 처럼 빠르지만 읽기 성능은 쓰기 성능에 비해 떨어진다. 또한 NVM의 가격은 DISK보다 비싸다.
DISK는 비용이 저렴하고 대용량 저장공간을 제공하지만 읽기 및 쓰기 성능이 가장 떨어진다. 하이브리드 DBMS는 이러한 문제를 해결하기 위해 HOT 데이터는 DRAM에 저장하고 WARM 데이터는 NVM에, 가장 오랫동안 액세스되지 않은 COLD 데이터는 DISK에 저장한다.
그런데, 이렇게 데이터를 계층별로 나누어 저장하는 하이브리드 DBMS에서 하나의 스토리지에 인덱스를 모두 저장하여 운용하는 경우, 해당 스토리지의 메모리 사용이 크게 늘어 날 수 있고, 용량이 큰 인덱스인 경우 스토리지 내 매우 많은 공간을 차지 할 수도 있기 때문에 매우 비효율적인 운용 방법이다.
또한, 성능적 측면에서도 In-Memory DBMS에 적합한 T-tree 인덱스는 Disk 기반 DBMS에서 높은 성능을 보이는 B-tree와 같은 성능을 내지 못하기 때문에, 특정 스토리지의 특성에 적합한 자료구조를 적용하여 하이브리드 DBMS를 운용하는 경우 작업 성능이 저하될 수 있다.
1. 한국등록특허 제1775107호 (명칭 : 하이브리드데이터베이스 및 하이브리드데이터베이스에서 테이블을 관리하는 방법)
이에, 본 발명은 상기한 사정을 감안하여 창출된 것으로, 각 스토리지에 해당 저장 데이터에 대응되는 인덱스를 해당 스토리지에 적합한 자료구조로 각각 저장함으로써, 보다 효율적으로 인덱스 데이터 관리를 수행할 수 있도록 해 주는 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치를 제공함에 그 기술적 목적이 있다.
또한, 본 발명은 각 스토리지에 저장 데이터에 대응되는 검색 필터를 각각 구비하여, 검색 필터를 통해 요청 데이터가 저장된 스토리지를 선택하여 데이터 검색처리를 수행함으로써, 불필요한 읽기 작업을 줄여 보다 신속하게 데이터를 검색할 수 있도록 해 주는 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치를 제공함에 또 다른 기술적 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 일측면에 따르면, DRAM(dynamic random access memory)과, NVM(non-volatile memory) 및, DISK를 포함하고, 각 스토리지는 해당 스토리지에 저장된 데이터에 대응되는 인덱스 데이터가 저장되는 인덱스 데이터 저장소와, 일정 비트열을 가지면서 해당 스토리지에 저장된 데이터에 대응되는 위치의 비트값이 유효값으로 설정되는 검색필터를 포함하여 구성되는 다수의 스토리지와, 외부로부터의 데이터 삽입 요청에 대해서는 DRAM에 해당 데이터를 저장함과 더불어, 저장된 데이터에 대응되는 새로운 인덱스 데이터를 생성하여 DRAM의 인덱스 데이터 저장소에 저장하고, 해당 데이터를 기 설정된 해시 함수에 적용하여 그 해시값에 대응되는 위치의 DRAM의 검색필터 비트를 유효값으로 설정하며, 외부로부터의 데이터 수정 및 삭제를 포함하는 데이터 변경요청에 대해서는 변경 대상 데이터를 기 설정된 해시함수에 적용하여 해시값을 산출한 후, 각 스토리지에서 해시값에 대응되는 위치의 비트값을 근거로 변경 대상 데이터가 저장된 스토리지를 결정하고, 결정된 스토리지에서 변경 대상 데이터를 검색하여 데이터 변경처리를 수행함과 더불어 변경내용에 대응하여 인덱스 데이터 저장소에 저장된 인덱스 데이터를 변경하는 데이터 관리를 수행하는 데이터 처리수단을 포함하여 구성되는 것을 특징으로 하는 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치가 제공된다.
또한, 상기 DRAM에는 최초 데이터 삽입을 포함하여 억세스 시점이 현재로부터 일정 기간 이내인 HOT 데이터가 저장되고, NVM에는 현재로부터 억세스 시점이 일정 기간이 경과된 WARM 데이터가 저장되며, DISK에는 현재로부터 억세스 시점이 일정 기간을 초과하는 COLD 데이터가 저장되도록 구성되고, 상기 데이터 처리수단은 각 스토리지에 저장된 데이터의 억세스 시점을 근거로 스토리지간 데이터를 이동하는 데이터 계층화를 수행함과 더불어, 데이터의 이동에 대응하여 해당 스토리지의 인덱스 데이터 저장소 및 검색필터의 비트열을 업데이트하는 것을 특징으로 하는 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치가 제공된다.
또한, 상기 데이터 처리수단은 데이터 계층화 수행시 임의 스토리지에 저장된 데이터량이 기 설정된 임계치 이상인 경우, 타 스토리지의 데이터 저장량을 확인하고, 기 설정된 임계치와 차이가 큰 스토리지로의 데이터 이동을 추가로 수행하되, 데이터가 이동 저장될 스토리지의 계층에 대응하여 억세스 시점에 기반한 이동 대상 데이터를 결정하는 것을 특징으로 하는 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치가 제공된다.
또한, 상기 각 스토리지는 데이터의 읽기/쓰기 특성과 공간 활용 특성을 고려하여 서로 다른 자료구조를 갖도록 구성되고, 상기 데이터 처리수단은 데이터 저장시 해당 스토리지의 자료구조에 대응되게 데이터를 저장하는 것을 특징으로 하는 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치가 제공된다.
또한, 상기 데이터 처리수단은 기 설정된 조건에 따라 각 스토리지에 구비된 검색필터 비트열을 해당 스토리지에 저장된 데이터를 기반으로 재생성하는 것을 특징으로 하는 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치가 제공된다.
또한, 상기 데이터 처리수단은 스토리지에서 데이터 삭제가 기 설정된 횟수 이상 이루어지는 경우, 해당 스토리지의 검색필터 비트열을 재생성하는 것을 특징으로 하는 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치가 제공된다.
본 발명에 의하면, 비용이 비싼 스토리지에 많은 양의 인덱스 데이터가 저장되던 문제를 해결함은 물론, 요청된 질의에 대해 무조건적으로 모든 스토리지를 검사하지 않고 Bloom 필터를 이용하여 요청된 데이터가 저장된 스토리지를 선택하여 검색함으로써, 검색 성능을 향상시킬 수 있다.
또한, 본 발명에 의하면 주기적으로 현재 저장된 데이터를 기반으로 각 스토리지의 검색필터 비트열을 재 생성함으로써, 삭제된 데이터가 여전히 해당 스토리지에 존재하는 것처럼 판정하는 오류를 최소화할 수 있다.
도1은 제1 실시예에 따른 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치의 개략적인 구성을 도시한 도면.
도2는 도1에 도시된 검색 필터(203) 구조를 설명하기 위한 도면.
도3은 도1에 도시된 데이터 처리수단(100)의 내부 구성을 기능별로 분리하여 나타낸 도면.
도4는 도1에 도시된 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치의 동작을 설명하기 위한 도면.
도5는 도4에 도시된 데이터 계층화처리 동작(ST100)을 보다 상세히 설명하기 위한 도면.
도6은 도4에 도시된 데이터 관리 동작(ST200)을 보다 상세히 설명하기 위한 도면.
본 발명에 기재된 실시예 및 도면에 도시된 구성은 본 발명의 바람직한 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 표현하는 것은 아니므로, 본 발명의 권리범위는 본문에 설명된 실시예 및 도면에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도1은 본 발명의 제1 실시예에 따른 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치의 개략적인 구성을 도시한 도면이다.
도1을 참조하면, 본 발명에 따른 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치는 데이터 처리수단(100)과 서로 다른 타입의 스토리지(200)를 포함한다.
상기 스토리지(200)는 DRAM(dynamic random access memory, 210)과, NVM(non-volatile memory, 220) 및 DISK(230)를 포함한다.
여기서, 상기 DRAM(210)에는 최초 데이터 삽입을 포함하여 억세스 시점이 현재로부터 일정 기간 이내인 HOT 데이터가 저장되고, NVM(220)에는 현재로부터 억세스 시점이 일정 기간이 경과된 WARM 데이터가 저장되며, DISK(230)에는 현재로부터 억세스 시점이 일정 기간을 초과하는 COLD 데이터가 저장되도록 구성된다. 물론, 이외에 또 다른 타입의 스토리지가 구비된 경우, 기 설정된 억세스 시점을 기준을 만족하는 데이터가 해당 스토리지에 이동되어 저장될 수 있다.
이때, 각 스토리지(200)는 데이터의 읽기/쓰기 특성과 공간 활용 특성을 고려하여 서로 다른 자료구조를 갖도록 구성된다. DRAM(210)와 NVM(220)는 T-Tree 구조를 이용하여 데이터가 저장되고, DISK(230)는 B-Tree 구조를 이용하여 데이터가 저장된다.
또한, 상기 각 스토리지(200)는 기본적으로 인덱스 데이터저장소(201)와 검색필터(202)를 포함하여 구성되고, 최초 삽입되는 데이터가 저장되는 DRAM(210)에는 인덱스 오브젝트 저장소(203)가 추가로 구비된다.
인덱스 데이터 저장소(201)는 각 스토리지(200)에 저장된 데이터에 대한 실제 인덱스 데이터를 저장한다. 이때, DRAM(210)와 NVM(220)의 인덱스 데이터는 T-Tree 구조를 이용하여 저장되고, DISK(230)의 인덱스 데이터는 B-Tree 구조를 이용하여 저장된다. 상기 T-Tree 구조는 메인 메모리 DBMS에서 데이터에 접근하는데 최적의 자료 구조이고, B-Tree 구조는 디스크 기반 DBMS에 가장 적합한 자료 구조이다.
검색필터(202)는 요소가 집합의 구성원인지 테스트하는데 사용되는 확률적 자료 구조인 Bloom 필터로 이루어질 수 있다.
블룸 필터(Bloom filter)는 도2에 도시된 바와 같이 m 비트 크기의 비트열로 표현될 수 있는데, m 비트의 비트열 중에서 각각의 원소에 관하여 k 가지의 서로 다른 해시 함수(hash function)에 의해 도출된 원소의 해시값에 대응하는 비트들이검정색으로 표현되는 유효값, 예컨대 "1"로 설정되고 나머지 비트들은 "0"으로 설정될 수 있다.
즉, 어떤 데이터가 해당 스토리지(200)에 저장되는지 여부를 검사(query)할 경우에, 검사하려는 데이터의 k가지 해시 함수에 의한 해시값들이 가지는 인덱스(index)가 얻어지는데, 블룸 필터 비트열 중에서 그러한 인덱스들에 해당하는 위치의 비트들이 모두 "1"이면 해당 데이터가 집합에 속한다고 양성으로(positive) 판정하고, 그러한 비트들 중에 하나라도 "0"이면 집합에 속하지 않는다고 음성으로(negative) 판정한다.
예컨대, 도2에서 해시함수에 의해 산출된 "2"와 "6"으로, 블룸 필터(202)의 제2 비트와 제6 비트가 선택된 경우, DRAM(210)은 "1,1", NVM(220)과 DISK(230)은 "0,0"의 비트값을 가지므로, 해당 데이터는 DRAM(210)에 저장된 것으로 판단할 수 있다.
인덱스 오브젝트 저장소(203)는 현재 사용중인 스토리지 장치 수와 각 스토리지에 대한 인덱스 포인트를 포함하는 스토리지 정보로 이루어지는 인덱스 오브젝트가 저장된다.
한편, 도3은 도1에 도시된 데이터 처리수단(100)의 내부 구성을 기능별로 분리하여 나타낸 도면이다.
도3을 참조하면, 데이터 처리수단(100)은 데이터 처리부(110)와, 계층화 처리부(120), 인덱스 처리부(130), 스토리지 검색부(140) 및, 검색필터 관리부(150)를 포함한다.
데이터 처리부(110)는 입력되는 질의를 분석하고, 질의에 대응하여 해당 데이터에 대한 삽입, 삭제, 수정, 검색 등의 트랜잭션 처리를 수행하며, 트랜잭션 처리 결과를 질의 처리 결과로서 반환한다.
데이터 처리부(110)는 데이터 삽입요청에 대해 DRAM(210)에 해당 데이터를 저장하고, 해당 데이터를 인덱스 처리부(120)로 제공하여 인덱스 생성을 요청하며, 인덱스 데이터와 해당 데이터를 DRAM(210)에 저장한다. 즉, 데이터 처리부(110)는 최초의 삽입 요청 데이터는 무조건 DRAM(210)에 저장하여 처리한다.
또한, 데이터 처리부(110)는 스토리지(200)에 기 저장된 특정 데이터에 대한 삭제 및 수정을 포함하는 변경 트랜잭션에 대해서는 해당 데이터에 대한 해쉬값을 각 스토리지(200)의 검색필터(202)로 제공하고, 이에 대한 검색필터(202)의 비트값을 근거로 저장 대상 스토리지(200)를 결정하며, 결정된 저장 대상 스토리지(200)에서 해당 변경 대상 데이터에 대한 검색 및 변경처리를 수행한다.
또한, 데이터 처리부(110)는 범위 검색 질의에 대해서는 모든 스토리지(200)에서 해당 범위 검색을 수행하고, 검색된 범위에 대한 트랜잭션 처리를 수행할 수 있다.
계층화 처리부(120)는 각 스토리지(200)에 저장된 데이터의 최근 억세스 시점을 분석하고, 현재 시점과 액세스 시점간의 차이를 근거로 데이터를 계층화하며, 데이터의 계층에 대응하여 기 설정된 스토리지(200)로의 데이터 이동을 수행한다.
또한, 계층화 처리부(120)는 임의 스토리지에 저장된 데이터량이 기 설정된 임계치 이상인 경우, 타 스토리지의 데이터 저장량을 확인하고, 기 설정된 임계치와 차이가 큰 스토리지로의 데이터 이동을 추가로 수행할 수 있다. 이때, 계층화 처리부(120)는 데이터가 이동 저장될 스토리지의 계층에 대응하여 억세스 시점에 기반한 이동 대상 데이터를 결정한다. 즉, 데이터를 저장할 스토리지의 계층이 현재 데이터가 저장된 스토리지보다 높은 경우, 억세스 시점이 최근인 데이터 순으로 이동 대상 데이터로 결정한다.
인덱스 처리부(130)는 데이터 삽입과 변경 및 상기 계층화 처리에 의해 이동되는 데이터에 대응되게 인덱스 데이터를 변경한다. 인덱스 처리부(130)는 해당 데이터가 저장되는 스토리지(200)의 자료 구조에 대응되도록 인덱스 데이터를 변경한다.
스토리지 검색부(140)는 데이터 처리부(110)로부터의 요청에 대해 해당 데이터를 해시함수에 적용하여 해시값을 산출하고, 각 스토리지(200)의 검색필터(202)에서 해당 해시값에 대응되는 비트의 비트값을 호출하며, 호출된 비트값을 근거로 해당 요청 데이터가 저장된 스토리지(200)를 결정한다.
즉, 요청 데이터를 해시함수에 적용하여 산출된 비트 포인트가 "2"와 "6"인 경우, DRAM(210)의 검색필터(202)에서 "2"와 "6"번째 비트값을 호출하여 DRAM 검색값으로 설정하고, NVM(220)의 검색필터(202)에서 "2"와 "6"번째 비트값을 호출하여 NVM 검색값으로 설정하며, DISK(230)의 검색필터(202)에서 "2"와 "6"번째 비트값을 호출하여 DISK 검색값으로 설정한다. 그리고, 각 스토리지 검색값에서 모두 "1"인 스토리지를 검색 대상 스토리지로 설정할 수 있다. 이때, 스토리지 검색부(140)는 2개 이상의 스토리지가 검색대상으로 결정된 경우, 모든 스토리지를 검색 대상 스토리지로 설정할 수 있다.
검색필터 관리부(150)는 해당 스토리지(200)에 저장되는 데이터에 대응하여 검색필터(203)의 비트열을 업데이트한다. 즉, 검색필터 관리부(150)는 해당 데이터를 기 설정된 해시 함수에 적용하여 그 해시값에 대응되는 위치의 DRAM의 검색필터 비트를 유효값으로 설정한다.
또한, 검색필터 관리부(150)는 기 설정된 기간 또는 스토리지(200)에서 데이터가 삭제되는 회수가 일정 이상인 경우, 현재 저장된 데이터를 기반으로 각 스토리지(200)의 검색필터 비트열을 재 생성한다. 일반적으로 블룸 필터의 가장 큰 문제는 집합에 원소를 추가시킬 수만 있고, 원소를 제거할 수는 없다. 이에 따라, 블룸 필터를 이용하여 데이터베이스 내에 특정 데이터 항목을 검색하는 시스템에서, 어떤 데이터 항목이 데이터베이스에 추가되었다가 삭제되었다면, 블룸 필터는 그 데이터 항목이 여전히 데이터베이스에 존재하는 것처럼 검색 결과를 출력하며, 삭제 여부를 판단할 수 없으므로, 거짓 양성 판정이 급증한다. 이에, 검색필터 비트열을 현재 저장된 데이터를 기반으로 주기적으로 재생성함으로써, 이러한 블룸 필터의 문제를 해결하기 위한 것이다.
이어, 도4를 참조하여 도1에 도시된 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치의 동작을 설명한다.
먼저, DRAM(210)의 인덱스 오브젝트저장소(203)에는 본 시스템에 구비된 스토리지(200)의 개 수 및 포인터를 포함하는 스토리지정보가 등록된다. 그리고, 각 스토리지(200)에는 검색필터(201)와 인덱스 데이터저장소(202)가 각각 구비된다.
상기한 상태에서, 데이터 처리수단(100)은 스토리지(200)에 기 저장된 데이터에 대한 데이터 계층화처리를 수행함과 더불어(ST100), 외부로부터 요구되는 질의에 대응하여 데이터 삽입, 수정, 삭제 및 검색을 포함하는 해당 데이터 관리처리를 수행하고, 그 결과를 질의 결과값으로 반환한다(ST200).
그리고, 데이터 처리수단(100)은 상기한 데이터 계층화처리 및 데이터 관리처리를 수행하면서, 검색필터 재생성을 위한 기 설정된 조건을 만족하는 경우 각 스토리지(200)에 구비된 검색필터(202)를 재 생성한다(ST300). 이때, 데이터 처리수단(100)은 스토리지(200)에서 데이터 삭제가 기 설정된 횟수 이상 이루어지는 경우, 해당 스토리지(200)의 검색필터 비트열을 재생성하거나, 적어도 하나의 스토리지(200)에서 데이터 삭제가 기 설정된 횟수 이상 이루어지는 경우, 모든 스토리지(200)의 검색필터 비트열을 재생성할 수 있다.
이어, 도5를 참조하여 도4에 도시된 데이터 계층화처리 동작(ST100)을 보다 상세히 설명한다.
도5를 참조하면, 먼저 각 스토리지(200)에 데이터가 저장되고, 저장된 데이터에 대응하여 인덱스 데이터 및 검색필터(203)가 각각 등록 저장되며, 데이터 계층화를 위한 계층화 기준이 미리 설정된다.
상기한 상태에서, 데이터 처리수단(100)은 각 스토리지(200)에 저장된 데이터 중 현재 상태가 기 설정된 계층화 조건을 만족하는 이동 대상 데이터가 존재하는지를 판단한다(ST110). 이때 계층화 기준은 현재 날짜와 데이터 억세스 날짜간의 차이로 설정될 수 있다.
데이터 처리수단(100)은 상기 ST110 단계에서 이동 대상 데이터가 존재하면, 해당 이동 대상 데이터를 이동시킬 저장 대상 스토리지(200)를 결정한다(ST120). 이때, DRAM(210)에는 현재 날짜와 데이터 억세스 날짜간의 차이가 가장 짧은 HOT데이터가 저장되고, 현재 날짜와 데이터 억세스 날짜간의 차이가 중간이 WARM 데이터는 NVM(220)에 저장되며, 현재 날짜와 데이터 억세스 날짜간의 차이가 가장 긴 COLD 데이터는 DISK(230)에 저장되도록 저장 대상 스토리지(200)를 결정할 수 있다.
이어, 데이터 처리수단(100)은 저장 대상 스토리지(200)가 결정되면, 저장 대상 스토리지(200)에 새로운 슬롯을 할당하고, 이동 대상 데이터를 저장 대상 스토리지(220)의 인덱스 구조에 대응되게 저장한다(ST130). DRAM(210)과 NVM(220)에는 T-Tree 구조로 데이터가 저장되고, DISK(230)에는 B-Tree 구조로 데이터가 저장된다.
또한, 데이터 처리수단(100)은 이동 대상 데이터의 이동에 대응하여 이동 전 스토리지(200)와 이동 후의 저장 대상 스토리지(200)의 인덱스 데이터 저장소(201) 및, 검색필터(203)를 업데이트 한다(ST140). 즉, 이동 전 스토리지(200)의 인덱스 데이터 저장소(201)에서 해당 데이터에 대한 인덱스 데이터를 삭제하고, 저장 대상 스토리지(200)의 인덱스 데이터 저장소(201)에는 해당 이동 대상 데이터에 대한 인덱스 데이터를 생성하여 추가한다. 또한, 저장 대상 스토리지(200)의 검색필터 비트열을 해당 데이터가 검색되도록 업데이트 한다.
또한, 도6을 참조하여 도4에 도시된 데이터 관리 동작(ST200)을 보다 상세히 설명한다.
데이터 처리수단(100)은 외부로부터 질의요청이 있게 되면, 해당 질의를 분석하여 해당 질의에 포함된 트랜잭션 종류를 판단한다.
데이터 처리수단(100)은 질의에 포함된 트랜잭션이 삽입 트랜잭션이면(ST210), DRAM(210)에 새로운 슬롯을 할당하여 데이터를 저장함과 더불어(ST220), DRAM(210)에 저장된 해당 데이터에 대응되는 새로운 인덱스 데이터를 생성하여 DRAM(210)의 인덱스 데이터저장소(201)에 저장한다(ST230).
또한, 데이터 처리수단(100)은 삽입 데이터에 대응하여 DRAM(210)에 구비된 검색필터 비트열을 업데이트시킨다(ST240). 이때, 데이터 처리수단(100)은 변경된 데이터에 대한 해시함수를 산출하고, 산출된 해시값에 대응되는 검색필터 비트열을 "1"로 설정한다.
한편, 데이터 처리수단(100)은 질의에 포함된 트랜잭션이 데이터의 수정이나 삭제를 포함하는 변경 트랜잭션이면(ST250), 해당 데이터를 기 설정된 k개의 해시함수에 적용하여 해시값을 산출하고, 각 스토리지(200)로 해당 해시값을 전송하여 각 스토리지(200)별 해당 검색필터 비트열에서 현재 산출된 해시값에 대응되는 위치의 비트값을 수집한다(ST260).
데이터 처리수단(100)은 각 스토리지(200)의 검색필터 비트값을 근거로 검색 대상 스토리지(200)를 결정한다(ST270). 이때, 데이터 처리수단(100)은 비트값이 모두 "1'인 경우 해당 스토리지(200)를 검색 대상 스토리지로 결정한다. 그리고, 검색 대상 스토리지가 2개인 경우에는 3개의 모든 스토리지를 검색 대상으로 변경설정한다. 또한, 검색 대상 스토리지가 존재하지 않는 경우에는 요청된 데이터가 어느 스토리지에도 존재하지 않는 것으로 질의 결과를 반환하는 처리를 수행한다.
또한, 데이터 처리수단(100)은 검색 대상 스토리지(200)에서 해당 변경 대상 데이터를 검색하고, 변경 대상 데이터가 검색된 스토리지(200)에서 해당 변경 트랜잭션 처리를 수행한다(ST280). 즉, 검색된 스토리지(200)에 저장된 데이터를 수정하거나 삭제하는 등의 변경 처리를 수행한다.
그리고, 데이터 처리수단(100)은 상기 ST280 단계에서의 데이터 변경에 대응하여 해당 스토리지(200)의 인덱스 데이터 저장소(201)를 업데이트 한다(ST290). 즉, 데이터 삭제에 대응하여 해당 인덱스 데이터 저장소(201)에서 해당 데이터의 인덱스 데이터를 삭제하고, 데이터 수정에 대응하여 해당 인덱스 데이터 저장소(201)에 저장된 인덱스 데이터를 변경한다.
한편, 본 발명에서 데이터 처리수단(100)은 검색 트랜잭션에 대해 도6의 ST260 내지 ST280의 동작을 수행한다.
즉, 데이터 처리수단(100)은 검색 트랜잭션에 대해 해당 데이터를 기 설정된 k개의 해시함수에 적용하여 해시값을 산출하고, 각 스토리지(200)로 해당 해시값을 전송하여 각 스토리지(200)별 해당 검색필터 비트열에서 현재 산출된 해시값에 대응되는 위치의 비트값을 수집하여 검색 대상 스토리지(200)를 결정한다. 그리고, 데이터 처리수단(100)은 검색 대상 스토리지(200)에서 해당 검색 대상 데이터를 검색하고, 검색된 데이터를 질의에 대한 결과로 반환한다.
또한, 본 발명에서 데이터 처리수단(100)은 일정 범위 검색에 대해서는 모든 스토리지에서 해당 범위 검색처리를 수행하여 그 질의 결과를 반환할 수 있다.
100 : 데이터 처리수단, 110 : 데이터 처리부,
120 : 계층화 처리부, 130 : 인덱스 처리부,
140 : 스토리지 검색부, 150 : 검색필터 관리부,
201 : 인덱스 데이터 저장소, 202 : 검색필터,
203 : 인덱스 오브젝트 저장소, 210 : DRAM,
220 : NVM, 230 : DISK.

Claims (6)

  1. DRAM(dynamic random access memory)과, NVM(non-volatile memory) 및, DISK를 포함하고, 각 스토리지는 해당 스토리지에 저장된 데이터에 대응되는 인덱스 데이터가 저장되는 인덱스 데이터 저장소와, 일정 비트열을 가지면서 해당 스토리지에 저장된 데이터에 대응되는 위치의 비트값이 유효값으로 설정되는 검색필터를 포함하여 구성되는 다수의 스토리지와,
    외부로부터의 데이터 삽입 요청에 대해서는 DRAM에 해당 데이터를 저장함과 더불어, 저장된 데이터에 대응되는 새로운 인덱스 데이터를 생성하여 DRAM의 인덱스 데이터 저장소에 저장하고, 해당 데이터를 기 설정된 해시 함수에 적용하여 그 해시값에 대응되는 위치의 DRAM의 검색필터 비트를 유효값으로 설정하며,
    외부로부터의 데이터 수정 및 삭제를 포함하는 데이터 변경요청에 대해서는 변경 대상 데이터를 기 설정된 해시함수에 적용하여 해시값을 산출한 후, 각 스토리지에서 해시값에 대응되는 위치의 비트값을 근거로 변경 대상 데이터가 저장된 스토리지를 결정하고, 결정된 스토리지에서 변경 대상 데이터를 검색하여 데이터 변경처리를 수행함과 더불어 변경내용에 대응하여 인덱스 데이터 저장소에 저장된 인덱스 데이터를 변경하는 데이터 관리를 수행하는 데이터 처리수단을 포함하여 구성되는 것을 특징으로 하는 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치.
  2. 제1항에 있어서,
    상기 DRAM에는 최초 데이터 삽입을 포함하여 억세스 시점이 현재로부터 일정 기간 이내인 HOT 데이터가 저장되고, NVM에는 현재로부터 억세스 시점이 일정 기간이 경과된 WARM 데이터가 저장되며, DISK에는 현재로부터 억세스 시점이 일정 기간을 초과하는 COLD 데이터가 저장되도록 구성되고,
    상기 데이터 처리수단은 각 스토리지에 저장된 데이터의 억세스 시점을 근거로 스토리지간 데이터를 이동하는 데이터 계층화를 수행함과 더불어, 데이터의 이동에 대응하여 해당 스토리지의 인덱스 데이터 저장소 및 검색필터의 비트열을 업데이트하는 것을 특징으로 하는 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치.
  3. 제2항에 있어서,
    상기 데이터 처리수단은 데이터 계층화 수행시 임의 스토리지에 저장된 데이터량이 기 설정된 임계치 이상인 경우, 타 스토리지의 데이터 저장량을 확인하고, 기 설정된 임계치와 차이가 큰 스토리지로의 데이터 이동을 추가로 수행하되, 데이터가 이동 저장될 스토리지의 계층에 대응하여 억세스 시점에 기반한 이동 대상 데이터를 결정하는 것을 특징으로 하는 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 각 스토리지는 데이터의 읽기/쓰기 특성과 공간 활용 특성을 고려하여 서로 다른 자료구조를 갖도록 구성되고,
    상기 데이터 처리수단은 데이터 저장시 해당 스토리지의 자료구조에 대응되게 데이터를 저장하는 것을 특징으로 하는 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치.
  5. 제1항에 있어서,
    상기 데이터 처리수단은 기 설정된 조건에 따라 각 스토리지에 구비된 검색필터 비트열을 해당 스토리지에 저장된 데이터를 기반으로 재생성하는 것을 특징으로 하는 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치.
  6. 제5항에 있어서,
    상기 데이터 처리수단은 스토리지에서 데이터 삭제가 기 설정된 횟수 이상 이루어지는 경우, 해당 스토리지의 검색필터 비트열을 재생성하는 것을 특징으로 하는 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치.
KR1020190009961A 2019-01-25 2019-01-25 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치 KR20200092710A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190009961A KR20200092710A (ko) 2019-01-25 2019-01-25 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치
PCT/KR2019/001244 WO2020153522A1 (ko) 2019-01-25 2019-01-30 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190009961A KR20200092710A (ko) 2019-01-25 2019-01-25 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치

Publications (1)

Publication Number Publication Date
KR20200092710A true KR20200092710A (ko) 2020-08-04

Family

ID=71737006

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190009961A KR20200092710A (ko) 2019-01-25 2019-01-25 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치

Country Status (2)

Country Link
KR (1) KR20200092710A (ko)
WO (1) WO2020153522A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434092A (zh) * 2021-07-07 2021-09-24 中国人民解放军国防科技大学 一种基于混合dram-nvm内存的指纹识别方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101775107B1 (ko) 2014-05-08 2017-09-05 주식회사 알티베이스 하이브리드데이터베이스 및 하이브리드데이터베이스에서 테이블을 관리하는 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
KR101166803B1 (ko) * 2010-12-31 2012-07-26 세종대학교산학협력단 비휘발성 메모리 및 휘발성 메모리를 포함하는 메모리 시스템 및 그 시스템을 이용한 처리 방법
US9384126B1 (en) * 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
CN107615254A (zh) * 2015-05-21 2018-01-19 新加坡科技研究局 混合对象存储设备的高速缓存架构和算法
US10282294B2 (en) * 2017-02-15 2019-05-07 Samsung Electronics Co., Ltd. Mitigating DRAM cache metadata access overhead with SRAM metadata cache and bloom filter

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101775107B1 (ko) 2014-05-08 2017-09-05 주식회사 알티베이스 하이브리드데이터베이스 및 하이브리드데이터베이스에서 테이블을 관리하는 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434092A (zh) * 2021-07-07 2021-09-24 中国人民解放军国防科技大学 一种基于混合dram-nvm内存的指纹识别方法
CN113434092B (zh) * 2021-07-07 2022-04-01 中国人民解放军国防科技大学 一种基于混合dram-nvm内存的指纹识别方法

Also Published As

Publication number Publication date
WO2020153522A1 (ko) 2020-07-30

Similar Documents

Publication Publication Date Title
CN111226205B (zh) Kvs树数据库
US9672235B2 (en) Method and system for dynamically partitioning very large database indices on write-once tables
US9858303B2 (en) In-memory latch-free index structure
JP4162183B2 (ja) データベース管理システムの静的な情報を取得する手段を有する記憶装置
Stoica et al. Enabling efficient OS paging for main-memory OLTP databases
JP4087097B2 (ja) データベース管理システム情報を考慮したデータ再配置方法およびデータ再配置を行う計算機システム
US10706034B2 (en) Query access optimizations for tiered index architecture
EP2746970B1 (en) Timeline index for managing temporal data
CN107491523B (zh) 存储数据对象的方法及装置
US20160350302A1 (en) Dynamically splitting a range of a node in a distributed hash table
CN105683898A (zh) 对储存系统中数据高效存储与检索的组相关哈希表组织
KR20040036681A (ko) 데이터 베이스
WO2013152678A1 (zh) 元数据查询方法和装置
WO2012169102A1 (ja) データベース性能予測装置及びデータベース予測方法
US7440936B2 (en) Method for determining an access mode to a dataset
US9558221B2 (en) Multi-pass, parallel merge for partitioned intermediate pages
US9361402B2 (en) Tiered index management
KR20200092710A (ko) 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치
CN110413617B (zh) 一种根据数据量的大小动态调节哈希表组的方法
CN112214460A (zh) 基于分布式大容量分片高性能的存储控制方法
WO2018119657A1 (zh) 应用于数据去重的数据路由方法
US20220188201A1 (en) System for storing data redundantly, corresponding method and computer program
Šalgová et al. The impact of table and index compression
Zhang et al. Employing intelligence in object-based storage devices to provide attribute-based file access
JP2008544397A (ja) ファイルシステム内へのコンテンツの格納を管理する方法および装置

Legal Events

Date Code Title Description
E601 Decision to refuse application