
Chalk는 시스템 설계 개념을 조작하며 익힐 수 있는 실습 사이트다. ‘The Slate Next to the Stove’에서는 차이 판매대의 가격판을 비유로 캐시가 가득 찼을 때 어떤 항목을 지울지 다섯 가지 규칙을 비교한다.
사용자는 고정된 질문 열 개를 순서대로 처리하고, 규칙을 바꾸며 가격판에 남는 항목과 답을 찾으러 뒤편에 간 횟수를 확인할 수 있다. ‘Longest unasked’를 선택한 뒤 ‘Add next question’을 눌러 질문을 모두 처리하고, 규칙을 바꾸면 결과가 어떻게 달라지는지 살펴보는 방식이다. 규칙에는 FIFO, LRU, LFU, TTL, Random이 포함된다.
이 실습은 항목이 오래 읽히지 않은 순서대로 지우는 방식의 절충점도 보여준다. 최근에 읽히지 않은 항목이 곧 다시 요청될 가능성은 낮다고 볼 수 있지만, 드물게 쓰이던 항목이 한동안 자주 쓰이면 계속 인기 있는 항목처럼 남을 수 있다. 또 가격판의 내용이 실제 가격과 달라지는 문제는 짧게 다루며, TTL 규칙에서는 실제 답이 바뀌었는지와 상관없이 타이머에 따라 항목이 사라지는 모습을 볼 수 있다.
제작자가 밝힌 모델의 한계는 단일 캐시와 전체 항목 단위의 키, 열 개의 고정 질문만 다룬다는 점이다. 실제 시스템은 브라우저·CDN·앱·데이터베이스처럼 여러 캐시를 층층이 사용하고, 적중률도 변하는 접근 패턴에 따라 달라진다. 이 실습은 매번 같은 질문 순서를 반복해 다섯 규칙을 비교한다. 실제 캐시는 부분 객체나 범위, 계산된 조각을 저장하기도 하며, 이런 조각을 무효화하는 일은 한 줄을 지우는 것보다 어렵다고 설명한다.
실습 보드: The Slate Next to the Stove
관련 자료: 캐싱 수업, 심화 수업: The Slate, Properly, 캐싱 동영상, Redis 실습: 메모리가 찼을 때 제거하기, Consistent Hashing and Random Trees, Kafka: a Distributed Messaging System for Log Processing, Zanzibar: Google's Consistent, Global Authorization System, Scaling Memcache at Facebook
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요