11 月 7 日,由 TiDB 社群 X 經緯中國聯合主辦,初心資本、明勢資本、紀源資本、JuiceFS 贊助的 Hacking Camp 2021 生態進行了答辯會,闡述了專案的階段性成果和對未來工作的展望。
Hacking Camp 的專案有些是來自於 TiDB Hackathon 的明星專案,還有一些是來自生態夥伴的新創意。本期 Hacking Camp 以生態為主題,幫助合作伙伴完成專案的孵化,參與活動的六個專案都基本完成了既定目標,在畢業之後將繼續完善相關功能的改進,迭代新版本至更穩定,期間導師也將繼續為專案提供指導意見,幫助專案打磨。
本次 Hacking Camp 參與答辯的專案有:
以 TiKV 作為後設資料引擎的分散式 POSIX 檔案系統 JuiceFS
基於 TiDB 實現提供 Serverlessdb 服務的 Serverlessdb for HTAP
優化 PG 在 TiDB 上的相容性的 TiDB for PostgreSQL
TiDB 在大資料領域中的一站式解決方案 TiBigData
將 TiKV 作為後端儲存的 HugeGraph
將 TiDB 作為資料上游的 Doris Connector
評委從專案完成度、應用價值、對 TiDB 生態貢獻和答辯完成度這幾個方面進行評審,最終 ServerlessDB for HTAP 獲得了評審團一致高分,奪得「優秀畢業生」和「最佳應用」兩個獎項。
特別感謝以下幾位評審:
明勢資本執行經理徐之浩、Flomesh CTO & 聯合創始人劉洋、TiDB Team Tech Leader 王聰、PingCAP 研發主管張建、TiKV Maintainer 李建俊
讓我們一起來看看專案的畢業成果吧~
JuiceFS:
JuiceFS 是一個雲原生的 POSIX 分散式檔案系統,結合 TiKV 作為資料元引擎,JuiceFS 可以提供百億級檔案規模和 EB 級的資料儲存能力,在大規模下依然保持延時穩定。在後設資料操作效能測試中,TiKV 引擎的平均耗時約為 Redis 的 2~4 倍,略優於本地 MySQL。
目前主要功能都已開發完畢並於 V0.16 版本釋出,且通過了 pjdfstest 測試。已有使用者在測試以及生產環境中使用。JuiceFS 未來將把 TiKV 作為大規模生產環境的首推後設資料引擎,在保證相容的情況下,積極引進 TiKV 的新特性。
ServerlessDB for HTAP
專案最終目標是要把雲資料庫服務變成黑盒子,讓應用開發者只需要專注於業務如何轉化成 SQL,使用者再也不用操心資料量、業務負載、SQL 型別是 AP 還是 TP 等這些和業務不相關的事情。
開發內容
業務負載模組:
業務負載模組評估當前提供服務的資源與當前業務負載是否匹配,建立業務負載模型,用於決策擴縮容。
Serverless 模組:
Serverless 模組會實時檢查所有計算節點的 CPU 使用率,以及底層儲存容量,觸發計算/儲存資源的擴縮容。
資料庫中介軟體:
中介軟體用於解耦使用者連線和後臺資料庫服務節點,這樣即使使用者使用連線池,擴容後,中介軟體也能把流量均衡打到所有的新增節點中。
規則系統:
通過規則系統,可以固定特定時間範圍內的資源分配。通過規則設定,流量增長前,把資源提前分配好
serverless 服務編排模組:
過服務編排模組,實現 TiDB 叢集的建立、釋放及動態調整 TiDB 元件的擴縮;實現 k8s 本地盤管理,解決私有化部署無法提供雲盤的問題;
開發 admission-webhook 實現 TiDB 元件縮容時,預先刪除中介軟體登錄檔記錄,實現使用者無感知的縮容。
後續研發計劃:
計劃增加 Hint 以及規則模組,更精準的區分 TP/AP,評估能夠降低一半以上中介軟體的CPU使用率
提供更豐富的負載均衡演算法,如基於 SQL 執行時成本
中介軟體增加業務流量管控,如果業務負載增長太快點,超出 serverless 能夠處理的增長速度, 會導致後臺服務不穩定。通過流量管控,能夠很好的處理業務流量暴漲。
本專案也獲得了 Hacking Camp 優秀畢業生和最佳應用獎~看來評審都被專案的願景和開發實力打動了,歡迎大家來圍觀試用~
專案地址:https://github.com/tidb-incub...
TiDB for PostgreSQL
專案由神州數碼發起,旨在提供 TiDB 對 PostgreSQL 的相容性,同時保留了 TiDB 的高可用性、彈性和可擴充套件性。允許使用者將現有的 PostgreSQL 客戶端連線到 TiDB,並使用 PostgreSQL 特有的語法。
目前完成開發:
Delete 語法改造
新增特定 PgSQL 語法 Returning 關鍵字
完成 Sysbench_tpcc PgSQL 協議下測試並與該版本下原生 TiDB 測試對比
完成 BenchMarkSQL PgSQ L協議下基準測試並與該版本下原生 TiDB 測試對比
Benchmark 測試結果對比:
未來計劃支援系統庫表結構,圖形化客戶端,以及抽象協議層,隨時切換不同協議。歡迎大家一起來玩~
專案地址:https://github.com/DigitalChi...
TiBigData
TiBigData 提供 TiDB 的各類 OLAP 計算引擎的 connector,目前已經實現包括 Flink,Presto 以及 MapReduce。在 Hacking Camp 中主要工作在 Flink 相關功能開發。
我們在 Flink 實現了 Snapshot source 和 TiCDC streaming source,結合這兩個 source,我們做到了 TiDB 的流批一體。
其次是資料互通,我們利用 TiKV 的跨資料中心部署以及 Flink connector 的 follower read 功能,實現了再離線資料真正互通。
最後是計算下推,我們在各類 connector 裡都相容了 TiKV 的下推運算元,能夠極大的提高資料掃描與計算效率。
TiBigData 核心功能增強:
TiDB java client 的通用能力增強,我們實現了 TiDB 的編碼器,編碼器的程式碼是從 TiSpark 內解耦出來的,能夠適配其他的 OLAP 引擎,也能作為一個通用的工具,被其他有需要的社群夥伴引用。
實現了一些資料型別的轉換工具,flink/presto 資料型別與 TiDB 的資料型別相互轉換。
實現了 TiKV 的分散式客戶端,從 API 的層面上更加適配分散式計算框架。
後續將繼續開發 Change Log Write、TiDB x Preto/Trino、Flink State Backend in TiKV 等,感興趣的同學可以加入社群一起玩~
專案地址:https://github.com/tidb-incub...
HugeGraph on TiKV
HugeGraph on TiKV 適用於需要大規模圖資料庫的場景,並且對讀寫效能要求較高、已具備 TiVK 儲存運維團隊的 需求場景尤為匹配。
已實現功能:
支援單圖例項
支援 Schema 的增刪改查
支援 Loader 匯入資料 支援頂點和邊的增刪改查
支援 kout、kneighbor 等 traversal 演算法 支援 Gremlin 查詢 支援索引查詢(不完備)
效果展示:
匯入資料【新餘市新冠肺炎資料集】,通過 HugeGraph-Hubble 介面檢視圖譜效果:
效能測試結果:
匯入速度(寫)
按 id 查詢(隨機讀)
後續計劃:
功能完善
支援多圖例項、truncate/clear 圖資料、監控介面 metrics、TTL 等高階功能
效能優化
寫入效能優化:提交模式、批大小調整等
查詢效能優化:資料編碼優化、分⻚優化等
專案地址:https://github.com/tidb-incub...
Doris Connector:
以 TiDB 為資料來源,為 Doris 提供原生的聯結器,打通 TP-AP 場景的資料流。適用於對 DML/DDL 的同步支援和過濾指定條件的資料。目前專案進度 70%。
設計思路
Stream Load:TiDB 中設計獨立服務,定時讀取並解析 TiDB binlog 檔案,並將資料行拼成 CSV 格式檔案,通過 Stream Load 匯入到 Doris 中。
Routine Load:藉助 TiDB 的 Drainer 將 binlog 同步到 Kafka,Doris 中通過新增 TiDB Binlog資料格式來實現資料的同步
TiDB 原生協議同步:在 Doris 中實現 TiDB 副本同步協議,將 Doris 偽裝成 TiDB 叢集的一個節點。
後續規劃:
專案將進行持續迭代,從使用者真實場景出發,使資料處理鏈路更加無阻。專案後期會合併入 Doris 主幹。
專案地址:https://github.com/apache/inc...
這一期 Hacking Camp 在六個精彩的專案答辯中落幕,但生態的維護是長期的,我們將持續為這些優秀的生態專案提供後續支援,保證專案持久的生命力。對專案感興趣的同學也請關注後續推文,創始團隊將從應用層面解讀專案對整個 TiDB 生態的價值,更有專題 Meetup 策劃中,敬請期待!
從 Ti 星球到宇宙蒼穹,我們用 Hacking 連線更廣泛的生態。2021 TiDB Hackathon 也即將開啟,快來和我們一起探索資料庫技術的奧祕!