데이터/Kafka

[Kafka] 2. Partition & Segment

김줘 2024. 12. 5. 22:39

Kafka Partition에 대한 내용은 [Kafka] 1. Kafka? 에서 확인하실 수 있습니다!

Partition & Segment

  • 하나의 Partition은 여러개의 Segment로 구성
    • Segment는 변경된지 않고 추가만 되는 로그 파일이라고 볼 수 있음 -> *Commit Log
      • *Commit Log
        • Sequential, Immutable, Append-Only
        • Replication과 Fault Tolerance의 최소 단위
        • Data Recovery나 Replay에 사용 가능
        • WAL (Write Ahead Logging)
          • 데이터 무결성과 신뢰성을 보장하는 표준 방식
          • 데이터베이스에 대한 모든 변경 사항을 먼저 Commit Log에 기록
  • 각 Segment는 디스크 상에 존재하는 하나의 파일

  • Segment는 최대 크기를 가지며, 이를 넘어가면 새로운 Segment 파일을 생성함
    • 각 Segment는 데이터 오프셋 범위를 가짐 -> Segment의 최대 크기

로그 파일의 특성

  • Partition의 특성이며, 정확히는 Segment의 특성
  • 항상 뒤에 데이터(Message)가 쓰여짐 -> Append Only
  • 한 번 쓰여진 데이터는 불변
  • Retention period에 따라 데이터를 제거하기도 함
  • 데이터에는 offset 번호가 주어짐