Trino 0.197 릴리스 노트

Trino 0.197 릴리스 노트

Trino 0.197 릴리스 노트입니다. 이번 릴리스에서는 일반 개선 사항과 리소스 그룹, Hive, CLI, SPI 관련 변경 사항이 들어 있어요.

출처: 문서

본문

일반 (General)

  • concurrent_lifespans_per_task 세션 속성이 설정됐을 때 쿼리 스케줄링이 멈추던 문제를 수정했어요.
  • 쿼리에 Presto JVM의 기본 시간대에 존재하지 않는 로컬 시간에 해당하는 TIMESTAMP 리터럴이 포함될 때 실패하던 문제를 수정했어요. 예를 들어 Presto가 CET 영역(예: Europe/Brussels)에서 실행되고 클라이언트 세션이 UTC라면 TIMESTAMP '2017-03-26 02:10:00' 같은 표현식이 실패했어요.
  • <symbol> IN <subquery> 조건자를 사용하는 쿼리에 대한 조건자 추론과 푸시다운을 확장했어요.
  • values list의 값이 column 타입과 일치하도록 캐스팅을 요구하는 <column> IN <values list> 조건자의 푸시다운을 지원해요.
  • 불필요한 객체 생성을 피해 min()max()를 최적화해 GC 오버헤드를 줄였어요.
  • ST_XMin(), ST_XMax(), ST_YMin(), ST_YMax()의 성능을 최적화했어요.
  • sequence() 함수에 DATE 변형을 추가했어요.
  • ST_IsSimple() 지리공간 함수를 추가했어요.
  • 브로드캐스트 공간 조인(broadcast spatial join)을 지원해요.

리소스 그룹 (Resource groups)

  • 하위 그룹 전체 또는 전혀 없이 스케줄링 가중치가 구성되도록 리소스 그룹 정책의 가중치 구성 검사를 변경했어요.
  • 리소스 그룹 이름을 파라미터화하는 데 사용할 수 있는 소스와 사용자 정규 표현식의 명명된 변수를 지원해요.
  • DB 리소스 그룹 정확 일치 셀렉터의 선택 필드를 지원해요.

Hive

  • 필드가 설정되지 않은 Hive 파티션 통계 읽기를 수정했어요. 이전에는 설정되지 않은 필드가 값이 0인 것으로 잘못 해석됐어요.
  • 최적화된 ORC 라이터로 2GB보다 큰 단일 파일을 쓸 때 정수 오버플로를 수정했어요.
  • 최적화된 ORC 라이터에 스트라이프 통계 크기와 라이터 검증 크기를 포함하도록 시스템 메모리 회계를 수정했어요.
  • 불필요한 메모리 할당을 피하기 위해 최적화된 ORC 라이터의 압축 버퍼를 동적으로 할당하도록 했어요. 버퍼 최대 크기를 제한하는 hive.orc.writer.max-compression-buffer-size 구성 속성을 추가했어요.
  • 최적화된 ORC 라이터의 최대 스트라이프 크기를 조정하는 orc_optimized_writer_max_stripe_size 세션 속성을 추가했어요.
  • 한도를 초과하면 ORC 파일 작성 시 문자열 통계를 버리는 orc_string_statistics_limit 세션 속성을 추가했어요.
  • 항상 뷰를 만든 사용자를 사용하는 대신 쿼리 시점에 메타스토어에서 반환된 뷰 소유자를 사용하도록 했어요. 이렇게 하면 뷰의 소유자를 변경할 수 있어요.

CLI

  • CLI가 Presto 서버와 통신하지 못할 때 멈추던 문제를 수정했어요.

SPI

  • SHOW 문을 실행하거나 information_schema를 조회할 때 이루어지는 커넥터 메타데이터 호출에 커넥터 세션 속성을 포함하도록 했어요.
  • QueryCompletedEvent에 쿼리 실행 중 발생한 전체 GC의 횟수와 시간을 추가했어요.
  • match() 메서드를 포함하도록 ResourceGroupManager 인터페이스를 변경하고 getSelectors() 메서드와 ResourceGroupSelector 인터페이스를 제거했어요.
  • 기존 SelectionContext 클래스의 이름을 SelectionCriteria로 바꾸고, match() 메서드에서 반환되는 새 SelectionContext 클래스(리소스 그룹 ID와 매니저 정의 컨텍스트 필드를 포함)를 만들었어요.
  • ConnectorViewDefinition에 소유자가 있을 때 그 뷰 소유자를 사용하도록 했어요.

더 알아보기 (Learn more)

Trino 0.197의 변경 사항을 더 자세히 확인하고 싶다면 공식 릴리스 노트를 참고해 주세요.