피드로 돌아가기
Dev.toBackend
원문 읽기
Rust 기반 CacheeEngine 도입을 통한 Middleware 지연시간 250ms에서 Sub-microsecond 수준으로 단축
Building a Sub-Microsecond Cache for a Billion-User Mining Platform
AI 요약
Context
Node.js Express 환경의 Middleware 스택에서 Redis 기반의 직렬 요청으로 인해 100-250ms의 지연시간 발생. Billion-user 규모의 트래픽을 처리하기에 부적합한 Middleware Tax 구조의 한계 직면.
Technical Solution
- JS Middleware 스택을 Rust 기반 In-process 캐시 엔진인 CacheeEngine으로 대체하여 네트워크 홉 제거
- Lock-free concurrent reads를 지원하는 DashMap 스토리지 채택을 통한 동시성 성능 최적화
- 512 KiB 고정 메모리 기반의 Count-Min Sketch를 Admission Doorkeeper로 활용하여 일회성 데이터 진입 차단
- W-TinyLFU 대비 구조가 단순한 CacheeLFU 알고리즘을 선택하여 직접적인 빈도 비교와 Periodic halving decay 구현
- SWR(Stale-while-revalidate) 메커니즘 내장으로 데이터 최신성 유지와 응답 속도 동시 확보
Impact
- Middleware 지연시간: 100-250ms → 5ms 미만으로 개선
- Rate limit 처리 속도: 30-50ms → 100ns 미만으로 단축
- Trust score hit 및 Swap quote stale: 각 1us 미만의 Sub-microsecond 성능 달성
- 바이너리 크기 5.2MB의 경량 구조 구현
실천 포인트
- 네트워크 홉으로 인한 Middleware Tax 발생 시 In-process 캐시 전환 검토 - 메모리 효율을 위해 Count-Min Sketch 기반의 Admission 제어 로직 적용 고려 - 고성능 동시성 처리가 필요한 경우 Lock-free 데이터 구조인 DashMap 활용 검토 - 캐시 교체 알고리즘 선택 시 서비스 특성에 맞는 Eviction 전략(LFU vs TinyLFU) 비교 분석