深度 | 兩種複製技術大比拼 看阿里雲RDS企業版 VS 開源MySQL誰更勝一籌?

2021-01-20 阿里雲資料庫

本文作者:胡煒,阿里雲資料庫資深技術專家

阿里雲RDS for MySQL企業版最大特點是採用了與社區版不同的複製技術,讓數據在不同的MySQL實例節點之間傳播。複製基於Paxos協議,能夠確保任意1/2的節點宕機或者故障都不會影響集群數據的一致性,讓MySQL服務擁有真正的RPO=0的能力,可以應對對數據安全性、一致性有高要求的應用場景。

企業版RDS for MySQL的核心複製技術是X-Paxos。MySQL官方的半同步複製也能夠在大部分場景下保證主備之間的數據一致。從實現來說X-Paxos 維護著多個節點的Paxos日誌狀態機以及數據狀態機,是一個遠複雜於MySQL半同步複製的複製技術,那在正常的運行狀態中,是否X-Paxos的複製就會比半同步更慢呢?首先我們回顧一下兩者的技術實現


MySQL半同步複製的實現是建立在MySQL異步複製的基礎上的。在開啟半同步複製時,Master在返回用戶的提交之前會等待Slave的響應。當Slave超時時,半同步複製退化成異步複製。這也是為什么半同步無法確保100%用戶數據不丟失。具體的流程如下圖:當用戶在Slave 伺服器上執行start slave命令之後,開始進行主從複製,Slave伺服器的IO線程會通過在master上已經授權的複製用戶權限請求連接master伺服器,並請求從binlog日誌文件或者是某個GTID之後的指定位置之後開始發送binlog日誌內容。Master伺服器接收到來自Slave伺服器的IO線程的請求後,Master Dump線程會根據Slave伺服器的IO線程請求的信息連續讀取指定binlog日誌文件指定位置之後的binlog event,逐個發送給Slave的IO線程。當Slave伺服器的IO線程獲取到Master發送的日誌後會將binlog日誌內容依次寫到Slave端自身的Relay Log文件,SQL線程會實時檢測本地Relay Log 中IO線程新增的日誌內容,然後及時把RelayLOG 文件中的內容解析成sql語句並應用到當前的資料庫中。半同步的實現是讓Master在執行完客戶端事務提交之後不立刻返回給客戶端,而至少等待Slave接收到事務的日誌並且寫入到relay log 之後才返回給客戶端。因此能夠提高安全性,確保用戶已經提交的數據,至少存在於Master和一個Slave,確保單點故障不會讓用戶提交的事務丟失。RDS企業版的複製是一個純異步,流水線驅動的Paxos協議庫來驅動的,企業版在使用X-Paxos庫的時候使用binlog作為Paxos日誌,當集群中的多數派接收到事務日誌後返回客戶端提交,除此之外X-Paxos使用了高效的並行技術以及傳輸技術來保障複製的效率。X-Paxos自己管理集群實例,包含了自動選主以及日誌複製能力。企業版本的複製是默認啟動的,複製的流程和社區版本的MySQL也存在著一些區別。用戶在提交階段生成binlog之後, X-Paxos就會將其打包發往其他的節點。等到多數派的節點日誌寫入binlog後,客戶端會收到事務提交成功的請求。我們在相同的環境部署了RDS企業版以及社區的MySQL 5.7 ,實驗使用硬體均為8C32G,  兩個節點之間的網絡RTT為1ms。測試場景我們採用Sysbench的 insert 純寫,純寫場景非常考驗日誌同步的效率。下圖的對比結果橫軸代表並發請求數目,縱軸代表QPS,單位為萬。為什麼會有這樣的差別呢?對比事務的響應時間,以及網絡帶寬,我們發現雖然X-Paxos的複製耗時略長一點,但是企業版在運行期間網絡帶寬使用是明顯高於社區版本半同步的。這說明企業版RDS的X-Paxos複製技術的並行度更好,這也就能解釋為什麼測試結果吞吐會有差別,而且這樣的優勢會隨著網絡RTT的增加而增加。接下來就介紹一下RDS企業版的複製是怎麼做的。X-Paxos採用了全異步的事件驅動框架,日誌的產生、投遞、傳輸都是由一個統一的線程池來進行調度,並且通過多個IO線程來響應各種變動的事件,異步化的好處是能夠充分利用CPU,避免無謂的同步等待,換取最大的QPS吞吐。目前在單個分區Paxos中可以完全的使用多線程的能力,所有的任務都有通用的woker來運行,消除了CPU的瓶頸。依賴於服務層的多線程異步框架和異步網絡層,X-Paxos除了必要的協議串行點外,大部分操作都可以並發執行,並且部分協議串行點採用了無鎖設計,可以有效利用多線程能力。社區版MySQL的複製採用了單線程同步發送的方式傳遞Binlog。X-Paxos針對高延遲網絡做了大量的協議優化嘗試和測試,通過合理的Batching和Pipelining,設計並實現了一整套自適應的針對高延遲高吞吐和低延遲高吞吐網絡的通信模式,極大的提升了日誌傳輸的性能。· Batching:X-Paxos將多個日誌合併成單個消息進行發送;Batching可以有效的降低消息粒度帶來的額外損耗,提升吞吐。但是過大Batching容易造成單請求的延遲過大,導致並發請求數過高,繼而影響了吞吐和請求延遲。X-Paxos有一套自適應的動態調整機制,決定batching的大小,提升吞吐。· Pipelining:在上一個消息返回結果以前,並發的發送下一個消息到對應節點的機制,通過提高並發發送消息數量(Pipelining數量),可以有效的降低並發單請求延遲,同時在transmission delay小於propagationdelay的時候(高延遲高吞吐網絡),有效提升性能。Pipeling的引入,需要解決日誌的亂序問題,特別是在異地場景下,window加大,加大了亂序的概率。X-Paxos實現了一個高效的亂序處理模塊,可以對底層日誌實現屏蔽亂序問題,實現高效的亂序日誌存儲。在帶寬有限的情況下,對傳輸的日誌進行壓縮可以有效的節約傳輸帶寬提升吞吐,社區版本的MySQL是採用默認的序列化方式將binlog以字節流的方式傳輸到Slave端, X-Paxos可以對binlog進行可選擇性的壓縮。目前可以選擇的包括lz4和zstd壓縮算法,兩者都能夠在壓縮率以及壓縮解壓速率上有非常好的平衡,在測試中能夠有效的將傳輸量壓縮到5倍以上,而延遲上只有略微增加,這是CPU和帶寬之間的平衡,可以根據不同的網絡情況使用不同的壓縮技術。阿里雲RDS企業版更換了複製的方式之後獲得了強大的一致性能力,並且在傳輸方面做了一系列的優化來確保複製的吞吐和性能,特別是在高延遲下,可以有效控制帶寬獲得儘可能大的吞吐。社區的Group Replication也在這條道路上不斷演進。社區版本的異步複製以及基於異步複製的半同步在傳輸速率上卻一直沒有太大的進展。如果用戶有跨機房跨AZ的容災部署需求時,傳統的半同步複製方式有時會成為系統吞吐的瓶頸,此時RDS企業版可以成為一個更好的選擇

相關焦點

  • 信也科技開源兩大自研中間件技術 共築科技開放生態
    來源:時代周報信也科技開源兩大自研中間件技術 共築科技開放生態在技術的領域裡,開源已經成為一種潮流,既能夠推動技術創新,也是企業自身技術實力的體現。近日,信也科技宣布其自研的資料庫訪問中間件DAS和消息中間件PMQ正式開源。據悉,這兩項技術在信也科技內部均已投入核心業務應用,取得了良好成效。
  • MySql DAL中間件總結
    來源:民工哥技術之路ID:jishuroad作者:西門飛冰1.前言mysql作為網際網路公司都會用到的資料庫,如果在使用過程中出現性能問題,會採用mysql的橫向擴展,使用主從複製來提高讀性能,要是解決寫入問題,需要進行分庫分表。
  • 高性能Mysql主從架構的複製原理及配置詳解
    為了開始複製,你可以運行:mysql> START SLAVE;運行SHOW SLAVE STATUS查看輸出結果:在這裡主要是看:Slave_IO_Running=YesSlave_SQL_Running=Yesslave的I/O和SQL線程都已經開始運行,而且Seconds_Behind_Master不再是NULL。
  • 阿里雲攜手開源中國發布百萬懸賞項目
    阿里雲攜手開源中國發布百萬懸賞項目 2015年10月21日 21:10作者:可昕編輯:可昕文章出處:泡泡網原創     近日,阿里雲與開源中國達成戰略合作
  • 國產信息基礎軟硬體行業深度報告:開源、遷移、上雲、生態
    開源的「槓桿」作用:通過參與開源資源項目,甚至逐漸達到開源社區的引領地位,相當於以自有 的研發資源撬動了整個社區的研發力量。而且,一部分開源社區的核心團隊、管理團隊和運維資金, 都是由主導企業提供,則這種情況下,開源社區版本就成為企業的商業版軟體的「試驗田」,比如 著名的 Linux 作業系統廠商 Red Hat 以 Fedora 和 CentOS 作為創意試驗版和先行體驗版。
  • 中國機器狗vs美國機器狗,猜猜誰更勝一籌?對比一下就知道了!
    中國機器狗vs美國機器狗,猜猜誰更勝一籌?對比一下就知道了!科技改變生活,創意帶來無限可能,在科學技術的發展之下,我們見到了各種各樣的機器人,雖然科技無國界,但有比較才有進步的可能性,中國機器狗vs美國機器狗,猜猜誰更勝一籌?對比一下就知道了!
  • 「蟻」「貓」安全大比拼 看誰才是真正的「護航使者」
    今天,我們來一場酣暢淋漓的「蟻」「貓」安全大比拼,看誰才是真正的「護航使者」。為更公平地進行對比,我們選擇了小螞蟻15萬蟻粉款蟻炫版(以下簡稱小螞蟻15萬蟻粉款)和歐拉黑貓2021款標準型(以下簡稱歐拉黑貓),倆車補貼後售價均為7.38萬元。
  • 阿里雲數據中臺面向三大領域與生態合作共建
    與生態共建行業賦能的數據中臺市場自今年6月對外發布零售、金融、政務、網際網路企業等4大行業數據中臺解決方案起,阿里雲數據中臺正在逐步從提供通用性能力走向賦能垂直行業的深地。未來持續在行業領域深度賦能是阿里雲數據中臺發展的關鍵詞。
  • ...等近千萬美元Pre-A輪投資,研發開源的物聯網大數據平臺TDengine
    本輪融資主要用於進一步打磨產品、建立銷售和技術支持團隊、開拓以美國為主的海外市場。36氪曾報導,濤思數據曾在2019年2月和2017年6月宣布獲得兩輪天使投資,投資方包括永輝瑞金、溫青投資、明勢資本和蠻子基金。濤思數據創立於2017年5月,主要業務是時序空間大數據的存儲、查詢、分析和計算。
  • 網紅素顏大比拼,小霸寵軟綿可愛,艾北表情個性十足,誰更勝一籌
    網紅素顏大比拼,小霸寵長相軟綿可愛,艾北表情個性十足,誰更勝一籌?在網絡上面,最不缺的就是好看的妹子。達人千千萬,顏值佔大半。現如今網絡上面好看的網紅多的是,無論是天生自然的顏值網紅,還是化妝達人的美妝博主,作品都十分令人驚豔。
  • 投入20 億,賦能 1 萬家,阿里雲正式啟動雲原生合作夥伴計劃
    伯俊軟體 CEO 孫一暉曾表示,過去 20 年,伯俊積累了 3000 多個品牌客戶,幾乎所有的客戶都在天貓上面做零售,所以伯俊和阿里巴巴的合作時間很長,但是和阿里雲的合作,是始於 2017 年。在那一年,伯俊軟體與阿里雲全線展開深度合作,並提出了「All in 阿里雲」的發展戰略,與阿里雲合作研發了 8 款聯合解決方案,助力數千家零售企業以更低成本向數位化方向推進。
  • 技術新趨勢的底盤:解謎全球最悠久開源軟體企業
    舉個例子,你常用的Android手機,其系統是以Linux為基礎開發的;為你提供日常搜索、網購、網上聊天的企業們通過Linux提供網際網路服務;世上絕大多數高性能計算機採用Linux系統;企業的數據中心、混合雲、私有雲等IT基礎設施都採用開源技術支撐。在人工智慧、雲計算、5G接踵而來的今天,開源的角色變得越發不可替代。
  • 深度|阿里雲李飛飛:資料庫發展的幾個重要趨勢
    李飛飛,阿里巴巴集團副總裁、高級研究員,阿里雲智能資料庫事業部總負責人上世紀80年代初,資料庫系統逐步走上信息技術舞臺的中央;2000年開始,大數據技術興起;再到2010年後,雲計算熱度持續升溫;技術的進程走到了今天這個奇妙的節點,看向未來有幾個趨勢可能會發生。僅以此文,分享一些淺見和實踐。
  • 貓咪VS狗狗:優點大比拼,看誰更優秀
    貓和狗是被人提及最多的寵物,養貓的人和養狗的人總要拿各自愛寵的特點來相比較,雖說這兩種萌寵不一樣,但日常生活中有些作用、行為、本領還是差不多的。那麼就來做一個比較吧,拿出貓和狗各自比較相似的共同點來比比,看看誰更勝一籌。貓咪:「我能夠上樹,不管多高只要想爬就能夠爬上去。」
  • 網紅素顏大比拼,小霸寵長相軟綿可愛,艾北表情個性十足,誰更勝一籌?
    網紅素顏大比拼,小霸寵長相軟綿可愛,艾北表情個性十足,誰更勝一籌? 在網絡上面,最不缺的就是好看的妹子。達人千千萬,顏值佔大半。現如今網絡上面好看的網紅多的是,無論是天生自然的顏值網紅,還是化妝達人的美妝博主,作品都十分令人驚豔。
  • 不變的初心,百度飛槳開源生態的堅持與堅守
    百度首席技術官王海峰在12月20日召開的「WAVE SUMMIT+2020」深度學習開發者峰會上演講時表示,「開源開放的精神內涵,已不僅是技術開發領域的協作機制,更是驅動技術創新和加速產業發展的核心動能」。被稱為AI時代作業系統和百度AI底座的開源深度學習平臺飛槳也帶來了八大全新發布與升級。
  • 阿里雲官網首頁改版——生於海量,領先時代
    編輯導讀:官網是企業的一張「臉」,記錄了企業一路的發展歷程。隨著產品的迭代升級,官網首頁改版設計是常常會遇到的問題。在進行首頁改版時,設計師需要考慮哪些因素?本文作者從阿里雲官網首頁改版的項目出發,深入淺出闡述了首頁的重要性以及設計思考,與大家分享。
  • IDC公布中國深度學習市場綜合份額:百度超越Facebook位列第二
    AI時代,深度學習平臺處於承上啟下的核心位置,相當於"智能時代的作業系統",開源框架的繁榮極大地驅動了深度學習的落地。百度CTO王海峰認為,開源開放是驅動技術創新和加速產業發展的核心動能,在以深度學習為代表的人工智慧發展浪潮中,產業界已經成為驅動開源開放的重要力量,而成熟的開源開放技術生態與開放平臺,也正在推動社會各界加快融合發展。
  • 阿里雲:從「亞洲巨象」到「全球航母」
    編者按:成立不到8年時間,走向海外僅2年,能在國際巨頭的地盤上站穩腳,阿里雲的全球化之路必然會讓眾多追隨者嫉妒不已,但這卻是無法複製的「孤本」。  通過阿里雲,中國企業再也不需在海外布局技術人員,在國內就可以管理全球的業務,這在以前是完全不可想像的。  讓外國人「大吃一驚」的中國技術  伴隨阿里雲全球數據中心布局,一同出海的是中國自主研發的大規模計算作業系統飛天。