캐시 스탬피드(Cache Stampede)란?

박재성·2025년 5월 6일
0

면접 대비 지식

목록 보기
4/11

캐시 스탬피드는 인기 있는 캐시 항목이 만료되었을 때, 동시에 다수의 요청이 캐시 미스를 발생시키고, 모두가 원본 데이터 소스(예: 데이터베이스)에 접근하여 데이터를 재생성하려고 시도하는 현상을 말합니다. 이로 인해 백엔드 시스템에 과도한 부하가 발생하고, 성능 저하 또는 시스템 장애로 이어질 수 있습니다.

🔹 캐시 스탬피드 현상 도식

[사용자 요청]
      ↓
[캐시 확인]
      ↓
[캐시 미스 발생]
      ↓
[동시에 여러 요청이 원본 데이터 소스에 접근]
      ↓
[백엔드 시스템 과부하]

🔹 캐시 스탬피드 방지 전략

1. 잠금(Locking) 방식

개념: 캐시 미스 발생 시, 첫 번째 요청이 해당 키에 대한 잠금을 획득하고 데이터를 재생성하여 캐시에 저장합니다. 다른 요청들은 잠금이 해제될 때까지 대기하거나, 기존의 캐시된 데이터를 사용합니다.

장점: 동시에 여러 요청이 원본 데이터 소스에 접근하는 것을 방지하여 시스템 부하를 줄일 수 있습니다.

단점: 잠금 획득 실패, 데드락 등의 문제가 발생할 수 있으며, 구현 복잡성이 증가합니다.

2. 외부 재계산(External Recomputation) 방식

개념: 별도의 백그라운드 프로세스가 주기적으로 캐시를 갱신하여, 사용자 요청 시 항상 최신 데이터를 제공하도록 합니다.

장점: 사용자 요청과 무관하게 캐시가 갱신되므로, 캐시 미스로 인한 부하를 줄일 수 있습니다.

단점: 사용되지 않는 데이터도 갱신하게 되어 리소스 낭비가 발생할 수 있습니다.

3. 확률적 조기 재계산(Probabilistic Early Recomputation) 방식

개념: 캐시 만료 시간이 가까워질수록, 각 요청이 일정 확률로 캐시를 조기 갱신하도록 합니다. 이를 통해 캐시 재생성 시점을 분산시켜 스탬피드 현상을 완화합니다.

장점: 구현이 비교적 간단하며, 트래픽이 증가할수록 효과적으로 캐시 재생성 시점을 분산시킬 수 있습니다.

단점: 확률 설정이 적절하지 않으면, 불필요한 캐시 갱신이 발생하거나 스탬피드 현상을 완전히 방지하지 못할 수 있습니다.

✅ 결론

캐시 스탬피드는 대규모 트래픽 환경에서 시스템 안정성을 위협하는 주요 요인 중 하나입니다. 위에서 소개한 전략들을 상황에 맞게 적절히 조합하여 적용하면, 캐시 스탬피드로 인한 문제를 효과적으로 완화할 수 있습니다.

0개의 댓글