[논문 리뷰] DeltaTree: A Practical Locality-aware Concurrent Search Tree
DeltaTree는 캐시 효율적인 van Emde Boas(vEB) 레이아웃과 비차단 동시성 기법을 결합한 새로운 국소성 인식 동시 검색 트리로, 검색 및 업데이트 연산에서 모두 높은 성능을 달성한다. 저에서 중간 수준의 경쟁 조건에서 AVL, 레드블랙, 사전적 협력 트리보다 검색 속도가 최대 5배 빠르고 업데이트 속도가 최대 1.6배 빠르며, $ O(\log_B N) $의 예상 메모리 이동 비용을 유도하여 에너지 효율적이고 멀티코어 시스템에 최적임.
As other fundamental programming abstractions in energy-efficient computing, search trees are expected to support both high parallelism and data locality. However, existing highly-concurrent search trees such as red-black trees and AVL trees do not consider data locality while existing locality-aware search trees such as those based on the van Emde Boas layout (vEB-based trees), poorly support concurrent (update) operations. This paper presents DeltaTree, a practical locality-aware concurrent search tree that combines both locality-optimisation techniques from vEB-based trees and concurrency-optimisation techniques from non-blocking highly-concurrent search trees. DeltaTree is a $k$-ary leaf-oriented tree of DeltaNodes in which each DeltaNode is a size-fixed tree-container with the van Emde Boas layout. The expected memory transfer costs of DeltaTree's Search, Insert, and Delete operations are $O(\log_B N)$, where $N, B$ are the tree size and the unknown memory block size in the ideal cache model, respectively. DeltaTree's Search operation is wait-free, providing prioritised lanes for Search operations, the dominant operation in search trees. Its Insert and {\em Delete} operations are non-blocking to other Search, Insert, and Delete operations, but they may be occasionally blocked by maintenance operations that are sometimes triggered to keep DeltaTree in good shape. Our experimental evaluation using the latest implementation of AVL, red-black, and speculation friendly trees from the Synchrobench benchmark has shown that DeltaTree is up to 5 times faster than all of the three concurrent search trees for searching operations and up to 1.6 times faster for update operations when the update contention is not too high.
연구 동기 및 목표
- 동시 검색 트리에서 고도의 동시성과 세밀한 데이터 국소성 간 격차를 해소하기 위해.
- 다중 캐시 레벨의 메모리 액세스 패턴을 최적화하면서도 병렬 처리를 고려한 에너지 효율적 검색 트리를 가능하게 하기 위해.
- 동적이고 느슨한 캐시 무관 레이아웃을 설계하여 국소성을 희생시키지 않고도 효율적인 동시 업데이트를 지원하기 위해.
- 기대되는 캐시 복잡도를 유지하면서도 대기 없는 검색과 비차단 삽입/삭제 연산을 달성하기 위해.
- 실제 워크로드 조건에서 최신 기술의 동시 검색 트리와의 성능을 평가하기 위해.
제안 방법
- 동적 노드 할당을 포인터를 통해 지원하면서도 $ O(\log_B N) $의 메모리 이동 복잡도를 유지하는 동적 van Emde Boas(vEB) 레이아웃을 설계하기 위해.
- 고정 크기의 DeltaNode로 구성된 $ k $-차리, 리프 중심의 트리 구조를 구축하여 각 DeltaNode가 관련 키들을 메모리상에서 연속적으로 그룹화하도록 하기 위해.
- 알 수 없는 메모리 블록 크기 $ B $에 대한 상한선을 가정하는 느슨한 캐시 무관 모델을 도입하여 다중 메모리 레벨에서의 국소성 최적화를 가능하게 하기 위해.
- 우선순위가 부여된 루트를 사용해 대기 없는 검색을 구현하여 검색 작업의 진전을 보장하기 위해.
- 삽입 및 삭제에 비차단 알고리즘을 사용하고, 구조적 균형을 유지하기 위해 간헐적인 유지보수 작업을 수행하며, 이는 일시적인 차단을 유발할 수 있음.
- 업데이트를 조율하고 선형화 가능성을 보장하면서도 경쟁을 최소화하기 위해 wait-and-check 기법을 적용하기 위해.
실험 결과
연구 질문
- RQ1현대 멀티코어 시스템에서 검색 트리가 고도의 동시성과 세밀한 데이터 국소성을 동시에 달성할 수 있는가?
- RQ2vEB 레이아웃은 캐시 효율성을 희생시키지 않고도 동적이고 동시적인 업데이트를 지원하기 위해 어떻게 적응시킬 수 있는가?
- RQ3국소성 인식 레이아웃과 비차단 동시성 원자성 기법을 융합했을 때 성능에 어떤 영향을 미치는가?
- RQ4DeltaTree는 AVL, 레드블랙, 사전적 협력 트리와 같은 기존의 동시 검색 트리와 비교해 검색 및 업데이트 처리량 측면에서 어떻게 성능을 냈는가?
- RQ5유지보수 작업은 성능에 얼마나 큰 영향을 미치며, 실제 워크로드 조건에서 이 작업들을 최소화할 수 있는가?
주요 결과
- 100% 검색 워크로드 조건에서 DeltaTree는 AVL, 레드블랙, 사전적 협력 트리보다 최대 5배 더 높은 검색 성능을 달성한다.
- 저에서 중간 수준의 업데이트 경쟁 조건에서 업데이트 작업에 대해 DeltaTree는 세 가지 동시 트리보다 최대 1.6배 더 빠른 성능을 보였다.
- DeltaTree의 캐시 미스 비율은 다른 트리들보다 현저히 낮았다: $ \Delta $ 트리의 경우 8.9%에서 10.6%였고, SFtree는 11.1%, VTMtree는 5.5%였으며, 이는 훨씬 높은 처리량을 의미했다.
- 동적 vEB 레이아웃은 메모리 이동 횟수를 $ O(\log_B N) $로 감소시켜 캐시 무관 구조의 이론적 하한선과 일치시켰다.
- 대기 없는 검색 연산은 고도의 경쟁 조건에서도 모든 검색 요청에 대해 진전을 보장한다.
- 유지보수 작업은 드물게 발생하며, 낮은 캐시 미스 오버헤드와 높은 작업 처리량을 통해 성능에 지배적인 영향을 미치지 않았다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.