1 |
1
키-밸류(Key-Value) 쌍을 이용하여 데이터를 처리하는 스토리지 장치와 통신하는 호스트로서,상기 스토리지 장치에 저장된 데이터의 독출에 필요한 키를 식별하는 정보를 포함하는 인덱스를 저장하는 인덱스 트리; 및기입 요청된 데이터에 포함된 기입 키 및 상기 기입 키에 대응되는 상기 버저닝 키를 저장하는 인덱스 업데이트 버퍼를 포함하고,상기 호스트는 미리 설정된 업데이트 조건이 충족되는 경우, 상기 인덱스 업데이트 버퍼에 저장된 상기 버저닝 키를 상기 인덱스 트리에 업데이트하고,상기 호스트는 상기 인덱스 업데이트 버퍼에 대한 복구가 필요한 경우, 상기 인덱스 트리에 업데이트되지 않은 상기 버저닝 키에 대응되는 데이터가 포함된 복구 구간을 설정하고, 상기 복구 구간을 분할하여 복수의 스레드들로 분배하고, 상기 복수의 스레드들을 통해 상기 스토리지 장치로부터 상기 복구 구간에 포함된 데이터를 독출하고, 상기 독출된 데이터 중 적어도 일부를 상기 인덱스 업데이트 버퍼에 삽입함으로써 상기 인덱스 업데이트 버퍼를 복구하는 것을 특징으로 하는호스트
|
2 |
2
제1항에 있어서,상기 호스트는 기입 요청을 수신하면, 상기 스토리지 장치의 커밋(commit) 순번 및 커밋 내 데이터 순번에 기초하여 상기 기입 키에 대응되는 상기 버저닝 키를 생성하고, 상기 버저닝 키를 상기 스토리지 장치 및 상기 인덱스 업데이트 버퍼에 저장하는 것을 특징으로 하는호스트
|
3 |
3
제1항에 있어서,상기 호스트는 상기 스토리지 장치의 헤더 블록으로부터 최근 커밋 순번 및 상기 인덱스 트리에 업데이트된 마지막 커밋 순번을 획득하고, 상기 인덱스 트리에 업데이트된 마지막 커밋 순번과 상기 최근 커밋 순번 사이의 구간을 상기 복구 구간으로 설정하는 것을 특징으로 하는호스트
|
4 |
4
제1항에 있어서,상기 호스트는 상기 복구 구간을 커밋 순번에 기초하여 복수의 커밋 구간들로 분할하고, 상기 복수의 커밋 구간들 각각을 복수의 스레드들로 분배하는 것을 특징으로 하는호스트
|
5 |
5
제4항에 있어서,상기 호스트는 상기 복수의 스레드들 각각을 통해 분배된 커밋 구간에 대응되는 커밋 순번에 기초하여 상기 스토리지 장치로부터 데이터를 독출하는 것을 특징으로 하는호스트
|
6 |
6
제1항에 있어서,상기 호스트는 상기 복수의 스레드들 각각을 통해 동일한 프리픽스(prefix)를 가지는 커밋 순번을 가지는 데이터를 상기 스토리지 장치로부터 독출하는 것을 특징으로 하는호스트
|
7 |
7
제1항에 있어서,상기 호스트는 상기 복수의 스레드들 각각을 통해 병렬적으로 상기 스토리지 장치로부터 상기 복구 구간에 포함된 데이터를 독출하는 것을 특징으로 하는호스트
|
8 |
8
제1항에 있어서,상기 호스트는 상기 독출된 데이터 중에서 유효 데이터를 선택하고, 상기 유효 데이터를 상기 인덱스 업데이트 버퍼에 삽입하여 상기 인덱스 업데이트 버퍼를 복구하는 것을 특징으로 하는호스트
|
9 |
9
제1항에 있어서,상기 호스트는 상기 인덱스 업데이트 버퍼를 복구하고 나서, 상기 스토리지 장치에 저장된 데이터 중에서 최근 커밋 이후에 저장된 데이터를 삭제하는 것을 특징으로 하는호스트
|
10 |
10
키-밸류(Key-Value) 쌍을 이용하여 데이터를 처리하는 스토리지 장치와 통신하는 호스트의 동작 방법에 있어서,상기 호스트가 인덱스 트리에 업데이트되지 않은 버저닝(versioning) 키에 대응되는 데이터가 포함된 복구 구간을 설정하는 단계;상기 호스트가 상기 복구 구간을 분할하여 복수의 스레드들로 분배하는 단계;상기 호스트가 상기 복수의 스레드들을 통해 상기 스토리지 장치로부터 상기 복구 구간에 포함된 데이터를 독출하는 단계; 및상기 호스트가 상기 독출된 데이터 중 적어도 일부를 인덱스 업데이트 버퍼에 삽입함으로써 상기 인덱스 업데이트 버퍼를 복구하는 단계를 포함하고,상기 인덱스 트리는 상기 스토리지 장치에 저장된 데이터의 독출에 필요한 키를 식별하는 정보를 포함하는 인덱스를 저장하고, 상기 인덱스 업데이트 버퍼는 기입 요청된 데이터에 포함된 기입 키 및 상기 기입 키에 대응되는 상기 버저닝 키를 저장하는 것을 특징으로 하는호스트의 동작 방법
|