연속 캐시
지속 캐시(Continuous Cache)란 실시간 또는 준실시간으로 데이터의 신선도와 가용성을 유지하도록 설계된 캐싱 메커니즘을 의미합니다. 주기적인 새로고침이나 명시적인 무효화 이벤트에 의존하는 기존의 정적 캐시와 달리, 지속 캐시는 동적이고 항상 켜져 있는 계층으로 작동하며 데이터 소스를 지속적으로 모니터링하여 변경 사항을 감지하고 캐시 상태를 그에 맞춰 업데이트합니다.
현대의 고처리량 애플리케이션에서 데이터의 오래됨(staleness)은 사용자 경험 저하와 운영 비효율성으로 직결됩니다. 지속 캐싱은 캐시에서 제공되는 데이터가 현재 운영 상태와 매우 관련성이 높도록 보장함으로써 이를 완화합니다. 이는 금융 거래 플랫폼이나 실시간 재고 시스템과 같이 최신 정확도가 요구되는 애플리케이션에 매우 중요합니다.
지속 캐시를 구현하는 방식은 일반적으로 정교한 모니터링 에이전트나 이벤트 기반 아키텍처를 포함합니다. 기본 데이터 소스(예: 데이터베이스)가 변경 사항을 커밋하면, 이 변경 사항은 메시지 큐(Kafka 또는 RabbitMQ와 같은)를 통해 브로드캐스트됩니다. 캐시 계층은 이러한 스트림을 구독하고, 업데이트 이벤트를 가로채며, 소스 변경과 캐시 업데이트 사이의 지연 시간을 최소화하기 위해 메모리 또는 분산 스토리지의 해당 항목을 선제적으로 수정하거나 무효화합니다.
지속 캐싱은 여러 영역에서 매우 유용합니다.
지속 캐싱 전략을 채택함으로써 얻을 수 있는 주요 이점은 다음과 같습니다.
견고한 지속 캐시를 구현하는 것은 복잡합니다. 주요 과제는 다음과 같습니다.
이 개념은 지속 캐시에 데이터를 공급하는 데 자주 사용되는 기술인 변경 데이터 캡처(Change Data Capture, CDC) 및 캐시가 소스를 따라잡는 시스템 상태를 설명하는 최종적 일관성(eventual consistency)과 밀접하게 관련되어 있습니다.