LinkedIn

캐싱 정책 Inline Cache, Cache Aside

2020. 11. 18. 16:01 | 자바 개발자되기

Inline Cache

  • Application에서 Cache를 Main Database로 하여 조회
  • Create, Update와 같은 요청이 들어오면 RDBMS와 같이 영구 저장소에 반영
  • 배치 작업이 RDB에 변경 사항을 확인하여 Cache에 해당 정보를 UPDATE

장점

  • 조회 요청에 대하여 RDB가 아닌 Cache를 사용하기 때문에 처리 속도 향상
  • Cache만을 사용하여 조회하기 때문에 처리 속도를 일정하게 보장

단점

  • 조회에 사용되는 모든 데이터를 Cache에 보관하기 때문에 하드웨어 리소스가 많이 듬
  • 배치 작업 개발/관리에 추가적인 리소스가 필요
  • 만약 배치 작업이 중단 될 시 Cache에 실시간 데이터가 반영되지 않음

Cache Aside

  • 조회 요청 시 Cache에서 해당 데이터를 조회하여 반환
  • 만약 Cache에 데이터가 존재하지 않는다면 RDB에서 데이터를 조회 후 Cache에 UPDATE 한 뒤 결과 반환

장점

  • RDB에 먼저 조회하는 것보다 빠름
  • Inline Cache 패턴과 같이 배치 작업이 필요하지 않기에 개발/관리 리소스 절약
  • 조회 요청 중 선택적으로 캐싱이 가능하기에 하드웨어 리소스 조절 가능

단점

  • 최초의 모든 조회 요청에 대하여 RDB를 접근하기 때문에 캐시 저장소 장애 발생 후 RDB 성능 이슈가 2차적으로 발생할 가능성이 높음