騰訊雲發佈新一代自研雲原生數據庫CynosDB

11月22日消息,騰訊雲宣佈新一代自研雲原生數據庫CynosDB正式發佈。

作爲騰訊雲在產品矩陣上的重要佈局,CynosDB融合了傳統數據庫、雲計算和新硬件的優勢,支持無限量存儲、百萬級查詢和秒級的故障恢復,與高性能形成對比的是,CynosDB價格僅爲市面上商業數據庫的1/15。

另外,CynosDB在產品架構上完全兼容開源數據庫引擎接口,是國內首家兼容MySQL5.7和全球第一個兼容PostgreSQL10的雲數據庫產品。目前來看,MySQL和PostgreSQL是市面上最主流的兩大數據庫產品,因此,CynosDB的兼容性,讓企業幾乎無需更改代碼就可實現無縫“上雲”。

“CynosDB的推出對於豐富騰訊雲數據庫產品矩陣,提升騰訊雲的產品技術能力具有里程碑的意義,同時,良好的兼容特性和極致性價比,將大大推進企業的‘上雲’進程。”騰訊雲數據庫產品總監祝百萬表示。

CynosDB踏星而來

Cynos源於拉丁語中的Cynosura,古希臘神話中北極星的名字,意爲焦點,引人注目的人或物。

隨着雲計算2.0時代的來臨,在雲計算技術和服務的支持下,越來越多的互聯網企業業務規模快速擴大,它們對構建於雲端的核心基礎設施服務—數據庫服務提出了更高的要求,如更高的性能、更好的穩定性和更低的成本等。

與此同時,越來越多的零售、IoT和醫療等傳統行業通過“接入雲”完成數字化轉型和升級,迫切需要雲數據庫服務能無縫替換傳統數據庫產品。以傳統的方式,將長期以來主導企業解決方案的數據庫Oracle 和 Microsoft SQL Server等以“lift and shift”的方式直接搬到雲上提供託管服務並不能滿足用戶在擴展性和可靠性等方面的需求,授權許可費用也使得訂閱計費的方式不能從根本上降低數據庫的使用成本。因此,通過技術手段解決這些問題正是騰訊數據庫技術團隊自研新一代雲數據庫CynosDB的出發點。

CynosDB的融合與創新

作爲雲原生數據庫,CynosDB集衆多創新技術於一身。以軟件優化與新硬件結合爲理念,採用了先進的技術和存儲分離架構,同時實現了計算機無節點狀態,支持秒級故障切換和回覆,數據備份時間縮短到60秒之內,速度提升了180倍。

在此基礎上,CynosDB可以達到單節點130萬QPS讀性能,超過業內目前最高100萬QPS水平,滿足企業按需分配計算和存儲資源,實現彈性調度,動態擴容,節約用戶成本,具有多租戶,水平擴展存儲,融合傳統關係數據庫、雲計算與新硬件、新網絡優勢,全面兼容PostgreSQL和MySQL。

另外,CynosDB是公有云原生架構的,其核心思想是在資源池化的基礎上實現公有云高性價比、高可用性以及彈性擴展等諸多優勢。實現資源池化的最大技術挑戰是高效、穩定的彈性調度能力,需要做到:

  • 存儲與計算分離:這樣計算資源(主要包含CPU和內存)就可以使用現有成熟的容器、虛擬機等技術實現資源池化。
  • 分佈式存儲:將數據分割成規格化的塊,引入分佈式調度系統,實現存儲容量和IO的彈性調度,從而實現存儲資源的池化。

那麼對於數據庫產品來說,是否有現成架構可以很好的滿足以上兩個需求呢。先看一下傳統基於雲盤的架構:

但該架構有如下不足:

  • 網絡IO重:可以看到就1個數據庫實例,就有大量數據需要寫到雲盤,這些數據主要包括:WAL LOG、頁數據、防止頁部分寫的Double Write或者Full Page Write。除此之外,雲盤還要將這些數據做多個備份。
  • 主從實例不共享數據:一方面浪費了大量存儲,另一方面進一步加重了網絡IO
  • 這些不足導致基於該架構的數據庫產品在系統吞吐能力上無法與基於物理機部署的主從架構競爭,而且延遲也受到很大的挑戰,這對OLTP類業務的影響非常明顯。同時每個數據庫實例都單獨擁有一份(實際可能是2-3份)存儲,成本也很高。

CynosDB針對這兩個不足,採用瞭如下設計:

  • 日誌下沉: WAL LOG從邏輯上已經包含了數據的所有變動,CynosDB將WAL LOG下沉到存儲層,數據庫實例就只需要將WAL LOG寫到存儲層,不再需要寫頁數據(頁數據以及Double Write或Full Page Write),同時這個WAL LOG也作爲RAFT協議的日誌來完成多個數據備份的同步,進一步減少了網絡IO。
  • 主從實例共享數據:CynosDB的主從實例共享共一份存儲數據,進一步減少了網絡IO,同時極大的減少了存儲容量。

循着這兩個解決思路,騰訊雲對傳統基於雲盤的架構進行優化,就有了CynosDB如下架構。

CynosDB架構:


圖中組件包括:

  • DB Engine:數據庫引擎,支持一主多從。

  • Distributed File System:用戶態分佈式文件系統,主要提供分佈式的文件管理,負責將文件的讀寫請求翻譯爲對應的BLOCK讀寫。

  • LOG/BLOCK API:Storage Service提供的讀寫接口,對於讀寫請求有不同處理:

    • 寫請求:將修改日誌(等價於WAL LOG)通過LOG API發送到Storage Service。
    • 讀請求:直接通過BLOCK API讀取數據。
  • DB Cluster Manager:負責一主多從DB集羣的HA管理。

  • Storage Service:負責日誌的處理、BLOCK數據的異步回放、讀請求的多版本支持等。同時還負責將WAL LOG備份到Cold Backup Storage。

  • Segment(Seg):Storage Service管理數據BLOCK和日誌的最小單元(10GB),也是數據複製的實體。圖中同樣顏色的3個Seg實際存儲同一份數據,通過一致性協議(Raft)進行同步,我們叫做Segment Group(SG)。

  • Pool:多個SG從邏輯上構成一個連續的存儲數據BLOCK的塊設備,供上層的Distributed File System分配使用。Pool和SG是一對多的關係。

  • Storage Cluster Manager:負責Storage Service以及Segment Group 的HA調度,以及維護Pool和SG的對應關係。

  • Cold Backup Service:接收到WAL LOG後,進行增量備份,根據增量備份,可以靈活的生成全量備份和差異備份。

可以看到,上面中除了DB Engine和DB Cluster Manager外的所有模塊構成了一個與數據庫引擎無關的用戶態分佈式文件系統,命名爲:CynosFS。

CynosDB 用戶價值

  • 可管理性: 一鍵式部署啓動或停止計算資源和內存資源,可使用 實例管理器 查看有關數據庫實例的關鍵運營指標,可使用最新修補程序不斷更新的數據庫實例,通過數據庫引擎版本管理,控制是否修補實例,以及何時進行修補。
  • 可擴展: 計算按需擴展,而存儲服務自動擴容,隨着數據庫存儲需求的增長而自動提高數據庫容量大小,其容量將以 10GB(不含存儲副本)增加,最大可增加到 256TB,無需爲數據庫預配置多餘的存儲空間。
  • 安全可靠: CynosDB在騰訊雲 VPC 中運行,將數據庫隔離在用戶的虛擬網絡中,並使用行業標準加密 IPsec VPN 與用戶本地 IT 基礎設施連接,可以配置防火牆設置並控制對數據庫實例的網絡訪問,CynosDB 與訪問CAM 成,通過身份管理和策略管理控制資源(例如,數據庫實例、數據庫快照、數據庫參數組、數據庫事件訂閱、數據庫選項組)執行操作。
  • 高性能: 低抖動高吞吐,使用各種不同的軟硬件技術組合,如將重做日誌寫入存儲,異步合併數據頁,數據庫備份和重做恢復下推到存儲系統進行異步化處理,從而確保數據庫引擎充分發揮計算、內存和聯網資源,寫入操作可通過數據庫引擎批量進行,同時存儲系統基於 SPDK和RDMA 的零拷貝技術,減少操作系統上下文切換引起的性能損耗。
  • 降低成本:通過分佈式計算存儲實現無服務器架構,通過自動運維減少人工干預,極大的降低了用戶成本。
  • 平滑上雲:全面兼容MySQL 5.7和PostgreSQ 10,實現企業的平滑遷移和快速上雲。

極致性能加速業務創新

CynosDB 極致的性能,以及對於主流開源數據庫的兼容,使其成爲衆多高性能企業應用“上雲”的最佳選擇。

正如Oracle 現任CEO Mark Hurd在回答Forbes的採訪中所說:“節約成本和敏捷創新已成爲企業上雲的核心驅動力。”這也是貫穿於雲原生數據庫CynosDB的核心設計理念:應 “ 雲 ” 而生 —— 雲原生數據庫面向服務架構“Cloud Native”;全面兼容新版的開源數據庫 “Comprehensive”,極致的內核級優化與新硬件技術相結合“Cohesive”,實現全託管智能運維“Creative”,無服務器架構的按需按量計費“Cost Effective”。

在未來,CynosDB致力於讓用戶專注於業務端應用的研發,爲用戶提供靈活的、敏捷的、可持續的,兼具新特性、高性能和低成本的新一代雲原生數據庫服務。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章