[논문 리뷰] Cuckoo++ Hash Tables: High-Performance Hash Tables for Networking Applications
Cuckoo++는 네트워킹을 위한 고성능 해시 테이블을 도입하여 각 기본 버킷에 블룸 필터를 통합함으로써 보조 버킷으로의 불필요한 메모리 접근을 제거함으로써, 코어당 최대 6000만 번의 검색을 달성하며, 음성 검색에서는 DPDK 대비 50% 빠르고 18코어 환경에서는 45% 빠르게 구현함. 이 설계는 16비트 타임스탬프를 통해 엔트리 만료를 네이티브로 지원하여 연결 추적 워크로드에서 효율성을 향상시킴.
Hash tables are an essential data-structure for numerous networking applications (e.g., connection tracking, firewalls, network address translators). Among these, cuckoo hash tables provide excellent performance by allowing lookups to be processed with very few memory accesses (2 to 3 per lookup). Yet, for large tables, cuckoo hash tables remain memory bound and each memory access impacts performance. In this paper, we propose algorithmic improvements to cuckoo hash tables allowing to eliminate some unnecessary memory accesses; these changes are conducted without altering the properties of the original cuckoo hash table so that all existing theoretical analysis remain applicable. On a single core, our hash table achieves 37M lookups per second for positive lookups (i.e., when the key looked up is present in the table), and 60M lookups per second for negative lookups, a 50% improvement over the implementation included into the DPDK. On a 18-core, with mostly positive lookups, our implementation achieves 496M lookups per second, a 45% improvement over DPDK.
연구 동기 및 목표
- 검색 중 불필요한 메모리 접근으로 인한 대규모 쿠쿠 하이브리드 해시 테이블의 성능 저하 문제를 해결하기 위해.
- 특히 제어되지 않은 또는 악성 트래픽 상황에서도 다양한 워크로드에서 양성 및 음성 검색 성능을 균일하게 향상시키기 위해.
- 외부 타이머 관리 오버헤드를 제거하기 위해 해시 테이블 구조에 직접적으로 엔트리 만료 지원을 통합하기 위해.
- 실제 효율성을 향상시키면서도 기존 쿠쿠 해시의 이론적 보장을 유지하기 위해.
- DPDK 및 호턴 테이블과 같은 기존 구현체를 뛰어넘어 처리량과 메모리 접근 감소 측면에서 모두 우수한 성능을 내기 위해.
제안 방법
- 보조 버킷에 키가 존재할 수 있는지 사전에 확인하기 위해 각 기본 버킷에 블룸 필터를 통합하여 불필요한 메모리 접근을 방지함.
- 계산 비용을 최소화하고 보조 버킷 검색을 효율적으로 걸러내기 위해 비트 단위 AND 연산을 사용하는 단순하고 빠른 블룸 필터를 사용함.
- CPU 캐시 라인 정렬을 활용하여 64바이트 캐시 라인에 슬롯과 함께 블룸 필터를 압축된 메모리 레이아웃으로 저장함.
- 외부 추적 없이 오래된 연결을 자동으로 만료시키기 위해 테이블 엔트리에 직접 16비트 타임스탬프를 통합함.
- 기존 쿠쿠 해시의 성질과 이론적 분석과의 호환성을 유지하면서도 배치 검색을 지원하도록 시스템을 설계함.
- 블룸 필터 결정이 프리패치 정책과 독립적이도록 하여 낙관적 및 비관적 프리패치 전략 모두 최적화함.
실험 결과
연구 질문
- RQ1기본 버킷에 통합된 블룸 필터가 정확성이나 성능에 영향을 주지 않으면서도 쿠쿠 해시 테이블에서 불필요한 메모리 접근을 줄일 수 있는가?
- RQ2블룸 필터 통합이 고음성 검색 비율과 제어되지 않은 트래픽을 포함한 다양한 워크로드에서 균일하게 더 나은 성능을 제공하는가?
- RQ3해시 테이블 구조에 직접적인 엔트리 만료 지원을 효율적으로 통합할 수 있는가? 이는 외부 타이머 오버헤드를 제거함.
- RQ4실제 네트워킹 워크로드에서 Cuckoo++의 성능이 DPDK 및 기타 최신 구현체와 비교해 어떻게 나타나는가?
- RQ5디자인이 쿠쿠 해시의 이론적 보장을 유지하면서도 실질적인 처리량을 향상시키고 메모리 접근 횟수를 줄일 수 있는가?
주요 결과
- Cuckoo++는 단일 코어에서 양성 검색을 초당 3700만 건, 음성 검색을 초당 6000만 건으로 처리하여 DPDK 대비 50% 향상됨.
- 주로 양성 검색이 이루어지는 18코어 시스템에서 Cuckoo++는 1초당 49억6000만 건의 검색을 달성하며 DPDK 대비 45% 향상됨.
- 기본 버킷에 블룸 필터를 사용함으로써 평균 메모리 접근 횟수를 2에서 1로 줄여 고부하 및 악성 트래픽 환경에서 성능 향상을 크게 달성함.
- 통합된 16비트 타임스탬프 메커니즘은 외부 타이머 관리 없이도 효율적인 연결 만료를 가능하게 하여 시스템 복잡성과 오버헤드를 감소시킴.
- Cuckoo++는 고음성 검색 비율과 다양한 부하 계수를 포함한 모든 워크로드에서 DPDK 및 호턴 테이블을 뛰어넘는 성능을 보임.
- 디자인이 기존 쿠쿠 해시 이론과 호환되며, 배치 검색을 지원하여 고성능 패킷 처리 응용 분야에 적합함.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.