存儲引擎是數據庫的重要組成部分。之前我們有專門的課程講過《》(Classical Algorithms and Data Structures in Databases),感興趣的同學可以到官網了解://yakult-sh.com.cn/techtalk/7162.html。
拿 TDengine 來說,強大的存儲引擎(qing)提(ti)供(gong)了高(gao)效合(he)理(li)(li)的數據(ju)讀(du)寫、數據(ju)備份(fen)、流式處理(li)(li)等(deng)功能,保證了整個時序數據(ju)處理(li)(li)平臺的高(gao)性能,并能以最經濟的方(fang)式使用系(xi)統資源。
相比于 TDengine 1.0 和(he) TDengine 2.0 來說,TDengine 3.0 更注重各(ge)種場(chang)景下的(de)存儲(chu)和(he)查詢效率,因(yin)此,TDengine 3.0 的(de)存儲(chu)引(yin)擎也進行了技術優化與升級(ji)。整個更新可以概括為三大塊(kuai):
- TQ,基于 WAL 的消息隊列
- META,基于 TDB 的元數據存儲引擎
- TSDB,用來存儲時序數據的類 LSM 存儲引擎
萬(wan)變(bian)不離其宗(zong),在 TDengine 3.0 存(cun)儲(chu)引擎的升級改造(zao)中,也能找到這些經典數據結構/存(cun)儲(chu)結構的影子。
B+樹是一種經典的數據結構,相比平衡二叉樹,降低了樹高,從而能夠減少 IO 次數,因此更適用于硬盤。但寫入過程中卻可能導致節點的分裂,產生大量隨機IO,導致寫入性能的降低。像 SQLite、MySQL、PostgreSQL 等數據庫都使用了B/B+ 樹。
LSM 樹,并不像 B+ 樹、紅黑樹一樣是一個嚴格的樹狀數據結構,它其實是一種存儲結構,目前,HBase、LevelDB、RocksDB 這些 NoSQL 存儲都是采用的 LSM 樹。新一代關系型數據庫 TiDB、CockroachDB 也建立在基于 LSM 樹的 KV 存儲上。
濤思數據聯合(he)創始人程洪(hong)澤(ze)將(jiang)從 B+ 樹、LSM 樹聊起,為大家詳細介紹 TDengine 3.0 存(cun)儲(chu)引擎(qing)的升級(ji)改造。
程(cheng)洪澤(ze),濤(tao)思數(shu)據聯合創始(shi)人,TDengine 存儲引擎架(jia)構(gou)師。美(mei)國密西根大(da)學(xue)(xue) EE 碩(shuo)士,本科畢業(ye)于(yu)中科大(da),中科大(da)郭沫若獎學(xue)(xue)金獲(huo)得(de)(de)者,2021 年(nian)胡潤 U30 創業(ye)領袖獲(huo)得(de)(de)者。主要(yao)研究方向為面向物聯網的大(da)數(shu)據和機器學(xue)(xue)習技(ji)術。

進物聯網大數據交流群


























