Release 0.93
Release 0.93
Presto 0.93 릴리스예요. 이번 버전은 ORC 리더가 varchar·varbinary 데이터를 읽을 때 작은 버퍼를 쓰도록 바꿔, 힙 단편화와 과도한 메모리 점유를 줄였어요.
본문
ORC 메모리 사용량
이 릴리스는 varchar와 varbinary 데이터를 읽을 때 작은 버퍼(small buffers)를 쓰도록 Presto ORC 리더를 변경했어요. 일부 ORC 파일에는 압축 해제 시 수백 메가바이트가 되는 데이터 컬럼이 들어 있어요. 이전 Presto ORC 리더는 컬럼의 모든 값에 대해 하나의 큰 공유 버퍼를 할당했어요. 이 때문에 CMS와 G1에서 힙 단편화(heap fragmentation)가 생기고, 컬럼의 각 값이 공유 버퍼에 대한 참조를 계속 잡고 있어서 OOM이 발생할 수 있었어요.
이 릴리스에서 ORC 리더는 컬럼의 각 값에 별도의 버퍼를 사용해요. 객체 생성 비용을 감수하는 대신 힙 단편화와 과도한 메모리 점유를 줄이는 방식이에요.
Verifier
- 쿼리마다 사용자 이름과 비밀번호를 설정하는 것을 지원하게 됐어요.
General
LIMIT 0에 대한 최적화기를 추가했어요.- ORC에서 문자열 통계를 비활성화할 때의 잘못된 검사를 고쳤어요.
INSERT와CREATE TABLE AS쿼리에서 숨은 컬럼(hidden columns)을 무시하도록 했어요.- CLI에 SOCKS 지원을 추가했어요.
- 업데이트 쿼리(update queries)에 대한 CLI 출력을 개선했어요.
- 비결정적(non-deterministic) 조건자에 대한 pushdown을 비활성화했어요.
더 알아보기 (Learn more)
ORC 메모리 사용량 개선은 다음 릴리스에서도 이어져요. 큰 컬럼을 스트리밍으로 처리하는 방식은 0.94 릴리스 노트에서 확인할 수 있어요.