KR101806394B1 - 모바일 dbms환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법 - Google Patents

모바일 dbms환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법 Download PDF

Info

Publication number
KR101806394B1
KR101806394B1 KR1020160084665A KR20160084665A KR101806394B1 KR 101806394 B1 KR101806394 B1 KR 101806394B1 KR 1020160084665 A KR1020160084665 A KR 1020160084665A KR 20160084665 A KR20160084665 A KR 20160084665A KR 101806394 B1 KR101806394 B1 KR 101806394B1
Authority
KR
South Korea
Prior art keywords
index
data
cache
key
deletion
Prior art date
Application number
KR1020160084665A
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 KR1020160084665A priority Critical patent/KR101806394B1/ko
Priority to EP16178776.7A priority patent/EP3267329A1/en
Priority to US15/207,097 priority patent/US20180011897A1/en
Application granted granted Critical
Publication of KR101806394B1 publication Critical patent/KR101806394B1/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
    • G06F17/30132
    • 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/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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
    • 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/2365Ensuring data consistency and integrity
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

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)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 사용자 질의 요청에 따른 데이터 삽입/삭제 시에 버퍼 관리자가 디스크에 저장된 데이터에 접근하는 횟수를 줄여 데이터 갱신 연산을 빠르고 효율적으로 할 수 있도록 하는 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법에 관한 것이다.
이를 위한 본 발명의 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법은 질의 처리기로부터 데이터 삽입 또는 삭제 요청에 따라 질의 처리가 진행되는 동안에는 원본 색인 데이터를 변경하지 않고, 데이터의 삭제/삽입 여부에 관한 정보만을 색인 캐시에 기록하고, 트랜잭션 커밋시에 색인 캐시에 기록된 데이터의 삭제 여부에 따라 원본 색인을 변경하여 데이터 변경이 이루어지도록 한다.

Description

모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법{A DATA PROCESSING METHOD HAVING A STRUCTURE OF THE CACHE INDEX SPECIFIED TO THE TRANSACTION IN A MOBILE ENVIRONMENT DBMS}
본 발명은 DBMS의 데이터 처리 방법에 관한 것으로서, 보다 상세하게는 사용자 질의 요청에 따른 데이터 삽입/삭제 시에 버퍼 관리자가 디스크에 저장된 데이터에 접근하는 횟수를 줄여 데이터 갱신 연산을 빠르고 효율적으로 할 수 있도록 하는 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법에 관한 것이다.
데이터베이스 관리 시스템(DataBase Management System, DBMS)은 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 하는 소프트웨어 도구의 집합이다. 보다 구체적으로, DBMS는 데이터베이스 서버에 구현되어 다수의 사용자들 또는 프로그램들의 요구를 체계적으로 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다.
한편, DBMS는 외부로부터 특정 질의(Query)가 입력되는 경우, 입력된 질의에 따라 데이터베이스에 데이터를 선택, 삽입, 갱신, 삭제 등의 기능을 수행한다. 여기서 질의란 데이터베이스의 테이블에 저장되어 있는 데이터에 대한 어떠한 요구, 즉 데이터에 대한 어떠한 조작을 하기 원하는지를 기술한 것을 의미하는 것으로서, SQL(Structured Query Language)과 같은 언어를 이용하여 표현한다.
그리고, 데이터의 양이 갈수록 방대해짐에 따라 DBMS는 일반적으로 색인(index)를 구비한다. 여기서, 색인(index)이란 데이터베이스 분야에 있어서 테이블에 대한 탐색 속도를 높여주는 자료구조를 의미한다. 즉, 데이터베이스 시스템에서 데이터 검색을 위한 색인을 구성하기 위해서는 데이터 검색 용 키가 있어야 하며, 검색한 키가 저장된 레코드에 접근하기 위한 레코드 정보(물리적이거나 또는 논리적인 레코드 ID)가 있어야 한다. 즉, 색인(index)은 도 1에 도시된 바와 같이 레코드나 하위 노드 정보와 검색용 키 값으로 구성되는 데이터 구조를 가지며, 이러한 단위 데이터 구조를 노드 엔트리 또는 노드 아이템이라 부른다.
한편, 데이터베이스는 데이터를 디스크에 저장하며, 디스크에 저장된 데이터를 일정 크기의 블록으로 읽어 필요한 만큼 메모리에 올려놓고 사용자의 요청에 대한 처리를 수행하는 메모리 버퍼 관리기술이 적용되고 있다.
버퍼 관리자는 디스크에서 읽은 데이터 블록들을 메모리 버퍼에서 관리하다가 메모리 버퍼가 가득 차면 메모리 버퍼에서 가장 오래되거나 사용되지 않고 있는 데이터 블록을 제거하고 새로운 요청에 대한 데이터 블록을 디스크에서 읽어 메모리 버퍼에 올리게 된다.
이때, 오래되거나 사용되지 않고 있는 데이터 블록이라 함은 현재 참조되지 않고 있는 모든 데이터 블록을 말하며, 한번 버퍼 관리자에 의해 메모리 버퍼에 등록된 데이터 블록은 사용자의 요청에 의해 데이터 블록이 참조 되거나 다른 데이터 블록으로 교체된다.
실제 데이터가 저장되어 있는 디스크에 접근하기 위해서는 가장 소요 시간이 큰 디스크 입출력(input and output: I/O)이 발생하게 된다.
그런데, 사용자 요청에 의해 메모리 버퍼에 등록하여 사용자의 요청에 따라 변경 처리한 후 해당 데이터 블록을 디스크에 다시 쓴 경우 파일 I/O 빈도가 높아질 수 있다.
즉, 메모리 버퍼 등록하여 사용된 데이터 블록에 대한 참조가 없으면 변경된 데이터 블록을 디스크에 쓰고 난 후 다른 데이터 블록으로 교체하게 되는데, 해당 데이터 블록에 대한 요청이 다시 발생하면 해당 데이터 블록을 다시 읽어서 메모리 버퍼에 등록해야 한다.
한 번의 트랜잭션으로 대용량의 데이터를 처리해야 하는 경우 위와 같은 상황이 빈번하게 발생할 수 있다. 이에 따라, 대용량의 트랜잭션을 처리하기 위해서는 빈번하게 발생하는 디스크 접근에 따른 파일 I/O 빈도가 높아지고 그만큼 성능이 느려진다.
도 2는 종래 기술에 따른 데이터베이스 관리 시스템의 데이터 삽입/삭제시 색인 흐름도이다.
도 2를 참조하면, 우선 질의 처리기가 색인 관리자로 데이터 삽입 또는 삭제 요청을 하면, 색인 관리자는 해당 데이터에 대한 색인을 찾아 선택한다.
그리고, 선택된 색인 관리자는 선택된 색인의 색인 키를 구성하고, 색인에 키 삽입/삭제를 요청하며, 색인은 버퍼 관리자에 해당 색인 데이터에 대한 페이지를 요청하여 전달 받는다.
버퍼 관리자는 색인 관리자의 색인 데이터 페이지 요청(S10)에 따라 메모리 버퍼에 요청 받은 색인 페이지에 해당하는 데이터 블록이 있는지 판단하고(S20), 요청 받은 데이터 블록이 있을 경우 해당 데이터 블록을 전달한다.
이때, 요청받은 요청 받은 색인 페이지에 해당하는 데이터 블록이 없을 경우 메모리 버퍼에 여유 버퍼가 있는지 판단하고(S30), 여유 버퍼가 존재하면 디스크로부터 색인 데이터 블록을 읽어서 여유 버퍼에 할당하고(S40) 해당 데이터 블록을 전달한다(S50).
메모리 버퍼에 여유가 없으면 메모리 버퍼 내에서 가장 오래되거나 사용하지 않는 데이터 블록을 탐색하고(S60), 해당 데이터 블록에 변경된 내역이 있으면 파일에 쓴다. 이어서, 해당 메모리 버퍼 영역을 비워 빈 버퍼 영역을 만들고(S70), 파일에서 읽은 색인 데이터 블록을 비운 메모리 버퍼에 저장한 후에 해당 데이터 블록을 전달한다(S40).
이후, 색인 관리자는 전달 받은 색인 데이터 페이지에 색인 키를 삽입 또는 삭제하고 그 결과를 질의 처리기로 전달한다.
도 3은 일반적인 데이터베이스 관리 시스템의 사용자 질의 요청에 따른 색인 삽입/삭제 및 버퍼 관리 방법을 설명하기 위한 예시도로, 원 DB 색인 처리를 위하여 버퍼 관리자가 관리하는 페이지의 수가 2개인 것을 전제로 설명하도록 한다.
여기서 사용자 질의 요청은 아래와 같다.
insert into table value(id=100);
insert into table value(id=300);
insert into table value(id=270);
delete from table where(id=90);
insert into table value(id=150);
delete from table where(id=120);
우선, insert into table value(id=100)가 입력되면 버퍼 관리자(B/M)는 페이지 id=100이 입력될 페이지인"10"을 불러오는데, 페이지 "10"에는 키가 저장될 빈 영역이 없기 때문에 페이지 "10"을 분할하고, 페이지 "10과 새로운 페이지 "50"을 생성하여 버퍼에 올린다.
그리고, id=120을 페이지 "50"으로 이동하고, id=100을 페이지 "10"의 빈 영역에 저장한다.
이어서, insert into table value(id=300)가 입력되면 버퍼 관리자(B/M)는 페이지 id=300이 입력될 페이지인"40"을 불러와야 하는데, 버퍼 관리자가 관리할 수 있는 페이지가 2개이기 때문에 페이지 "10"을 파일에 쓴다.
그리고, 빈 버퍼 영역에 페이지 "40"을 불러와, 페이지 "40"의 첫 번째 영역에 id=300을 입력하고, "50"페이지는 그대로 유지한다.
다음으로, insert into table value(id=270)가 입력되면 버퍼 관리자(B/M)는 id=270이 입력될 페이지인"30"을 불러오는데, 페이지 "30"에는 빈 영역이 없기 때문에 페이지 "30"을 분할하고, 페이지 "30과 새로 생성된 페이지"60"을 버퍼에 올린다. 이때 버퍼 관리자가 관리할 수 있는 페이지가 2개이기 때문에, 페이지 "30과 "60"을 버퍼에 불러오기 전에 페이지 "40"과 "50"은 파일에 쓴다.
그리고, id=290을 페이지 "60"으로 이동하고, id=270을 페이지 "60"첫번째 영역에 저장한다.
다음으로, delete from table where(id=90)가 입력되면 버퍼 관리자(B/M)는 id=90이 위치한 페이지 "10"을 불러들이는데 이때 빈 버퍼가 필요하기 때문에 참조가 더 오래된 페이지 "30"은 파일에 쓰고, 페이지 "10"을 불러와 id=90을 삭제한다.
다음으로, insert into table value(id=150)가 입력되면, 버퍼 관리자(B/M)는 페이지 "20"을 불러와 id=150쓰는데, 이때 페이지 "20"을 올릴 빈 버퍼가 필요하므로 참조가 오래된 페이지 "60"을 파일에 쓴다.
이후, delete from table where(id=120)이 입력되면 버퍼 관리자(B/M)는 id=120이 위치한 페이지 "50"을 불러들이는데 이때 빈 버퍼가 필요하기 때문에 참조가 더 오래된 페이지 "60"은 파일에 쓰고, 페이지 "50"의 id=120을 삭제한다.
이와 같은 예시에 따르면 파일에 쓰이는 페이지 변경이 8번 이루어진다. 즉, id=300을 삽입하기 위한 페이지 "10", id=270을 삽입하기 위한 페이지 "40", "50"의 변경, id=90을 삭제하기 위한 페이지 "30", id=150을 삽입하기 위한 페이지 "60", id=120을 삭제하기 위한 페이지 "10", 최종적으로 버퍼 관리자에 남아 있는 페이지 "50"과 페이지 "20"이 변경된 페이지로서, 총 8번의 페이지 변경이 이루어지고, 페이지 "10"과 "50"은 중복되어 변경이 이루어진다.
즉, 데이터 갱신을 수행할 때 색인에서 갱신된 디스크 블록의 개수가 메모리 버퍼에서 관리되는 페이지의 개수보다 커질 때, 메모리 버퍼에서는 상술한 바와 같이 오래되었거나 사용되지 않고 있는 데이터 블록을 제거하거나 파일에 쓰게 된다.
그리고, 파일에 쓰인 디스크 블록을 읽어 오게 되므로 디스크 블록에 접근하는 회수가 많아지고 그로 인하여 데이터 갱신 성능이 떨어지는 단점이 있다.
한국공개특허 제2015-0044013호 "데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조" 한국등록특허 제1295210호 "데이터베이스 관리 방법 및 장치"
배경기술의 단점을 개선하기 위한 본 발명의 목적은 색인 데이터를 갱신 할 때 색인에서 랜덤 디스크 접근이 발생하는 색인 키를 메모리에서 구동되는 색인 캐시에 미리 정렬하여 저장하고 있다가, 트랜잭션 커밋시에 색인 캐시에 정렬된 캐시 키를 원본 색인에 마이그레이션 하여 메모리 버퍼에서 데이터 블록을 읽기 위해 기존에 있는 데이터 블록을 디스크에 쓰기 위해 접근하는 횟수를 감소시키도록 하는 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법을 제공함에 있다.
본 발명의 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법은 데이터 처리부에서 질의 처리기로부터 데이터 삽입 또는 삭제 요청에 따라 질의 처리가 진행되는 동안에는 원본 색인 데이터를 변경하지 않고, 데이터의 삭제/삽입 여부에 관한 정보만을 색인 캐시에 기록하는 단계와, 데이터 처리부에서 트랜잭션 커밋시에 색인 캐시에 기록된 데이터의 삭제 여부에 따라 원본 색인을 변경하여 데이터 변경이 이루어지도록 한다.
이때, 상기 데이터 처리부는 상기 질의 처리기로부터 랜덤하게 입력되는 데이터의 삽입/삭제 요청을 순차적으로 색인 관리하기 위하여 색인 캐시 키를 갖는 색인 캐시 구조를 생성하여 관리하되, 색인 캐시 구조는 데이터의 삽입인지 삭제인지를 구분하기 위한 정보 필드와, 레코드 ID 필드, 키 필드로 구성될 수 있다.
또한, 상기 데이터의 삽입인지 삭제인지를 구분하기 위한 정보 필드는 del flag로 설정되어, del flag가 null 일 경우는 데이터 삽입 요청인 것으로 판단 할 수 있도록 한다.
또한, 상기 데이터 처리부는 질의 처리가 진행되는 동안에 입력되는 다수의 데이터 삽입/삭제 요청에 따라 색인 캐시 노드를 생성하여 관리하되, 상기 색인 캐시 노드는 노드 페이지 헤더와 상기 레코드 ID 순서로 정렬된 다수의 색인 캐시로 구성될 수 있다.
본 발명의 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법은 색인 관리자에서 질의 처리기로부터 데이터 삽입 또는 삭제 요청이 발생하면 원본 색인 데이터를 변경하지 않고, 색인을 통해 색인 캐시로 색인 키 삽입 및 삭제를 요청하는 단계; 상기 색인 캐시에서 색인으로부터의 색인 키 삽입 또는 삭제 요청에 따라 데이터 삽입/삭제 요청에 대응되는 색인 캐시 키를 구성하는 단계; 상기 색인 캐시에서 색인 캐시 키를 색인 캐시 노드로 구성하는 단계; 상기 색인 관리자에서 질의 처리기로부터 트랜잭션 커밋 요청이 발생하면, 색인을 통해 색인 캐시로 트랜잭션 커밋 요청을 전달하고, 색인 캐시는 트랜잭션 커밋 요청이 색인 키의 삽입인지 삭제인지를 구분하여 색인으로 전달하는 단계; 상기 색인에서 버퍼 관리자로 해당 색인 데이터 페이지를 요청하고 전달받는 단계; 상기 색인에서 색인 캐시로부터 전달받은 색인 키 삽입/삭제 요청에 따라 버퍼 관리자로부터 전달받은 색인 데이터 페이지를 변경하고, 트랜잭션 결과를 색인관리자를 통하여 질의 처리기로 전달하는 단계를 포함할 수 있다.
본 발명에 따르면 트랜잭션 동안에는 메모리 버퍼가 데이터 블록을 읽고 쓰기 위하여 디스크에 접근하지 않고, 트랜잭션이 커밋되면 원본 색인을 변경함에 따라 트랜잭션이 커밋 되기 전까지 색인에서는 어떠한 디스크 I/O가 발생하지 않고, 트랜잭션이 커밋 될 때 색인 캐시에 정렬된 데이터에 의한 File I/O가 발생 하게 되므로 디스크 File I/O 횟수를 줄여 데이터 갱신 연산을 빠르고 효율적으로 할 수 있는 이점이 있다.
또한, 색인 캐시를 정렬하고 있다가 트랜잭션 커밋이 발생하면 데이터가 순차적으로 색인에 반영되기 때문에 한번 변경된 색인 페이지는 메모리 버퍼에서 제거되더라도 동일한 트랜잭션 내에서는 다시 호출되지 않기 때문에 동일한 디스크 블록에 대한 중복 File I/O를 줄일 수 있어 File I/O 비용을 절약할 수 있는 이점이 있다.
또한, 트랜잭션이 시작되어 커밋이 되기 전까지 색인 페이지가 저장되어 있는 디스크 블록에 대한 접근이 없기 때문에 버퍼 관리자는 그 만큼 메모리 버퍼의 여유 공간을 가지게 되며, 이렇게 생긴 메모리 버퍼의 여유 공간을 다른 레코드나 색인 연산에 사용할 수 있어 시스템의 전반적인 성능을 향상시킬 수 있는 이점이 있다.
도 1에 도시된 바와 같이 레코드나 하위 노드 정보와 검색용 키 값으로 구성되는 데이터 구조.
도 2는 종래 기술에 따른 데이터베이스 관리 시스템의 데이터 삽입/삭제시 색인 흐름도.
도 3은 일반적인 데이터베이스 관리 시스템의 사용자 질의 요청에 따른 색인 삽입/삭제 및 버퍼 관리 방법을 설명하기 위한 예시도.
도 4는 본 발명의 실시예에 따른 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 시스템 구성도.
도 5는 본 발명의 실시예에 따른 색인 캐시 데이터 구조.
도 6은 본 발명의 실시예에 따라 구축되는 노드 구조.
도 7 및 도 8은 본 발명의 실시예에 따른 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법을 도시한 흐름도.
도 9는 본 발명의 실시예에 따른 색인 캐시 구축 결과와, 색인 캐시 노드 구조.
도 10은 본 발명의 실시예에 따른 데이터베이스 관리 시스템의 사용자 질의 요청에 따른 색인 삽입/삭제 및 버퍼 관리 방법을 설명하기 위한 예시도.
이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 일 실시예를 상세하게 설명하기로 한다.
도 4는 본 발명의 실시예에 따른 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 시스템 구성도로, 데이터 입력부(10), 데이터 처리부(20), 데이터 저장관리부(30) 및 저장장치(40)를 포함한다.
데이터 입력부(10)는 질의 처리기(11)로서 외부로부터 입력된 데이터를 분석하고, 최적화하여 데이터 처리부(20)로 데이터의 삽입이나 삭제 요청 등을 전달하는 역할을 수행한다. 질의 처리기(11)는 또한 사용자 요청에 대한 트랜잭션을 관리하는 역할을 한다.
데이터 처리부(20)는 색인 관리자(21), B+Tree 색인(22)과, 색인 캐시(23)를 포함한다.
색인 관리자(21)는 질의 처리기(11)로부터의 데이터 삽입/삭제 요청에 따라 색인을 선택하고 색인키를 구성하며, B+Tree 색인(22)에 색인 키 삽입/삭제 요청을 한다. 또한, 색인 관리자(21)는 색인 키 삽입/삭제 결과와 트랜잭션 결과를 질의 처리기(11)로 전달하는 역할을 한다.
B+Tree 색인(22)은 사용자 요청에 따라 색인 데이터를 구축하고 구축된 색인에서 데이터를 검색하는 역할을 수행한다.
또한, B+Tree 색인(22)은 키 값을 저장하는 단말 노드 부분과 탐색 노드 부분으로 구성된다. B+Tree 색인(22)의 특성상 단말 노드에는 키가 정렬되어 저장되기 때문에 빠른 데이터 탐색이 가능한 장점이 있다. 탐색 노드 부분은 키가 저장된 단말 노드에 신속하게 접근하기 위한 경로 정보를 저장하고 있다.
B+Tree 색인(22)을 구성하는 탐색노드와 단말노드는 후술하는 버퍼 관리자(31)로 부터 페이지를 할당받아 사용한다.
B+Tree 색인(22)은 트랜잭션이 시작된 이후에 입력된 데이터를 색인 캐시(23)에 저장을 하며 트랜잭션이 커밋(commit)이 될 때 색인 캐시(23)에 저장된 데이터를 B+Tree에 저장을 한다.
B+Tree 색인(22)은 B+Tree에 데이터를 삽입하기 위해 입력된 색인 키를 색인 캐시 키로 구성하여 색인 캐시(23)에 입력하거나, B+Tree에 저장된 데이터를 삭제하기 위해 입력된 색인 키를 색인 캐시 키로 구성하여 색인 캐시(23)에 입력한다.
색인 캐시(23)는 B+Tree와 동일하게 키 값을 저장하는 단말 노드 부분과 탐색 노드 부분으로 구성되며, 데이터 삽입/삭제 요청에 따라 삽입/삭제 키를 구분하는 플래그를 삽입하여 단말노드에 정렬시킨다.
색인 캐시(23)는 동일한 키가 입력이 될 경우에는 나중에 입력된 키가 동일한 키 위치의 마지막에 입력되어 사용자의 요청에 의한 데이터 처리 순서를 보장한다.
색인 캐시(23)를 구성하는 탐색 노드와 단말 노드 영역은 B+Tree와 같이 버퍼 관리자를 통해 할당받지 않으며 색인 캐시(23) 자체적으로 관리하기 위한 Heap 메모리를 할당받아 노드를 구성한다.
색인 캐시(23)는 트랜잭션이 커밋(commit)될 때 색인 캐시의 단말 노드에 정렬된 색인 캐시 데이터를 순서대로 추출하여 B+Tree에 입력한다. 이때 색인 캐시 키는 다시 색인 키로 복원되며 복원 정보에 따라서 B+Tree에 데이터를 삽입할지 삭제할지 결정하게 된다.
도 5는 본 발명의 실시예에 따른 색인 캐시 데이터 구조로서, 색인 캐시 데이터는 레코드나 하위 노드 정보와 검색용 키 값으로 구성되는 노드 아이템을 확장하여 Del Flag 정보가 추가된 색인 캐시용 노드 아이템을 갖는다. 이때, 색인 캐시 데이터 노드 아이템은 삭제되어야 할 키에는 Del Flag를 설정하고, 삽입되어야 할 키에는 Del Flag를 설정하지 않는다.
도 6은 본 발명의 실시예에 따라 구축되는 노드 구조로서, 색인 캐시(23)에 키가 저장될 때 노드는 도 6과 같이 노드 페이지 헤더와 함께 키와 레코드 정보(또는 하위 노드 정보) 및 Del Flag로 구성되는 색인 캐시용 노드 아이템들이 누적 구축된다.
한편, 데이터 저장관리부(30)는 버퍼 관리자(31)와 저장 관리자(32)를 포한한다.
버퍼 관리자(31)는 일정 크기를 갖는 메모리를 할당받고, 할당 받은 메모리를 작은 영역으로 구분한다. 이때, 할당된 일정 크기의 메모리인 Heap 메모리를 버퍼하고 부르며, 버퍼를 같은 크기로 다수 구분한 여러 영역들을 페이지라 부른다.
하나의 페이지는 B+Tree에서 노드로 사용되는 크기와 동일하며 색인 캐시(23)에서 노드로 사용되는 크기와는 다를 수 있다.
버퍼 관리자(31)는 B+Tree의 요청에 따라 저장 관리자(32)에 B+Tree의 노드가 저장된 데이터 블록을 읽어오도록 요청하며, 저장 관리자(32)가 읽어온 데이터 블록을 버퍼 관리자(31)에서 관리하는 페이지에 적재하여 B+Tree로 전달한다.
버퍼 관리자(31)는 저장 관리자(32)가 읽어온 데이터 블록을 페이지에 적재할 때 해당 페이지의 데이터가 변경된 내역이 있으면 저장 관리자(32)를 통해 파일 쓰기를 수행하여 변경된 데이터 블록을 저장하고 불러온 데이터 블록을 페이지에 적재한다.
저장 관리자(32)는 버퍼 관리자(31)의 요청을 받아 저장장치(40)에 저장되어 있는 파일에서 데이터 블록을 읽어오거나 변경된 데이터 블록을 쓰는 역할을 수행한다.
저장장치(40)는 B+Tree색인 데이터가 파일로 저장되는 물리적인 디스크를 말하는 것으로서, 디스크 입출력(I/O)이 필요한 하드 디스크 드라이브, SSD(Solid State Drive) 등의 영구 저장 매체로 이루어진다.
도 7 및 도 8은 본 발명의 실시예에 따른 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법을 도시한 흐름도로서, 도 7은 데이터 삽입/삭제시 색인 캐시 흐름도이며, 도 8은 트랜잭션 커밋시 색인 캐시 흐름도이다.
본 발명의 실시예에서는 트랜잭션이 시작될 때 색인 캐시를 생성하고, 트랜잭션이 끝날 때 색인 캐시를 제거한다.
보다 구체적으로 색인 캐시 데이터 처리 방법을 설명하면 다음과 같다.
일반적으로는 데이터베이스에서 트랜잭션이 시작되면 트랜잭션 관리자와 로그 관리자가 모든 사용자 질의를 처리하면서 데이터 페이지를 체크하고, 페이지가 변경되면 변경된 데이터 페이지를 로그로 작성한다.
이미 로그로 작성된 데이터 페이지가 사용자 요청에 의해 또 변경되면 로그에 쓰여진 페이지도 변경된다. 트랜잭션 커밋이 발생하면 최종적으로 작성된 로그 페이지를 원 데이터베이스에 반영하고 트랜잭션이 끝난다.
또한 사용자 요청으로 색인에 발생하는 동작은 데이터의 삽입과 데이터 삭제가 있다. 색인에서 데이터 삽입이나 데이터 삭제시 데이터의 변경에 따른 노드 정보 변경이 발생하게 되는데 이웃 노드 또는 부모 노드의 정보 변경에 따른 예측하기 어려운 로그 페이지 처리 비용이 추가된다.
본 발명의 실시예에서는 도 7에 도시된 바와 같이 트랜잭션이 시작되어 질의 처리기(11)가 색인 관리자(21)로 데이터 삽입 또는 삭제 요청을 하면(S100), 색인 관리자(21)는 해당 데이터에 대한 색인을 찾아 선택한다.
그리고, 색인 관리자(21)는 선택된 색인에 색인 키를 구성하고(S110), 색인에 색인 키 삽입/삭제를 요청하고, 이에 따라 색인은 색인 키를 변경하지 않고 색인 캐시(23)에 색인 키 삽입/삭제를 요청한다(S120).
이에 따라, 색인(22)은 색인 캐시에 색인 키 삽입/삭제를 요청을 전달하고(S130), 색인 캐시(23)는 트랜잭션 관리자나 로그 관리자는 무관하게 색인 캐시 키를 구성 및 캐시 키를 삽입 저장한다(S140).
즉, 색인에 데이터를 삽입하기 위한 색인 키 또는 삭제를 위한 색인 키는 캐시 키로 변환되며, 색인 캐시 키에는 Cache flag가 설정됨에 따라 삽입을 위한 색인 키인지 삭제를 위한 색인 키인지 구분할 수 있는 정보가 포함된다.
이어서, 색인 캐시(23)는 캐시 키 삽입 결과를 색인에 전달하고(S150), 색인은 원본 색인은 변경하지 않고, 색인 키 삽입/삭제 결과만을 색인 관리자(21)에 전달하며(S160), 색인 관리자는 색인 키 삽입/삭제 결과를 질의 처리기(11)로 전달한다(S170).
이후에 질의 처리기(11)로부터 데이터 삽입 또는 삭제 요청이 발생하면 상술한 방법과 동일하게 원본 색인은 변경하지 않고 색인 캐시(23)에서 색인 캐시 키를 설정하고, 색인 캐시 키가 설정된 데이터를 정렬하여 관리한다.
그리고, 도 8에 도시된 바와 같이 질의 처리기(11)로부터 트랜잭션 커밋 요청이 발생하면 색인 관리자(21)는 등록된 모든 색인(22)에 트랜잭션 커밋을 알린다(S210).
다음으로, 색인(22)에서 색인 캐시(23)에 트랜잭션 커밋을 전달하면(S220) 색인 캐시(23)는 색인 캐시 노드에 저장된 모든 데이터에 대하여 캐시 키의 Del Flag에 설정된 정보를 확인한다(S230).
그리고, 색인 캐시(23)는 캐시 키 삽입/삭제 확인 결과에 따라 색인에 색인 키의 삽입/삭제를 요청한다(S240). 이때, Del Flag에 설정된 정보가 삽입일 경우 키 삽입을 요청하고, 삭제일 경우 색인 키 삭제를 요청한다.
다음으로, 색인(22)은 요청받은 키 삽입/삭제 데이터를 처리하기 위해 버퍼 관리자(31)에 데이터 페이지를 요청한다(S250).
이에 따라, 버퍼 관리자(31)는 버퍼에 저장하고 있는 데이터 페이지를 색인(22)에 전달하고(S260), 색인(22)은 전달받은 색인 데이터 페이지에 상술한 색인 캐시로부터 전달받은 색인 캐시 키 정보를 반영하여 원본 색인에 색인 키를 삽입 또는 삭제한다(S270).
이때, 색인(22)은 색인 캐시(23)의 노드에 있는 모든 데이터를 처리할 때까지 버퍼 관리자에 데이터 페이지를 요청하여 색인에 키를 삽입 또는 삭제를 반복한다.
그리고, 모든 데이터에 대한 처리가 완료되면 색인(22)은 색인 관리자(21)에 트랜잭션 결과를 전달하고(S280), 색인 관리자(21)는 전달받은 트랜잭션 결과를 질의 처리기(11)로 전달한다(S290)
이후, 색인 캐시(23)는 트랜잭션이 끝나면 색인 캐시 키를 제거한다.
이와 같이 본 발명은 메모리 상에 구축한 원본 색인과 동일한 노드 정보를 가진 색인 캐시에 데이터를 삽입한 후 정렬하여 관리하고, 트랜잭션 커밋이 발생하면 메모리 상에 구축된 색인 캐시의 데이터를 원본 색인에 반영하는 작업을 수행한다.
이때 트랜잭션 관리자와 로그 관리자가 사용이 되며 한번 변경되어 로그로 작성된 데이터 페이지가 사용자 요청에 의해 다시 변경되는 일은 없어진다.
또한 색인 캐시에서는 사용자 요청으로 색인에 데이터를 삽입하거나 데이터를 삭제하는 연산을 캐시 키에 삽입 또는 삭제 정보만 추가하여 색인 캐시에는 삽입만 수행하기 때문에 색인 캐시의 동작이 간결하고 빠른 데이터 처리를 기대할 수 있다.
트랜잭션이 시작되어 사용자 요청이 처리되는 동안은 모든 처리가 메모리상에서 발생하기 때문에 디스크 IO로 인한 성능저하는 없으며, 트랜잭션 커밋시에 트랜잭션 메니저가 트랜잭션 커밋을 처리하기 전에 색인 캐시가 원본 색인에 캐시 키를 반영할 때 트랜잭션 관리자와 로그 관리자에서 발생하는 디스크 IO는 최적화되고 최소화된 디스크 IO로 볼 수 있다.
또한 색인 캐시에 저장되어 있는 데이터를 원본 색인에 반영할 때 데이터를 삽입하거나 삭제할 때 발생하는 노드 정보 변경이 발생하는데, 색인 캐시에는 모든 데이터가 정렬되어 있고 순차적으로 처리되기 때문에 이웃 노드 또는 부모노드에 대한 변경 역시 반복된 변경연산은 발생하지 않는다.
이와 같은 본 발명의 실시예에 따라 사용자 질의 요청을 처리하는 과정을 도 9 및 도 10을 참조하여 설명하도록 한다.
여기서 사용자 질의 요청은 아래와 같다.
insert into table value(id=100);
insert into table value(id=300);
insert into table value(id=270);
delete from table where(id=90);
insert into table value(id=150);
delete from table where(id=120);
도 9는 본 발명의 실시예에 따른 색인 캐시 구축 결과와, 색인 캐시 노드 구조로서, 사용자 질의 요청에 따라 도 9의 (a)와 같이 색인 캐시를 구축하고, 구축된 색인 캐시를 도 9의 (b)와 같이 색인 캐시 노드 구조로 구성한다.
이때, 도 9의 (a)의 각 페이지 노드에 나타난 D,90, I, 150에서 D는 삭제를, I는 삽입을 의미하고, 90과 150 등의 숫자는 ID에 해당된다.
이러한 색인 캐시는 도 9의 (b)에 도시된 바와 같이 색인 캐시 헤더와 함께 구성되는데, 이때, 숫자 1은 Delete flag가 설정된 삭제를 의미하고, 숫자 O은 Delete flag가 설정되지 않은 삽입을 의미한다.
또한, 본 발명의 실시예는 도 9의 (b)에 도시된 바와 같이 사용자 질의 요청에 따라 ID 순서대로 정렬하여 색인 캐시 노드 구조를 구성한다.
도 10은 본 발명의 실시예에 따른 데이터베이스 관리 시스템의 사용자 질의 요청에 따른 색인 삽입/삭제 및 버퍼 관리 방법을 설명하기 위한 예시도로, 원 DB 색인 처리를 위하여 버퍼 관리자가 관리하는 페이지의 수가 2개인 것을 전제로 설명하도록 한다.
본 발명의 실시예는 질의 처리기로부터 트랜잭션 커밋이 요청되면 색인 캐시에서 구축하여 정렬된 ID 순서대로 색인 캐시를 변경하여 원본 색인에 마이그레이션한다.
우선, 사용자 질의 요청에 따른 D,90 색인 캐시에 따라 버퍼 관리자는 페이지 "10"을 버퍼에 불러와 "90"을 삭제하고, I,100 색인 캐시에 따라 버퍼 관리자는 "10"에 "100"을 삽입한다.
이어서, D,120 색인 캐시에 따라 버퍼 관리자는 페이지 "10"의 "120"을 삭제하고, I,150 색인 캐시에 따라 버퍼 관리자는 페이지 "20"을 버퍼에 불러와 "150"을 삽입한다.
다음으로, I,270 색인 캐시에 따라 버퍼 관리자는 페이지 "30"에 270을 삽입해야 하지만, 이때 페이지 "30"에는 빈 영역이 존재하지 않으므로 버퍼 관리자는 참조되지 않는 페이지 "10"과 "20"을 파일에 쓰고, 버퍼에 페이지 "30"을 분할하여 페이지 "50"을 생성한다. 그리고, 생성된 페이지 "50"에 290을 이동시키고, 270을 삽입한다.
이후, I,270 색인 캐시에 따라 버퍼 관리자는 페이지 "30"을 파일에 쓰고, 페이지 "40"을 버퍼에 불러와 300을 삽입한다.
이와 같은 예시에 따르면 파일에 쓰이는 페이지 변경이 5번 이루어진다. 즉, id=270을 삽입하기 위한 페이지 "10"과"20"의 변경, id=300을 삽입하기 위한 페이지 "30", "40", "50"의 변경이 이루어지고, 페이지 중복 변경은 존재하지 않게 된다.
상술한 바와 같이 본 발명은 데이터 갱신 중에 색인에서 랜덤 디스크 접근이 발생하는 색인 키를 메모리에서 구동되는 색인 캐시에 미리 정렬하여 저장하고 있다가, 트랜잭션 커밋시에 색인 캐시에 정렬된 캐시 키를 원본 색인에 마이그레이션 함으로써 랜덤 디스크 접근을 줄일수 있다.
비록 본 발명이 상기 언급된 바람직한 실시예와 관련하여 설명되어졌지만, 발명의 요지와 범위로부터 벗어남이 없이 다양한 수정이나 변형을 하는 것이 가능하다. 따라서 첨부된 특허청구의 범위는 본 발명의 요지에서 속하는 이러한 수정이나 변형을 포함할 것이다.
10 : 데이터 입력부 11 : 질의처리기
20 : 데이터 처리부 21 : 색인 관리자
22 : B+tree 색인 23 : 색인 캐시
30 : 데이터 저장관리부 31 : 버퍼 관리자
32 : 저장 관리자 40 : 저장장치

Claims (8)

  1. 데이터 처리부에서 질의 처리기로부터 데이터 삽입 또는 삭제 요청에 따라 질의 처리가 진행되는 동안에는 원본 색인 데이터를 변경하지 않고, 데이터의 삭제/삽입 여부에 관한 정보만을 색인 캐시에 기록하는 단계와,
    데이터 처리부에서 트랜잭션 커밋시에 색인 캐시에 기록된 데이터의 삭제 여부에 따라 원본 색인을 변경하여 데이터 변경이 이루어지도록 하는 단계를 포함하여 구성되는 것을 특징으로 하는 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법.
  2. 제 1항에 있어서,
    상기 데이터 처리부는 상기 질의 처리기로부터 랜덤하게 입력되는 데이터의 삽입/삭제 요청을 순차적으로 색인 관리하기 위하여 색인 캐시 키를 갖는 색인 캐시 구조를 생성하여 관리하되, 색인 캐시 구조는 데이터의 삽입인지 삭제인지를 구분하기 위한 정보 필드와, 레코드 ID 필드, 키 필드로 구성되는 것을 특징으로 하는 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법.
  3. 제 2항에 있어서,
    상기 데이터의 삽입인지 삭제인지를 구분하기 위한 정보 필드는 del flag로 설정되어, del flag가 null 일 경우는 데이터 삽입 요청인 것으로 판단 할 수 있도록 하는 것을 특징으로 하는 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법.
  4. 제 2항에 있어서,
    상기 데이터 처리부는 질의 처리가 진행되는 동안에 입력되는 다수의 데이터 삽입/삭제 요청에 따라 색인 캐시 노드를 생성하여 관리하되, 상기 색인 캐시 노드는 노드 페이지 헤더와 상기 레코드 ID 순서로 정렬된 다수의 색인 캐시로 구성되는 것을 특징으로 하는 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법.
  5. 색인 관리자에서 질의 처리기로부터 데이터 삽입 또는 삭제 요청이 발생하면 원본 색인 데이터를 변경하지 않고, 색인을 통해 색인 캐시로 색인 키 삽입 및 삭제를 요청하는 단계;
    상기 색인 캐시에서 색인으로부터의 색인 키 삽입 또는 삭제 요청에 따라 데이터 삽입/삭제 요청에 대응되는 색인 캐시 키를 구성하는 단계;
    상기 색인 캐시에서 색인 캐시 키를 색인 캐시 노드로 구성하는 단계;
    상기 색인 관리자에서 질의 처리기로부터 트랜잭션 커밋 요청이 발생하면, 색인을 통해 색인 캐시로 트랜잭션 커밋 요청을 전달하고, 색인 캐시는 트랜잭션 커밋 요청이 색인 키의 삽입인지 삭제인지를 구분하여 색인으로 전달하는 단계;
    상기 색인에서 버퍼 관리자로 해당 색인 데이터 페이지를 요청하고 전달받는 단계;
    상기 색인에서 색인 캐시로부터 전달받은 색인 키 삽입/삭제 요청에 따라 버퍼 관리자로부터 전달받은 색인 데이터 페이지를 변경하고, 트랜잭션 결과를 색인관리자를 통하여 질의 처리기로 전달하는 단계를 포함하는 것을 특징으로 하는 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법.
  6. 제 5항에 있어서,
    상기 색인 캐시는 질의 처리기로부터 랜덤하게 입력되는 데이터의 삽입/삭제 요청을 순차적으로 색인 관리하기 위하여, 색인 캐시 키는 삽입용 캐시 키 또는 삭제용 캐시 키 인지를 구분하기 위한 정보 필드와, 레코드 ID 필드, 키 필드로 구성되는 것을 특징으로 하는 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법.
  7. 제 6항에 있어서,
    상기 삽입용 캐시 키 또는 삭제용 캐시 키 인지를 구분하기 위한 정보 필드는 del flag로 설정되어, del flag가 null 일 경우는 삽입용 캐시 키로 판단 할 수 있도록 하는 것을 특징으로 하는 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법.
  8. 제 6항 또는 제7항에 있어서,
    상기 색인 캐시 노드는 노드 페이지 헤더와 상기 레코드 ID 순서로 정렬된 다수의 색인 캐시로 구성되는 것을 특징으로 하는 모바일 DBMS환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법.
KR1020160084665A 2016-07-05 2016-07-05 모바일 dbms환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법 KR101806394B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160084665A KR101806394B1 (ko) 2016-07-05 2016-07-05 모바일 dbms환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법
EP16178776.7A EP3267329A1 (en) 2016-07-05 2016-07-11 Data processing method having structure of cache index specified to transaction in mobile environment dbms
US15/207,097 US20180011897A1 (en) 2016-07-05 2016-07-11 Data processing method having structure of cache index specified to transaction in mobile environment dbms

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160084665A KR101806394B1 (ko) 2016-07-05 2016-07-05 모바일 dbms환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법

Publications (1)

Publication Number Publication Date
KR101806394B1 true KR101806394B1 (ko) 2017-12-07

Family

ID=56404023

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160084665A KR101806394B1 (ko) 2016-07-05 2016-07-05 모바일 dbms환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법

Country Status (3)

Country Link
US (1) US20180011897A1 (ko)
EP (1) EP3267329A1 (ko)
KR (1) KR101806394B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110618989A (zh) * 2019-08-15 2019-12-27 中国平安财产保险股份有限公司 信息处理方法、信息处理装置及相关产品

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018200475A1 (en) * 2017-04-24 2018-11-01 Reniac, Inc. System and method to accelerate compaction
CN110764697B (zh) * 2019-09-29 2023-08-29 望海康信(北京)科技股份公司 一种数据管理方法及装置
US20220058179A1 (en) * 2020-08-24 2022-02-24 International Business Machines Corporation Executing database transactions

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026406A (en) * 1997-06-04 2000-02-15 Oracle Corporation Batch processing of updates to indexes
KR101295210B1 (ko) 2012-04-27 2013-08-12 엔에이치엔비즈니스플랫폼 주식회사 데이터베이스 관리 방법 및 장치
KR102013839B1 (ko) 2015-03-12 2019-10-21 네이버 주식회사 데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110618989A (zh) * 2019-08-15 2019-12-27 中国平安财产保险股份有限公司 信息处理方法、信息处理装置及相关产品
CN110618989B (zh) * 2019-08-15 2023-09-08 中国平安财产保险股份有限公司 信息处理方法、信息处理装置及相关产品

Also Published As

Publication number Publication date
US20180011897A1 (en) 2018-01-11
EP3267329A1 (en) 2018-01-10

Similar Documents

Publication Publication Date Title
KR102462781B1 (ko) Kvs 트리 데이터베이스
US9767131B2 (en) Hierarchical tablespace space management
US9672235B2 (en) Method and system for dynamically partitioning very large database indices on write-once tables
US7418544B2 (en) Method and system for log structured relational database objects
JP6356675B2 (ja) 集約/グループ化動作:ハッシュテーブル法のハードウェア実装
KR102564170B1 (ko) 데이터 객체 저장 방법, 장치, 및 이를 이용한 컴퓨터 프로그램이 저장되는 컴퓨터 판독가능한 저장 매체
US11580162B2 (en) Key value append
KR101806394B1 (ko) 모바일 dbms환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법
US10521117B2 (en) Unified table delta dictionary memory size and load time optimization
US10289709B2 (en) Interleaved storage of dictionary blocks in a page chain
WO2018205151A1 (zh) 数据更新方法和存储装置
US11886401B2 (en) Database key compression
KR20210123236A (ko) 키-값 장치들을 위한 키-값 저장소 아키텍처
US10747773B2 (en) Database management system, computer, and database management method
US10558636B2 (en) Index page with latch-free access
CN113392089B (zh) 一种数据库索引优化方法及可读存储介质
CN117120998A (zh) 用于读取树数据结构中保存的数据的方法和装置
CN112732725B (zh) 基于nvm混合内存的自适应前缀树构建方法及其系统、介质
US10366067B2 (en) Adaptive index leaf block compression
US20100228787A1 (en) Online data volume deletion
JP2006302307A (ja) 記憶装置管理方法
JP3806609B2 (ja) 並列データベースシステムおよび分散ファイルシステム
KR100982591B1 (ko) 단계적 인덱싱을 위한 파일 시스템, 메인 기억장치 및플래시 기억장치 그리고 상기 단계적 인덱싱을 통한 데이터관리 방법
KR101311409B1 (ko) 부분적인 인덱스 rid 정렬을 통한 파티션 스캔 방법 및 장치, 메모리 시스템, 및 데이터 정렬 방법
US10997164B2 (en) Unified table delta dictionary lazy materialization

Legal Events

Date Code Title Description
GRNT Written decision to grant