華為云大數據存儲的冗余方式是三副本_華為TaurusDB技術解讀(轉載)

近日,華為云自研關系型數據庫 Taurus 公開亮相。作為華為云自研的最新一代云原生分布式數據庫,Taurus 完全兼容 MySQL 8.0,采用計算與存儲分離、日志即數據的架構設計,支持 1 寫 15 讀,性能達到原生 MySQL 的 7 倍。

性能達到原生MySQL七倍,華為云Taurus技術解讀 - InfoQ?www.infoq.cn
7b51200f0507e9429246cebacbc77eee.png

過去多年,數據庫技術本質上并沒有出現顛覆式發展。作為核心基礎設施,數據庫是一款用戶粘性非常高的產品,一旦核心業務數據落定,企業輕易不會嘗試更換,因此很長一段時間內,大眾習慣于老牌 IT 廠商壟斷數據庫市場的狀況。然而,云廠商涉足數據庫領域的消息近年層出不窮,比如 AWS Aurora、阿里云 PolarDB 以及華為云 Taurus。

在互聯網、移動和物聯網等新場景之下,圖片、音頻、視頻等非結構化數據開始出現爆炸性增長,傳統數據庫不堪重負,企業客戶急切需要新的數據庫產品。在云計算技術不斷成熟的背景之下,云數據庫開始崛起,并因為按需擴展、按需付費等特性獲得大量中小企業及互聯網客戶的擁護。

從云廠商的入局也不難看出,現在做數據庫的門檻并不像從前那么高,并不只有傳統的數據庫廠商可以做,單就這一領域的創業者也不少。在這種情況下,核心競爭力只可能從差異性發展而來,人人都在做且會做的東西很難形成核心競爭力。據此,華為云近日公開亮相的自研關系型數據庫 Taurus 有什么不同?核心競爭力是什么?為什么性能足以達到原生 MySQL 的 7 倍?與云上 MySQL 相比,后者的不足之處有哪些?華為云進行了哪些修補?

云原生數據庫技術趨勢

傳統的數據庫體系結構已有 30 多年的歷史,專為本地部署,本地存儲和單機數據庫實例而設計和優化,此后很長一段時間內,該體系結構未針對公有云環境進行優化。在公有云環境下,計算和存儲通過網絡分離以支持多租戶數據庫實例并 scale out 向兩端擴展;并不要求單個節點的高可靠性。

舉例來說,假設一個本地數據庫的每個數據庫實例都有本地存儲,為了支持高可用性,通常部署一個備實例并使用數據庫內部復制機制將數據庫日志(MySQL binlog)發送到備實例重建數據庫副本。目前,大多數云廠商都采用類似機制來支持云數據庫高可用性。但是,這種內部復制機制并沒有利用云存儲已經通過存儲層復制提供的可靠性,這導致大量存儲和帶寬浪費。實際上,備數據庫實例可以通過云存儲與主實例共享數據,不僅可以節省磁盤空間和帶寬,還可以為云數據庫服務提供快速 RTO。

很明顯,在將傳統數據庫遷移上云時,需要重新設計和優化數據庫系統。過去幾年,主要云供應商,比如 AWS 和阿里云,已經做了部分工作。預計未來幾年,更多云和數據庫供應商將遵循這一趨勢,構建某種形式的云原生數據庫技術。此外,Gartner 預測,到 2019 年,90%的云數據庫架構將支持計算和存儲分離。

值得注意的是,除了基于云環境的數據庫架構重新設計之外,這一領域還存在兩大趨勢:

  • 在云原生數據庫中利用新硬件:如新硬件和 RDMA。這些都是活躍的研究領域,然而除了充當緩存和計算機與存儲之間的快速鏈接之外,到目前為止,我們還沒有看到任何其他的突破性。
  • 基于即時和歷史收集的數據,使用 ML(機器學習)和統計技術來幫助管理和自我調整云數據庫,包括但不限于數據庫實例自動伸縮和參數設置和自動 調整,異常檢測等。

云上 MySQL 的不足

當前,對于 RDS for MySQL,各大云廠商基本都采用主備高可用模式、主備間使用 Binlog 復制,該架構下每添加一個從庫都需要全棧式資源,這導致了一些問題:

1、資源浪費

備庫往往不承擔流量;復制線程會消耗主庫 / 從庫計算資源,造成計算資源浪費;EVS 的 3 副本冗余機制下,N 個備庫最大需要 3*(N+1) 個副本,造成存儲資源浪費以及多種數據需要走存儲網絡進行刷盤,造成網絡資源浪費等。

2、擴展性不佳

添加只讀時需要拷貝數據,重放 binlog,對于大數據量情況下速度很慢,尤其是采用本地盤方案。主從復制延遲問題會讓主備倒換受影響,難以保證 RTO。此外,采用物理備份、邏輯備份時備份恢復速度很慢, 1T 以上數據量都以小時計,使得數據庫擴展性受限。

5b8be535e68016cd1302650ab584caec.png

華為云 RDS 架構演進

華為云 Taurus 與 Amazon Aurora 數據庫進化的方向是一致的,然而進化路徑各有不同,這是由各自的數據庫云服務實現方式不同所決定的。華為云 RDS MySQL 有如下幾個版本,這些產品形態滿足不同的用戶業務場景,具有不同的特點,可以進行優勢互補。

MySQL 單機版

MySQL 單機版采用數據庫計算節點和存儲節點分離的方式,利用云盤數據本身的可靠性和多副本的特性,同時也利用 ECS 云服務器虛擬化來提升標準化部署、版本和運維管理效率,能夠滿足低端用戶不太注重高可用服務的業務場景。

MySQL 主備版

MySQL 高可用版則是針對企業級用戶提供的高可用數據庫版本,提供 99.95% 的 SLA 保障。采用 Active-Standby 高可用架構,主節點和備節點之間通過 MySQL Binlog 進行數據 Replication。當主節點發生故障,備節點接管服務。同時還支持最多 5 個只讀節點,支持負載均衡的數據讀寫分離的訪問方式。

MySQL 金融版

MySQL 金融版是針對金融行業等高端用戶設計的高可用、高可靠云服務產品。一主兩備三節點架構,可跨 AZ 部署,任意一臺服務器宕機不影響業務可用性;基于 Paxos 協議,實現了分布式下數據的強一致性,擁有更加優異的故障恢復時間,滿足數據容災備份等業務場景的需求。

Taurus 的進化

華為云 RDS 架構演進

華為云 Taurus 與 Amazon Aurora 數據庫進化的方向是一致的,然而進化路徑各有不同,這是由各自的數據庫云服務實現方式不同所決定的。華為云 RDS MySQL 有如下幾個版本,這些產品形態滿足不同的用戶業務場景,具有不同的特點,可以進行優勢互補。

MySQL 單機版

MySQL 單機版采用數據庫計算節點和存儲節點分離的方式,利用云盤數據本身的可靠性和多副本的特性,同時也利用 ECS 云服務器虛擬化來提升標準化部署、版本和運維管理效率,能夠滿足低端用戶不太注重高可用服務的業務場景。

MySQL 主備版

MySQL 高可用版則是針對企業級用戶提供的高可用數據庫版本,提供 99.95% 的 SLA 保障。采用 Active-Standby 高可用架構,主節點和備節點之間通過 MySQL Binlog 進行數據 Replication。當主節點發生故障,備節點接管服務。同時還支持最多 5 個只讀節點,支持負載均衡的數據讀寫分離的訪問方式。

MySQL 金融版

MySQL 金融版是針對金融行業等高端用戶設計的高可用、高可靠云服務產品。一主兩備三節點架構,可跨 AZ 部署,任意一臺服務器宕機不影響業務可用性;基于 Paxos 協議,實現了分布式下數據的強一致性,擁有更加優異的故障恢復時間,滿足數據容災備份等業務場景的需求。

Taurus 的進化

65314483da2f81037112bc4ddf12f325.png

Taurus 采用計算與存儲解耦的技術架構,同時可以最多支持 15 個只讀節點。主節點和只讀節點之間是 Active-Active 的 Failover 方式,計算節點資源得到充分利用,由于使用共享存儲,進一步降低了用戶使用成本。

Taurus 的設計思想有幾個大的革新:

  • 將部分計算能力卸載到存儲節點
  • 軟硬件深度優化,充分利用 RDMA 網絡、NVME SSD 等硬件優勢
  • 日志即數據,與傳統 RDS for MySQL 相比,不再需要刷 page,所有更新操作都記錄日志,不再需要 double write,減少了網絡通信。

另外在 DB Server 設計上,完全擁抱開源生態,完全兼容 MySQL 8.0。

華為云 Taurus 和 Amazon Aurora 的一個共同設計哲學就是,先推出一寫多讀的版本,根據市場需求,適時推出多寫版本,滿足絕大多數 OLTP 應用場景和性能要求。

Taurus 架構設計原則:

  • 采用華為下一代云存儲(DFV)作為快速,可擴展,可靠和共享數據庫存儲。不復制存儲層中的已有功能,例如,數據復制,跨 AZ 可靠性,數據清理。
  • 單個數據庫集群應該只需要一份足夠可靠的數據庫副本集。所有只讀副本共享存儲在云存儲中,甚至跨 AZ,數據庫層中沒有邏輯復制。一寫多讀,沒有獨立的備用實例。主節點發生故障轉移時,只讀副本可以切換到接管主服務器。
  • 記錄為數據庫。僅順序寫入以最小化 SSD 磨損(避免寫入放大)
  • 只有數據庫日志通過網絡從數據庫計算機節點寫入 DFV 存儲層。沒有頁面檢查點和刷新跨網絡,沒有雙重寫入。基于 DFV 存儲層內的數據庫日志重建數據面,以避免繁重的網絡流量。
  • 基于跨 DFV 存儲節點的切片策略對數據庫進行分區,以支持大型數據庫卷。單個 DFV 存儲節點管理來自不同數據庫集群實例的多個分片,實現存儲容量和處理能力的無限擴展。

Taurus 數據庫關鍵技術點剖析

aa7c911f05b2ecd2f890cf01f8963ecb.png

Taurus 架構

如圖所示,Taurus 是一個分布式集群架構設計,采用計算與存儲分離的設計理念,滿足公有云計算環境下用戶業務彈性擴展的剛性需求。數據庫計算節點和存儲節點之間采用高速網絡互聯,并通過 RDMA 協議進行數據傳輸,使得 I/O 性能不再成為瓶頸。

數據庫節點采用和 MySQL 完全兼容的設計。主節點和只讀節點之間采用 Active-Active 的 Failover 方式,提供 DB 的高可用服務。同時 ,DB Server 之間僅需同步 Redo log 相關的元數據信息。

  1. SQL Nodes
  2. 管理客戶端連接、解析 SQL 請求,、分析執行計劃并執行和管理事務隔離級別
  3. 一主多讀
  4. 主庫和只讀松耦合
  5. 主庫和只讀通信少
  6. 快速 Failover
  7. 引入內核中的一些特性
  • Query result cache
  • Query plan cache
  • Online DDL

SQL Replication

只讀節點在本地 buffer pool 中維護數據頁的多個版本

  • 減少從存儲的遠端讀取數據頁

主庫交互

  • MVCC: 同步主庫當前活躍事務列表
  • 頁失效: 接收主庫頁失效列表

高速網絡下的 RDMA 協議

部署 RoCE RDMA 以減少網絡延遲并增加帶寬。在單個 AZ 中,Taurus 可以利用高速網絡(RDMA)來獲得更新和讀取的低延遲存儲 I/O,這對于低客戶端連接方案非常有用。

存儲抽象層 (SAL)

存儲抽象層 (SAL) 是邏輯層,將數據存儲和 SQL 前端、事務、查詢執行等進行隔離。由一組容量和處理能力按需擴展的分片節點組成,SAL 將所有 SQL 節點需要的數據頁按分片管理和橫向擴展。隨著數據庫規模的增長,可用資源(存儲、內存)隨著分片創建按比例增長。數據處理本地化,數據密集型操作是在存儲節點上按分片服務執行。

Taurus Storage

Taurus 存儲基于華為云存儲 DFV 持久層。DFV 持久層集群包括多個存儲節點。每個存儲節點包含多個 SSD 設備和適應 SSD 介質的 append 存儲服務進程。 DFV 持久層為 SQL 節點提供存儲接口。

Taurus 采用日志化方式處理 SQL 節點數據,即通常表述的“日志即數據”。數據組織采用面向 SSD 重新設計的 Append 模式,顯著減少系統寫放大,減少存儲時延。同時,在 Append 模式下,數據回滾和回檔變得非常快速。

Taurus 核心競爭力

成本更低

與傳統 RDS for MySQL 相比,只有一份存儲。添加只讀節點時,只需添加計算節點,無需額外購買存儲。只讀節點越多,節省的存儲成本越多。

擴展性、可靠性更高

  • 橫向擴展更快。Taurus 采用共享存儲,只需添加計算節點,無論多大數據量,只需 5 分鐘左右,并且支持 15 個只讀.
  • 縱向擴展更快。容器化部署,規格變更更快。
  • 主從倒換時間更快。 消除了復制延遲,RTO 有保證。
  • 數據庫 Crash 恢復更快。

性能更強

軟硬結合,基于硬件:Hi1822 卸載,NVMe SSD,RDMA,同時內核進行優化:去掉 double write,Query Cache/Plan Cache 優化,Innodb Lock Management 優化,Audit Plugin 效率優化,性能達到原生 MySQL 的 7 倍。

備份恢復更快

專為 Taurus 引擎定制的分布式存儲系統,極大提升數據備份、恢復性能

  • 強大的數據快照處理能力。AppendOnly vs. WriteInPlace,數據天然按多時間點多副本存儲,快照秒級生成,支持海量快照。
  • 任意時間點快速回滾。基于底層存儲系統的多時間點特性,不需增量日志回放,可直接實現按時間點回滾。
  • 并行高速備份、恢復。備份及恢復邏輯下沉到各存儲節點,本地訪問數據并直接與第三方存儲系統交互,高并發高性能。
  • 快速實例恢復。通過異步數據拷貝 + 按需實時數據加載機制, Taurus 實例可在數分鐘內達到完整功能可用。

總結

通過以上介紹不難發現,Taurus 的共享存儲架構將數據持久化放入新一代存儲中,充分保障數據強一致性和 0 丟失;采用軟硬件結合,充分利用 RDMA 網絡、NVME SSD 等硬件優勢,正是這些關鍵技術的整合創新,才使得 Taurus 的性能有了質的飛躍。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532972.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532972.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532972.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

spring html訪問統計,spring-mvc訪問本地html文件(示例代碼)

項目中要用到在線預覽word文檔,剛開始考慮是要將word轉成pdf文件,然后再直接在瀏覽器打開pdf文檔即可,但是項目部署在Linux下,在網上搜了一下沒有找到合適的方法,后來項目組討論用POI生成HTML文件,但是生成…

unity 是厘米還是米_喬丹19歲才1.75米,2年增高近20公分,這個長高方法你能堅持多久...

相信現在有很多的人希望自己在長大之后能去NBA打籃球,但是因為種種原因,最后還是放棄了這個想法, 很多人是因為自己的身體素質達不到要求,比如說天賦上沒有達到一個籃球運動員的身高,還有的是因為自己家庭的原因最后放…

win7變成xp風格了怎么改回_微軟看了會沉默,把 Windows 10 變成經典 98 風格

眾所周知「Windows 10」官方提供的主題都只是換換壁紙,所以喜歡折騰的小伙伴會選擇用「UltraUXThemePatcher」來讓「Windows 10」支持第三方主題,實現模仿各種風格,如 macOS、Win7、Ubuntu 等。但是由于「Windows 10」版本太多,導…

2021廣東高考成績排名如何查詢,2021年廣東高考個人排名怎么查詢,廣東高考成績排名查詢方法...

高考成績公布后,很多家長和學生咨詢我們,廣東高考個人成績排名位次如何查詢:廣東高考成績排名,可以通過省招生考試院發布的廣東一分一段表來查詢,也可以到聚志愿網站直接輸入分數查詢,一分一段它顯示每一個…

區塊如何防篡改_深入淺出:一條數據是如何完成上鏈的

一筆業務數據在區塊鏈處理的流程大致分為三個階段:分別是上鏈前處理階段、鏈上處理階段和智能合約處理階段。一.上鏈前處理階段業務數據上鏈前需要將業務數據處理,并且對信息進行簽名。這些過程可以通過對應的工具,比如序列化工具和各種橢圓曲…

鎖定計算機在哪里設置方法,怎樣鎖定電腦?如何設置電腦鎖屏【步驟詳解】

我們在日常使用電腦的時候,特別是自己的私人電腦時,難免會遇到上個廁所接個水之類的雜事需要離開位置的,也許可能就一兩分鐘不到的時間,這么點的時間如果關機的話又覺得實在是太麻煩了,但是又不想讓其它的人知道我們的…

python 安裝html,python安裝glob

python 里面的glob模塊是怎么用的新手剛學這一塊內容,不是很懂 這個模塊可以用來統計每個類型物品的統計glob是python自己帶的一個文件操作相關模塊,用它可以查找符合自己目的的文件,就類似于Windows下的文件搜索,支持通配符操作,…

hough變換檢測圓周_Python OpenCV 霍夫變換

霍夫變換(Hough Transform)是圖像處理中的一種特征提取技術,它通過一種投票算法檢測具有特定形狀的物體。Hough變換是圖像處理中從圖像中識別幾何形狀的基本方法之一。Hough變換的基本原理在于利用點與線的對偶性,將原始圖像空間的給定的曲線通過曲線表達…

關于未來計算機的想象作文600字,未來世界的想象作文600字

我背著書包漫無目的地走在街上,剛要出門的時候突然出現了一個大洞,我本想上前一看究竟,結果被石子絆了下去,一下就落進了那個黑洞里,我的世界陷入了一片黑暗。不知過了多久,我眼睛好不容易看到一絲光亮&…

creator qt 字體太小_qt ttf 字體太小的解決方法

編譯完成qt以后,發現qt的字體太小了原因是qt的dpi計算錯誤,這樣的情況會導致qt在不同的平臺上大小不一解決的方法就是設置好qt的dpi,qt是根據顯示器的物理長度或者寬度于分辨率的關系來計算dpi的,所以我們設置exportQWS_DISPLAY"LinuxFB:mmWidth95:0"export QWS_SIZE…

當前超級計算機的應用方興未艾,四川省若爾蓋縣高三下學期語文模擬卷(五)

四川省若爾蓋縣高三下學期語文模擬卷(五)姓名:________ 班級:________ 成績:________一、選擇題 (共3題;共6分)1. (2分)(2017海南模擬) 下列各句中劃線成語的使用,全都正確的一項是()①與做人一樣,李天來對待試驗同樣謹小慎微。他說&#xff…

easyui中onchange事件_React中類似Vue的“模板語法”

一、數據綁定類似 Vue 的 v-model,this.state { val: 1, companies: ["阿里巴巴", "騰訊", "百度", "京東"], };companyNameUpdate(e) { this.setState({ companyName: e…

html5著陸頁模板,多用途著陸頁HTML模板

資源下載此資源下載價格為5D幣,請先登錄資源文件列表apnew/css/animate.css , 74096apnew/css/bootstrap.min.css , 121260apnew/css/font-awesome.min.css , 27466apnew/css/jquery-ui.css , 36437apnew/css/jquery.carousel-3d.default.css , 3639apnew/css/mater…

php十六進制字符串轉成字節數組_10 天 5 千 Star!21 歲本科生給程序員開發的十六進制編輯器...

【導語】:ImHex 是一款界面美觀的十六進制編輯器,主要面向逆向工程師和程序員。如果你喜歡暗黑系編輯器,那它應該是你的菜。ImHex 最近在 GitHub 上非常火熱,上架五天就收獲了 2.5k Star,十天 5k Star。開發者介紹ImHe…

ie11用不了html5,HTML5拖放不能在IE11上運行

應用HTML5原生拖放功能,drop不適用于IE,與chrome和firefox配合使用。拖動似乎正在起作用,但對IE不感興趣。另一個小問題 - 在IE中,我的可拖動元素周圍有一個半透明的方塊,但它的背景是透明的(圖像是這樣完成的)&#x…

掃掠兩條引導線_《神都夜行錄》周年慶點燃線上線下,解讀國風二次元IP的成長之路...

自2016年國產二次元手游在市場實現登頂以來,該品類便一直呈明顯的上升趨勢,如今也依然是大小廠商乃至創業團隊的布局對象。不過具體到二次元手游的玩法和IP建設上,多數產品都選擇沿襲早期艦娘like的收集模式,再加上市面熱門的重度…

vi新建一個shell腳本_編寫第一個Shell腳本

Linux中有好多中不同的shell,bash是linux默認的shell,免費且容易使用。su切換為root權限1.創建shell腳本touch hello.sh2.編輯:vi hello.sh內容#! /bin/bash#the first programecho "hello world"3.保存并退出按Esc取消插入&#x…

四川三河職業學院計算機寢室,2020四川三河職業學院宿舍條件如何-有空調否?(宿舍圖片)...

對于要考的大學宿舍條件好不好,想必大家也是很關心的,下面就帶大家探索一番。(注:每年存在大學宿舍翻新的情況,數據與圖片可作為參考。。)1、四川三河職業學院宿舍條件學生宿舍近日,四川三河職業學院為2013級即將入住的…

安徽科技學院計算機二級,安徽科技大學2017年3月計算機二級考試報名時間

根據安徽省教育招生考試院要求,安徽科技學院2017年上半年全國計算機二級考試定于2017年3月25日至28日(具體時間見準考證)舉行。本次考試報名工作具體安排如下:一、開考科目、級別二、報名及繳費時間2017年2月13日上午9:00至2月28日下午17:30。三、報名方…

c# u盤使用記錄_U盤如何快速清除使用記錄【詳解】

大家在使用U盤的時候,是不是覺得只要將U盤拔下來,就不會在剛才的電腦中留下使用過的痕跡?其實不然,只要你在Windows下對U盤做過任何操作,系統都會一絲一毫的記錄下來,雖然這些在系統的資源管理器或記錄上不會明顯顯示…