세그먼트 수명 주기와 복구

세그먼트 수명 주기와 복구 (Segment Lifecycle and Repair)

세그먼트의 수명 주기와 이상 상태(ERROR 등) 복구 방법을 안내해요.

출처: 문서

본문

개요 (Overview)

세그먼트는 Helix가 관리하는 이상 상태(Ideal State)와 외부 상태(External View)에 따라 여러 수명 주기 상태를 거쳐요. 세그먼트가 ERROR 상태에 빠지면 쿼리에 영향을 줄 수 있으며, 복구 과정이 필요할 수 있어요.

세그먼트 상태 (Segment states)

  • ONLINE — 세그먼트가 서버에 로드되어 정상 서빙 중.
  • CONSUMING — 실시간 세그먼트가 Kafka를 소비 중.
  • OFFLINE — 세그먼트가 비활성화되어 서빙되지 않음.
  • ERROR — 세그먼트 로드·생성 실패 등 오류 상태.

이상 상태와 외부 상태 (Ideal state and external view)

  • Ideal State — 원하는(이상적인) 세그먼트 배치.
  • External View — 실제 세그먼트 배치(현재 상태).
  • 둘이 일치해야 완전히 건강한 상태예요. 차이가 지속되면 서버 문제나 배치 실패를 나타낼 수 있어요.

복구 (Repair)

  • 세그먼트 복구 — ERROR/OFFLINE 세그먼트를 확인하고 원본 데이터에서 다시 생성하거나 강제로 다시 로드해요.
  • VerifyClusterState 같은 도구로 Ideal State와 External View의 일치 여부를 확인할 수 있어요.
  • ERROR 세그먼트는 데이터 원본(딥 스토어)에서 재생성하거나 Minion 작업으로 복구할 수 있어요.

모범 사례 (Best practices)

  • 클러스터의 Ideal/External 상태 불일치를 주기적으로 점검하세요.
  • ERROR 세그먼트가 발생하면 근본 원인(인덱스 빌드 실패, 메모리 부족 등)을 파악하고 복구하세요.
  • Consistent Push and Rollback로 푸시 실패를 방지하세요.

더 알아보기 (Learn more)