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/