ONE QUESTION AT A TIME.

천천히 생각하고, 분명하게.

TODAY’S QUESTION209 / 1500
성능난이도 중하5분 답변 목표 · 보강본

LRU를 바꿔도 대량 일회성 조회가 캐시를 오염시킵니다. admission과 eviction은 무엇이 다른가요?

잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?

답변과 점검 포인트 펼치기답변 접기
01

구두 답변

정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.

admission은 새 항목을 캐시에 넣을지 결정하고 eviction은 공간이 필요할 때 무엇을 제거할지 결정합니다. 모든 miss를 저장하면 제거 정책만 개선해도 일회성 스캔이 핫 데이터를 밀어낼 수 있습니다.

동작 원리와 전제

재접근 빈도 추정이나 작은 probation 영역으로 후보를 관찰한 뒤 본 캐시에 넣을 수 있습니다. 빈도 추정은 메모리·오차·시간 감쇠가 필요하며 오래 인기 있던 키가 영원히 우선하지 않게 합니다.

선택과 실패 처리

항목별 크기와 원본 조회 비용을 반영할지 정합니다. 큰 항목 하나가 많은 작은 핫키를 밀어낼 수 있어 바이트 예산과 최대 항목 크기를 둡니다. 저장하지 않은 요청은 원본 부하를 만들므로 별도 제한과 singleflight도 검토합니다.

구체적인 사례와 검증

용량 3의 캐시가 A·B·C를 자주 쓰다가 D·E·F를 한 번씩 읽으면 모든 miss를 저장하는 LRU는 핫키를 밀어낼 수 있습니다. 두 번째 접근이나 빈도 근거가 있는 항목만 본 캐시에 올리는 정책은 이 오염을 줄일 수 있습니다. 하지만 admission 판단을 위해 모든 키를 영구 저장하면 또 다른 무한 메모리가 생기므로 근사 구조와 상한이 필요합니다. 인기 변화가 빠른 서비스는 오래된 빈도를 감쇠해야 합니다. 캐시 정책은 workload의 시간 지역성·빈도·크기와 원본 비용에 맞춰 선택하고 동일 trace에서 정책별 손익을 비교하겠습니다.

순차 스캔·핫키 이동·크기 편중·동시 부하를 같은 trace로 비교합니다. 요청 hit ratio·바이트 hit ratio·원본 비용·관리 CPU를 나눕니다. 복잡한 정책이 항상 낫지 않으므로 단순 LRU 기준선과 실제 이득을 검증합니다.

02

득점 포인트

이해가 드러나는 지점을 확인해 보세요.

  • 핵심 구분: admission은 새 항목을 캐시에 넣을지 결정하고 eviction은 공간이 필요할 때 무엇을 제거할지 결정합니다.
  • 선택 조건: 항목별 크기와 원본 조회 비용을 반영할지 정합니다.
  • 검증 기준: 순차 스캔·핫키 이동·크기 편중·동시 부하를 같은 trace로 비교합니다.
03

감점 포인트

놓치기 쉬운 조건과 오해를 짚어 보세요.

  • eviction 정책만 정하면 어떤 miss를 캐시에 넣을지의 문제도 해결된다고 한다.
04

더 파고들 거리

하나 더 질문하며 이해의 범위를 넓혀 보세요.

  • 일회성 스캔이 핫키를 밀어낼 때 최근성·크기·원본 비용을 어떻게 평가하나요?
  • 동일 키의 원본 조회를 합쳐도 대기자·실패·분산 인스턴스의 남은 호출은 어떻게 제한하나요?
  • 키의 시간 만료와 용량 제거가 각각 어떤 데이터 손실·쓰기 거절을 만드는가요?

득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.

원리부터 공부하고 싶다면

답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.

← 전체 질문 보기