1,2 번은 읽기 전략이고 3,4번은 쓰기 전략이다.
- cache aside
클라이언트는 캐시에서 먼저 조회 후, 없으면 database에서 캐시에 캐싱후 읽는다 - read-through
클라이언트는 캐시에서 조회한다. 존재하지않으면 클라이언트가 직접하는게 아니라 캐시쪽에서 자동으로 DB에서 데이터를 조회해 저장 후 반환한다. 클라이언트는 사실상 캐시만 바라보게 되어 코드구조는 매우 단순해진다. - write through
write 할 일이 있을때마다, 캐시에 먼저 반영 후 데이터베이스에 반영한다. 캐시와 데이터베이스의 일관성이 매번 지켜지므로, 이 성질이 매우 중요한 경우 고려해볼 수 있다. 또한 쓰기작업은 적은데 읽기작업이 많은 경우 + 실시간으로 최신데이터가 필요한 경우 write through 방식이 적극 고려될 수 있다. - write back
어플리케이션은 cache에 write 한다. 해당 데이터는 dirty 표시처리되어 추후 batch 형식으로 database에 일괄 반영된다. 데이터베이스에 쓰기되는 횟수가 매우 적어질 수 있기 때문에 전체적인 성능향상이 매우 좋다. 그러나 cache와 데이터베이스간의 일시적인 데이터 불일치를 허용하는 방식이기 때문에 cache 데이터에 장애가 생기면 데이터 손실이 발생할 수 있다.
'tech > architecture' 카테고리의 다른 글
[architecture] ASP.NET Core 서버의 Event Loop 동작 (0) | 2025.02.06 |
---|---|
Two-Phase Commit(2PC)와 SAGA 패턴에 관하여 (0) | 2024.09.18 |
분산시스템 CAP 이론에 대하여 (0) | 2024.03.24 |