IT/CS 공부

[CS] 캐시 스템피드 현상

박소민 2025. 5. 13. 08:56
캐시 스탬피드(Cache Stampede) 현상이란?

 

여러 요청이 동시에 같은 캐시 키에 대해 미스를 발생시키고, 모두가 원본 저장소에 접근해 데이터를 조회 및 캐시하려는 현상

→ 데이터베이스나 원본 서버에 순간적으로 과도한 부하가 걸려 전체 시스템 성능 저하로 이어질 수 있음

 

어떻게 해결할 수 있을까?

 

캐시 미스가 발생하면, 하나의 요청 스레드만 해당 키에 대해 원본 데이터를 조회하고 캐시에 적재함

이때 나머지 요청 스레드는 락이 해제될 때까지 대기하거나 빠르게 실패 처리 후 재시도할 수 있다.

 

 

  • 비동기 캐시 적재

: 응답은 먼저 사용자에게 반환하고, 캐시 적재는 별도의 비동기 스레드(예: 백그라운드 워커, 비동기 태스크 큐)를 통해 처리할 수 있음

       → 사용자 응답 속도는 유지하면서 캐시도 갱신

  • 장점: 중복 조회 방지, 원본 DB 보호
  • 단점: 락 실패 시 재시도 필요, 데드락 위험, 타임아웃, 락의 TTL 설정 중요