<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          深入解讀騰訊云數(shù)據(jù)庫自研內(nèi)核

          共 3615字,需瀏覽 8分鐘

           ·

          2022-02-23 03:23

          TXSQL 是騰訊云數(shù)據(jù)庫團隊自研 MySQL 內(nèi)核分支,100%兼容原生 MySQL 版本,針對企業(yè)級的重要場景自研眾多核心特性,如企業(yè)級透明數(shù)據(jù)加密、審計、線程池、熱點更新保護、SQL 限流、快速加列等功能,大幅提升了云數(shù)據(jù)庫的性能和穩(wěn)定性,保證線上穩(wěn)定性的同時,滿足業(yè)務對數(shù)據(jù)庫的各種需求。


          f7dbfb2aed31bf9baef28cddb369ff32.webp
          TXSQL 的服務對象是公司內(nèi)部用戶和騰訊云上小至數(shù)G大至數(shù)百T的外部客戶,是支撐這些業(yè)務平穩(wěn)運行的關鍵基石,在服務用戶的同時,也打造了騰訊自己的MySQL分支。


          另外,MySQL 作為最受歡迎的開源數(shù)據(jù)庫,也是云上使用最多的數(shù)據(jù)庫,不同的業(yè)務場景對數(shù)據(jù)庫有不同的功能需求與性能需求,這樣就決定了數(shù)據(jù)庫本身的多樣化需求,同時 MySQL 在不同使用場景下所衍生出來的各種問題,也影響著線上的穩(wěn)定性。
          TXSQL內(nèi)核研發(fā) 主要包括以下工作:
          1. 數(shù)據(jù)庫性能調優(yōu);
          2. 對內(nèi)核進行深度改造,滿足應用需要的性能要求,在活動促銷時保證數(shù)據(jù)庫的平穩(wěn)運行;
          3. 滿足業(yè)務需要的各種功能需求;
          4. 實現(xiàn)資源管理需要內(nèi)核支持的功能;
          5. MySQL DBA 在運維過程中需要的診斷相關的功能;
          6. MySQL 在運行過程中存在的問題定位并修復影響系統(tǒng)運行的內(nèi)核Bug;
          7. 保證數(shù)據(jù)庫系統(tǒng)的安全,保證云上用戶數(shù)據(jù)的安全;
          作為云上客戶的服務者,我們必須有及時響應用戶并解決各種問題的能力,也應該滿足用戶的各種合理要求,對內(nèi)支持業(yè)務的快速發(fā)展,滿足業(yè)務要求;對外為騰訊云提供強有力的競爭力,這就是 TXSQL 內(nèi)核存在與發(fā)展的目的。


          TXSQL演進之路?

          & 整體架構


          TXSQL的演進之路
          • 最早的TXSQL是MySQL官方5.1版本,騰訊云數(shù)據(jù)庫內(nèi)核團隊提供了簡單的bugfix。
          • 5.5版本到5.6版本,團隊不光是做了適配云平臺的工作,還開發(fā)了許多支持DBA運維方面的工具,包括讀寫方面的優(yōu)化。
          • TXSQL5.7版本目前是整個騰訊云數(shù)據(jù)庫服務用量最大的一個版本,加入了許多企業(yè)級的特性,比如審計、壓縮,還有線程池等。同時在5.7版本之后,我們做了云原生數(shù)據(jù)庫TDSQL-C(原CynosDB)的內(nèi)核。
          • 最新的TXSQL8.0版本,有了索引的列存引擎,還有AEP新硬件設備引擎優(yōu)化以及更多的特性和優(yōu)化。

          5e8f4d9412a057ec47511ee280ee202b.webp


          TXSQL的整體架構
          下圖為TXSQL內(nèi)核的整體架構。客戶端進來之后通過線程池,Server層,然后會訪問存儲引擎層。

          6147541f4399d05b41431a04bc2fd177.webp
          存儲引擎層目前支持多種引擎,包括傳統(tǒng)的InnoDB,自主研發(fā)的CStore列存引擎,還包括RocksDB,以及MySQL官方原來就內(nèi)置的MyISAM之類的存儲引擎,這是核心部分。
          底下是獨立的高性能SSD(本地存儲磁盤)。審計系統(tǒng),通過團隊基于官方審計API 研發(fā)的審計插件提供審計服務;透明數(shù)據(jù)壓縮插件,提供數(shù)據(jù)加密、解密的企業(yè)級特性;半同步復制插件,通過binlog把數(shù)據(jù)復制到從實例,然后會做一些備份或者是RO實例、只讀實例。
          TDSQL-C內(nèi)核整體架構
          云原生數(shù)據(jù)庫 TDSQL-C(Cloud Native Database TDSQL-C,TDSQL-C)是騰訊云自研的新一代高性能高可用的企業(yè)級分布式云數(shù)據(jù)庫。融合了傳統(tǒng)數(shù)據(jù)庫、云計算與新硬件技術的優(yōu)勢,100%兼容 MySQL ,實現(xiàn)超百萬級 QPS 的高吞吐,128TB 海量分布式智能存儲,保障數(shù)據(jù)安全可靠。其內(nèi)核的主要特點是存儲和計算分離,快速的彈性擴展能力等。
          27ae7a0d98e8850a25c841da09053608.webp

          自研列存引擎



          自研列存引擎,服務OLAP復雜場景
          數(shù)據(jù)庫中存在兩種典型的業(yè)務訪問場景,一種以在線事務處理為主,稱為OLTP(On-Line Transaction Processing);另一種以在線分析處理為主,稱為OLAP(On-Line Analytical Processing)。OLAP業(yè)務的主要特點是有較多的查詢操作,寫操作占比很低,并且大多數(shù)寫操作是數(shù)據(jù)的批量導入和數(shù)據(jù)的批量刪除或更新。并發(fā)的事務數(shù)相對OLTP要少很多,而且事務的響應時間要求相對比較低。
          騰訊自研列式引擎主要是為OLAP場景(數(shù)據(jù)分析場景)提供服務。列存引擎有以下特點:
          • 列式存儲:數(shù)據(jù)按列存儲而不是按行存儲;查詢時無需訪問無關列,減少大量 IO
          • 高壓縮比:壓縮比平均在10比1,可以大大減少存儲空間
          • 快速加載:支持 MySQL 標準的 LOAD 語句;多核并行處理,加載速度可達 INNODB 的 10 倍
          • 執(zhí)行引擎:支持查詢?nèi)我舛嗔械慕M合;單節(jié)點可支持百億行記錄的秒級查詢;支持多種JOIN算法,包括HASH JOIN
          • 查詢優(yōu)化:查詢時利用多種形式的稀疏索引過濾數(shù)據(jù);維護數(shù)據(jù)的統(tǒng)計信息,聚合類查詢預計算
          • MySQL兼容:SQL 語法全面兼容 MySQL 8.0;兼容 MySQL 工具和應用,例如phpMyADmin等;支持XtraBackup 物理備份和恢復。
          73982aca6294468f7e37c0410dda63f3.webp

          業(yè)界首創(chuàng)秒改列


          業(yè)界首創(chuàng)秒改列等更多企業(yè)級特性服務B端用戶
          大家都知道,Instant DDL這個patch也是由騰訊數(shù)據(jù)庫團隊進行研發(fā)并貢獻給官方的,并且官方在8.0提供了這個特性。在騰訊云TXSQL內(nèi)核里不僅支持了這個特性,而且在此基礎上進行了進一步增強。
          Instant DDL特性,可以快速增加字段。而修改列也是用戶執(zhí)行比較頻繁的DDL之一,而且此操作會長時間阻塞用戶的讀寫請求,對業(yè)務的影響非常大。TXSQL及TDSQL-C內(nèi)核業(yè)界首創(chuàng),支持了instant modify column功能,達到了秒級修改列的效果。
          具體的實現(xiàn)方式是:
          • 元數(shù)據(jù)多版本化, 表元數(shù)據(jù)保存列的多個版本信息,用戶只能看到的總是最新的表元數(shù)據(jù)。
          • 行記錄增加版本信息對應到不同版本的表元數(shù)據(jù)上。
          • 修改列只修改元數(shù)據(jù),修改列的過程中不修改實際的行記錄。
          • 行記錄讀取時,老版本記錄會自動轉換為最新版本的記錄。
          • 行記錄更新時,老版本記錄會自動更新為最新版本的記錄。
          465ad24328eea632d882e7b4a0839bd9.webp
          更多企業(yè)級特性服務B端用戶
          高可用-物理復制(TDSQL-C內(nèi)核):TDSQL-C內(nèi)核實現(xiàn)了基于redo log的物理復制,同步主從的數(shù)據(jù)頁面修改;復制速度快;主從數(shù)據(jù)保持物理一致。
          f0af76e20bcea60b9f0d911175be9c95.webp高可用-秒級RTO:Buffer pool秒級初始化,20倍提升;Crash recovery秒級構建表鎖;并行初始化回滾段(已貢獻官方MySQL),9倍提升;秒級Shutdown。7b89b543d1564352f88cf69f361409dd.webp
          彈性擴展-Btree一致性讀優(yōu)化(TDSQL-C內(nèi)核):InnoDB的數(shù)據(jù)以Btree方式來組織的,Btree在數(shù)據(jù)的更新過程中會發(fā)生SMO操作(即btree的分裂或合并),優(yōu)化后備庫讀不會被主庫更新產(chǎn)生的SMO操作所阻塞。8834f46e3d52e4b7d80a3cf01ea59188.webp性能優(yōu)化方面,面向非易失性存儲進行寫加速、線程綁核、兼容冷熱日志分離管理。最終效果:單機場景,有redolog,性能提升15%;主備場景,有redolog&&binlog,性能提升50+%;同步場景,主機有redolog&&binlog,備機redolog&&relaylog,性能提升60+%近,在sync_relay_log為=1,強同步場景,性能提升2221%。這是基于新硬件的一種專門優(yōu)化,極大提升整體數(shù)據(jù)庫內(nèi)核的性能。
          e9f872eb8deaaad6e6ac259733480364.webp
          熱點更新:內(nèi)核級解決秒殺場景下的熱點數(shù)據(jù)更新問題;一鍵開啟,用戶無需修改任何應用層SQL。
          3509453ca5a079e8190efecc09c3b4b3.webp功能發(fā)布層層把關,未來發(fā)展以穩(wěn)定性為首
          目前TXSQL系統(tǒng)內(nèi)核的開發(fā),已經(jīng)逐步形成了一個比較完善的研發(fā)體系。體系里面包括需求評估、代碼設計方案、設計方案的評審、代碼開發(fā)、代碼測試、上線之前的評審、灰度,還包括最終上線后的跟蹤。在整體流程上做到了相對完善。
          從需求來講,目前大部分需求基本上是來自于用戶在線上碰到的實際問題,騰訊云數(shù)據(jù)庫內(nèi)核團隊進行有針對性的解決。需求到我們這邊之后會進行評估,接著基于需求的優(yōu)先級安排開發(fā)順序以及設計方案的評審。設計方案的評審由資深的內(nèi)核開發(fā)團隊人員來進行。
          開發(fā)完之后進行測試,測試是開發(fā)流程中非常重要的一環(huán)。目前一個需求的測試,會包括專有的、有針對性的專項功能測試;上線之前的通用測試;真實模擬云上環(huán)境的一些測試等等。
          測試過后灰度上線,邀請客戶來試用,驗證功能的可用性是否符合需求,灰度完之后才會真正上線。上線之后會跟蹤功能的實現(xiàn)情況,遇到bug及時響應解決。
          這就是我們從需求到發(fā)布層層把關的整個過程。
          25210ac48354e7b48755b8f87cfcb9b9.webp
          數(shù)據(jù)庫內(nèi)核以穩(wěn)定性為主,因為TXSQL目前線上的實例有超過十萬,龐大的實例規(guī)模以及海量用戶,一旦出現(xiàn)問題,后果是不堪設想,所以首先是要做到穩(wěn)定性。在保證穩(wěn)定性的前提下,再去進行特性的研發(fā)和性能優(yōu)化,這樣未來我想應該還是以三大方向為主:1. 保持穩(wěn)定性,客戶線上、線下碰到就是所有問題及時解決。2. 企業(yè)級特性的研發(fā),解決DBA運維當中碰到的比較棘手的問題。3. 性能優(yōu)化,數(shù)據(jù)庫的內(nèi)核性能做到更好更強。


          -- 更多精彩 --6c22b79e9ead8ddc6c9c0cfb3f98f2ef.webp

          為云而生,云原生數(shù)據(jù)庫TDSQL-C技術突破與演進


          3045240597599abb4e160a5c95254254.webp

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


          點擊閱讀原文,了解更多優(yōu)惠
          瀏覽 79
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美精品三级在线观看 | 一区二区三区手机在线 | 中文字幕第45页 | 操逼 18岁 | 操逼大全视频 |