曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

分布式數(shù)據(jù)庫PhxSQL設計與實現(xiàn)的實例分析

大?。?/span>0.6 MB 人氣: 2017-09-30 需要積分:1

  “本文詳細描述了PhxSQL的設計與實現(xiàn)。從MySQL的容災缺陷開始講起,接著闡述實現(xiàn)高可用強一致的思路,然后具體分析每個實現(xiàn)環(huán)節(jié)要注意的要點和解決方案,最后展示了PhxSQL在容災和性能上的成果。”

  設計背景

  互聯(lián)網(wǎng)應用中賬號和金融類關鍵系統(tǒng)要求和強調(diào)強一致性及高可用性。當面臨機器損壞、網(wǎng)絡分區(qū)、主備手工或者自動切換時,傳統(tǒng)的MySQL主備難以保證強一致性和高可用性。PhxSQL將MySQL集群構建在一致性完善的Paxos協(xié)議基礎上,保證了集群內(nèi)MySQL機器之間數(shù)據(jù)的強一致性和整個集群的高可用性。

  原生MySQL的容災缺陷

  MySQL容災方案

  MySQL有兩種常見的復制方案,異步復制和半同步復制。

  1. 異步復制方案

  Master對數(shù)據(jù)進行commit操作后再將數(shù)據(jù)異步復制到Slave。

  但數(shù)據(jù)無法保證成功復制,也就無法保證MySQL主備間的數(shù)據(jù)一致性,如圖1所示。

  分布式數(shù)據(jù)庫PhxSQL設計與實現(xiàn)的實例分析

  圖1 MySQL異步復制流程

  2. 半同步復制方案

  Master對數(shù)據(jù)進行commit操作前將數(shù)據(jù)復制到Slave,確認復制成功后再對數(shù)據(jù)進行commit操作。

  絕大多數(shù)情況下,半同步復制能保證MySQL主備間的數(shù)據(jù)一致性,如圖2所示。

  分布式數(shù)據(jù)庫PhxSQL設計與實現(xiàn)的實例分析

  圖2 MySQL半同步復制流程

  MySQL重啟流程

  半同步方案中的“半”是指Master在等待Slave的ACK失敗時將退化成異步復制。同時,MySQL在重啟時也不會執(zhí)行半同步復制。

  如圖3中的id(Gtid)=101數(shù)據(jù)是Master機器中新寫入到Binlog File的Binlog數(shù)據(jù)。但Master在復制數(shù)據(jù)到Slave的過程中MySQL宕機導致復制失敗。MySQL重啟時,數(shù)據(jù)(id=101)會被直接進行commit操作,隨后再將數(shù)據(jù)異步復制到Slave。(下文將已經(jīng)寫入到Binlog File但未進行commit操作的數(shù)據(jù)(id=101)稱為Pending Binlog。)

  分布式數(shù)據(jù)庫PhxSQL設計與實現(xiàn)的實例分析

  圖3 MySQL重啟時直接提交Pending Binlog

  該情況下MySQL容易出現(xiàn)Master-Slave之間數(shù)據(jù)不一致的情況,官方也描述了該問題。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關規(guī)定!

      ?