
pgrust가 v0.4 베타를 공개했다. 새 쿼리 엔진 Gravity, pgrcolumnar의 MVCC 지원과 행 저장소 위 컬럼형 인덱스, 메모리 자동 관리, jsonb 통계가 포함됐다. 정식 v0.4가 아니라 안정화가 진행 중인 베타다.
제작진은 Gravity가 ClickHouse보다 최대 3배 빠르다고 밝혔다. v0.2에서는 ClickBench에서 ClickHouse를 18.5% 앞섰다고 설명했다. Gravity는 PostgreSQL 쿼리와 자료형을 지원하며, 기존 PostgreSQL 행 저장소에서도 작동한다. 행 저장소에서 수백 행을 넘는 쿼리는 최대 5배 빨라질 수 있다고 한다.
Gravity는 새 저수준 리스프 기반 중간 표현(IR)을 도입해 JIT 컴파일러를 다시 작성했다. 기존 JIT는 ARM64만 지원했지만, 새 엔진은 x86, ARM, WASM용 JIT를 지원한다.
pgrcolumnar는 컬럼형 테이블에서 트랜잭션과 동시 읽기·쓰기를 지원한다. 표준 PostgreSQL 격리 수준, 롤백, 스냅샷 가시성을 제공하며, 컬럼형 테이블에서 삽입·삭제·갱신을 처리하고 B-tree, GIN, GiST 등 표준 인덱스 유형을 지원한다. 기존 행 저장소 테이블 위에 컬럼형 인덱스를 만들 수도 있어, 테이블을 컬럼형 저장소로 옮기지 않고 분석 쿼리를 실행할 수 있다.
메모리 관리 기능은 쿼리에 사용 가능한 메모리를 자동으로 배분하고, 여유 메모리가 줄면 일부 쿼리의 메모리를 디스크로 옮긴다. 버퍼 캐시도 유휴 메모리에 따라 크기를 늘리거나 줄인다. jsonb 컬럼의 키와 값에 대한 통계를 쿼리 플래너가 활용하도록 해, 제작진은 작업에 따라 jsonb 쿼리가 큰 폭으로 빨라질 수 있다고 설명했다.
pgrust는 월별 대규모 코드 공개 방식에서 벗어나 기능·최적화·버그 수정을 공개 저장소에 준비되는 대로 반영하는 방식으로 전환했다. 베타는 아직 실험 단계이며, 제작진은 데이터 손실을 감수할 수 없는 데이터의 주 데이터베이스로 쓰지 말고 표준 PostgreSQL을 기준 데이터로 유지하면서 분석 복제본이나 테스트 작업에서 사용하라고 권고한다. 작은 시스템이나 대규모 쿼리에서는 중간 결과를 디스크에 기록해 느려질 수 있으며, 서버의 메모리 부족을 막기 위해 일부 쿼리가 거부될 수도 있다.
코드와 베타 버전은 GitHub 저장소에서 확인할 수 있으며, PostgreSQL과 다른 결과를 내거나 버그가 발견되면 이슈를 열어 달라고 제작진은 안내했다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요