Skip to content
Masuri edited this page Sep 28, 2022 · 5 revisions

Post Service

Overview

로그인 유저와 팔로워들의 게시물을 가져오는 기능입니다. 빠른 응답성을 위해 페이징 처리 후 다음으로 사용자가 요청할 것으로 예측되는 다음 페이지를 캐싱해두는 전략으로 사용자에게 빠르게 응답하도록 설계하였습니다. 자세한 소스코드와 캐싱전략은 아래에서 확인 가능합니다.

Souce Code

PostService

Caching Strategy

  1. 가장 처음 Post 조회 Alt Text Cache hit가 되지 않아 DB에서 값을 가져오고 다음 페이지를 캐싱한다. 사용자가 요청한 페이지를 리턴함과 동시에 다음 페이지를 캐싱한다.

  1. 다음 페이지 조회 (cache hit) Alt Text Cache hit가 되어서 캐시에 있는 데이터를 리턴한다. 캐시에 있는 데이터를 리턴함과 동시에 다른 쓰레드를 이용해 다음 페이지를 캐싱한다.

  1. 다음 페이지 조회 (cache miss) Alt Text Cache hit가 될 것이라 예상했지만 이 전 리퀘스트에서 지연이 발생하거나 예상하지 못한 오류로 인해 캐시 되지 않은 상태일 때 이런 현상이 발생할 수 있다. 현재 캐시에 데이터가 없어서 다시 캐시해야하는데 이럴 때 이 전 리퀘스트에서 작업 중이던 캐시 작업이 완료 되면서 올바르지 않은 값이 캐싱 될 수 있으므로 캐시의 있는 내용을 한번 비워준다. 클라이언트가 요청한 데이터를 리턴함과 동시에 다음 페이지를 캐시한다.

Clone this wiki locally