슬라이딩 윈도우를 위한 메모리 절감 HyperLogLog, 비트 거리 기록기와 가상 공유 구조
초록
본 논문은 슬라이딩 시간 윈도우 환경에서 HyperLogLog(HLL)의 메모리 사용량을 크게 줄이는 새로운 카운터인 비트 거리 기록기(BDR)를 제안한다. BDR은 가장 왼쪽에 위치한 ‘1’ 비트와 그 비트까지의 거리만을 고정 크기로 저장한다. 물리적인 BDR들을 여러 호스트가 공유하도록 설계한 가상 비트 거리 기록기(VBDR)를 통해 수천만 개 호스트의 카디널리티를 동시에 추정할 수 있다. 또한 GPU 기반 병렬 구현을 제시해 초고속 트래픽에서도 실시간 처리가 가능함을 보였다.
상세 분석
본 연구는 네트워크 트래픽 분석에서 가장 핵심적인 문제 중 하나인 호스트 카디널리티(서로 통신하는 고유 상대 호스트 수) 추정을 슬라이딩 윈도우 모델에 적용하면서, 기존 방법이 갖는 메모리·연산 복잡도 문제를 근본적으로 해결하고자 한다. 기존의 HyperLogLog는 고정 윈도우(디스크리트 타임 윈도우)에서 매우 효율적인 추정기를 제공하지만, 슬라이딩 윈도우에서는 각 카운터가 어느 시점에 활성화/비활성화 되었는지를 추적해야 하는 추가적인 상태 관리가 필요하다. 이를 위해 제안된 LFPM‑HLL은 각 카운터마다 가능한 최대 ‘1’ 비트 위치와 타임스탬프를 저장하는 동적 리스트를 사용했으며, 메모리 사용량이 입력 스트림의 카디널리티에 비례해 변동한다는 단점이 있었다.
BDR은 이러한 동적 구조를 완전히 대체한다. BDR은 두 부분으로 구성된다. 첫 번째는 현재 슬라이스에서 관측된 가장 왼쪽 ‘1’ 비트 위치(nowLBP1)를 저장하고, 두 번째는 각 가능한 LBP1 값에 대응하는 거리 기록기(DR) 배열이다. DR은 k(슬라이스 수)보다 작은 값을 가질 경우 ‘활성’으로 간주하고, 슬라이스가 넘어갈 때마다 1씩 증가시켜 자동으로 비활성화를 판단한다. 이 설계는 (1) 고정된 비트 수(⌈log₂(k+1)⌉)만을 사용해 거리 정보를 저장하므로 메모리 사용량이 사전에 정확히 예측 가능하고, (2) 슬라이스 전환 시 전체 카운터를 일괄 업데이트할 필요 없이 DR만 슬라이드 하면 되므로 연산 비용이 크게 감소한다는 장점을 제공한다.
VBDR은 BDR을 물리적인 풀에 배치하고, 각 호스트마다 가상 인덱스 집합을 해시 함수를 통해 물리적 BDR에 매핑한다. 즉, 하나의 물리 BDR이 여러 호스트의 가상 카운터 역할을 수행한다. 이 가상‑물리 매핑은 기존의 가상 카운터(Virtual Estimator) 아이디어와 동일하지만, 슬라이딩 윈도우를 지원하도록 BDR로 교체함으로써 활성/비활성 판단 로직을 그대로 활용한다. 결과적으로 메모리 사용량은 O(g·z) (g는 각 호스트당 할당된 가상 BDR 수, z는 물리 BDR 수) 로 제한되며, 수백만 호스트를 동시에 추정할 수 있다.
GPU 구현에서는 두 가지 병렬 버전을 제시한다. 첫 번째는 IP 페어 스캔 속도에 최적화된 버전으로, 각 스레드가 입력 스트림을 독립적으로 처리하면서 DR 배열에 원자적 업데이트를 수행한다. 두 번째는 메모리 효율성을 강조한 버전으로, 공유 메모리와 레지스터를 활용해 DR 업데이트를 배치 단위로 압축한다. 실험 결과, 초당 수십 억 패킷 수준의 트래픽에서도 실시간 추정이 가능함을 보였으며, 메모리 사용량은 LFPM‑HLL 대비 30~50% 감소하였다.
또한 BDR은 PCSA, LogLog 등 다른 로그 기반 카디널리티 추정 알고리즘에도 그대로 적용 가능하다는 범용성을 갖는다. 이는 슬라이딩 윈도우가 필요한 다양한 스트리밍 분석 시나리오(예: DDoS 탐지, 실시간 사용자 행동 분석 등)에서 BDR 기반 구조가 폭넓게 활용될 수 있음을 의미한다.
댓글 및 학술 토론
Loading comments...
의견 남기기