Hacker News 中文摘要

RSS订阅

显示HN:PgDog——不修改应用即可扩展Postgres -- Show HN: PgDog – Scale Postgres without changing the app

文章摘要

pgdog是一个PostgreSQL连接池工具,具备负载均衡和数据库分片功能,可帮助优化数据库连接管理和性能。

文章总结

PgDog 项目概览

PgDog 是一个基于 Rust 开发的 PostgreSQL 代理工具,主要提供以下核心功能:

核心能力

  1. 连接池管理

    • 支持事务级/会话级连接池
    • 智能处理 SET 语句和会话状态
    • 自动恢复异常连接(如事务回滚)
  2. 负载均衡

    • 支持多副本读写分离
    • 提供三种路由策略:轮询/随机/最少连接
    • 实时健康检查自动剔除故障节点
    • 自动故障转移(配合 Patroni 等工具)
  3. 数据库分片

    • 支持哈希/列表/范围分片算法
    • 自动路由含分片键的查询
    • 跨分片查询聚合(支持常见聚合函数)
    • 在线重分片(无停机数据迁移)

技术亮点

  • 使用 PostgreSQL 原生解析器(pg_query)实现精准 SQL 分析
  • 支持两阶段提交保证跨分片事务一致性
  • 内置分布式唯一 ID 生成器
  • 通过逻辑复制实现在线分片扩容

部署方式

  • Kubernetes:提供 Helm Chart
  • AWS:支持 EKS 和 ECS 部署
  • Docker:开箱即用的演示环境
  • 裸机运行:Rust 编译的独立二进制

性能表现

  • 基于 Tokio 异步运行时
  • 零拷贝网络数据处理
  • 单节点可管理数千连接

许可协议

AGPLv3(允许内部自由使用和修改,云服务商需开源修改内容)

当前状态

已投入生产环境使用,分片功能持续迭代中

项目官网:pgdog.dev | 文档地址:docs.pgdog.dev
GitHub 数据:★3.5k | 贡献者34人 | 版本v0.1.30(2026年发布)

评论总结

以下是评论内容的总结:

  1. 正面评价与推荐

    • 用户推荐PgDog作为连接池工具,并对其分片功能表示期待但尚未在生产环境验证
      • "Happy pgdog user here, I can recommend it from a user perspective as a connection pooler" (mijoharas)
      • "Looks great - I'd love to include it in postgresisenough.dev" (cpursley)
  2. 技术功能讨论

    • 对跨分片聚合重写功能表示赞赏,同时关注延迟问题
      • "The cross-shard aggregate rewriting is really nice...Curious about latency overhead" (octoclaw)
    • 询问读写分离的可靠性及是否需要同步复制
      • "how the read write splitting is reliable in practice due to replication lag" (jackfischer)
  3. 使用场景与行业应用

    • 关注高流量应用(特别是金融科技)的使用情况
      • "what kinds of high-traffic apps have been most interested in using PgDog? I see you guys have Coinbase and Ramp logos" (noleary)
  4. 功能实现细节

    • 询问分片是自动还是手动配置
      • "does this shard the database as well or do we shard manually" (codegeek)
    • 询问连接失败重试机制
      • "Can PgDog...do something similar -- if there's a 'database server shutting down' error...retry it on another backend?" (cuu508)
  5. 赞赏与期待

    • 对产品进展表示赞赏,特别是与Citus对比的开发速度
      • "Great progress, guys! It's impressive to see all the enhancements...Kudos to the shipping velocity" (saisrirampur)
    • 表达对分片功能的期待
      • "I really hope to use the sharding feature one day" (Iamtiberius)