Stories

Detail Return Return

PostgreSQL 18 中國貢獻者經驗分享:開源參與的四點建議 - Stories Detail

2025 年 9 月 25 日,PostgreSQL 18 正式發佈。該版本不僅修復了上百個問題,更帶來了多項顛覆性的功能升級,例如全新的異步 I/O(AIO)框架、新增的跳躍式掃描(SKIP SCAN)技術,以及原生 UUIDv7 支持等,每一項升級都為用户帶來更優質的使用體驗。

這些豐富的功能變化與大量的問題修復,離不開 PostgreSQL 社區貢獻者們的積極參與。在 PostgreSQL 18 的研發過程中,共有來自 200 多位貢獻者完成了 3000 次提交,這樣的規模十分驚人。值得關注的是,來自中國的貢獻者數量也在不斷增加,其中就包括瀚高的多位開發者。本文特別採訪了瀚高中的 5 位貢獻者,希望他們的經歷能為有意參與 PostgreSQL 貢獻乃至開源貢獻的小夥伴帶來啓發。

貢獻者訪談

厲超:短期適應社區節奏,建議 “大膽參與、先想後做”

厲超貢獻的兩個功能模塊均是在 PG 18 發佈後才完成合並,因此在 PG 18 版本中,他的主要貢獻集中在代碼審閲以及幾個小型 bug 補丁的修復上。

由於參與 PG 社區貢獻的時間較短,厲超需要重新適應社區的工作習慣與節奏。他表示,PG 社區是一個完全開放的工作環境,這與他之前開發習慣差異顯著。不過經過短期磨合,他已基本適應社區的工作模式。

在工作支持方面,厲超的主要任務就是參與 PG 社區貢獻,公司對此給予了全力支持,這一細節也充分體現出瀚高對開源事業的重視與投入力度。

對於首次嘗試參與 PostgreSQL 貢獻的開發者,厲超給出了兩點建議:

  • 大膽參與:PG 社區如同一個開放包容的大家庭,對新人十分友好,只要有參與的想法,就不妨勇敢邁出第一步。
  • 先想後做:在社區中,每一句話都會被眾多人關注,因此發言前一定要深思熟慮。社區更看重內容質量而非速度,不存在必須立刻回覆的郵件,所以在發言前多思考一遍,能讓溝通更高效、準確。

牛世繼:敏感捕捉內存泄漏問題,從簡單 bug 切入開源

在 PostgreSQL 18 版本的開發中,牛世繼成功修復了一個內存泄漏問題。他認為,在日常工作中,內存泄漏是需要極力避免的問題,作為一名軟件工程師,他始終對潛在的內存泄漏代碼保持高度敏感,這一職業習慣讓他在閲讀 PostgreSQL 源代碼時,能夠及時發現此類隱患並着手解決。

作為企業開發者,牛世繼會在開展內部業務開發工作時,主動思考與開源社區的關聯,積極尋找為社區做貢獻的機會。而瀚高也一直鼓勵公司工程師參與開源貢獻,允許員工拿出部分工作時間投入到開源項目中,為開發者提供了良好的參與條件。

針對開源貢獻的入門方式,牛世繼建議,PostgreSQL 是一個龐大的項目,貢獻方式多種多樣,新手可以先從相對簡單的 bug 修復入手,積累經驗後再逐步深入更復雜的模塊。

李永昊:從業務開發遇 bug 到貢獻社區,感謝公司與團隊支持

此次參與 PG 社區貢獻,李永昊向社區提交了一個關於執行視圖定義時語法解析的 bug。他介紹,這個 bug 是在進行數據庫類型和操作符開發時發現的,而在後續跟蹤 bug 解決的過程中,他對相關模塊的邏輯有了更深刻的理解,這些知識也為他未來的工作打下了更堅實的基礎。

李永昊表示,自己是加入瀚高後才逐漸接觸數據庫內核開發,剛上手時面臨諸多挑戰,比如在語法、操作符、類型轉換、函數等方面都遇到過難題。為解決這些問題,一方面他會積極向有經驗的同事請教、討論,另一方面也會參考 PG 原生功能或市面上其他產品的設計思路,尋找最優解決方案。

作為瀚高的研發人員,李永昊的本職工作就與 PG 內核開發相關,此次發現的 bug,也是他和同事們在內核代碼評審工作中察覺的。他提到,近幾年瀚高一直將開源建設列為重點工作,此次參與開源貢獻,從一開始就得到了領導的高度關注,在與國際社區人員交流的過程中,有經驗的同事也給予了他諸多幫助和指導。對於領導與同事的鼓勵和支持,李永昊在此表達了由衷的感謝。

回顧三年前,剛入職瀚高、初次接觸 PG 的李永昊,還覺得開源貢獻是一件十分遙遠的事。如今作為接觸數據庫內核開發時間不長的 “萌新”,此次能參與 PG 18 的貢獻並被關注,對他而言是莫大的鼓勵。他希望未來有更多人能大膽參與開源,因為社區內的 “大佬” 們回覆問題十分熱情,只要積極參與,就一定會有所收穫。

矯順田:修復 pg_amcheck 工具 bug,依託公司支持攻克技術難題

在 PG 18 的貢獻中,矯順田提交了針對 pg_amcheck 工具的 BUG 修復補丁。他表示,PostgreSQL 作為複雜的數據庫系統,包含多個專業子模塊,自己在實際開發中,就經常遇到詞法語法解析方面的技術問題。

不過,瀚高建立了高效的內部協作機制,每位研發人員都深耕特定領域,例如有同事專門研究查詢解析器,積累了深厚的詞法 / 語法分析經驗。同時,公司會定期舉辦技術分享會,各模塊負責人會分享最新研究成果;此外,還構建了完善的內部文檔體系,涵蓋各模塊的設計原理與常見問題。這些支持讓研發人員即便遇到不熟悉的領域,也能快速獲取專業幫助,不僅提高了問題解決效率,還促進了團隊整體的技術成長。

矯順田提到,瀚高的企業使命是 “開源鏈接世界”,因此公司大力鼓勵員工參與開源社區,並提供了系統性支持來平衡內部業務與開源貢獻,比如允許員工在工作時間投入開源項目、組建專門從事開源貢獻的研發小組,以及積極舉辦和參與各類開源相關活動等。

對於有意參與 PostgreSQL 貢獻的開發者,矯順田建議訂閲 pgsql-hackers 郵件列表 ——PG 社區的貢獻者主要通過該列表開展研發討論,開發者可以從中挑選感興趣或擅長的主題參與;同時,也可以時常關注 PG 的 commitfest 網站,參與補丁的 review 及測試等工作,逐步融入社區。

韓偉博:修復分區表 bug,以業務為驅動深耕 PG 源碼

在 PostgreSQL 18 的貢獻中,韓偉博的主要工作是修復了一個分區表的 bug。他表示,在開展兼容業務時,如何更好地實現兼容特性,同時保證 PG 的 “原汁原味”,是日常工作中極具挑戰性的問題。為應對這一挑戰,需要做好三方面工作:設計良好的方案、加強代碼審查以避免重複造輪子,以及適時進行代碼重構以提高代碼活力。

韓偉博認為,公司的具體業務為研發人員深入學習 PG、深耕 PG 源碼提供了動力,在這一過程中,通過發現問題、提出問題、解決問題,自然而然地就能為 PG 生態貢獻力量。而瀚高為研發人員提供了廣闊的平台、充足的時間以及良好的工作氛圍,這些都是能夠潛心深入研究 PG 的重要保障。

對於首次參與 PostgreSQL 貢獻的開發者,韓偉博給出的建議是:多閲讀代碼、多動手實踐、多主動提問。

總結

從修復內存泄漏、優化語法解析,到完善工具模塊,瀚高 5 位貢獻者的實踐經歷,不僅是中國力量融入 PostgreSQL 生態的生動縮影,更清晰拆解了 “參與開源” 的真實路徑 —— 它並非遙不可及的技術壁壘,而是從一次代碼審閲、一個 BUG 修復、一封郵件討論開始的點滴積累。

PostgreSQL 18 背後的 3000 次提交,是 200 多位開發者協作的成果,而中國貢獻者數量的增長,正讓開源生態的 “多元性” 愈發鮮明。對於渴望踏入開源領域的開發者而言,厲超的 “大膽參與、先想後做”,牛世繼的 “從簡單 bug 切入”,矯順田的 “緊跟社區郵件列表”,或許都是比技術細節更珍貴的 “入門鑰匙”。

未來,隨着更多企業加大對開源的投入、更多開發者加入開源行列,PostgreSQL 生態必將迎來更豐富的功能突破。而每一次微小的貢獻,都是推動這個開源數據庫持續進化的重要力量。我們期待在下一個版本中,能看到更多新鮮面孔的身影,共同助力 PostgreSQL 生態的發展。

user avatar teamcode Avatar xiaodiandideyangrouchuan Avatar dolphinscheduler Avatar nixideshatanku Avatar chen_5ec331606ce75 Avatar fanudeqianbao Avatar htdaydayup_5da2d7a6d4888 Avatar
Favorites 7 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.