為云而生,云原生數(shù)據(jù)庫TDSQL-C技術(shù)突破與演進
以“數(shù)實融合,綻放新機”為主題,聚焦產(chǎn)業(yè)趨勢與技術(shù)前沿,打造產(chǎn)業(yè)互聯(lián)網(wǎng)頂級盛會的2021騰訊數(shù)字生態(tài)大會日前在武漢舉辦,騰訊云數(shù)據(jù)庫技術(shù)負責(zé)人程彬進行了《云原生時代的數(shù)據(jù)庫技術(shù)實踐》的主題演講,分別從云原生時代數(shù)據(jù)庫技術(shù)何去何從,新時代下如何構(gòu)建TDSQL-C數(shù)據(jù)庫產(chǎn)品和TDSQL-C在云上實踐經(jīng)驗等三個方面進行分享。

(以下是通過程彬現(xiàn)場演講全文整理)
時來云轉(zhuǎn)
云時代的數(shù)據(jù)庫應(yīng)云而生、依云而建
當云計算這個詞還熱度未減時,云原生的時代卻已悄然而至,也因此用戶使用云的方式發(fā)生了極大的變化。從之前用戶會把自己的IT架構(gòu)或業(yè)務(wù)系統(tǒng)從自建的IDC搬遷到云上,到如今上云的用戶不再直接搬遷,而是根據(jù)云上的基礎(chǔ)設(shè)施IaaS或者PaaS的特點,進行自己IT架構(gòu)的升級或者業(yè)務(wù)系統(tǒng)的升級。用戶的用云方式改變,也對云數(shù)據(jù)庫帶來極大的挑戰(zhàn)。舉個例子,在云上面用戶購買虛擬機和部署自己的數(shù)據(jù)庫,而虛擬機提供的可靠的存儲副本數(shù)本身就是三份,而同時在數(shù)據(jù)庫上層再做架構(gòu)的冗余,整個數(shù)據(jù)庫存儲副本數(shù)就會放大很多倍。
這問題要怎么解決呢?我想先簡單回顧下數(shù)據(jù)庫技術(shù)演進的歷程,數(shù)據(jù)庫從技術(shù)的角度來講,它是利用計算、存儲、網(wǎng)絡(luò)的能力對用戶的數(shù)據(jù)進行存儲和加工處理,數(shù)據(jù)庫技術(shù)的演進也離不開基礎(chǔ)設(shè)施和數(shù)據(jù)特征的變化。所以發(fā)展到今天可以劃分為4個階段。

第一階段(1970s)傳統(tǒng)IT時代,以大型機和專用網(wǎng)絡(luò)為主的商業(yè)數(shù)據(jù)庫,用于國防、科研或者大型商業(yè)公司,這個階段,無論計算機場景和用戶數(shù)都不多,數(shù)據(jù)量規(guī)模也不是很大,但數(shù)據(jù)價值卻非常高,催生出了以O(shè)racle或者IBM為代表的商業(yè)級數(shù)據(jù)庫。這個時期的商業(yè)級數(shù)據(jù)庫的特點就是貴,但卻實現(xiàn)了很大突破:1)實現(xiàn)二維表為代表的數(shù)據(jù)模型,能夠把客觀數(shù)據(jù)放在數(shù)據(jù)庫系統(tǒng)里保存下來;2)出現(xiàn)SQL語言數(shù)據(jù)庫,使得數(shù)據(jù)庫產(chǎn)品得以廣泛的應(yīng)用;3)實現(xiàn)了事務(wù)處理能力,讓數(shù)據(jù)庫能真正的應(yīng)用到一些關(guān)鍵的業(yè)務(wù)場景里,實現(xiàn)數(shù)據(jù)庫存儲。
第二階段(2000s)互聯(lián)網(wǎng)時代,隨著計算機和Intel等技術(shù)進一步的發(fā)展,數(shù)據(jù)庫全面進入了互聯(lián)網(wǎng)時代,并催生出了以谷歌為代表的互聯(lián)網(wǎng)企業(yè)。這時,數(shù)據(jù)庫遇到一個新的挑戰(zhàn)就是成本,互聯(lián)網(wǎng)時代用戶數(shù)據(jù)急劇增長帶來的成本的挑戰(zhàn),主要體現(xiàn)在軟件和硬件設(shè)備貴,解決軟件成本通過開源共建方式去降低整個軟件的成本,針對硬件通過集群和分布式的技術(shù)來提高系統(tǒng)可用性和性能,為此以開源和分布式為基礎(chǔ)的互聯(lián)網(wǎng)技術(shù)體系就應(yīng)運而生,同樣的,互聯(lián)網(wǎng)的數(shù)據(jù)庫也是基于這個體系來去構(gòu)建的。
第三階段(2010s)云計算時代,隨著互聯(lián)網(wǎng)普及和行業(yè)融入,互聯(lián)網(wǎng)+和移動應(yīng)用拉起了云計算時代的帷幕。彼時數(shù)據(jù)庫管理規(guī)模的增大非常明顯,因此引發(fā)兩大挑戰(zhàn):1)如何讓云上數(shù)以萬計風(fēng)格各異技術(shù)公司都能很好的應(yīng)用云數(shù)據(jù)庫;2)大規(guī)模管理下如何提高管理效率,數(shù)據(jù)庫即服務(wù)就應(yīng)運而生,這個時候,大家都想方設(shè)法的通過服務(wù)的方式規(guī)避在使用上的瓶頸,進而提升整體資源的利用率。
第四階段(現(xiàn)在)云原生時代,隨著數(shù)字經(jīng)濟的普及,這時又遇到了全新的問題,這里從騰訊云數(shù)據(jù)庫看出,客戶數(shù)整體持續(xù)增長,客戶結(jié)構(gòu)繁盛變化,業(yè)務(wù)場景也是變化萬千,更多的創(chuàng)業(yè)企業(yè)上云,成本變得更加敏感,同時獨角獸或上市公司上云等對數(shù)據(jù)庫的彈性要求越來越高,此外傳統(tǒng)線下企業(yè)(包括銀行、政府等)上云對穩(wěn)定性要求更高。
基于以上原因,我們重審了現(xiàn)有基于分布式跟開源架構(gòu)下的數(shù)據(jù)庫,發(fā)現(xiàn)它確有的一些先天不足,比如計算、存儲資源耦合度極強,導(dǎo)致整個資源利用率偏低,這樣也會導(dǎo)致成本偏高;彈性能力受限于資源的緊耦合也做不到極致等;此外,我們還發(fā)現(xiàn)云上面的IaaS、PaaS的承受度會變得越來越高。基于種種問題,我們改變思路基于云上面的基礎(chǔ)設(shè)施,嘗試著去研發(fā)出一款全新的云原生數(shù)據(jù)庫TDSQL-C,應(yīng)云而生,依云而建,兼具商用的性能和穩(wěn)定性和開源靈活和低成本,做到云原生的極致彈性。

云上生長
騰訊云原生數(shù)據(jù)庫TDSQL-C助力企業(yè)降本增效
首先從架構(gòu)上,把單體架構(gòu)升級為更可控的彈性架構(gòu)。設(shè)計理念是把計算層和存儲層進行解耦,做分層處理,分層過后通過池化讓計算、存儲的能力變得無限大,做到極致彈性;同時基于云上IaaS跟PaaS來進行重新設(shè)計,復(fù)用之前的非常成熟的數(shù)據(jù)庫內(nèi)核、計算等技術(shù)以及EB級規(guī)模存儲的平臺,提高數(shù)據(jù)庫的穩(wěn)定性。基于這樣的平臺,云原生數(shù)據(jù)庫TDSQL-C打造六大核心能力。

1.可計算存儲能力,踐行l(wèi)og is database設(shè)計理念,把計算節(jié)點做到無狀態(tài)。
2.超大計算/存儲力,單個實例可以做到千核級別的計算能力,達到PB級的存儲能力。
3.極致彈性能力,秒級擴展。
4.自動伸縮能力。
5.serverless形態(tài)和多級存儲,降低數(shù)據(jù)庫成本。
6.一體化服務(wù),簡化用戶開發(fā)門檻,讓架構(gòu)變得簡單,在一個數(shù)據(jù)庫里盡量能處理多種場景。
(TDSQL-C存儲分離架構(gòu))解決計算存儲分離的網(wǎng)絡(luò)洪峰,極致IO卸載。傳統(tǒng)共享存儲架構(gòu),全量IO,邏輯兼容,計算層無需額外適配,但會占用過多網(wǎng)絡(luò)帶寬,計算層消耗額外CPU/內(nèi)存在存儲上,經(jīng)典BP刷臟問題可能加劇。云原生數(shù)據(jù)庫TDSQL-C使用log is database方案,把一部分數(shù)據(jù)庫計算邏輯下沉到存儲層完成, 實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)傳輸減少90%+,計算層資源更聚焦于SQL處理,提升系統(tǒng)性能,分布式刷臟基本上規(guī)避BP刷臟的影響,加快了系統(tǒng)啟動速度。
(可計算存儲)用戶核心系統(tǒng)上云,讀寫壓力大,業(yè)務(wù)吞吐量高;歷史賬單業(yè)務(wù)數(shù)據(jù)量高達PB;移動互聯(lián)網(wǎng)業(yè)務(wù)快速增長,日增數(shù)據(jù)高達TB。TDSQL-C最大支持15個只讀節(jié)點,物理復(fù)制降低主備延遲,頁面多版本滿足多備機讀頁面的版本請求。通過修改數(shù)據(jù)庫本身的核心邏輯把數(shù)據(jù)做分布式的打散,實現(xiàn)千核計算力和PB存儲力。
1.千核計算輸出:單實例極致192核15RO讀集群,支持千核輸出,從容應(yīng)對高吞吐讀業(yè)務(wù);
2.PB存儲:擴展表空間管理,可管理海量云存儲數(shù)據(jù),最大支持單集群PB+存儲。
(千核計算力,PB級存儲力)在可用性上,云原生數(shù)據(jù)庫 TDSQL-C改變了通知用戶配合升級的傳統(tǒng)方式,通過Zero-Downtime Patching能力,把它做到數(shù)據(jù)庫內(nèi)核里面,實現(xiàn)秒級升級切換。現(xiàn)實業(yè)務(wù)中存在大量更新后查詢的一致性要求,如電商的訂單查詢、銀行轉(zhuǎn)賬、余額查詢、游戲賬戶充值、消費記錄查詢等,TDSQL-C關(guān)鍵技術(shù)支持全局一致性、會話一致性、滿足業(yè)務(wù)對讀一致性的要求。
(秒級計算擴展)云上有許多中長尾客戶,一天可能就訪問幾個小時,怎么進一步降低這一部分開發(fā)者的成本呢?通過TDSQL-C Serverless形態(tài),當智能監(jiān)控發(fā)現(xiàn)這個實例已經(jīng)持續(xù)一定時間沒有進行任何的處理,數(shù)據(jù)庫會把它的計算資源進行釋放,通過采集實際CPU的使用率,打破傳統(tǒng)固定規(guī)格產(chǎn)品形態(tài):根據(jù)負載自動伸縮、按實際使用計費、不使用不計費。要做到這種能力,對技術(shù)上的挑戰(zhàn)非常大,無論是數(shù)據(jù)庫的計算層還是存儲層,都要通過一系列的技術(shù)聯(lián)合才能做到這一點,這是計算上面的優(yōu)化。
(TDSQL-C Serverless服務(wù))在數(shù)據(jù)庫里面,并不是所有數(shù)據(jù)庫的熱度、訪問都那么高,有很多數(shù)據(jù)隨著時間的變化,被訪問的頻度會降低。針對這個情況,TDSQL-C 做了智能存儲分層,存儲分層除了通常大家做的熱數(shù)據(jù)、溫數(shù)據(jù)、冷數(shù)據(jù)之外,TDSQL-C在溫數(shù)據(jù)里面還通過了一個新的技術(shù),打破了數(shù)據(jù)庫存儲里面通過副本的方式來保證可靠性,可以用更小的數(shù)據(jù)冗余度和副本,提供同樣的可靠性來滿足用戶的要求,降低存儲成本。
(TDSQL-C 智能存儲分層)越來越多用戶,特別是在新型應(yīng)用上,比如直播帶貨,也有新的變化,一邊在生產(chǎn)訂單,同時需要根據(jù)訂單的情況及時調(diào)整線上的折扣的策略,這需要對海量訂單進行實時的數(shù)據(jù)分析。TDSQL-C提出了HTAP一體解決方案,主要有四個方面的技術(shù):
1.在存儲引擎上,做行列混存,通過列存來加速查詢能力。
2.在優(yōu)化器上面,把以前面向行的優(yōu)化器進行優(yōu)化,讓它自適應(yīng)能夠進行分析場景算法的調(diào)整。
3.在執(zhí)行引擎上,把單一的串行的執(zhí)行引擎調(diào)成分布式的執(zhí)行引擎,加大數(shù)據(jù)的查詢能力。
4.在內(nèi)存計算上,把多個節(jié)點技術(shù)聯(lián)合起來做協(xié)同,通過NVM拓展內(nèi)存,TPC—H查詢性能相比之前提高50倍的性能。
(TDSQL-C HTAP一體化解決方案)云上實踐
最好的數(shù)據(jù)庫是用出來的
騰訊云原生數(shù)據(jù)庫TDSQL-C Serverless 實現(xiàn)與微信生態(tài)互通,聯(lián)合微信小程序云開發(fā),創(chuàng)造開發(fā)者使用數(shù)據(jù)庫新形態(tài)。已為接近50萬小程序開發(fā)者提供了一站式開發(fā)云服務(wù)。同時TDSQL-C Serverless也聯(lián)合Coding DevOps,無服務(wù)器函數(shù)SCF、輕量級服務(wù)器、物聯(lián)網(wǎng)平臺等為企業(yè)和開發(fā)者提供一鍵部署多端運行的全套解決方案。

過去18個月中,TDSQL-C實例數(shù)增長超過24倍,服務(wù)超過6000+外部用戶,落地電商、游戲、金融等場景。如團油APP,進行云原生架構(gòu)升級,支撐單日超2.5億交易,累計服務(wù)車主超4億;bilibili內(nèi)容平臺,超百萬QPS性能,承載人氣手游;FiT騰訊金融科技,單日新增TB核心數(shù)據(jù),承載騰訊金融科技。云原生數(shù)據(jù)TDSQL-C同樣廣泛應(yīng)用于騰訊內(nèi)部業(yè)務(wù),微信、騰訊視頻、騰訊翻譯君、財付通等。極致的彈性服務(wù)和AI自治服務(wù),助力企業(yè)克服傳統(tǒng)數(shù)據(jù)庫性能、彈性及穩(wěn)定性差等問題。
未來,各行各業(yè)越來越依賴大數(shù)據(jù)開展工作,數(shù)據(jù)量井噴式爆發(fā),大并發(fā)業(yè)務(wù)繁多;5G網(wǎng)絡(luò)商用落地,新興產(chǎn)業(yè)發(fā)展空間無限,面臨大規(guī)模應(yīng)用場景挑戰(zhàn)。騰訊云原生數(shù)據(jù)庫便捷部署,為用戶提供高并發(fā)集群計算能力,高速的查詢效率,幫助用戶緩解業(yè)務(wù)壓力,挖掘數(shù)據(jù)價值,以低成本享受專業(yè)的數(shù)據(jù)庫服務(wù)。技術(shù)與場景相融合,攜手共創(chuàng)更大的商業(yè)價值。
﹀
﹀
﹀

云原生數(shù)據(jù)庫TDSQL-C PostgreSQL版內(nèi)核解密

載譽而歸 | 騰訊云原生數(shù)據(jù)庫 TDSQL-C榮獲“云原生卓越技術(shù)提供商”獎項

↓↓點擊閱讀原文,了解更多優(yōu)惠
