Release 0.93

Release 0.93

Presto 0.93 릴리스예요. 이번 버전은 ORC 리더가 varchar·varbinary 데이터를 읽을 때 작은 버퍼를 쓰도록 바꿔, 힙 단편화와 과도한 메모리 점유를 줄였어요.

출처: Trino Release 0.93

본문

ORC 메모리 사용량

이 릴리스는 varcharvarbinary 데이터를 읽을 때 작은 버퍼(small buffers)를 쓰도록 Presto ORC 리더를 변경했어요. 일부 ORC 파일에는 압축 해제 시 수백 메가바이트가 되는 데이터 컬럼이 들어 있어요. 이전 Presto ORC 리더는 컬럼의 모든 값에 대해 하나의 큰 공유 버퍼를 할당했어요. 이 때문에 CMS와 G1에서 힙 단편화(heap fragmentation)가 생기고, 컬럼의 각 값이 공유 버퍼에 대한 참조를 계속 잡고 있어서 OOM이 발생할 수 있었어요.

이 릴리스에서 ORC 리더는 컬럼의 각 값에 별도의 버퍼를 사용해요. 객체 생성 비용을 감수하는 대신 힙 단편화와 과도한 메모리 점유를 줄이는 방식이에요.

Verifier

  • 쿼리마다 사용자 이름과 비밀번호를 설정하는 것을 지원하게 됐어요.

General

  • LIMIT 0에 대한 최적화기를 추가했어요.
  • ORC에서 문자열 통계를 비활성화할 때의 잘못된 검사를 고쳤어요.
  • INSERTCREATE TABLE AS 쿼리에서 숨은 컬럼(hidden columns)을 무시하도록 했어요.
  • CLI에 SOCKS 지원을 추가했어요.
  • 업데이트 쿼리(update queries)에 대한 CLI 출력을 개선했어요.
  • 비결정적(non-deterministic) 조건자에 대한 pushdown을 비활성화했어요.

더 알아보기 (Learn more)

ORC 메모리 사용량 개선은 다음 릴리스에서도 이어져요. 큰 컬럼을 스트리밍으로 처리하는 방식은 0.94 릴리스 노트에서 확인할 수 있어요.