Hi,你有一份 TiDB 易用性挑戰賽「撈分指南」請查收

TiDB 挑戰賽第二季之 易用性挑戰賽 已經開始一週了,由於有參加過上一季 性能挑戰賽 的老玩家強勢加入,這一季挑戰賽的競爭格外激烈,短短一週的時間,已有 3 支隊伍獲得了上千積分!

完整積分排行榜可以登陸 活動官網 查看。

戰況簡介:

羨慕不如行動!我們也在這裏簡單分享一些撈分技巧,希望能夠幫助大家快速上手,追上這些排名靠前的參賽選手們。

撈分技巧 1:用戶投票結果中排名前三的需求有高額加分!

爲鼓勵大家選擇用戶呼聲更高的任務,本次挑戰賽中用戶投票排名前三的需求對應的任務,會在原有積分的基礎上分別額外增加 10000、8000、6000 分。比如這個排名第三的需求:record access statistics of databases, tables and indices,該需求原本的積分是 1294(積分低意味着難度低喲),再加上額外的 6000,這意味着完成這個低難度的任務總共能夠獲得 1294 + 6000 = 7294 分,性價比非常高!

撈分技巧 2:Chaos Mesh Contributing Tutorial 可以幫助大家快速上手拿分

Chaos Mesh 是一款雲原生的混沌測試平臺,大家經常聽說的 TiDB 混沌測試工具就是它。對了,Chaos Mesh 項目後續會有大驚喜哦,真 · 潛力股(只能劇透到此了,你懂的)。

這份小小的 Chaos Mesh Contributing Tutorial 包含了 GitHub 協作基礎、搭建 Chaos Mesh 開發環境和如何在 Chaos Mesh 中開發一個非常簡單的新功能。內容不多,很快能看完。如果你之前沒有參與過開源項目,可以看它;如果你有開源協作經驗,但是沒有參加過 Chaos Mesh 開發,也可以看它!看完小冊子之後,大家就可以在 Chaos Mesh 挑戰賽題目合集 輕鬆做任務、拿積分了!

撈分技巧 3:如果覺得 Medium 題目太難,那就在多個 Repo 同時刷 Easy 題目

相比第一季,這次易用性挑戰賽除了 TiDB、TiKV、PD 之外,有更多代碼倉庫釋放了任務:

  1. chaos-mesh

  2. Data Migration

  3. Backup & Restore

  4. client-rust

  5. TiDB Dashboard

  6. cherry-bot

  7. TiDB Operator

  8. TiUP

算上 TiDB、TiKV、PD 等總共有十多個代碼倉庫參賽。按照本次比賽規則,選手在每個倉庫可以通過刷 Easy 難度的任務,獲得最高 200 積分。那麼 10 個代碼倉庫就是 2000 分,積少成多,收穫非常可觀哦!多多練手之後再挑戰 Medium 難度的任務,也會更加輕鬆。

撈分技巧 4:從一些比較簡單的 Medium 任務突破

TiDB:

通過 SQL 指紋的方式爲 SQL 綁定執行計劃 Hint:這是一個來自用戶的需求,通過 SQL 指紋的方式能夠極大簡化創建 SQL Binding 語句的長度,提升用戶體驗。實現起來也並不複雜,修改 parser 文件支持語法後,再修改一下 TiDB 和創建 SQL Binding 相關的代碼即可。

TiKV:

PD:

  • PD API Swagger 支持:讓 API 符合 Swagger 標準且能生成在線 API 文檔,實現簡單,主要工作在於梳理  API,預期 3 天左右就可以完成。

  • 限制指定小表不被合併:這是一個來自社區的需求,需要讓某些 Region 能夠不被合併。選手們完成這個功能後就能知道完整的 Region Merge 調度流程了,是一個非常有意義的功能。

TiDB Operator:

  • 支持 Operator CRD Java SDK:由於 TiDB Operator 是由 Golang 編寫的,目前其 CRD 文件只有  Golang 客戶端,這個任務將給 Operator CRD 創建 Java 客戶端,對於擴展產品生態非常有意義。

  • 優化 Operator Controller 報錯信息:目前 Operator Controller 的報錯信息不能幫助我們準確定位到具體的錯誤發生地點,這個任務將幫助我們優化 Operator Controller 的報錯信息內容,提升用戶體驗。

Chaos Mesh:

  • 支持暫停混沌實驗:給每一個 Chaos 對象的定義中添加一個 Pause 的字段,如果被設置成 True,那麼 Controllers 在每次調用到對應 Reconcile 邏輯時會取消掉已經注入的錯誤並且跳過正常的執行邏輯。

  • 拓展 NetworkChaos 支持限制網絡帶寬:這個任務是對已有的 NetworkChaos 進行拓展,支持限制具體 Pods 的網絡帶寬,並且使用 netlink 工具包支持,這樣可以很好的解決限制網絡帶寬的具體實現問題。

TiDB Dashboard:

Data Migration:

Cherry Bot:

  • 將各 Repo 的配置分爲不同文件:對 config 組件進行小幅改動就可以。

  • 多分支並行 auto merge:目前 PingCAP 多個開源項目(如 TiDB、TiKV 等)都在使用該功能自動 merge 經過 Reviewer 點讚的 PR。這個任務將完善這個功能,使其能夠同時 merge 多個分支上的 PR。要完成它需要修改 auto merge 的主體邏輯,但因爲代碼模塊比較獨立,適合用來學習 bot。

TiUP:

Client-rust:

  • 支持清理特定 key 的鎖:在事務衝突嚴重時,針對小事務只清理特定 key 的鎖能大大減輕 TiKV 服務器的負擔。

  • 爲 PD 客戶端添加 Region 緩存:使用本地緩存的 Region 信息對於提升性能和降低 PD 服務器負擔有很大的幫助。TiDB 中已經有比較成熟的實現,這裏只需要將 TiDB 的實現遷移到 Rust 中。

不知道看完以上“撈分技巧”,大家有沒有摩拳擦掌、準備上陣搶積分了?

報名方式、參賽細則請看 這篇文章,同時也歡迎大家加入 TiDB Community Slack Workspace,在參賽過程中遇到任何問題,都可以直接通過 #tidb-challenge-program channel 與我們取得聯繫哦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章