100% 開源,Citus 11 將企業版特性全部開源
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 trigger
AS $$
DECLARE
BEGIN
INSERT 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 data
FOR EACH ROW EXECUTE FUNCTION audit_trigger();
公告稱,新版 Citus 11 的發布標志著 Citus 正在進入新的領域。“想象一下,如果有一個 FOSS 工具可以將最新版本的 PostgreSQL 變成一個分布式數據庫,它可以從單個節點向外擴展,在集群中路由或并行化查詢,在任何規模下都有很高的性能,允許你把你的應用程序連接到任何節點,不間斷地擴展,在 Azure 上單擊幾下即可獲得集群或在任何環境中自行運行。此外,它可以滿足極端數據密集型工作負載的要求。這就是 Citus 11 所提供的。”
更多詳情可查看官方博客。
本文轉自OSCHINA
本文標題:100% 開源,Citus 11 將企業版特性全部開源
本文地址:https://www.oschina.net/news/200300/citus-11-goes-fully-open-source