로그 컴팩션 (Log Compaction)
보존 기간이 지나면 오래된 것부터 지우는 것이 기본이지만, 어떤 토픽은 '지금 상태'가 필요합니다. 로그 컴팩션은 같은 키의 오래된 레코드를 지우고 마지막 값만 남겨, 로그가 곧 최신 스냅샷이 되게 합니다. 처음부터 읽으면 모든 키의 현재 값을 복원할 수 있습니다.
01 개념 한눈에 보기
Interactive Step-by-Step사용자 프로필을 카프카에 보관합니다. 주소가 바뀔 때마다 새 줄로 덧붙입니다 — 고치는 게 아니라 쌓는 것입니다.
02 쉽게 이해하기
For Everyone주소록을 이사할 때마다 새 줄로 적어 두다가, 정리할 때 사람마다 마지막 주소만 남기고 이전 줄을 지우는 것과 같습니다. 기록은 짧아지지만 '지금 주소'는 그대로 알 수 있습니다.
컴팩션은 키를 기준으로 동작합니다.
같은 키가 여러 번 쓰였으면 가장 나중 것만 남기고 앞의 것들을 지웁니다.
값이 null 인 레코드(툼스톤)는 '이 키를 삭제하라'는 표시로 쓰이고, 일정 시간 뒤 함께 사라집니다.
덕분에 로그 전체를 처음부터 읽으면 현재 상태가 그대로 재구성되어, 캐시·설정·프로필 같은 상태 저장에 쓰입니다.
- –키-값 상태를 카프카로 보관(CDC·설정·프로필)
- –서비스 재시작 시 상태 복원
- –무한히 커지는 토픽의 용량 관리
03 자주 묻는 질문
FAQ로그 컴팩션 (Log Compaction)란 무엇인가요?+
보존 기간이 지나면 오래된 것부터 지우는 것이 기본이지만, 어떤 토픽은 '지금 상태'가 필요합니다. 로그 컴팩션은 같은 키의 오래된 레코드를 지우고 마지막 값만 남겨, 로그가 곧 최신 스냅샷이 되게 합니다. 처음부터 읽으면 모든 키의 현재 값을 복원할 수 있습니다.
로그 컴팩션 (Log Compaction)은(는) 어디에 사용하나요?+
키-값 상태를 카프카로 보관(CDC·설정·프로필), 서비스 재시작 시 상태 복원, 무한히 커지는 토픽의 용량 관리
로그 컴팩션 (Log Compaction)를 쉽게 비유하면?+
주소록을 이사할 때마다 새 줄로 적어 두다가, 정리할 때 사람마다 마지막 주소만 남기고 이전 줄을 지우는 것과 같습니다. 기록은 짧아지지만 '지금 주소'는 그대로 알 수 있습니다.
