인스턴스 할당
인스턴스 할당 (Instance Assignment)
Pinot에서 인스턴스(서버)를 테넌트에 할당하고 세그먼트를 배치하는 방법을 안내해요.
출처: 문서
본문
개요 (Overview)
Pinot은 표준 및 최적화된 할당 전략을 사용해 인스턴스를 테넌트에 할당하고, 세그먼트를 해당 인스턴스에 배치해요. 테넌트 태깅(tagging)을 통해 서버를 오프라인/실시간 테넌트에 묶고, 할당 전략이 세그먼트 배치를 결정해요.
인스턴스 태깅 (Instance tagging)
서버 인스턴스는 테넌트 태그를 가져요. 예: DefaultTenant_OFFLINE, DefaultTenant_REALTIME. 테이블의 tenants 구성은 브로커/서버 테넌트를 지정하고, 서버는 해당 테넌트 태그를 가진 인스턴스에 배치돼요.
할당 전략 (Assignment strategies)
- 표준 할당 (Balanced) — 세그먼트와 레플리카를 서버에 고르게 분산해요.
- 최적화 할당 (Replica-group 등) — 세그먼트를 레플리카 그룹으로 묶어 라우팅과 부하를 최적화해요.
- 파티션 기반 할당 — 파티셔닝된 테이블의 부하 분산.
인스턴스 추가/제거 (Adding/removing instances)
서버를 추가·제거하면 Helix가 이상 상태를 다시 계산하고, 필요에 따라 세그먼트가 재할당돼요. 리밸런스로 세그먼트를 재분배할 수 있어요.
모범 사례 (Best practices)
- 여러 테넌트를 공유하는 클러스터에서는 테넌트 태그와 전용 인스턴스 풀을 명확히 구성하세요.
- 서버를 추가하거나 뺄 때 리밸런스를 계획하세요.