- Published on
Canva가 게이트웨이 인메모리 세션 무효화 캐시를 MySQL에서 S3로 옮긴 과정을 뜯어봅니다. 문제는 정상 상태의 조회 비용이 아니라 배포 때마다 수백 개 파드가 동시에 캐시를 채우면서 데이터베이스를 때리는 시작 비용이었고, 해결책은 캐시 계층을 하나 더 얹는 것이 아니라 데이터의 표현을 바꾸는 것이었습니다. 12시간 슬라이딩 윈도를 30분 조각으로 나누고 무효화 하나를 16바이트로 눌러 정렬된 배열로 만들자 게이트웨이가 다운로드한 바이트를 변환 없이 그대로 이진 탐색할 수 있게 됩니다. 조건부 PUT과 리더 선출 중 무엇이 정확성이고 무엇이 최적화인지도 함께 정리합니다.