ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Kafka] - 13. Kafka Log File
    개발/Kafka 2022. 8. 10. 14:05

    Kafka Log file


    Kafka Log Segment File은 Data File와 같은 개념이다.
    • Segment File이 생성되는 위치는 각 Broker의 server.properties File 내 log.dirs Parameter로 정의한다.( ','로 구분 )
    • 각 Topic과 Partition은 log.dirs 아래에 하위 directory로 구성

    E.g) /data/kafka/kafka-log-a/test_topic-0

    log.dirs = /data/kafka/kafka-log-a, /data/kafka/kafka-log-b, /data/kafka/kafka-log-b

     

    File명에는 의미가 존재한다.

    000000123453.* File은 123453 Offset부터  7735203(7735204-1) Offset의 Message를 관리한다.

    #file
    $ls /data/kafka/kafka-log-a/test_topic-0
    000000123453.index
    000000123453.timeindex
    000000123453.log
    000007735204.index
    000007735204.timeindex
    000007735204.log
    leader-epoch-checkpoint

     

    File Type

    4 개의 Default File Type

    1. Log segment file = Message와 Metadata를 저장한다.

    .log

    2. Index File = 각 Message의 Offset을 Log Segment File의 byte 위치에 Mapping

    .index

    3. Time-based index file = 각 Message의 timestamp를 기반으로 Message 검색 시 사용

    .timeindex

    4. Leader Epoch Checkpoint File = Leader Epoch과 관련 Offset 저장

    leader-epoch-checkpoint

    2개의 Special File Type

    5. Idempotent Producer 사용 시

    .snapshot

    6. Transactional Producer 사용 시

    .txnindex

     

     

    Log segment File 특징


    • Partition은 하나 이상의 Segment로 구성된다.
    • Log Segment File의 File명은 저장된 첫번째 Message의 Offset이다.

     

    Log segment file rolling ( log segment file 생성 )

    • Log.segment.bytes ( default=1GB )
    • Log.roll.ms ( default = 168시간 )
    • Log.index.size.max.bytes ( default = 10MB )

     

    Topic을 일반적인 경우가 아니라 아래와 같은 경우라면

    __consumer_offset(offset Topic)의 Segment File Rolling 파라미터는 별도로 처리해야 한다.

    • offsets.topics.segment.bytes ( default=100MB )

     

    CheckPoint File


    Broker에는 2개의 CheckFile이 존재한다.

    • Log.dirs Directory에 위치한다.
    replication-offset-checkpoint
    • 마지막으로 Commit된 Message의 ID인 High Water Mark
    • 시작 시 Follower는 이를 사용하여 Commit 되지 않은 Message를 truncate
    recovery-point-offset-checkpoint
    • data가 disk FLUSH된 지점
    • 복구 중 Broker는 이 시점 이후의 Message가 손실된지 여부 확인

     

    댓글

Designed by Tistory.