阿里雲的自研InfluxDB集群方案剖析

2022-06-30 06:12:09 字數 2040 閱讀 2405

2年前寫的一篇舊文,文中的分析,以及**的問題和觀點,至今仍有意義。

本文將以阿里雲在giac的分享《雲原生influxdb高可用架構設計》為例,剖析阿里雲的自研influxdb集群方案的當前實現,在分析中會盡量聚焦的相對確定的技術、架構等,考慮到非一線資訊,在個別細節上難免存在理解偏差,歡迎私聊討論:

freetsdb技術***(qq):663274123

0x0 初步結論

目前是乙個過渡性質的公測方案,具備資料一致性,但接入效能有限,缺乏水平擴充套件能力。缺乏自定義副本數和水平擴充套件等能力,通過raft或anti-entroy提公升了資料的可靠性,但受限於節點和副本的強對映,集群接入效能有限,約等同於單機接入效能,另外,基於時序分片和分布式迭代器等核心功能未提及,可能仍在預研中。

0x1 集群方案剖析

1. 背景補充:influxdb是db-engines上排名第一的tsdb,針對時序資料多寫、少讀、成本敏感等特點而設計的tsdb,並做了多輪架構迭代和優化,是一款實時、高效能、水平擴充套件(influxdb enterprise)、具有成本優勢的tsdb。但在2023年,paul dix基於商業化和持久運營的考慮,尚未成熟的集群能力在v0.11.1版後,選擇閉源,推出了收費版的influxdb enterprise和influxdb cloud。

2. 通過raft協議實現meta節點的資料一致性,考慮到meta節點存放的是database/rention policy/shard group/shard info等元資訊,這些資訊敏感,是系統穩定執行的的關鍵,cp的分布式架構,合適。

3. 通過raft協議實現data節點的資料一致性,考慮到data節點儲存的是具體的時序資料,效能和水平擴充套件性是挑戰,對一致性性要求不高(ppt中亦提到這一點),採用cp的分布式架構,節點和副本強對映,不僅對實時性有影響,集群接入效能亦有限,約等同於單機接入效能,不能很好的支援海量資料的實時接入的時序需求。

4. 2節點集群方案,通過anti-entroy實現data節點的資料一致性,應該還實現了hinted-handoff能力,ap的分布式架構,但節點和副本還是強對映,未見提及基於時序分配、自定義副本數、分布式迭代器等能力,暫無法水平擴充套件。

5. 雲盤能保障資料的可靠性,但無法保障接入的可用性,可用性敏感的業務或實時要求高的業務,還是推薦多節點的集群模式。

6. 開源版influxdb(單機)效能不錯,influxdb enterprise效能不錯,但如何保障補齊集群能力的卓越效能,取決於集群架構、併發架構等,是由集群功能的開發者決定的,這次未見提及效能資料,期待後續的公布。

0x2 附錄

阿里雲自研資料庫POLARDB全面開放售賣

阿里雲宣布自研雲原生資料庫polardb正式全面售賣。這個從誕生就備受矚目,基於計算和儲存分離的第三代雲計算架構下的商用關係型雲資料庫產品,實現了100 向下相容mysql 5.6的同時,支援單庫容量擴充套件至上百tb以及計算引擎能力及儲存能力的秒級擴充套件能力。隨著資料量的膨脹,越來越多企業將其i...

重磅!阿里自研容器技術Pouch宣布即將開源

摘要 今天,阿里巴巴決定以開源的方式回饋社群,希望與開發者共同推動容器技術的發展,共建容器技術標準。在2017杭州雲棲大會上,阿里巴巴正式宣布自主研發的容器技術pouch即將開源。經過七年的沉澱和錘煉,阿里希望通過開源的形式回饋社群,與開發者共同推動容器技術發展,共建容器技術標準。擁抱生態,阿里容器...

重磅開源!阿里首款自研科學計算引擎 Mars 來了

mars 突破了現有大資料計算引擎的關係代數為主的計算模型,將分布式技術引入科學計算 數值計算領域,極大地擴充套件了科學計算的計算規模和效率。目前已應用於阿里巴巴及其雲上客戶的業務和生產場景。下面,我們將詳細介紹mars的設計初衷和技術架構,希望和大家共同交流 概述 科學計算即數值計算,是指應用計算...