Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] - 인기 여행기 페이징 응답 캐싱 무효화 전략 개선 #643

Open
1 task
Libienz opened this issue Jan 11, 2025 · 0 comments
Open
1 task
Assignees
Milestone

Comments

@Libienz
Copy link

Libienz commented Jan 11, 2025

✅ TO-DO LIST

  • 좋아요 수 변경, 여행기 삭제 등 상위 4개의 페이지 컨텐츠 변경 시 캐시 무효화

🙈 참고 사항

현재의 캐시 무효화 전략에는 취약점이 있습니다.

  • 첫번째 페이지에 1번, 2번, 3번, 4번 ,5번 여행기가 있다.
  • 두번째 페이지에 6,7,8,9,10번 여행기가 있다.
  • 첫번째 페이지는 캐싱되어 있는데 두번째 페이지는 캐싱되어 있지 않음
  • 좋아요 수가 변경되어 두번째 페이지 구성이 3,4,5,6,7가 되고 첫번째 페이지가 1,2,8,9,10이 되었다.
  • 두번째 페이지가 조회에 의해 캐싱되었다.
  • 첫번째 페이지와 두번째 페이지에 겹치는 여행기가 생기고 누락되는 여행기가 생긴다.

위의 시나리오에서 확인할 수 있듯이 좋아요 수 변경이나 여행기 삭제 등의 이벤트에 의해 캐시와 원본 데이터의 정합성이 깨지는 상황이 발생할 수 있습니다. 좋아요를 누를 때마다 혹은 여행기를 삭제할 때마다 캐시를 무효화하는 로직을 추가합니다.

다만 전체 캐시를 무효화하면 빈번한 캐시 무효화가 발생하게 됩니다. (100등짜리 여행기가 삭제되어도 상위 페이지들 캐싱이 날라가야 함)
임계치를 두고 현재 캐싱하고 있는 페이지 정보에 영향을 줄 수 있을 경우 캐시를 무효화하는 로직을 작성할 예정입니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

1 participant