본문 바로가기
개발/kafka

[kafka] log compaction | log tail | log head

by ttoance 2025. 1. 4.
반응형

 

 

log는 head와 tail을 가지고 있다. compacted log의 head는 전통적인 카프카 로그와 같다. 새로운 레코드들이 head의 끝에 append 된다. 모든 log compaction은 log의 tail에서 작동한다. 오직 tail만이 compact된다.

 

 

Kafka 로그 압축(Log Compaction)은 소비자가 압축된 토픽(compacted topic)에서 자신의 상태를 복구할 수 있도록 도와줍니다. 이 과정에서 메시지의 순서는 절대로 변경되지 않으며, 일부 메시지들은 삭제됩니다. 또한, 메시지의 파티션 오프셋(partition offset)은 절대로 변경되지 않습니다.


로그 구조

Kafka 로그는 헤드(head)와 꼬리(tail)로 구성됩니다.

  1. 헤드 (Head)
    • 새로운 메시지는 항상 헤드 끝부분에 추가(append)됩니다.
    • 이 부분은 기존 Kafka 로그와 동일하게 모든 메시지를 유지하며, 메시지 순서가 보장됩니다.
  2. 꼬리 (Tail)
    • 로그 압축은 항상 압축된 꼬리(compacted tail)에서 작업합니다.
    • 꼬리 부분에서 동일한 키를 가진 이전 메시지를 삭제하여 각 키의 최신 상태만 유지합니다.

 

https://docs.confluent.io/kafka/design/log_compaction.html

 

Kafka Log Compaction | Confluent Documentation

The following image provides the logical structure of a Kafka log, at a high level, with the offset for each message. The head of the log is identical to a traditional Kafka log. It has dense, sequential offsets and retains all messages. Log compaction add

docs.confluent.io

https://jaegukim.github.io/posts/log-compaction/

 

Log Compaction

Log Compaction

jaegukim.github.io

https://medium.com/swlh/introduction-to-topic-log-compaction-in-apache-kafka-3e4d4afd2262

 

Introduction to Topic Log Compaction in Apache Kafka

Kafka can be used to solve a variety of problems. Most of the system that I know which use kafka are distributed and involve real time…

medium.com

 

반응형