본문 바로가기

cs(with 매일메일)

[251118화] 캐시 스탬피드 현상에 대하여 설명해주세요

Cache Aside(캐시 미스 발생 시 적재) 전략을 사용한다고 가정, 

수많은 요청들이 동시에 캐시 미스를 확인하고 원본 저장소에서 데이터를 가져와 캐시에 적재하는 상황

 

문제점 : 원본 데이터베이스와 캐시의 성능 저하

 

해결 방안

1. 잠금 방식(Locking) : 한 요청 처리 스레드가 해당 캐시 키에 대한 잠금을 획득 -> 캐시 적재 작업을 비동기로 진행

2. 외부 재계산 : 캐리슷 주기적으로 모니터링하는 스레드를 별도로 관리하여 캐시의 만료기간이 얼마 남지 않은 경우, 데이터를 갱신하여 문제를 예방

3. 확률적 조기 재계산 : 캐시 만료 시간이 얼마 남지 않았을 경우, 확률이라는 개념을 사용하여 여러 요청 처리 스레드 중에서 적은 수만이 캐시를 적재하는 작업을 수행