Citus 是将 Postgres 转换为分布式数据库的 PostgreSQL 扩展,已在最新版本 11 中完全开源。
我说完全,因为某些部分,例如分片重新平衡器,已经在早期版本中开源。然而,这个版本开源了一切。

但首先是关于 Citus 的几句话。与赋予 PostgreSQL 超能力的其他扩展一样,Citus 通过以下方式增强 Postgres:
- 在 PostgreSQL 节点集群中分片的分布式表,以组合它们的 CPU、内存、存储和 I/O 容量。
- 引用复制到所有节点的表,以实现分布式表的连接和外键以及最大的读取性能。
- 分布式查询引擎路由和并行化 SELECT、DML 以及跨集群的分布式表的其他操作。
- 在常规表和分布式表上压缩数据、加快扫描并支持快速投影的列式存储。
- 来自任何节点的查询使您能够利用集群的全部容量进行分布式查询

Oracle 数据库和 IBM Db2 都提供了一个无共享架构(集群中的每个节点都有自己的计算和存储)作为单独的功能,并且使用 Citus,PostgreSQL 也可以做到这一点。除此之外,您还可以通过向 Citus 的集群添加更多服务器来横向扩展,并将数据从现有服务器重新平衡到新服务器,而无需停机。
开源,使企业版的额外功能可供所有人使用。这些包括:
- 非阻塞分片重新平衡器:移动分片而不阻塞修改
- 多用户支持:跨集群管理角色
- 角色语句:传播 CREATE/DROP/ALTER ROLE 语句
- 授予语句:传播 GRANT/REVOKE 语句
- 行级安全性:分布式表的行级安全性
- 数据库所有者:传播 ALTER DATABASE ... OWNER TO
- citus.node_conninfo:验证内部连接
pg_dist_authinfo:内部连接的每个用户验证 - pg_dist_poolinfo:为内部连接安装 pooler
- 租户隔离:对租户的更多控制
- citus_stat_statements:每个租户的统计信息
- COPY 优化:针对大型 JSON/JSONB 对象
- 集群命令:更多的 postgres 兼容性
但是 v11(截至今年 6 月的 v11.0.2)与其前身相比最大的变化是:
放弃对 PostgreSQL 12 的支持
架构和 Citus 元数据现在在整个数据库集群中自动同步,因此您始终可以从 Citus 集群中的任何节点查询分布式表。
和
引入了非阻塞分片重新平衡器,Citus 可以在该重新平衡器下通过使用逻辑复制来移动分片,因此当通过将现有数据移动到新节点来扩展集群时,您的应用程序只会遇到短暂的写入延迟。
文章来源:https://www.i-programmer.info/news/84-database/15548-citus-for-postgresql-goes-fully-open-source.html
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




