캐시 스탬피드(Cache Stampede) 현상이란?
여러 요청이 동시에 같은 캐시 키에 대해 미스를 발생시키고, 모두가 원본 저장소에 접근해 데이터를 조회 및 캐시하려는 현상
→ 데이터베이스나 원본 서버에 순간적으로 과도한 부하가 걸려 전체 시스템 성능 저하로 이어질 수 있음
어떻게 해결할 수 있을까?
캐시 미스가 발생하면, 하나의 요청 스레드만 해당 키에 대해 원본 데이터를 조회하고 캐시에 적재함
이때 나머지 요청 스레드는 락이 해제될 때까지 대기하거나 빠르게 실패 처리 후 재시도할 수 있다.
- 비동기 캐시 적재
: 응답은 먼저 사용자에게 반환하고, 캐시 적재는 별도의 비동기 스레드(예: 백그라운드 워커, 비동기 태스크 큐)를 통해 처리할 수 있음
→ 사용자 응답 속도는 유지하면서 캐시도 갱신
- 장점: 중복 조회 방지, 원본 DB 보호
- 단점: 락 실패 시 재시도 필요, 데드락 위험, 타임아웃, 락의 TTL 설정 중요
'IT > CS 공부' 카테고리의 다른 글
| [CS] CAP 정리 (0) | 2025.05.15 |
|---|---|
| [CS] 시스템 간 비동기 연동 방식 정리 (0) | 2025.05.14 |
| [CS] [데이터베이스] 정규화 (0) | 2022.07.01 |
| [CS][알고리즘] BFS/DFS (0) | 2022.06.29 |
| [CS] [알고리즘] 피보나치 수열 구현방식 3가지 (0) | 2022.06.27 |