PgCluster

来自 PostgreSQL 维基
跳转到导航跳转到搜索

项目概述

PGCluster 是由 Atsushi Mitani 和 PGCluster 开发团队开发的基于共享无状态架构的 PostgreSQL 多主同步复制工具。

项目状态

状态:生产/已退休

pgCluster 的主要开发者已转向 pgCluster2,而 pgCluster 的所有开发工作均已停止。虽然 pgCluster 的代码尚未完全成熟,但它正在少数几个站点投入生产使用。

存档的项目代码可在 PgFoundry 档案库 中找到

项目联系人

  • Atsushi Mitani,原始开发者。

一般信息

  • 可扩展性:3-6
  • 读取扩展:部分
  • 写入扩展:负扩展
  • 触发器/过程:是
  • 并行查询:否
  • 故障转移/高可用性:是
  • 在线配置:存在问题
  • PostgreSQL 升级:否
  • 分离节点/广域网:否
  • 需要 PostgreSQL 内核修改:是
  • 编程语言:C
  • 许可证:OSS,BSD 许可证
  • 完整集群:是

集群模型

通用模型:具有负载均衡和自动故障转移功能的同步多主二进制复制

用例

  • 多主:所有节点看起来相同,无延迟
  • 快速故障转移
  • 没有单点故障(在完全实现时)

pgCluster 的主要功能是防止数据丢失或系统脱机。所有节点都是同步的,在 6 台服务器配置中,任何机器都可以丢失而不会丢失数据。它旨在提供一些读取扩展,但实际上对于大多数用户而言并非如此。

预期功能

  1. 高可用性
    • DB 服务在故障转移、自动恢复、动态添加和升级服务器等过程中不会停止。
    • 没有单点故障。
    • 根据网络带宽自动调整数据传输速度。
    • 负载均衡服务器和监控服务器已包含在内。
  2. 同步多主配置
    • 对任何主节点的任何更新都会立即从其他主节点可见。
    • 事务处理没有变化。
    • now() 和 random() 的值被复制。
  3. 基于 PostgreSQL
  4. 与 PostgreSQL 相同的应用程序 API

缺点

  • 解决方案不成熟
  • 负扩展性
  • 缺少在线配置
  • 设置的费用/复杂性
  • PostgreSQL 的分支

pgCluster 存在一些架构问题,导致其主要开发者在它真正成熟之前就重新开始了新的方法。因此,大量的错误和特殊情况没有得到处理,并且许多主要功能(如在线配置)从未完成。

一个完整的 pgcluster 至少需要 6 台机器(3 台数据库服务器、2 台负载均衡器和一台监控/故障转移控制器)。此外,它需要修改 PostgreSQL 内核,因此 pgCluster 的 PostgreSQL 版本始终落后于主流版本。

项目赞助商

支持

Cybertec.at 通过其“CyberCluster”产品为 pgCluster 提供支持。

其他信息