분산 정렬

분산 정렬 (Distributed sort)

분산 정렬은 한 노드의 메모리에 들어가지 않을 만큼 큰 데이터를 여러 노드에 걸쳐 정렬할 수 있게 해 주는 기능이에요.

출처: 문서

본문

분산 정렬을 사용하면 query.max-memory-per-node를 초과하는 데이터도 정렬할 수 있어요. 분산 정렬은 distributed_sort 세션 속성 또는 코디네이터의 etc/config.properties에 설정하는 distributed-sort 설정 속성으로 활성화할 수 있고, 기본적으로 활성화되어 있어요.

분산 정렬이 활성화되면 정렬 연산자가 클러스터의 여러 노드에서 병렬로 실행돼요. 각 Trino 워커 노드에서 부분적으로 정렬된 데이터는 단일 워커 노드로 스트리밍되어 최종 병합을 수행하죠. 이 기법 덕분에 여러 Trino 워커 노드의 메모리를 정렬에 활용할 수 있어요.

분산 정렬의 주된 목적은 단일 노드 메모리에 들어가지 않는 데이터셋을 정렬할 수 있게 하는 것입니다. 성능 개선 효과도 기대할 수 있지만, 데이터를 결국 단일 노드가 병합해야 하므로 노드 수에 비례해 선형적으로 확장되지는 않아요.

더 알아보기 (Learn more)

쿼리당 메모리 제한을 조정하는 방법이 궁금하다면 일반 속성(General properties) 문서를 이어서 읽어 보세요.