카프카의 데이터의 삭제는 로그 세그먼트 단위로 삭제가 이루어진다. 노드(구 브로커)의 로그매니저는 시간(time) 또는 용량(size)에 따라 삭제여부를 결정한다. 시간 기반 정책에서는 레코드의 timestamp에 따라 달라진다. 해당 세그먼트 파일에 존재하는 가장 큰 timestamp 값(레코드 순서와는 무관)을 토대로 찾아낸다. 용량 기반 정책은 기본적으로 설정되지 않는다. 만약 설정된다면, 로그매니저는 가장 오래된 세그먼트 파일을 용량이 다 찼을때 부터 차례 대로 삭제하게 된다.
만약, 시간과 용량 두개의 설정이 동시에 설정된다면 먼저 도달하는 정책의 기준에 따라 삭제가 이루어진다. 언제든지 삭제가 될 수 있도록 copy-on-wirte 방식으로 세그먼트 목록을 사용한다. 이를 통해 삭제가 되는 동안에도 데이터 목록이 갑자기 변경되지 않아서 일관된 데이터 검색이 가능하다. 즉, 데이터 처리를 수행하면서도 안정적으로 삭제를 할 수 있다는 뜻~
반응형
'빅데이터 > Kafka' 카테고리의 다른 글
kafka 4.0부터는 스칼라 2.12가 더 이상 사용되지 않습니다. (0) | 2025.02.13 |
---|---|
standalone 카프카(kraft모드 in local) 실행 스크립트(1줄) (0) | 2025.02.11 |
KIP-932: Queues for Kafka 조사 (0) | 2025.01.12 |
standalone 카프카(kraft모드 in local) 실행을 위한 준비와 실행 (0) | 2024.06.23 |
카프카 컨슈머의 auto.offset.reset 옵션을 반드시 earliest로 변경해야 하는 이유 (1) | 2024.02.05 |
카프카에서 계층 저장소(Tiered storage)가 필요한 이유 (0) | 2023.10.20 |