빠른 확장형 분산 데이터 구조 LHTH

빠른 확장형 분산 데이터 구조 LHTH

초록

본 논문은 기존의 LH* 구조에 트라이 해싱을 결합한 LHTH를 제안한다. LHTH는 각 버킷을 트라이 형태로 조직함으로써 검색·삽입·삭제 연산의 평균 응답 시간을 단축하고, 다중 컴퓨터 환경에서의 확장성을 유지한다. 실험 결과, 기존 LH* 대비 접근 지연이 20 % 이상 감소했으며, 부하 분산과 충돌 최소화 효과가 입증되었다.

상세 분석

LH는 선형 해싱(linear hashing)을 기반으로 한 확장형 분산 데이터 구조로, 서버 노드가 동적으로 추가·삭제될 때 데이터 재배치를 최소화한다는 장점이 있다. 그러나 LH는 버킷 내부에서 단순 배열이나 연결 리스트를 사용하기 때문에, 버킷이 포화될 경우 검색 비용이 O(n) 수준으로 급증한다. 특히 대규모 키 집합을 다루는 환경에서는 버킷 충돌이 빈번해져 네트워크 지연이 전체 성능을 저해한다. 트라이 해싱(Trie Hashing, TH)은 키를 비트 혹은 문자 단위로 분할하여 트리 구조에 저장함으로써 검색·삽입을 로그 시간에 수행한다. 트라이는 키의 앞부분이 동일한 경우 동일한 경로를 공유하므로 메모리 사용 효율도 높다. 논문은 이러한 두 기법을 결합해 LH의 전역 확장성과 TH의 로컬 검색 효율성을 동시에 달성한다. 구체적으로, 각 LH 버킷을 독립적인 트라이 인덱스로 변환하고, 버킷 분할(split) 시 트라이는 기존 트리 구조를 유지하면서 새로운 서브버킷을 생성한다. 이 과정에서 버킷 주소 계산은 기존 LH와 동일하게 해시 함수를 사용하되, 버킷 내부 탐색은 트라이를 따라 진행한다. 삽입 시 충돌이 발생하면 트라이는 자동으로 분기하여 새로운 노드를 추가하고, 일정 수준 이상의 깊이가 되면 버킷 분할을 트리 기반으로 수행한다. 삭제는 트라이에서 해당 키를 제거하고, 필요 시 빈 노드를 정리한다. 이러한 설계는 다음과 같은 핵심 이점을 제공한다. 첫째, 버킷 내부 검색이 O(log b) (b는 버킷 내 키 수) 로 감소해 평균 응답 시간이 크게 개선된다. 둘째, 트라이 구조가 자연스럽게 키 분포를 반영하므로, 특정 키 구간에 집중된 부하가 발생해도 전체 시스템에 미치는 영향을 최소화한다. 셋째, 버킷 분할 시 트라이의 부분 트리를 재사용함으로써 데이터 이동량이 기존 LH 대비 30 % 정도 감소한다. 논문은 또한 트라이 유지 비용을 최소화하기 위한 가비지 컬렉션 기법과, 네트워크 메시지 오버헤드를 줄이기 위한 버킷 합병(merge) 정책을 제시한다. 실험에서는 1000대 이상의 노드와 10억 건 규모의 키를 대상으로 LH와 LHTH를 비교했으며, 평균 검색 지연이 20 %~35 % 감소하고, 시스템 전체 처리량이 15 % 이상 향상된 것으로 보고한다. 이러한 결과는 트라이 기반 버킷 조직이 대규모 분산 환경에서 실용적인 성능 향상을 제공함을 입증한다.