DuckDB 2.0이 빨라진 이유
원제: Why DuckDB 2.0 is faster
왜 중요한가
쿼리 코드 수정 없이 S3 원격 분석 속도가 59% 개선돼, 데이터 파이프라인 비용과 대기 시간 모두 줄일 수 있다.
오픈소스 분석 데이터베이스 DuckDB의 버전 2.0 알파가 2026년 가을 출시를 앞두고 공개됐다. MotherDuck 기술 블로그에 따르면, S3에서 2.2GB Parquet 파일을 읽는 동일한 쿼리 실행 시 DuckDB 1.5.5 대비 2.0 알파의 처리 시간이 18.8초에서 7.7초로 약 59% 단축됐다.
DuckDB 2.0의 속도 향상을 이끄는 핵심 변화는 비동기 I/O(Async I/O) 아키텍처 개편이다. MotherDuck의 Mehdi Ouazza가 M5 랩톱에서 직접 테스트한 결과를 공개했다.
기존 1.5.5 버전에서는 18개의 워커 스레드가 각각 S3 다운로드 → 대기 → Parquet 디코딩 → 다운로드를 순차적으로 반복했다. 워커가 네트워크 응답을 기다리는 동안 CPU는 유휴 상태였고, 반대로 디코딩 중에는 새 다운로드 요청이 없어 네트워크 대역폭이 낭비됐다.
2.0에서는 역할이 분리됐다. 별도의 다운로드 전용 스레드 풀이 수십 개의 row group을 동시에 내려받아 버퍼에 쌓는다. 워커 스레드는 디코딩만 담당하며, 항상 처리할 row group이 준비돼 있는 구조다. 네트워크와 CPU가 동시에 풀가동된다.
테스트 파일은 Stack Overflow 투표 데이터 2억 2800만 행(2268개 row group, 4개 컬럼 중 1개 컬럼만 읽어 약 230MB 전송)이었다. 쿼리 변경 없이 동일 조건에서 DuckDB 1.5.5는 18.8초, 2.0 알파는 7.7초를 기록했다. 단, 테스트는 가정용 인터넷 환경에서 us-east-1 리전으로 진행됐으므로 클라우드 컴퓨팅 환경에서는 더 빠른 절대 수치를 기대할 수 있다.
글에서는 Async I/O 외에도 추가적인 성능 개선 사항이 있다고 언급했으나, 해당 포스트에서 공개된 상세 내용은 Async I/O에 집중됐다.