日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

腾讯研发专家:TXSQL如何成为云计算时代数据库核弹头?

發布時間:2024/2/28 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 腾讯研发专家:TXSQL如何成为云计算时代数据库核弹头? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.





背景:5月23-24日,以“煥啟”為主題的騰訊“云+未來”峰會在廣州召開,廣東省各級政府機構領導、海內外業內學術專家、行業大咖及技術大牛等在現場共議云計算與數字化產業創新發展。


騰訊MySQL內核研發專家張青林在騰訊“云+未來”峰會的「開發者專場」做了主題為“TXSQL:云計算時代數據庫核彈頭”的技術內容分享,本次分享從五個方介紹TXSQL:

第一部分:MySQL和TXSQL的概念



騰訊云作為國內云計算領先公司,在全球建立了500多個數據中心,供數以萬計的開發者使用。


TXSQL是CDB的內核,而CDB則是騰訊云對外提供的產品,提供數據庫相關服務,CDB產品提供了一整套的解決方案,包括用戶上云,數據遷移、備份、恢復、升級等操作,相比于傳統用戶來構建MySQL服務,減少了投入的時間同時也更方便使用。



騰訊云的CDB服務滲透到了各行各業,包括銀行、證券、物流,還有傳統企業等都是騰訊云的客戶,用戶購買 CDB 后,會分配相應的主機、端口、用戶名、密碼等信息,用戶通過這些信息可以直接聯接到后臺的數據庫。


CDB服務目前分為本地盤和網盤,TXSQL是基礎架構部數據庫內核團隊獨立維護的MySQL分支,對外通過CDB服務提供給客戶。

可以看到TXSQL是內核,也是底層提供數據服務的核心。


第二部分:我們為何會創造 TXSQL



我們來詳細看看構建TXSQL的必要性:



從2016到2017年,存儲規模達到了4倍以上,并且隨著云計算市場的不斷成熟,行業覆蓋率也得到了前所未有的發展,整個規模已經達到了10萬+級別。

當用戶自己構建數據庫服務的時候,運行在自己的服務器上,一年可能只會遇到一兩個問題,但是如果有數十萬個服務器在同時運行,那么每天遇到問題的概率是很大的,所以我們遇到了三大挑戰:

第一,客戶使用了CDB產品,他會把數據庫的請求返回交給上層應用,如果數據庫出現問題,可用性基本上得不到保障,所以隨著規模的不斷增長,我們必須能夠快速定位和解決客戶問題。

第二,來自業務的需求,隨著行業覆蓋率的不斷擴展,比如金融或者對數據要求比較高的行業,他們就會對數據安全等功能有多元化的需求,所以需要具備滿足客戶需求的開發能力。

第三,關于性能,我們知道在電商大促或者游戲有活動的時候,數據庫所受到的壓力很大,為了提升單機的性能,讓用戶花最少的錢買最好的服務。



綜上所述,面臨著三大挑戰,一個是穩定性,一個是新的業務需求,還有一個是性能的提升。

基于此,騰訊云需要有一個自己的內核團隊來快速定位客戶問題,來幫助客戶解決問題,并且最大速度的提升單機性能。


第三部分:我們如何設計 TXSQL




B3M是我們的代碼設計模型,可以讓客戶操作的時候更方便,更好的解決問題,也可以幫助客戶實現一些新的需求。

用戶可能會問,MySQL作為一個基礎軟件,有幾百萬代碼,門檻比較高,怎么保持修改后MySQL版本的穩定性呢?




我們不是隨意改MySQL,我們改的每一處地方都要經過嚴格的測試。

首先,我們會進行需求分析,需求分析主要來源于幾個方面,一個是數據庫在運行過程中出現的問題,比如官方的BUG,另外是用戶需求相關的東西,幫助他們更好的使用數據庫,再就是做性能調優,用戶在使用MySQL過程中,我們也逐漸提升性能和競爭力。

經過需求分析之后會做設計,然后再進行代碼編寫的工作,編寫之后我們會嚴格把控代碼質量,每一個步驟都會經過嚴格測試,比如代碼覆蓋率測試和單元測試,我們基本每兩到三個月會發布一個數據庫內核版本,每一個版本都要通過穩定測試和性能測試,以及崩潰恢復測試,從而保證我們的代碼不會引入新的BUG。

在版本發布的時候,首先進行個別實例的發布,然后對新的TXSQL版本的實例進行秒級監控,沒有問題再進行小集群的發布,最后再進行全網發布,通過這種方式我們保證了MySQL版本的穩定性以及可靠性。


第四部分:用戶在使用 TXSQL 內核版本的時候需要注意哪些問題


對于用戶來說,所使用CDB內核提供了哪些服務?


因為我們對MySQL的改動,是在MySQL的基礎上進行二次開發的,一種是性能調優,一種是線上問題的解決,還有功能開發,針對于新的業務需求來實現。

我們會通過在壓測過程中比較他們資源競爭的情況,比如說內存資源或鎖資源,下圖中的前三個是我們對redo logo所做的性能調優,第一個是redo log,通過減少Sync盤的次數來提升性能,第二部分是通過多緩沖buffer,即Redo Log在Sync的同時不影響其他事務日志的寫入,第三個則可以保證事務在向系統緩沖區寫Redo日志時互不影響,提升并發性。Select offset limit 操作則是將計算下推到引擎層,降低 CPU資源消耗的同時,提升性能。

而在功能方面,我們實現了官方版本所沒有的功能,比如加密、審計、線程池、并行復制。首先是審計功能,官方的版本是沒有審計這個功能的,只有企業版才有,我們結合自己的實際情況,為了保證用戶的性能,我們做了一個audit的插件,從而保證性能的同時實現了用戶所需要的功能。




第三個是thread handling,我們在測試壓力測試的時候,隨著并發的加大,性能會首先提升,然后下降,原因則是系統內部各種資源的競爭比較嚴重,TXSQL 通過把Thread Pool 引入來解決這個問題,并且解決了以下幾個問題:

1. 解決了 Threadpool 情況下全局讀鎖所造成的死鎖問題

2. 解決了 Dump 線程對于Thread Pool 的影響

3. 添加新的Information Schema 表來觀察ThreadPool內部的運行情況



當主庫壓力不斷變大的時候,我們備庫的消耗數趕不上主庫生產的時候,從5.1,5.5, 5.6,5.7,這個問題始終沒有得到很好的解決,5.6的時候雖然有一個并行算法,但是并不能完全解決延遲問題,我們引入了自己的并行,從而很好解決了這個問題。

當你主庫延遲的時候,主庫掛了,備庫沒有消費完累積的RelayLog之前,服務器是不能夠提供服務的,如果接受服務的話會有雙寫的問題。

無論是我們在上云過程中還是服務用戶過程中,都遇到了各種各樣的困難。

比如我們在幫一個游戲公司上云過程中發現了他們的性能問題,我們對系統進行分析的時候我們對它進行優化,調優了各種參數并升級內核,最終使用戶的性能從7萬上升到17萬。

占用內存不斷上升,造成了機器的OOM,這個問題我們花了將近一周的時間找到問題RootCause,然后用一周的時間進行灰度發布和測試,我們Fix Bug的速度一般是兩周,而官方受限于版本發布,一般都需要兩到三個月才能解決。


TXSQL只是作為內核版本來幫助用戶進行計算。我們的穩定性有如下能力來保證,一個是全鏈路監控,一個是機器層面操作系統方面的監控,還有MySQL的秒級監控,以及人工的在線幫助。


? ?第五部分:TXSQL未來的發展方向




在保持穩定性,性能調優和功能實現的基礎上,未來我們會以這幾個方向。?

批量計算:對于可以讓 Engine做的事情,我們可以將計算下推到Engine層來做,減少消耗。?

執行計劃緩存也是我們在不久將來要做的事情,之前做過一個測試,最簡單的基于主鍵的查詢就會有10%的性能提升。?

為了解決存儲的問題,我們將RocksDB 引入到了TXSQL中,即 TXRocks,也會在近期推出這個產品,在支持事務操作的同時,可以極大的降低用戶成本。


騰訊數據庫技術團隊維護MySQL內核分支TXSQL,100%兼容原生MySQL版本,對內支持微信紅包,彩票等集團內部業務,對外為騰訊云CDB for MySQL提供內核版本。

騰訊數據庫技術團隊專注于增強MySQL內核功能,提升數據庫性能,保證系統穩定性并解決用戶在生產過程中遇到的問題。



騰訊技術工程官號

騰訊前沿技術 | 產品 | 行業信息交流發布平臺

?




總結

以上是生活随笔為你收集整理的腾讯研发专家:TXSQL如何成为云计算时代数据库核弹头?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。