Pigsty v3.7.0 正式發(fā)布了,這次更新帶來了完整的 PostgreSQL 18 支持,以及四個新的操作系統(tǒng)支持:Debian 13 / EL 10 與 x86/ARM 架構(gòu)的四種排列組合。與此同時,Pigsty 支持的擴(kuò)展插件數(shù)量也從之前的 423 個達(dá)到了 437 個,大量擴(kuò)展版本都批量更新至最新版本。
此外,Supabase,IvorySQL,PolarDB,Percona TDE 內(nèi)核也都升級到了最新的版本。Prometheus,Grafana,DuckDB,Etcd 等基礎(chǔ)組件也都進(jìn)行了一次集中式的批量更新。
順帶一提,融合了8大內(nèi)核,400+擴(kuò)展,以及完整 RDS 生態(tài)的 PostgreSQL 發(fā)行版,將讓 PostgreSQL 進(jìn)入全盛形態(tài) —— Pigsty 最近憑借在 PostgreSQL 擴(kuò)展生態(tài)的突出貢獻(xiàn),獲得了 “PostgreSQL 萬磁王” 獎。
![]()
![]()
PostgreSQL 18 上位
在 《》中,老馮說過 PG 18.1 發(fā)布之后,可以開始在新的業(yè)務(wù)中生產(chǎn)使用了。這不,Pigsty v3.7 就將 PG18 正式作為了默認(rèn)的版本。
PG 18 有一些給力的新特性,時態(tài)主鍵,UUIDv7 內(nèi)置,索引跳躍掃描,異步 AIO,虛擬生成列,Explain 增強(qiáng),OAuth 2.0 支持,如果你用到了這些特性,那么確實應(yīng)該考慮升級到 PG 18 了。
與此同時,11 月發(fā)布的 PG 13.23 將會是 PG 13 的最后一個版本,PG 13 將會退出歷史舞臺,停止支持。 老馮倒是沒有著急把 PG 13 給剔除出去,但 Pigsty v3.7 會是最后一個支持 PG 13 的版本了。 為了告別 PG 13, 老馮特意把所有的擴(kuò)展都重新編譯了一遍,以后倉庫里的 PG 13 擴(kuò)展就不會再更新了。
擴(kuò)展更新
要支持 PG 18 可不是一件容易的事情,實際上老馮在 PG 18beta 剛發(fā)布的時候就提供了部署支持,但能用內(nèi)核,和能上生產(chǎn)是兩回事,要想作為默認(rèn)主力版本使用, 還有很多工作,比如擴(kuò)展支持。目前主要的擴(kuò)展除了 Citus 之外,都已經(jīng)支持了 PG 18,老馮自己也修了幾十個擴(kuò)展,以及拉齊 40 個 Rust 擴(kuò)展的 pgrx 版本。
這次更新可以說是一次史詩級更新。背后有許多的苦力活兒,但總算是搞定了。目前 PG18 上的可用擴(kuò)展數(shù)量大概在 390 ~ 405,不同發(fā)行版會有細(xì)微差別。你可以在老馮的新項目《》上找到完整的擴(kuò)展可用信息。最近三個月以來的擴(kuò)展更新情況如下表所示:
![]()
有一些擴(kuò)展出現(xiàn)了里程碑式的更新,例如 pg_duckdb 1.1, pg_mooncake 0.2, vchord 1.0, pg_search 0.20。最讓老馮欣慰的就是 DuckDB 全家桶的兩個擴(kuò)展,pg_mooncake 現(xiàn)在用 Rust 重寫了,成為了 pg_duckdb 的子擴(kuò)展,也就是說兩個擴(kuò)展現(xiàn)在可以并存了。而且 pg_duckdb 1.0 發(fā)布之后,代碼質(zhì)量改善了不少,之前在 EL8 上不可用,現(xiàn)在也可以正常使用了。
![]()
擴(kuò)展打包是一件很辛苦的事情,支持 PG18,Debian 13,EL10,看上去輕飄飄一句話,實際上這意味著排列組合從原來的(PGSQL 5 x Linux 10)變?yōu)?(PGSQL 6 x LINUX 14),擴(kuò)展的編譯測試矩陣從 50 個變成了 84 個,增加了 68%,結(jié)果是老馮倉庫里的 RPM/DEB 包的數(shù)量從四萬多個變?yōu)榱f多個。
為了避免重復(fù)勞動,老馮特意花了兩周時間,把整個擴(kuò)展構(gòu)建流程給自動化掉了。現(xiàn)在只要拉起一個容器,然后 pig build pkg
立即就可以完成擴(kuò)展的構(gòu)建,比以前要輕松太多了。
最棒的是,這個擴(kuò)展倉庫和構(gòu)建基礎(chǔ)設(shè)施也是可以獨(dú)立使用的。即使你不使用 Pigsty,也可以單純使用 YUM / APT 安裝這些擴(kuò)展擴(kuò)展。所有代碼使用 Apache-2.0 寬松許可證開源,也歡迎同行使用。憑借這一貢獻(xiàn), Pigsty 在第八屆 PostgreSQL 數(shù)據(jù)庫生態(tài)大會上獲得 “PostgreSQL 萬磁王” 獎。
![]()
操作系統(tǒng):EL10,D13
在 Pigsty 3.7 中,支持了四個新的操作系統(tǒng),Debian 13 ,EL 10,以及 x86 / Arm64 的四種排列組合。主線系統(tǒng)支持達(dá)到了 14 個。這里面其實也有一些挑戰(zhàn),新的系統(tǒng)有時候就是缺這缺那的。
舉個例子,之前 EL10 剛發(fā)布的時候,老馮就想去支持了,但是蛋疼的是 EL10 的 ansible 包還是不全的。等了幾個月還是這個鳥樣子,老馮決定不等了,自己把 Ansible 的包給移植過來。所以在 Pigsty 的倉庫里,el10 現(xiàn)在提供了一個 ansible 虛擬包,老馮把 EL9 的 ansible-collection-community-crypto 拉下來給 el10 打了包,總算是解決了 EL10 上的 ansible 問題。
說起 Ansible ,最近有一些用戶遇到了另一個扯淡的問題,Ansible 2.19 版本進(jìn)行了大量的不兼容重構(gòu),很多原來的語法都開始報錯了。結(jié)果老馮為了找出讓新老版本都能工作的寫法,進(jìn)行了大量的適配 —— 還好有 Claude Code。在 Pigsty v3.7 中,新老版本的 Ansible 現(xiàn)在都可以正常工作了。
![]()
當(dāng)然,其實還有許多非常扯淡的問題需要解決,比如 el9/el10 上 PGDG 倉庫把原來的 LLVM19 升級到 LLVM20,這就引入了一些不兼容的地方,想要在這幾個系統(tǒng)上安裝最新的 PG,你還要卸載掉系統(tǒng)自帶的 bpftools 和 python-perf 才行。然后 el10.aarch64 的PGDG 倉庫也調(diào)整了好幾輪。PGDG extras 倉庫也換了位置。這里的細(xì)節(jié)實在是太多了。包括阿里云 Docker 鏡像倉庫 Break,還有其他一些亂七八糟的細(xì)節(jié)。
這也是老馮不建議普通用戶自己去折騰 PG 部署的一個原因,很多時候乃翻車并不是做錯了什么,而是。有時候一更新,依賴就 Break 了。需要有人來擦屁股,避免這個問題的最好方式,就是使用 Pigsty 提供的離線安裝包,把正常時刻下的所有包和依賴都拉下來,確保始終可以 Work。
另一個變化是,這個版本將是 EL8/Debian11/Ubuntu20 最后一個活躍維護(hù)的 Pigsty 版本。老馮的策略是對 EL,Debian,Ubuntu 都只維護(hù)最近兩個大版本,既然 EL10 和 Debian 13 上位了,那么 EL8 和 Debian 11 就自然也要退休了。 支持不會移除,只是不會再更新了,新的擴(kuò)展包,測試流程都不會再包含 EL8,Debian11,Ubuntu20。當(dāng)然,有需要的企業(yè)用戶,老馮也可以對這些老系統(tǒng)提供長期支持服務(wù)。
Supabase,IvorySQL,PolarDB,Percona
當(dāng)然,除了原生的 PG 內(nèi)核之外,Pigsty v3.7 還更新了 Supabase,IvorySQL ,PolarDB,Percona 內(nèi)核的版本。
Pigsty 自建 Supabase 模板里,所有的 Docker 鏡像已經(jīng)更新到了最新版本,而且底層使用的 PG 版本也升級到了 PG18。IvorySQL 從 4.5 升級到了 5.0,兼容 PG 18.0 。 Percona 的 TDE 透明加密內(nèi)核也從 PG 17.5 兼容升級到了 18.1 兼容。此外 PolarDB 發(fā)布了 15.15.5.0 版本,并在老馮的 push 下提供了 Debian 13 / EL10 的 RPM/DEB 包。
此外,提供 MongoDB 兼容性的 FerretDB 也更新到了 2.7 版本,底層使用的 DocumentDB 升級到 0.107 。這里遺憾的是雖然老馮已經(jīng)提給微軟上游 0.107 PG 18 支持的 Issue 修復(fù)了,但 FerretDB 還沒有合并,所以目前還不支持 PG 18 。OpenHalo,OrioleDB 內(nèi)核沒有更新,但也新支持了 Debian 13 與 EL 10。
![]()
令人高興的是,這些內(nèi)核都可以絲滑的在新的操作系統(tǒng)上使用(Babelfish 除外)。這更進(jìn)一步奠定了 Pigsty “元發(fā)行版” —— Meta Distribution 的生態(tài)位。你可以在這里開箱即用地嘗鮮各種不同風(fēng)味的 PG 發(fā)行版 —— Supabase,Percona,等等……。
參數(shù)改進(jìn)
此外,Pigsty 默認(rèn)的參數(shù)模板也針對 PG 18 和一些新的場景進(jìn)行了優(yōu)化。例如,我們優(yōu)化了 CPU,進(jìn)程,線程,并行查詢的相關(guān)參數(shù),確保各種擴(kuò)展都有足夠的 worker 可用,并且放寬了 OLTP 模板對并行查詢的限制。
相關(guān)的參數(shù)優(yōu)化說明,現(xiàn)在都在文檔中進(jìn)行了詳細(xì)說明,我們還提供了一些關(guān)于 維護(hù)保養(yǎng),故障排查,誤刪處理等問題的 SOP 。
![]()
愿景:PG 生態(tài)的 Ubuntu
以上,就是 Pigsty v3.7 帶來的改進(jìn)。v3.7 已經(jīng)解決了 PostgreSQL 數(shù)據(jù)庫內(nèi)核/擴(kuò)展的硬骨頭問題,本來,按照過往的習(xí)慣,當(dāng) PostgreSQL 默認(rèn)大版本更新時,應(yīng)該同樣更新 Pigsty 的大版本號,從 v3 跳到 v4 ,不過考慮到還有一些命令行工具,日志系統(tǒng)的未竟事宜,v4.0 版本號就留給下一個版本吧。
在接下來的 4.0 版本中,我們將視情況引入日志系統(tǒng)的升級,提供更好的命令行管理工具,vllm 部署本地 Embedding / Rerank 模型的能力。
![]()
愿景:PG 生態(tài)的 Ubuntu
目前在 PostgreSQL 生態(tài)的中國開源項目中(內(nèi)核,擴(kuò)展,發(fā)行版),Pigsty 已經(jīng)成為 Star 數(shù)最高最大的開源項目,在國際上也有了不少知名度與影響力了。
![]()
老馮的愿景是,將 Pigsty 做成 PostgreSQL 世界中的一個主流發(fā)行版。《》占據(jù) Debian,Ubuntu,RedHat 這樣的生態(tài)位。
![]()
實際上,我覺得通過精準(zhǔn)定位,錯位競爭,完全可以做到這一點。老馮的基本策略就是:做最硬的場景 —— 原生 Linux 上的大規(guī)模生產(chǎn) PostgreSQL 管理。提供獨(dú)一無二的東西:監(jiān)控系統(tǒng)與擴(kuò)展生態(tài);同時整合其他的 PostgreSQL 發(fā)行版能力(融合了 Supabase 和 Percona 兩個發(fā)行版);以及兼顧易用性,優(yōu)化開發(fā)者體驗。
Claude 4 Opus:PostgreSQL 發(fā)行版生態(tài)分析
![]()
Gemini 3 Pro:PostgreSQL 發(fā)行版生態(tài)分析
![]()
不過要想走到那一步,也不是老馮一個人就能完成的。老馮在這里也感謝各位客戶與用戶在過去對 Pigsty 與老馮的大力支持。我也會繼續(xù)努力,交付更好的服務(wù)與產(chǎn)品~。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.