피드로 돌아가기
Dev.toBackend
원문 읽기
Distributed Lock 기반 Single Writer 패턴을 통한 Cache Stampede 현상 해결
Cache Stampede Prevention
AI 요약
Context
인기 데이터의 Cache Expiration 시점에 수많은 요청이 동시에 Backend Database로 유입되는 Cache Stampede 현상 발생. 이로 인한 Database Overload 및 시스템 전반의 Latency 급증으로 서비스 가용성 저하 문제 직면.
Technical Solution
- Distributed Lock 도입을 통한 단일 요청자(Single Writer) 지정 구조 설계
- Cache Miss 발생 시 Lock 획득을 시도하여 단 하나의 요청만 Backend Database에 접근하도록 제어
- Lock 획득 실패 요청에 대해 짧은 대기 후 재시도하거나 Stale Data를 반환하여 Backend 부하 원천 차단
- Lock Timeout 설정을 통한 Writer 프로세스 장애 시 Deadlock 방지 및 가용성 확보
- 데이터 접근 패턴 분석 기반의 전략적 Cache Eviction Policy 적용으로 만료 시점 분산 유도
실천 포인트
- Cache Miss 시 즉시 DB 조회가 아닌 Distributed Lock 획득 로직 검토 - 서비스 허용 범위에 따른 Stale-While-Revalidate 전략 도입 여부 판단 - Lock Timeout 및 Retry Interval의 적정 수치 튜닝을 통한 응답성 최적화 - Cache Hit Rate 및 Backend Load 모니터링 지표 기반의 임계치 설정