릴리스 368

릴리스 368 (2022년 1월 11일)

이번 릴리스에서는 스케줄링 정책 변경과 정밀도 큰 소수(decimal) 연산 성능 개선이 있어요. OOM 위험 감소와 REFRESH MATERIALIZED VIEW 버그도 수정됐어요.

출처: Trino 릴리스 368 문서

본문

일반 (General)

  • query.max-total-memory-per-task 구성값이나 query_max_total_memory_per_task 세션 속성으로 태스크별 메모리 제한을 설정할 수 있게 했어요. (#10308)
  • phased 스케줄링 정책으로 쿼리 처리 벽시계 시간(wall time)을 개선했어요. 이전 동작은 query.execution-policy 구성값을 legacy-phased로 설정하면 되돌릴 수 있어요. (#10350)
  • phased 스케줄링 정책을 기본으로 켰어요. 이전 동작은 query.execution-policy 구성값을 all-at-once로 설정하면 되돌릴 수 있어요. (#10455)
  • 정밀도가 18보다 큰 소수(decimal)가 포함된 산술 연산의 성능을 개선했어요. (#10051)
  • 메모리 사용이 많은 혼잡한 클러스터에서 메모리 부족 오류가 날 위험을 줄였어요. (#10475)
  • 예약 메모리 풀에 들어간 쿼리가 차단 해제되지 않던 문제를 고쳤어요. (#10475)
  • REFRESH MATERIALIZED VIEW 실행이 멈추지 않도록 했어요. (#10360)
  • EXPLAIN ANALYZE에서 스캔 연산자의 예약 시간이 이중으로 보고되던 문제를 고쳤어요. (#10472)
  • 로그 순환 시 로그 파일 이름 길이가 무한히 늘어나던 문제를 고쳤어요. (#10394)

Hive 커넥터

  • ORC, Parquet, RCFile 데이터에서 정밀도가 18보다 큰 소수 값을 디코딩하는 성능을 개선했어요. (#10051)
  • Delta Lake 테이블은 지원되지 않으므로 Delta Lake 테이블의 속성 시스템 테이블 조회를 금지했어요. 이전에 잘못된 값을 조용히 반환하던 동작을 고쳤어요. (#10447)
  • ORC 파일을 스캔할 때 워커의 메모리 부족 예외 위험을 줄였어요. (#9949)

Iceberg 커넥터

  • 스키마 위치에 접근할 수 없을 때 location과 함께 Iceberg 테이블을 만드는 문제를 고쳤어요. (#9732)
  • 파일 기반 접근 제어를 지원해요. (#10493)
  • SHOW CREATE TABLE 출력에 Iceberg 테이블 위치를 표시해요. (#10459)

SingleStore (MemSQL) 커넥터

  • time 타입 지원을 추가했어요. (#10332)

Oracle 커넥터

  • date 값이 1582-10-14보다 이전이거나 같을 때 결과가 잘못 나오던 문제를 고쳤어요. (#10380)

Phoenix 커넥터

  • binary 타입 읽기 지원을 추가했어요. (#10539)

PostgreSQL 커넥터

  • PostgreSQL에서 선언적 파티셔닝으로 만든 테이블에 접근하는 것을 지원해요. (#10400)

SPI

  • 긴 소수 값을 2의 보수(two's complement) 표현으로 인코딩하고, 전달 타입(carrier type)을 io.airlift.slice.Slice 대신 io.trino.type.Int128로 바꿨어요. (#10051)
  • 커스텀 상태 타입으로 집계를 사용할 때 발생하던 ClassNotFoundException을 고쳤어요. (#10408)

더 알아보기 (Learn more)