100%开源,Citus 11将企业版特性全部开源

出品 | OSC开源社区(ID:oschina2013)

CitusData 于日前推出了 Citus 11.0,并宣布将所有企业版的特性都进行开源。此前,Citus 在版本更新时通常会同步发布 2 个版本:开源版本和包含一些额外功能的企业版本。“但是,Citus 11.0 将只有一个版本,因为 Citus 扩展中的所有内容现在都是完全开源的!”

公告指出,这意味着你现在可以在无阻塞写入的情况下重新平衡分片、跨集群管理角色、将租户隔离到他们自己的分片等等。“你可以从任何节点查询你的 Citus 集群,从而创建真正分布式的 PostgreSQL 体验。”

Citus 是一个 PostgreSQL 的扩展,将 Postgres 转变为一个分布式数据库,因此你可以在任何规模下实现高性能。CitusData 于 2019 年被微软收购;官方表示,目前团队的重点已转向开源。“让 Citus 开源使你能够直接与开发者和社区互动、了解你运行的代码、避免锁定问题,而且它为每个人创造了更好的开发者体验。”

去年,在 Citus 10 版本中已经开源了分片再平衡功能(shard rebalancer);这是 Citus 的一个重要组成部分,允许你通过将数据转移到新的节点来轻松扩展你的集群。且分片再平衡功能对性能也很有用,可以在集群中的所有节点之间平衡数据。现在作为 Citus 11.0 的一部分,其余的企业功能也全部开源,包括有:

使用逻辑复制重新平衡分片以避免阻塞写入

多用户支持(角色和授权传播、行级安全性)

多租户应用的租户隔离

对节点间身份验证的细粒度控制

通过连接池路由内部连接

数据加载的性能优化

此外,Citus 11 还带有一个重要的新功能 —— 自动模式和元数据同步。

以及一个隐藏的预览功能 —— 分布式表的触发器,用户可使用citus.enable_unsafe_triggers设置启用触发器:

CREATE TABLE data ( key text primary key , value jsonb); SELECT create_distributed_table( 'data' , 'key' ); CREATE TABLE data_audit ( operation text , key text , new_value jsonb, change_time timestamptz default now()); SELECT create_distributed_table( 'data_audit' , 'key' , colocate_with : = 'data' ); -- we know this function only writes to a co-located table using the same key CREATE OR REPLACE FUNCTION audit_trigger() RETURNS triggerAS $$ DECLAREBEGININSERT INTO data_audit VALUES (TG_OP, Coalesce( OLD . key , NEW . key ), NEW .value);RETURN NULL ; END ; $$ LANGUAGE plpgsql; -- so, it is safe to enable triggers on distributed tables SET citus.enable_unsafe_triggers TO on ; CREATE TRIGGER data_audit_trigger AFTER INSERT OR UPDATE OR DELETE ON dataFOR EACH ROW EXECUTE FUNCTION audit_trigger();

公告称,新版 Citus 11 的发布标志着 Citus 正在进入新的领域。“想象一下,如果有一个 FOSS 工具可以将最新版本的 PostgreSQL 变成一个分布式数据库,它可以从单个节点向外扩展,在集群中路由或并行化查询,在任何规模下都有很高的性能,允许你把你的应用程序连接到任何节点,不间断地扩展,在 Azure 上单击几下即可获得集群或在任何环境中自行运行。此外,它可以满足极端数据密集型工作负载的要求。这就是 Citus 11 所提供的。”

更多详情可查看官方博客: https://www.citus data.com/blog/2022/06/17/citus-11-goes-fully-open-source/