PgDog开源-实现PostgreSQL水平扩展与自动分片
talkingdev • 2025-05-26
11531 views
开发者Lev近日开源了PgDog项目,这是一个用Rust编写的PostgreSQL代理工具,旨在为PostgreSQL提供水平扩展和自动分片功能,而无需对现有应用进行修改或安装数据库扩展。PgDog是Lev之前项目PgCat的精神继承者,但在架构上进行了全面升级,支持跨分片查询,并采用完全异步的设计,能够在查询执行的任何阶段操作PostgreSQL协议。 PgDog的独特之处在于其作为代理运行在数据库外部,可以部署在任何地方,包括不支持Citus等扩展的托管PostgreSQL服务(如RDS、Cloud SQL等)。它专注于OLTP(在线事务处理)场景,能够处理数千甚至数百万的并发连接。目前,PgDog已支持简单的聚合函数(如max()、min()、count(*)和sum())和排序功能,但更复杂的函数(如百分位数和平均值)仍在开发中。 此外,PgDog还支持读写流量分离和负载均衡,可以部署在多个副本前以提高可用性。其分布式COPY功能通过操作PostgreSQL网络协议,将数据行分发到不同的分片,简化了集群拓扑的管理。未来,Lev计划通过逻辑复制实现无停机的PostgreSQL分片和重新分片,并添加更多企业级功能,如查询拦截和重写。 PgDog已在GitHub上开源,开发者可以参与讨论或提出功能建议。
核心要点
- PgDog是一个用Rust编写的PostgreSQL代理工具,支持水平扩展和自动分片,无需修改应用或安装扩展。
- PgDog作为外部代理运行,支持跨分片查询和完全异步操作,适用于OLTP场景,性能优于PgBouncer。
- 未来计划包括无停机分片、查询拦截和重写等企业级功能,项目已在GitHub开源。