[Back-End] 캐시 스탬피드 현상이란?

2025. 2. 10. 13:48·Back-end
반응형
매일메일을 통한
하루 CS 공부하기

 

캐시 스탬피드 현상이란?

대규모 트래픽 환경에서 캐시를 운용하는데, Cache Aside (캐시 미스 발생 시 적재) 전략을 사용한다고 가정하자.

 

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

 

이를, 캐시 스탬피드 현상 또는 Thundering Herd 문제라고 한다.

 

이 현상은 원본 DB와 캐시의 성능을 저하할 수도 있다.

 

 

문제 해결 방안

1. Locking 방식

한 요청 처리 스레드가 해당 캐시 키에 대한 Lock을 획득한다. 이 때 다른 요청 스레드는 잠시 대기한다.

 

Lock을 가진 스레드는 사용자 request에 응답하는 과정동안 캐시 적재 작업은 비동기 스레드로 처리할 수 있다.

 

Lock을 사용하기 때문에 성능 저하 가능성이 존재하며, Lock 획득 실패, Lock의 life cycle, DeadLock 등 다양한 상황을 고려해야 한다.

 

2. External Recomputation (외부 재계산)

모든 요청 스레드가 캐시 적재를 수행하지 않고, 대신 캐시를 주기적으로 모니터링하는 스레드를 별도로 관리한다.

 

해당 스레드에서 캐시 만료시간이 얼마 남지 않은 경우, 데이터를 갱신해서 문제를 예방함.

 

하지만, 다시 사용되지 않을 데이터까지 갱신하기 떄문에 메모리에 대한 불필요한 연산이 발생하고, 메모리 공간을 비효율적으로 사용할 가능성이 존재한다.

 

3. Probablistic Early Recomputation (확률적 조기 재계산)

캐시 만료 시간이 얼마 남지 않았을 경우, 확률이라는 개념을 사용하여

 

여러 요청 처리 스레드 중 적은 수만이 캐시를 적재하는 작업을 수행한다.

반응형

'Back-end' 카테고리의 다른 글

[Redis] RedisReadOnlyException: READONLY You can't write against a read only replica.  (0) 2025.04.21
[DataBase] CAP 정리란?  (0) 2025.02.12
[Back-End] Cache Aside (Lazy Loading)이란?  (0) 2025.02.03
[DataBase] Transaction - ACID란?  (0) 2025.02.03
[Back-End] 로드밸런싱 톺아보기  (0) 2025.01.30
'Back-end' 카테고리의 다른 글
  • [Redis] RedisReadOnlyException: READONLY You can't write against a read only replica.
  • [DataBase] CAP 정리란?
  • [Back-End] Cache Aside (Lazy Loading)이란?
  • [DataBase] Transaction - ACID란?
류건
류건
개발 일지
  • 류건
    건's Dev
    류건
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • Back-end (55)
        • Spring (30)
        • Nest.js (3)
        • Next.js (2)
        • Node.js (3)
      • Infra & Cloud (20)
        • Cloud Computing (6)
        • Docker (3)
        • AWS (7)
      • Java (2)
      • Computer Science (12)
        • Computer Network (0)
        • Operating System (0)
        • 정보 보호와 시스템 보안 (12)
      • 회고록 (1)
        • 우아한테크코스 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    CI/CD
    JPA
    ssl
    Lock
    CORS
    EC2
    https
    public key
    CD
    Github Actions
    Spring
    Nest.js
    오블완
    어노테이션
    JWT
    Docker
    db
    Webflux
    node.js
    ddl-auto
    aws
    Spring Boot
    Kafka
    정보보호
    고가용성
    티스토리챌린지
    express.js
    WebClient
    nginx
    보안
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
류건
[Back-End] 캐시 스탬피드 현상이란?
상단으로

티스토리툴바