TiKV 項目首個 SIG 成立,一塊兒走上 Contributor 進階之路吧! | 1024 程序員節快樂!

做者: Long Henggit

社區是一個開源項目的靈魂,隨着 TiDB/TiKV 新的社區架構升級, TiKV 社區也計劃逐步成立更多個 Special Interest Group(SIG )吸引更多社區力量,一塊兒來改進和完善 TiKV 項目。SIG  將圍繞着特定的模塊進行開發和維護工做,並對該模塊代碼的質量負責。程序員

今天是 1024 程序員節,咱們正式成立 TiKV 項目的首個 SIG —— Coprocessor SIG,但願對 TiKV 項目 感興趣的小夥伴們都能加入進來,探索硬核的前沿技術,交流切磋,一塊兒走上 Contributor 的進階之路!github

Coprocessor 模塊是什麼?

爲了提高數據庫的總體性能,TiDB 會將部分計算下推到 TiKV 執行,即 TiKV 的 Coprocessor 模塊。本次成立的 Coprocessor SIG 就聚焦在 TiKV 項目 Coprocessor 模塊。本 SIG 的主要職責是對 Coprocessor 模塊進行將來發展的討論、規劃、開發和維護。數據庫

如何加入 Coprocessor SIG?

社區的 Reviewer 或更高級的貢獻者(Committer,Maintainer)將提名 Active Contributor 加入 Coprocessor SIG。Active Contributor 是對於 TiKV Coprocessor 模塊或者 TiKV 項目有濃厚興趣的貢獻者,在過去 1 年爲 TiKV 項目貢獻超過 8 個 PR。架構

加入 SIG 後,Coprocessor SIG Tech Lead 將指導成員完成目標任務。在此過程當中,成員能夠從 Active Contributor 逐步晉升爲 Reviewer、Committer 角色,解鎖更多角色權利&義務。框架

  • Reviewer:從 Active Contributor 中誕生,當 Active Contributor 對 Coprocessor 模塊擁有比較深度的貢獻,而且獲得 2 個或 2 個以上 Committer 的提名時,將被邀請成爲該模塊的 Reviewer,主要權利&義務:
    • 參與 Coprocessor PR Review 與質量控制;
    • 對 Coprocessor 模塊 PR 具備有效的 Approve / Request Change 權限;
    • 參與項目設計決策。
  • Committer:資深的社區開發者,從 Reviewer 中誕生。當 Reviewer 對 Coprocessor  模塊擁有很是深度的貢獻,或者在保持 Coprocessor  模塊 Reviewer 角色的同時,也在別的模塊深度貢獻成爲了 Reviewer,這時他就在深度或者廣度上具有了成爲 Committer 的條件,只要再獲得 2 個或 2 個以上 Maintainer 的提名時,便可成爲 Committer,主要權利及義務:
    • 擁有 Reviewer 具備的權利與義務;
    • 總體把控項目的代碼質量;
    • 指導 Contributor 與 Reviewer。

工做內容有哪些?

  1. 完善測試函數

    • 爲了進一步提升 Coprocessor 的集成測試覆蓋率,TiKV 社區開源了 copr-test 集成測試框架(github.com/tikv/copr-test),便於社區爲 Coprocessor 添加更多集成測試;性能

    • 從 TiDB port 的函數須要同時 port 單元測試,若是 TiDB 的單元測試沒有覆蓋全部的分支,須要補全單元測試;單元測試

    • Expression 的集成測試須要構造使用這個 Expression 的算子進行測試。學習

  2. 提高代碼質量

    • Framework: 計算框架改進,包括表達式計算框架、算子執行框架等;

    • Executor: 改進現有算子、與 TiDB 協做研發新算子;

    • Function: 維護現有的 UDF / AggrFn 實現或從  TiDB port 新的 UDF / AggrFn 實現;

    • 代碼位置:github.com/tikv/tikv/s…

  3. 設計與演進 Proposal

  4. Review 相關項目代碼

如何協同工做?

  1. 爲了協同效率,咱們要求 SIG 成員遵照一致的代碼風格、提交規範、PR Description 等規定。具體請參考 文檔

  2. 任務分配方式

    • SIG Tech Lead 在 github.com/tikv/community 維護公開的成員列表與任務列表連接;

    • 新加入的 SIG 成員可有 2 周時間瞭解各個任務詳情並認領一個任務,或參與一個現有任務的開發或推進。若未能在該時間內認領任務則會被移除 SIG;

    • SIG 成員需維持每月參與開發任務,或參與關於現有功能或將來規劃的設計與討論。若連續一個季度不參與開發與討論,視爲不活躍狀態,將會被移除 SIG。做爲 acknowledgment,仍會處於成員列表的「Former Member」中。

  3. 按期同步進度,按期週會

    • 每 2 周以文檔形式同步一次當前各個項目的開發進度;

    • 每 2 周召開一次全組進度會議,時間依據參會人員可用時間另行協商。目前沒有項目正在開發的成員可選擇性參加以便了解各個項目進度。若參與開發的成員不能參加,需提早請假且提早將本身的月度進度更新至文檔;

    • 每次會議由一名成員進行會議記錄,在會議結束 24 小時內完成會議記錄並公開。會議記錄由小組成員輪流執行;

    • Slack:tikv-wg.slack.com(Channel #copr-sig-china)

  4. 經過更多線上、線下成員的活動進行交流合做。

Coprocessor SIG 運營制度

  1. 考覈 & 晉升制度

    a. Coprocessor SIG Tech Lead 以月爲單位對小組成員進行考覈,決定成員是否可由 Active Contributor 晉升爲 Reviewer:

    • 熟悉代碼庫;
    • 得到至少 2 位 TiKV Committer 的提名;
    • PR 貢獻知足如下任意一點:
      • Merge Coprocessor PR 總數超過 10 個;
      • Merge Coprocessor PR 總行數超過 1000 行;
      • 已完成一項難度爲 Medium 或以上的任務;
      • 提出設計想法並獲得採納成爲可執行任務超過 3 個。

    b. Coprocessor SIG Tech Lead 和 TiKV Maintainer 以季度爲單位對小組成員進行考覈,決定成員是否可由 Reviewer 晉升爲 Committer:

    • 表現出良好的技術判斷力;
    • 在 TiKV / PingCAP 至少兩個子項目中是 Reviewer;
    • 得到至少 2 位 TiKV Maintainer 的提名;
    • 至少完成兩項難度爲 Medium 的任務,或一項難度爲 High 的任務;
    • PR 貢獻知足如下至少兩點:
      • 半年內 Merge Coprocessor PR 總行數超過 1500 行;
      • 有效 Review Coprocessor PR 總數超過 10 個;
      • 有效 Review Coprocessor PR 總行數超過 1000 行。
  2. 退出制度

    a. SIG 成員在如下狀況中會被移除 SIG,但保留相應的 Active Contributor / Reviewer / Committer 身份:

    + 做爲新成員未在指定時間內認領任務;
    + 連續一個季度處於不活躍狀態。
    複製代碼

    b. Reviewer 知足如下條件之一會被取消 Reviewer 身份且收回權限(後續從新考覈後可恢復):

    + 超過一個季度沒有 review 任何 Coprocessor 相關的 PR;
    + 有 2 位以上 Committer 認爲 Reviewer 能力不足或活躍度不足。
    複製代碼
  3. Tech Lead 額外承擔的職責

    • SIG 成員提出的問題須要在 2 個工做日給出回覆;
    • 及時 Review 代碼;
    • 定時發佈任務(若是 SIG 成員退出後,未完成的任務須要從新分配)。

小結

經過上文相信你們對於 Coprocessor SIG 的工做內容、範圍、方式以及運營制度有了初步的瞭解。若是你是一個開源愛好者,想要參與到一個工業級的開源項目中來,或者想了解社區的運行機制,想了解你的代碼是如何從一個想法最終發佈到生產環境中運行,那麼加入 Coprocessor SIG 就是一個絕佳的機會!

若是你仍對 SIG 有些疑問或者想要了解更多學習資料,歡迎加入 tikv-wg.slack.com 哦~

相關文章
相關標籤/搜索