우리는 데이터베이스에 대해 Postgres 호환성을 구축하고 이를 재사용 가능한 라이브러리로 만들었습니다
GreptimeDB가 Rust 생태계 라이브러리를 활용해 Postgres 프로토콜 호환성을 구현했습니다.
Postgres 프로토콜은 TCP 위에서 동작하는 애플리케이션 레이어 프로토콜로, 스타트업, 단순 쿼리, 확장 쿼리 등 다섯 가지 주요 부분으로 구성됩니다.
이 프로토콜 호환성은 검증된 안정성과 다양한 프로그래밍 언어 드라이버 및 관리 도구 활용을 가능하게 합니다.
또한, GreptimeDB를 Postgres의 외부 데이터 소스로 연결해 연합 쿼리(FDW)를 지원할 수 있습니다.
GreptimeDB는 pgwire 라이브러리와 DataFusion 쿼리 엔진을 결합해 네트워크 프로토콜과 메타데이터(pg_catalog) 호환성을 구현했습니다.
pgwire는 Rust에서 Postgres 프로토콜 서버 구축을 돕는 라이브러리이며, DataFusion은 쿼리 엔진으로서 pg_catalog 메타데이터를 처리합니다.
다만, Postgres 프로토콜은 행 지향 데이터 구조에 최적화되어 있고, 쿼리 취소 메커니즘과 확장 쿼리의 타입 추론에 일부 한계가 존재합니다.
GreptimeDB의 호환성 스택은 다양한 오픈소스 프로젝트에서도 활용되고 있어, 새로운 Postgres 생태계 구축에 기여하고 있습니다.
요약하면, GreptimeDB는 Rust 기반의 재사용 가능한 라이브러리를 통해 Postgres 프로토콜과 생태계 호환성을 실현하여, 다양한 데이터 인프라가 쉽게 Postgres와 연동할 수 있는 기반을 마련했습니다.
