知乎技術平臺團隊負責人孫曉光有一個新的身份:開源分佈式事務 Key-Value 數據庫 TiKV項目的 Maintainer。Maintainer 是 TiDB/TiKV 開源社區的角色之一,是社區中較高級別的代碼貢獻者,項目的規劃和設計者,擁有合併主幹分支的權限。通常來講從開始貢獻代碼的 Contributor 成長爲 Maintainer,最明顯的變化是,對項目有更全局、深刻的瞭解,對項目將來的發展也有獨到、準確的看法。git
孫曉光以爲,其實從 Contributor 到 Committer 再到最後成爲 Maintainer 這個過程,最大的感覺是本身逐漸融入到了 TiKV 社區中,真正有了歸屬感。今天咱們就帶着 TiDB/TiKV 社區夥伴們的期待,和孫曉光聊了聊,打探了一下他成爲 Maintainer 的經歷,以及對 TiKV 社區將來的想法。github
> 與 TiKV 項目初識,實際上是帶着明確的目標的。數據庫
孫曉光 2007 年畢業回國,當時國內剛開始作雲,他進入一家作私有云的公司,從事私有云相關產品開發工做 7 年多時間,他坦言,這段工做經歷讓他我的積累了許多雲相關底層系統的工做經驗,這也是他對平臺類技術比較感興趣的核心緣由。2017 年孫曉光加入知乎。
剛到知乎時,他負責已讀服務的開發,知乎的存儲層採用的仍是 MySQL 分庫分表技術方案。「項目上線後,就我我的而言是難以接受這種方案的,因而我就開始尋找原生的分佈式存儲系統來替代它。藉此機會我嘗試了 TiKV,在測試的過程當中我發現一些性能有改善的空間,因而我就邊測試邊上手作了一些優化工做,最後提了一個大 PR 上去。PR 提出後,PingCAP 首席架構師唐劉很快就跟我創建了聯繫,慢慢的我也進入到了 TiKV 社區當中。這就是我第一次接觸 TiKV 的經歷。」架構
> 我對開源社區的理解更加清晰了。分佈式
孫曉光之前也用過不少開源軟件,可是當時並無深入理解開源的價值。開源的第一目標應該是對別人有幫助、有價值,這個目標就已經攔住了無數的開源項目。不少項目僅僅把代碼開放出來,可是沒有任何後續的支持與維護,在這樣的狀況下社區是沒法發展的,天然也難覺得他人創造價值。性能
「其實當你持續的認真投入到開源後,項目和社區就會產生雙向的交流,再也不只是你單向的投入,社區也會給予你反哺,這時就會造成正向循環,對項目發展會起到很是大的推進做用。我對開源的理解正是在 TiKV 社區慢慢創建起來的,TiKV 有一個很是開放友好的社區,PingCAP 和社區夥伴們熱心的幫助及鼓勵讓我切身感覺到活躍的開源社區所具備的獨特魅力。在參與共建社區的過程當中,我不但學習到了如何同開源社區中衆多優秀的貢獻者更加高效的交流,同時也對開源的價值理念和開源在基礎軟件領域的重大意義有了更加深刻的理解。」學習
> 硬核的項目 + 開放的氛圍測試
過去多年在雲方向的工做經歷讓孫曉光堅決的相信,雲是將來的趨勢,而 TiKV 做爲雲原生架構中承載狀態的基石組件,它的重要程度毋庸置疑。做爲一個技術控,TiKV 這樣一個既硬核口碑又很好的項目很天然地吸引着他。同時 TiKV 社區互幫互助、開放雙贏的良好氛圍也是孫曉光持續參與社區建設的重要動力。優化
「以前也爲其餘開源項目作過貢獻,多是這些項目對社區建設並無投入太多精力,大部分的 PR 合併完成就沒有後續了。可是在 TiKV 社區,我感覺到當我參與社區後,後續會有不少追蹤的動做,這會激勵我保持興趣,持續在社區中去作貢獻。同時在這個過程當中,我也在社區中學習了不少知識,獲得了不少幫助,這也是我長期堅持在 TiKV 社區中保持活躍的一個重要緣由。」spa
迄今爲止,孫曉光已經爲 TiDB/TiKV 項目貢獻了 18 個 PR,推進了 TiKV 重要功能 Follower Read 的開發和落地,這個功能同時也解決了知乎業務場景中極端熱點數據訪問的吞吐問題。他在一年中完成了 Contributor -> Committer -> Maitainer 的角色升級,可謂是開掛式的速度,但他並無就此止步,而是開啓了一個新的挑戰。
今天 TiKV Engine SIG(SIG = Special Interest Group)正式成立,這是 TiKV 項目成立的第二個 SIG 社區組織,孫曉光將做爲第一個非 PingCAP 的 SIG TechLead,將與其餘 TechLead 一塊兒,組織你們推進 TiKV Engine 的相關開發和完善。
對於 TiKV Engine SIG,孫曉光很是興奮。
「我認爲 TiKV 很是適合 SIG 這個模式,由於 TiKV 是一個很是龐大且複雜的系統,進入的門檻很高,而且它還在以飛快的速度繼續演進着。在這樣一個龐大的系統裏,想讓你們參與進來實際上是很是有難度的。但 SIG 能夠爲你們創造一個更容易參與的小環境,且在這個小環境中是有組織有領導的,有人會幫助你們指方向,指導你們要作什麼樣的事情,這樣一方面下降社區參與 TiKV 建設的門檻,另一方面也能夠更好的將對特定領域有經驗且感興趣的夥伴們彙集起來,高效的推動 TiKV 每個關鍵方向的前進速度。
在我我的看來,存儲引擎是 TiKV 中最關鍵的組件之一,它影響着整個系統的穩定性、功能特性以及性能表現。相信 Engine SIG 成立後,咱們能夠清晰的定義存儲引擎同 TiKV 其它部分的契約,提供強大且易用的存儲引擎抽象,藉助 TiKV 完備的分佈式能力,咱們能夠爲 TiKV 拓展更多的領域和可能。」
TiKV Engine SIG 是主要職責是對 TiKV 的存儲引擎的將來發展進行討論和規劃,並進行相關開發和維護。目前 TiKV 僅支持默認存儲引擎 RocksDB,可是經過擴展接口,但願將來 TiKV 能夠支持更多的存儲引擎。近期 Engine SIG 的工做會圍繞在對 TiKV 已有存儲引擎的改進上面。
*關於 TiKV Engine SIG 的更多信息,感興趣的朋友們能夠查看 這篇文章,也能夠加入 Slack [#engine-sig]( https://tikv-wg.slack.com/?re...
) 和孫曉光等社區夥伴們一塊兒討論。*
做爲 TiKV & TiDB 重度粉絲,孫曉光但願在將來能更好的促進「知乎」和 TiKV 社區的共建。一方面依託 TiKV 社區的進步爲「知乎」的業務發展提供更好的支撐基礎,同時但願可以基於「知乎」的業務場景爲 TiKV 的發展提供足夠大的施展空間。
「我很是但願咱們的團隊也可以真正參與進來,成爲社區的貢獻者。相信將來 TiKV 可以保持開放雙贏的風格,建設更成熟更大規模的社區。咱們這些社區夥伴會一塊兒推進 TiKV 的高速持續發展,讓 TiKV 成爲將來有狀態系統基石的第一選擇。」
TiKV 是一個開源的分佈式事務 Key-Value 數據庫,支持跨行 ACID 事務,同時實現了自動水平伸縮、數據強一致性、跨數據中心高可用和雲原生等重要特性。做爲一個基礎組件,TiKV 可做爲構建其它系統的基石。目前,TiKV 已用於支持分佈式 HTAP 數據庫—— TiDB 中,負責存儲數據,並已被多個行業的領先企業應用在實際生產環境。2019 年 5 月,CNCF 的 TOC(技術監督委員會)投票決定接受 TiKV 晉級爲孵化項目。
源碼地址:https://github.com/tikv/tikv
更多信息:https://tikv.org