세그먼트 임계값

세그먼트 임계값 (Segment Threshold)

Pinot에서 세그먼트 임계값이 어떻게 동작하는지 배우는 페이지예요. 세그먼트 임계값은 실시간 테이블에서 세그먼트가 언제 커밋되는지를 결정하며, 적절한 세그먼트 크기를 유지하는 데 중요해요.

출처: Segment Threshold

본문

세그먼트 임계값은 실시간 테이블에서 세그먼트가 언제 커밋되는지 결정해요.

Kafka 같은 스트리밍 제공자에서 데이터가 처음 수집되면 Pinot는 데이터를 소비 세그먼트(consuming segment)에 저장해요.

이 세그먼트는 스트리밍 제공자의 특정 파티션을 처리하는 서버의 디스크에 있어요.

하지만 세그먼트가 커밋될 때만 세그먼트가 deep store에 기록돼요. 세그먼트 임계값이 언제 그런 일이 일어날지 결정해요.

세그먼트 임계값이 왜 중요한가요? (Why is the segment threshold important?)

세그먼트 임계값이 중요한 이유는 세그먼트가 합리적인 크기가 되도록 보장하기 때문이에요.

쿼리가 처리될 때 더 작은 세그먼트는 더 많은 오버헤드(스폰되는 스레드 수, 메타데이터 처리 등)로 인해 쿼리 지연을 증가시킬 수 있어요.

더 큰 세그먼트는 서버가 메모리를 고갈시키게 할 수 있어요. 서버가 재시작되면 소비 세그먼트가 첫 번째 행부터 다시 소비를 시작해야 해서 Pinot와 스트리밍 제공자 사이에 지연(lag)이 생겨요.

Mark Needham explains the segment threshold

더 알아보기 (Learn more)