1 |
1
인메모리 데이터베이스의 데이터 처리 방법에 있어서,상기 인메모리 데이터베이스의 비휘발성 메모리에 우선적으로 데이터를 저장하는 단계; 및상기 인메모리 데이터베이스의 비휘발성 메모리에 저장된 데이터의 일부 데이터를 상기 인메모리 데이터베이스의 휘발성 메모리에 백업하는 단계를 포함하며,상기 비휘발성 메모리에 저장된 데이터는 키-값 기반의 데이터이며, 상기 비휘발성 메모리는 상기 키-값의 주소를 갖는 주소 리스트를 포함하며, 상기 휘발성 메모리는 상기 주소 리스트를 참조하여 상기 키-값을 복구하기 위하여 상기 키-값을 참조하는 데이터 구조를 포함하는 것을 특징으로 하는 인메모리 데이터베이스의 데이터 처리 방법
|
2 |
2
삭제
|
3 |
3
제1항에 있어서,상기 휘발성 메모리의 데이터 구조는 상기 비휘발성 메모리에 저장된 데이터 및 상기 휘발성 메모리에 저장된 데이터를 관리하며, 상기 비휘발성 메모리에 저장된 키-값을 참조하거나 상기 휘발성 메모리에 저장된 키-값을 참조하는 것을 특징으로 하는 인메모리 데이터베이스의 데이터 처리 방법
|
4 |
4
제1항에 있어서,상기 백업하는 단계는 상기 비휘발성 메모리에 저장된 데이터가 기 설정된 비율을 초과하면, 상기 일부 데이터를 상기 휘발성 메모리로 방출하는 것을 특징으로 하는 인메모리 데이터베이스의 데이터 처리 방법
|
5 |
5
제4항에 있어서,상기 일부 데이터를 상기 휘발성 메모리로 방출하는 것을 (i) 상기 비휘발성 메모리의 상기 주소 리스트 중에서 희생 노드를 선택하고, (ii) 상기 희생 노드의 키-값을 상기 휘발성 메모리에 복사하고, (iii) 상기 휘발성 메모리의 데이터 구조는 상기 휘발성 메모리에 복사된 키-값을 참조하고, (iv) 상기 희생 노드의 키-값의 처리 명령에 관한 로그를 상기 휘발성 메모리의 로그 버퍼에 기록하고, (v) 상기 로그를 상기 로그 버퍼로부터 상기 인메모리 데이터베이스의 블록 디바이스의 로그 파일로 플러싱하고, (vi) 플러싱을 완료하면 상기 비휘발성 메모리의 상기 주소 리스트에서 상기 희생 노드를 삭제하는 것을 특징으로 하는 인메모리 데이터베이스의 데이터 처리 방법
|
6 |
6
제5항에 있어서,상기 희생 노드를 선택하여 상기 데이터를 방출하는 순서는 최저 사용 빈도(Least Recently Used, LRU) 정책에 따라 결정되는 것을 특징으로 하는 인메모리 데이터베이스의 데이터 처리 방법
|
7 |
7
제1항에 있어서,상기 휘발성 메모리에 저장된 데이터가 갱신되면 상기 갱신된 데이터는 상기 비휘발성 메모리에 저장되고,상기 비휘발성 메모리에 저장된 데이터가 갱신되면, (i) 상기 주소 리스트의 헤드에 신규 노드를 삽입하고, (ii) 상기 신규 노드가 상기 갱신된 데이터를 참조하고, (iii) 갱신되기 전의 데이터를 가진 노드를 삭제하여, 상기 주소 리스트를 재정렬하는 것을 특징으로 하는 인메모리 데이터베이스의 데이터 처리 방법
|
8 |
8
제1항에 있어서,상기 주소 리스트 및 로그 파일을 이용하여 데이터를 복구하는 단계를 추가로 포함하며, 상기 데이터를 복구하는 단계는 (i) 상기 인메모리 데이터베이스의 블록 디바이스의 로그 파일을 기반으로 상기 휘발성 메모리의 데이터 구조를 복구하고, (ii) 상기 주소 리스트에서 삭제되지 않은 희생 노드의 키-값을 상기 휘발성 메모리에 복구하고 상기 희생 노드의 키-값의 처리 명령에 관한 로그를 생성하고, (iii) 상기 주소 리스트로부터 상기 비휘발성 메모리의 키-값을 복구하는 것을 특징으로 하는 인메모리 데이터베이스의 데이터 처리 방법
|
9 |
9
프로세서, 비휘발성 메모리, 휘발성 메모리, 및 블록 디바이스를 포함하며,상기 비휘발성 메모리에 우선적으로 데이터를 저장하고, 상기 비휘발성 메모리에 저장된 데이터의 일부 데이터를 상기 휘발성 메모리에 백업하며,상기 비휘발성 메모리에 저장된 데이터는 키-값 기반의 데이터이며, 상기 비휘발성 메모리는 상기 키-값의 주소를 갖는 주소 리스트를 포함하며, 상기 휘발성 메모리는 상기 주소 리스트를 참조하여 상기 키-값을 복구하기 위하여 상기 키-값을 참조하는 데이터 구조를 포함하는 것을 특징으로 하는 인메모리 데이터베이스
|
10 |
10
삭제
|
11 |
11
제9항에 있어서,상기 휘발성 메모리의 데이터 구조는 상기 비휘발성 메모리에 저장된 데이터 및 상기 휘발성 메모리에 저장된 데이터를 관리하며, 상기 비휘발성 메모리에 저장된 키-값을 참조하거나 상기 휘발성 메모리에 저장된 키-값을 참조하는 것을 특징으로 하는 인메모리 데이터베이스
|
12 |
12
제9항에 있어서,상기 프로세서는 상기 비휘발성 메모리에 저장된 데이터가 기 설정된 비율을 초과하면, 상기 일부 데이터를 상기 휘발성 메모리로 방출하도록 명령하는 것을 특징으로 하는 인메모리 데이터베이스
|
13 |
13
제12항에 있어서,(i) 상기 프로세서는 상기 비휘발성 메모리의 상기 주소 리스트 중에서 희생 노드를 선택하고, (ii) 상기 프로세서는 상기 희생 노드의 키-값을 상기 휘발성 메모리에 복사하고, (iii) 상기 휘발성 메모리의 데이터 구조는 상기 휘발성 메모리에 복사된 키-값을 참조하고, (iv) 상기 휘발성 메모리의 로그 버퍼는 상기 희생 노드의 키-값의 처리 명령에 관한 로그를 기록하고, (v) 상기 로그 버퍼는 상기 로그를 블록 디바이스의 로그 파일로 플러싱하고, (vi) 플러싱을 완료하면 상기 프로세서는 상기 비휘발성 메모리의 상기 주소 리스트에서 상기 희생 노드를 삭제하도록 명령하는 것을 특징으로 하는 인메모리 데이터베이스
|
14 |
14
제13항에 있어서,상기 희생 노드를 선택하여 상기 데이터를 방출하는 순서는 최저 사용 빈도(Least Recently Used, LRU) 정책에 따라 결정되는 것을 특징으로 하는 인메모리 데이터베이스
|
15 |
15
제9항에 있어서,상기 휘발성 메모리에 저장된 데이터가 갱신되면 상기 갱신된 데이터는 상기 비휘발성 메모리에 저장되고,상기 비휘발성 메모리에 저장된 데이터가 갱신되면, (i) 상기 주소 리스트의 헤드에 신규 노드를 삽입하고, (ii) 상기 신규 노드가 상기 갱신된 데이터를 참조하고, (iii) 갱신되기 전의 데이터를 가진 노드를 삭제하여, 상기 주소 리스트를 재정렬하는 것을 특징으로 하는 인메모리 데이터베이스
|
16 |
16
제9항에 있어서,상기 프로세서는 상기 주소 리스트 및 로그 파일을 이용하여 데이터를 복구하며, 상기 프로세서는 (i) 상기 블록 디바이스의 로그 파일을 기반으로 상기 휘발성 메모리의 데이터 구조를 복구하고, (ii) 상기 주소 리스트에서 삭제되지 않은 희생 노드의 키-값을 상기 휘발성 메모리에 복구하고, (iii) 상기 주소 리스트로부터 상기 비휘발성 메모리의 키-값을 복구하는 것을 특징으로 하는 인메모리 데이터베이스
|
17 |
17
프로세서에 의해 실행 가능한 컴퓨터 프로그램 명령어들을 포함하는 비일시적(Non-Transitory) 컴퓨터 판독 가능한 매체에 기록되어 데이터 처리를 위한 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램 명령어들이 인메모리 데이터베이스의 적어도 하나의 프로세서에 의해 실행되는 경우에,상기 인메모리 데이터베이스의 비휘발성 메모리에 우선적으로 데이터를 저장하는 단계; 및상기 인메모리 데이터베이스의 비휘발성 메모리에 저장된 데이터의 일부 데이터를 상기 인메모리 데이터베이스의 휘발성 메모리에 백업하는 단계를 포함한 동작들을 수행하며,상기 비휘발성 메모리에 저장된 데이터는 키-값 기반의 데이터이며, 상기 비휘발성 메모리는 상기 키-값의 주소를 갖는 주소 리스트를 포함하며, 상기 휘발성 메모리는 상기 주소 리스트를 참조하여 상기 키-값을 복구하기 위하여 상기 키-값을 참조하는 데이터 구조를 포함하는 것을 특징으로 하는 컴퓨터 프로그램
|