리밸런스

리밸런스 (Rebalance)

Pinot 테이블의 세그먼트와 인스턴스를 리밸런싱하는 방법을 안내해요.

출처: 문서

본문

개요 (Overview)

리밸런스는 테이블의 세그먼트(및 인스턴스)를 다시 할당해 부하를 고르게 분산하고, 서버 추가·제거 시 데이터를 재분배하는 작업이에요. Pinot은 다운타임이 있는(with-downtime) 리밸런스와 무중단(no-downtime) 리밸런스 모드를 제공해요.

리밸런스 모드 (Rebalance modes)

  • With-downtime rebalance — IdealState를 한 번에 대상 할당으로 교체하고, 레플리카 가용성을 보장하지 않아요. 비활성화된 테이블은 항상 이 모드로 리밸런싱돼요.
  • No-downtime rebalance — 구성된 레플리카 수가 항상 가용하도록 보장해요. 특정 엣지 케이스에서는 무중단 계약을 달성할 수 없어 리밸런스가 실패할 수 있어요.

리밸런스 명령 (Rebalance command)

리밸런스는 pinot-admin.sh RebalanceTable 명령으로 수행할 수 있어요:

pinot-admin.sh RebalanceTable -zkAddress localhost:2181 -clusterName PinotCluster -tableName myTable -reassignInstances -includeConsuming -downtime
  • reassignInstances — 세그먼트 재할당 전에 인스턴스를 재할당해요.
  • includeConsuming — 실시간 테이블의 CONSUMING 세그먼트도 재할당해요.
  • downtime — 다운타임을 허용해요.
  • bestEfforts — 무중단 계약을 달성할 수 없어도 리밸런스를 계속해요.

자세한 하위 문서: Rebalance Servers, Rebalance Brokers, Rebalance Tenant.

더 알아보기 (Learn more)