Release 0.94

Release 0.94

Presto 0.94 릴리스예요. 이번 버전은 큰 컬럼을 ORC 버퍼 하나에 몰아두지 않고 스트리밍으로 읽도록 바꿔, 힙 단편화와 OOM 문제를 완화했어요.

출처: Trino Release 0.94

본문

ORC 메모리 사용량

이 릴리스는 varcharvarbinary 데이터를 읽을 때 작은 버퍼를 선호하도록 Presto ORC 리더를 추가로 변경했어요. 일부 ORC 파일에는 압축 시에도 수백 메가바이트가 되는 데이터 컬럼이 들어 있어요. 이런 컬럼을 읽을 때 Presto는 압축된 컬럼 데이터 하나에 단일 버퍼를 할당했고, 이 때문에 CMS와 G1에서 힙 단편화가 생기고 결국 OOM이 발생했어요.

이 릴리스에서는 hive.orc.max-buffer-size가 단일 ORC 버퍼의 최대 크기를 정하고, 더 큰 컬럼은 대신 데이터를 스트리밍으로 처리해요. HDFS IOPS를 더 쓰는 대신 ORC에서 힙 단편화와 과도한 버퍼를 줄여요. 기본값은 8MB예요.

General

  • Hive CDH 4 커넥터를 CDH 4.7.1로 업데이트했어요.
  • ORDER BYLIMIT 0을 함께 쓸 때의 문제를 고쳤어요.
  • try_cast의 컴파일 문제를 고쳤어요.
  • 디버깅을 쉽게 하도록 스레드를 Java 스레드 그룹으로 묶었어요.
  • 동시 리더 수를 제한하는 데 도움이 되는 task.min-drivers 설정을 추가했어요.

더 알아보기 (Learn more)

ORC 리더의 메모리 사용량 전략은 버전을 거치며 계속 발전했어요. hive.orc.max-buffer-size 같은 현재 설정값과 상세 동작은 최신 Hive 커넥터 문서에서 확인해 보세요.