컴퓨팅 장치와 그 데이터 접근 방법
COMPUTING APPARATUS AND DATA ACCESS METHOD THEREOF
특허 요약
일 실시예에 따른 컴퓨팅 장치가 수행하는 데이터 접근 방법은, 적어도 하나의 명령어 및 데이터베이스를 저장하는 스토리지에 대하여, 프로세서에 의해 상기 적어도 하나의 명령어가 실행됨으로써, 상기 스토리지의 모든 키 값 데이터를 보관하는 스토리지 엔진과, 상기 스토리지 엔진에 보관된 키 값 데이터 중 상기 스토리지 엔진의 접근도가 임계치 이상인 키 값 데이터를 인덱스하고 캐싱하는 메모리 레이어, 및 데이터베이스 엔진을 생성 - 상기 메모리 레이어는, 병렬 접근을 지원하는 복수의 샤드 내 LRU(least recently used) 캐시에 상기 접근도가 임계치 이상인 키 값 데이터를 보관하는 블록 캐시 컴포넌트와, 상기 복수의 샤드의 상위 계층에 각각 배치되어 병렬적으로 접근 가능하고, 상기 접근도가 임계치 이상인 키 값 데이터 중 상기 블록 캐시의 접근도가 임계치 이상인 키 값 데이터의 포인터를 해시테이블에 보관하는 복수의 포인터 테이블 컴포넌트를 포함함 - 하는 단계; 상기 데이터베이스 엔진이, 상기 프로세서의 제어에 따른 쿼리 명령을 실행하여, 상기 포인터 테이블 컴포넌트의 상기 포인터에 대한 접근의 결과로서 획득한 키 값 데이터를 이용하여 상기 스토리지에 저장된 데이터에 접근하는 단계를 포함한다.
청구항
번호청구항
1

컴퓨팅 장치가 수행하는 데이터 접근 방법으로서,적어도 하나의 명령어 및 데이터베이스를 저장하는 스토리지에 대하여, 프로세서에 의해 상기 적어도 하나의 명령어가 실행됨으로써, 상기 스토리지의 모든 키 값 데이터를 보관하는 스토리지 엔진과, 상기 스토리지 엔진에 보관된 키 값 데이터 중 상기 스토리지 엔진의 접근도가 임계치 이상인 키 값 데이터를 인덱스하고 캐싱하는 메모리 레이어, 및 데이터베이스 엔진을 생성 - 상기 메모리 레이어는, 병렬 접근을 지원하는 복수의 샤드 내 LRU 캐시에 상기 접근도가 임계치 이상인 키 값 데이터를 보관하는 블록 캐시 컴포넌트와, 상기 복수의 샤드의 상위 계층에 각각 배치되어 병렬적으로 접근 가능하고, 상기 접근도가 임계치 이상인 키 값 데이터 중 상기 블록 캐시의 접근도가 임계치 이상인 키 값 데이터의 포인터를 해시테이블에 보관하는 복수의 포인터 테이블 컴포넌트를 포함함 - 하는 단계; 상기 데이터베이스 엔진이, 상기 프로세서의 제어에 따른 쿼리 명령을 실행하여, 상기 포인터 테이블 컴포넌트의 상기 포인터에 대한 접근의 결과로서 획득한 키 값 데이터를 이용하여 상기 스토리지에 저장된 데이터에 접근하는 단계를 포함하는데이터 접근 방법.

2

제 1 항에 있어서,상기 데이터에 접근하는 단계에서 상기 데이터베이스 엔진은, 찾으려는 키 값 데이터의 포인터가 상기 포인터 테이블 컴포넌트에서 발견되지 않으면 상기 샤드 내 블록 캐시 컴포넌트에서 상기 찾으려는 키 값 데이터를 탐색하는데이터 접근 방법.

3

제 2 항에 있어서,상기 포인터 테이블 컴포넌트 각각은,상기 포인터가 보관되는 포인터 해시테이블과,상기 포인터 해시테이블에 보관되는 포인터의 해시 값을 보관하는 큐를 포함하는데이터 접근 방법.

4

제 3 항에 있어서,상기 데이터베이스 엔진이 상기 큐에 해시 값이 보관된 포인터의 개수가 미리 정의된 임계값을 초과하면 FIFO(first-in first-out) 방식으로 상기 큐에서 해시 값을 제거하는데이터 접근 방법.

5

제 4 항에 있어서,상기 데이터베이스 엔진이 상기 큐에서 제거되는 해시 값을 이용하여 상기 포인터 해시테이블에서 대응하는 포인터를 제거하는데이터 접근 방법.

6

제 3 항에 있어서,상기 포인터 테이블 컴포넌트 각각은,상기 포인터 테이블 컴포넌트에서 상기 찾으려는 키 값 데이터의 포인터가 발견되지 않는 횟수와 상기 키 값 데이터의 탐색을 위해 상기 샤드에 접근하는 횟수를 계수하는 모니터를 더 포함하는데이터 접근 방법.

7

제 6 항에 있어서,상기 데이터베이스 엔진이 상기 계수된 상기 샤드에 접근하는 횟수가 미리 정의된 상한에 도달하면 대응하는 키 값 데이터의 포인터를 상기 포인터 해시테이블에 삽입하는데이터 접근 방법.

8

제 6 항에 있어서,상기 데이터베이스 엔진이 상기 계수된 찾으려는 키 값 데이터의 포인터가 발견되지 않는 횟수가 미리 정의된 상한에 도달하면 대응하는 블록 개시 접근 경로에서 대응하는 포인터 해시테이블 접근 경로를 동적으로 제외하는데이터 접근 방법.

9

제 3 항에 있어서,상기 포인터 테이블 컴포넌트 각각은,각각의 포인터 테이블 컴포넌트에 대한 읽기권한의 획득 및 해제, 쓰기권한의 획득 및 해제를 위한 읽기/쓰기 락(lock)을 더 포함하는데이터 접근 방법.

10

적어도 하나의 명령어 및 데이터베이스를 저장하는 스토리지와,프로세서를 포함하고;상기 프로세서에 의해 상기 적어도 하나의 명령어가 실행됨으로써, 상기 스토리지의 모든 키 값 데이터를 보관하는 스토리지 엔진과, 상기 스토리지 엔진에 보관된 키 값 데이터 중 상기 스토리지 엔진의 접근도가 임계치 이상인 키 값 데이터를 인덱스하고 캐싱하는 메모리 레이어, 및 데이터베이스 엔진을 생성 - 상기 메모리 레이어는, 병렬 접근을 지원하는 복수의 샤드 내 LRU 캐시에 상기 접근도가 임계치 이상인 키 값 데이터를 보관하는 블록 캐시 컴포넌트와, 상기 복수의 샤드의 상위 계층에 각각 배치되어 병렬적으로 접근 가능하고, 상기 접근도가 임계치 이상인 키 값 데이터 중 상기 블록 캐시의 접근도가 임계치 이상인 키 값 데이터의 포인터를 해시테이블에 보관하는 복수의 포인터 테이블 컴포넌트를 포함함 - 하는 단계; 상기 데이터베이스 엔진이, 상기 프로세서의 제어에 따른 쿼리 명령을 실행하여, 상기 포인터 테이블 컴포넌트의 상기 포인터에 대한 접근의 결과로서 획득한 키 값 데이터를 이용하여 상기 스토리지에 저장된 데이터에 접근하는컴퓨팅 장치.

11

제 10 항에 있어서,상기 데이터에 접근할 때에 상기 데이터베이스 엔진은, 찾으려는 키 값 데이터의 포인터가 상기 포인터 테이블 컴포넌트에서 발견되지 않으면 상기 샤드 내 블록 캐시 컴포넌트에서 상기 찾으려는 키 값 데이터를 탐색하는컴퓨팅 장치.

12

제 11 항에 있어서,상기 포인터 테이블 컴포넌트 각각은,상기 포인터가 보관되는 포인터 해시테이블과,상기 포인터 해시테이블에 보관되는 포인터의 해시 값을 보관하는 큐를 포함하는컴퓨팅 장치.

13

제 12 항에 있어서,상기 데이터베이스 엔진이 상기 큐에 해시 값이 보관된 포인터의 개수가 미리 정의된 임계값을 초과하면 FIFO 방식으로 상기 큐에서 해시 값을 제거하는컴퓨팅 장치.

14

제 13 항에 있어서,상기 데이터베이스 엔진이 상기 큐에서 제거되는 해시 값을 이용하여 상기 포인터 해시테이블에서 대응하는 포인터를 제거하는컴퓨팅 장치.

15

제 12 항에 있어서,상기 포인터 테이블 컴포넌트 각각은,상기 포인터 테이블 컴포넌트에서 상기 찾으려는 키 값 데이터의 포인터가 발견되지 않는 횟수와 상기 키 값 데이터의 탐색을 위해 상기 샤드에 접근하는 횟수를 계수하는 모니터를 더 포함하는컴퓨팅 장치.

16

제 15 항에 있어서,상기 데이터베이스 엔진이 상기 계수된 상기 샤드에 접근하는 횟수가 미리 정의된 상한에 도달하면 대응하는 키 값 데이터의 포인터를 상기 포인터 해시테이블에 삽입하는컴퓨팅 장치.

17

제 15 항에 있어서,상기 데이터베이스 엔진이 상기 계수된 찾으려는 키 값 데이터의 포인터가 발견되지 않는 횟수가 미리 정의된 상한에 도달하면 대응하는 블록 개시 접근 경로에서 대응하는 포인터 해시테이블 접근 경로를 동적으로 제외하는컴퓨팅 장치.

18

제 12 항에 있어서,상기 포인터 테이블 컴포넌트 각각은,각각의 포인터 테이블 컴포넌트에 대한 읽기권한의 획득 및 해제, 쓰기권한의 획득 및 해제를 위한 읽기/쓰기 락을 더 포함하는컴퓨팅 장치.

19

컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서,상기 컴퓨터 프로그램은,적어도 하나의 명령어 및 데이터베이스를 저장하는 스토리지에 대하여, 프로세서에 의해 상기 적어도 하나의 명령어가 실행됨으로써, 상기 스토리지의 모든 키 값 데이터를 보관하는 스토리지 엔진과, 상기 스토리지 엔진에 보관된 키 값 데이터 중 상기 스토리지 엔진의 접근도가 임계치 이상인 키 값 데이터를 인덱스하고 캐싱하는 메모리 레이어, 및 데이터베이스 엔진을 생성 - 상기 메모리 레이어는, 병렬 접근을 지원하는 복수의 샤드 내 LRU 캐시에 상기 접근도가 임계치 이상인 키 값 데이터를 보관하는 블록 캐시 컴포넌트와, 상기 복수의 샤드의 상위 계층에 각각 배치되어 병렬적으로 접근 가능하고, 상기 접근도가 임계치 이상인 키 값 데이터 중 상기 블록 캐시의 접근도가 임계치 이상인 키 값 데이터의 포인터를 해시테이블에 보관하는 복수의 포인터 테이블 컴포넌트를 포함함 - 하는 단계;상기 데이터베이스 엔진이, 상기 프로세서의 제어에 따른 쿼리 명령을 실행하여, 상기 포인터 테이블 컴포넌트의 상기 포인터에 대한 접근의 결과로서 획득한 키 값 데이터를 이용하여 상기 스토리지에 저장된 데이터에 접근하는 단계를 포함하는,데이터 접근 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는컴퓨터 판독 가능한 기록매체.

20

컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서,상기 컴퓨터 프로그램은,적어도 하나의 명령어 및 데이터베이스를 저장하는 스토리지에 대하여, 프로세서에 의해 상기 적어도 하나의 명령어가 실행됨으로써, 상기 스토리지의 모든 키 값 데이터를 보관하는 스토리지 엔진과, 상기 스토리지 엔진에 보관된 키 값 데이터 중 상기 스토리지 엔진의 접근도가 임계치 이상인 키 값 데이터를 인덱스하고 캐싱하는 메모리 레이어, 및 데이터베이스 엔진을 생성 - 상기 메모리 레이어는, 병렬 접근을 지원하는 복수의 샤드 내 LRU 캐시에 상기 접근도가 임계치 이상인 키 값 데이터를 보관하는 블록 캐시 컴포넌트와, 상기 복수의 샤드의 상위 계층에 각각 배치되어 병렬적으로 접근 가능하고, 상기 접근도가 임계치 이상인 키 값 데이터 중 상기 블록 캐시의 접근도가 임계치 이상인 키 값 데이터의 포인터를 해시테이블에 보관하는 복수의 포인터 테이블 컴포넌트를 포함함 - 하는 단계; 상기 데이터베이스 엔진이, 상기 프로세서의 제어에 따른 쿼리 명령을 실행하여, 상기 포인터 테이블 컴포넌트의 상기 포인터에 대한 접근의 결과로서 획득한 키 값 데이터를 이용하여 상기 스토리지에 저장된 데이터에 접근하는 단계를 포함하는,데이터 접근 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는컴퓨터 프로그램.