적응형 서버 선택 기반 쿼리 라우팅
적응형 서버 선택 기반 쿼리 라우팅 (Query Routing using Adaptive Server Selection)
서버의 실시간 부하를 고려해 쿼리를 라우팅하는 적응형 서버 선택(Adaptive Server Selection) 방법을 안내해요.
출처: 문서
본문
개요 (Overview)
기본적으로 Pinot 브로커는 라우팅 전략에 따라 정적으로 서버를 선택해요. 하지만 서로 다른 서버가 서로 다른 부하를 가질 수 있어, 일부 서버가 과부하되면 쿼리 지연이 늘어날 수 있어요. 적응형 서버 선택(adaptive server selection)은 쿼리 실행 시 서버의 실시간 부하(지연, 큐, 처리 중인 쿼리 등)를 관찰해 가장 적합한 서버로 쿼리를 라우팅해서 지연을 낮추고 부하를 고르게 분산해요.
구성 (Configuration)
적응형 서버 선택을 활성화하려면 브로커 구성에서 관련 라우팅 클래스를 설정해요. 예를 들어:
pinot.broker.routing.table.builder.class=...
pinot.broker.useAdaptiveServerSelection=true
사용하는 서버 부하 지표(지연, 성공률, 큐 깊이 등)와 라우팅 정책에 따라 적응형 선택을 조정할 수 있어요.
동작 방식 (How it works)
브로커는 쿼리를 보낼 때 이전에 측정한 서버들의 부하 상태를 참고해 예상 응답이 가장 빠른 서버를 선택해요. 실시간 측정을 통해 단기 부하 편향을 반영하므로 정적 라우팅보다 균형 잡힌 부하 분산을 제공해요.
모범 사례 (Best practices)
- 서버 간 하드웨어나 워크로드가 균일하지 않은 환경에서 유용해요.
- 잘못된 판단을 피하도록 부하 지표의 측정 창(window)을 적절히 설정하세요.
- 테스트를 통해 지연 개선 효과를 검증하세요.