為雲而生,雲原生資料庫TDSQL-C技術突破與演進
以“數實融合,綻放新機”為主題,聚焦產業趨勢與技術前沿,打造產業網際網路頂級盛會的2021騰訊數字生態大會日前在武漢舉辦,騰訊雲資料庫技術負責人程彬進行了《雲原生時代的資料庫技術實踐》的主題演講,分別從雲原生時代資料庫技術何去何從,新時代下如何構建TDSQL-C資料庫產品和TDSQL-C在雲上實踐經驗等三個方面進行分享。
(以下是通過程彬現場演講全文整理)
時來雲轉
雲時代的資料庫應雲而生、依雲而建
當雲端計算這個詞還熱度未減時,雲原生的時代卻已悄然而至,也因此使用者使用雲的方式發生了極大的變化。從之前使用者會把自己的IT架構或業務系統從自建的IDC搬遷到雲上,到如今上雲的使用者不再直接搬遷,而是根據雲上的基礎設施IaaS或者PaaS的特點,進行自己IT架構的升級或者業務系統的升級。使用者的用雲方式改變,也對雲資料庫帶來極大的挑戰。舉個例子,在雲上面使用者購買虛擬機器和部署自己的資料庫,而虛擬機器提供的可靠的儲存副本數本身就是三份,而同時在資料庫上層再做架構的冗餘,整個資料庫儲存副本數就會放大很多倍。
這問題要怎麼解決呢?我想先簡單回顧下資料庫技術演進的歷程,資料庫從技術的角度來講,它是利用計算、儲存、網路的能力對使用者的資料進行儲存和加工處理,資料庫技術的演進也離不開基礎設施和資料特徵的變化。所以發展到今天可以劃分為4個階段。
第一階段(1970s)傳統IT時代,以大型機和專用網路為主的商業資料庫,用於國防、科研或者大型商業公司,這個階段,無論計算機場景和使用者數都不多,資料量規模也不是很大,但資料價值卻非常高,催生出了以Oracle或者IBM為代表的商業級資料庫。這個時期的商業級資料庫的特點就是貴,但卻實現了很大突破:1)實現二維表為代表的資料模型,能夠把客觀資料放在資料庫系統裡儲存下來;2)出現SQL語言資料庫,使得資料庫產品得以廣泛的應用;3)實現了事務處理能力,讓資料庫能真正的應用到一些關鍵的業務場景裡,實現資料庫儲存。
第二階段(2000s)網際網路時代,隨著計算機和Intel等技術進一步的發展,資料庫全面進入了網際網路時代,並催生出了以谷歌為代表的網際網路企業。這時,資料庫遇到一個新的挑戰就是成本,網際網路時代使用者資料急劇增長帶來的成本的挑戰,主要體現在軟體和硬體裝置貴,解決軟體成本通過開源共建方式去降低整個軟體的成本,針對硬體通過叢集和分散式的技術來提高系統可用性和效能,為此以開源和分散式為基礎的網際網路技術體系就應運而生,同樣的,網際網路的資料庫也是基於這個體系來去構建的。
第三階段(2010s)雲端計算時代,隨著網際網路普及和行業融入,網際網路+和移動應用拉起了雲端計算時代的帷幕。彼時資料庫管理規模的增大非常明顯,因此引發兩大挑戰:1)如何讓雲上數以萬計風格各異技術公司都能很好的應用雲資料庫;2)大規模管理下如何提高管理效率,資料庫即服務就應運而生,這個時候,大家都想方設法的通過服務的方式規避在使用上的瓶頸,進而提升整體資源的利用率。
第四階段(現在)雲原生時代,隨著數字經濟的普及,這時又遇到了全新的問題,這裡從騰訊雲資料庫看出,客戶數整體持續增長,客戶結構繁盛變化,業務場景也是變化萬千,更多的創業企業上雲,成本變得更加敏感,同時獨角獸或上市公司上雲等對資料庫的彈性要求越來越高,此外傳統線下企業(包括銀行、政府等)上雲對穩定性要求更高。
基於以上原因,我們重審了現有基於分散式跟開源架構下的資料庫,發現它確有的一些先天不足,比如計算、儲存資源耦合度極強,導致整個資源利用率偏低,這樣也會導致成本偏高;彈效能力受限於資源的緊耦合也做不到極致等;此外,我們還發現雲上面的IaaS、PaaS的承受度會變得越來越高。基於種種問題,我們改變思路基於雲上面的基礎設施,嘗試著去研發出一款全新的雲原生資料庫TDSQL-C,應雲而生,依雲而建,兼具商用的效能和穩定性和開源靈活和低成本,做到雲原生的極致彈性。
雲上生長
騰訊雲原生資料庫TDSQL-C助力企業降本增效
首先從架構上,把單體架構升級為更可控的彈性架構。設計理念是把計算層和儲存層進行解耦,做分層處理,分層過後通過池化讓計算、儲存的能力變得無限大,做到極致彈性;同時基於雲上IaaS跟PaaS來進行重新設計,複用之前的非常成熟的資料庫核心、計算等技術以及EB級規模儲存的平臺,提高資料庫的穩定性。基於這樣的平臺,雲原生資料庫TDSQL-C打造六大核心能力。
1.可計算儲存能力,踐行log is database設計理念,把計算節點做到無狀態。
2.超大計算/儲存力,單個例項可以做到千核級別的計算能力,達到PB級的儲存能力。
3.極致彈效能力,秒級擴充套件。
4.自動伸縮能力。
5.serverless形態和多級儲存,降低資料庫成本。
6.一體化服務,簡化使用者開發門檻,讓架構變得簡單,在一個數據庫裡儘量能處理多種場景。
7.
解決計算儲存分離的網路洪峰,極致IO解除安裝。傳統共享儲存架構,全量IO,邏輯相容,計算層無需額外適配,但會佔用過多網路頻寬,計算層消耗額外CPU/記憶體在儲存上,經典BP刷髒問題可能加劇。雲原生資料庫TDSQL-C使用log is database方案,把一部分資料庫計算邏輯下沉到儲存層完成, 實現網路資料傳輸減少90%+,計算層資源更聚焦於SQL處理,提升系統性能,分散式刷髒基本上規避BP刷髒的影響,加快了系統啟動速度。
使用者核心系統上雲,讀寫壓力大,業務吞吐量高;歷史賬單業務資料量高達PB;移動網際網路業務快速增長,日增資料高達TB。TDSQL-C最大支援15個只讀節點,物理複製降低主備延遲,頁面多版本滿足多備機讀頁面的版本請求。通過修改資料庫本身的核心邏輯把資料做分散式的打散,實現千核計算力和PB儲存力。
1.千核計算輸出:單例項極致192核15RO讀叢集,支援千核輸出,從容應對高吞吐讀業務;
2.PB儲存:擴充套件表空間管理,可管理海量雲端儲存資料,最大支援單叢集PB+儲存。
在可用性上,雲原生資料庫 TDSQL-C改變了通知使用者配合升級的傳統方式,通過Zero-Downtime Patching能力,把它做到資料庫核心裡面,實現秒級升級切換。現實業務中存在大量更新後查詢的一致性要求,如電商的訂單查詢、銀行轉賬、餘額查詢、遊戲賬戶充值、消費記錄查詢等,TDSQL-C關鍵技術支援全域性一致性、會話一致性、滿足業務對讀一致性的要求。
雲上有許多中長尾客戶,一天可能就訪問幾個小時,怎麼進一步降低這一部分開發者的成本呢?通過TDSQL-C Serverless形態,當智慧監控發現這個例項已經持續一定時間沒有進行任何的處理,資料庫會把它的計算資源進行釋放,通過採集實際CPU的使用率,打破傳統固定規格產品形態:根據負載自動伸縮、按實際使用計費、不使用不計費。要做到這種能力,對技術上的挑戰非常大,無論是資料庫的計算層還是儲存層,都要通過一系列的技術聯合才能做到這一點,這是計算上面的優化。
在資料庫裡面,並不是所有資料庫的熱度、訪問都那麼高,有很多資料隨著時間的變化,被訪問的頻度會降低。針對這個情況,TDSQL-C 做了智慧儲存分層,儲存分層除了通常大家做的熱資料、溫資料、冷資料之外,TDSQL-C在溫資料裡面還通過了一個新的技術,打破了資料庫儲存裡面通過副本的方式來保證可靠性,可以用更小的資料冗餘度和副本,提供同樣的可靠性來滿足使用者的要求,降低儲存成本。
越來越多使用者,特別是在新型應用上,比如直播帶貨,也有新的變化,一邊在生產訂單,同時需要根據訂單的情況及時調整線上的折扣的策略,這需要對海量訂單進行實時的資料分析。
TDSQL-C提出了HTAP一體解決方案,主要有四個方面的技術:
1.在儲存引擎上,做行列混存,通過列存來加速查詢能力。
2.在優化器上面,把以前面向行的優化器進行優化,讓它自適應能夠進行分析場景演算法的調整。
3.在執行引擎上,把單一的序列的執行引擎調成分散式的執行引擎,加大資料的查詢能力。
4.在記憶體計算上,把多個節點技術聯合起來做協同,通過NVM拓展記憶體,TPC—H查詢效能相比之前提高50倍的效能。
雲上實踐
最好的資料庫是用出來的
騰訊雲原生資料庫TDSQL-C Serverless 實現與微信生態互通,聯合微信小程式雲開發,創造開發者使用資料庫新形態。已為接近50萬小程式開發者提供了一站式開發雲服務。同時TDSQL-C Serverless也聯合Coding DevOps,無伺服器函式SCF、輕量級伺服器、物聯網平臺等為企業和開發者提供一鍵部署多端執行的全套解決方案。
過去18個月中,TDSQL-C例項數增長超過24倍,服務超過6000+外部使用者,落地電商、遊戲、金融等場景。如團油APP,進行雲原生架構升級,支撐單日超2.5億交易,累計服務車主超4億;bilibili內容平臺,超百萬QPS效能,承載人氣手遊;FiT騰訊金融科技,單日新增TB核心資料,承載騰訊金融科技。雲原生資料TDSQL-C同樣廣泛應用於騰訊內部業務,微信、騰訊視訊、騰訊翻譯君、財付通等。極致的彈性服務和AI自治服務,助力企業克服傳統資料庫效能、彈性及穩定性差等問題。
未來,各行各業越來越依賴大資料開展工作,資料量井噴式爆發,大併發業務繁多;5G網路商用落地,新興產業發展空間無限,面臨大規模應用場景挑戰。騰訊雲原生資料庫便捷部署,為使用者提供高併發叢集計算能力,高速的查詢效率,幫助使用者緩解業務壓力,挖掘資料價值,以低成本享受專業的資料庫服務。技術與場景相融合,攜手共創更大的商業價值。