pgrust、分析クエリでPostgresの300倍高速化を達成
원제: Making Postgres 300x faster for analytics: batching, operator fusion, and SIMD
왜 중요한가
PostgreSQL 호환 분석 엔진이 ClickHouse를 능가하는 성능을 기록하며 HTAP(하이브리드 트랜잭션·분석 처리) 시장의 기술 경쟁이 심화되고 있다.
pgrust 버전 0.2가 출시되어 분석용 데이터베이스 벤치마크 ClickBench에서 PostgreSQL 대비 최대 300배, OLTP 벤치마크에서는 30% 빠른 성능을 기록했다. 쿼리 엔진의 재설계만으로 약 10배의 성능 향상을 달성했으며, ClickHouse를 앞서는 수치도 확인됐다.
pgrust 개발팀은 버전 0.2 출시와 함께 쿼리 엔진을 전면 재설계하여 분석 성능을 대폭 향상시켰다. ClickHouse가 제공하는 분석용 벤치마크 ClickBench에서 PostgreSQL 대비 300배 빠른 성능을 기록했으며, OLTP 벤치마크에서도 30% 향상됐다. 이전 버전의 pgrust와 비교해도 전체적으로 10배 빠르다.
성능 차이의 배경으로는 PostgreSQL의 역사적 설계 철학이 지목됐다. PostgreSQL은 1980년대 디스크 I/O가 병목이던 시대에 설계되어, 현재처럼 데이터셋이 RAM에 올라가고 NVMe가 수백 배 빠른 환경에서는 CPU와 메모리 대역폭이 새로운 병목이 된다는 설명이다.
구체적인 예시로, 5억 개의 숫자를 합산하는 단순 쿼리를 c8g.4xl 인스턴스에서 병렬 쿼리 없이 실행하면 PostgreSQL은 약 20초가 소요되는 반면, Rust로 작성한 동등한 연산은 358ms에 불과해 약 55배의 차이를 보였다.
pgrust 쿼리 엔진의 주요 최적화 기법은 배치 처리(batching), 연산자 융합(operator fusion), SIMD(단일 명령 복수 데이터) 활용이다. 이를 통해 PostgreSQL 쿼리 엔진의 주요 오버헤드 요인인 잠금(locking)과 스토리지 포맷 파싱 비용을 대폭 줄였다고 개발팀은 밝혔다.