Release 0.103
Release 0.103
Trino(당시 Presto) 0.103 릴리스의 변경 사항이에요. 새로운 클러스터 리소스 관리자, 실험적 태스크 병렬 처리, 다양한 Hive·일반 개선이 포함돼요.
출처: 문서
본문
클러스터 리소스 관리 (Cluster resource management)
새로운 클러스터 리소스 관리자가 있으며, experimental.cluster-memory-manager-enabled 플래그로 활성화할 수 있어요. 현재 추적되는 유일한 리소스는 메모리이며, 클러스터 리소스 관리자는 클러스터가 메모리를 기다리며 교착 상태에 빠지지 않도록 보장해요. 다만 메모리가 부족한 상황에서는 하나의 쿼리만 진행될 수 있어요. 메모리 한도는 이제 query.max-memory(쿼리가 사용할 수 있는 총 분산 메모리 제어)와 query.max-memory-per-node(쿼리가 단일 노드에서 사용할 수 있는 메모리 양 제한)로 구성할 수 있어요. 각 워커에서 resources.reserved-system-memory 플래그는 내부 Presto 데이터 구조와 임시 할당에 예약되는 메모리 양을 제어해요.
태스크 병렬 처리 (Task parallelism)
많은 수의 집계 또는 조인용 큰 해시 테이블을 포함하는 쿼리는 중간 단계의 단일 스레드 실행 때문에 느릴 수 있어요. 이 릴리스는 이 단일 스레드 작업을 병렬로 실행하는 실험적 구성·세션 프로퍼티를 추가해요. 정확한 쿼리에 따라 wall time은 줄 수 있지만 CPU 사용은 증가할 가능성이 높아요.
task.default-concurrency 구성 파라미터 또는 task_default_concurrency 세션 프로퍼티로 join probe, hash build, final aggregation에 사용할 병렬 워커의 기본 수를 설정해요. 추가로 task_join_concurrency, task_hash_build_concurrency, task_aggregation_concurrency 세션 프로퍼티로 각 작업 유형의 병렬성을 제어할 수 있어요.
이것은 실험적 기능이며 향후 릴리스에서 바뀔 가능성이 커요. 또한 결국 쿼리 플래너가 자동으로 처리하게 될 것이며 이 옵션들은 완전히 제거될 것으로 예상돼요.
Hive
hive.max-split-iterator-threads파라미터를 제거하고hive.max-global-split-iterator-threads를hive.max-split-iterator-threads로 이름을 바꿨어요.- 많은 수의 파티션이 있는 테이블을 쿼리할 때 과도한 객체 생성을 수정했어요.
- S3 경로를 찾을 수 없을 때 요청을 재시도하지 않도록 했어요.
일반 (General)
array_remove()를 추가했어요.- 집계에 행이 거의 없을 때
max_by()와min_by()에서 발생하는 NPE를 수정했어요. map_agg()의 메모리 사용을 줄였어요.- HTTP 클라이언트 기본값을 변경했어요: 2초 유휴 타임아웃, 10초 요청 타임아웃, 호스트당 250개 연결.
- CLI에 SQL 명령 자동 완성(autocompletion)을 추가했어요.
- CLI 히스토리 파일 크기를 늘렸어요.
더 알아보기 (Learn more)
0.103 릴리스의 변경 사항을 봤어요. 이어서 이전 버전인 Release 0.102를 살펴보면 좋아요.