在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>數值算法/人工智能>

分布式數據庫PhxSQL設計與實現的實例分析

大小:0.6 MB 人氣: 2017-09-30 需要積分:1

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

  設計背景

  互聯網應用中賬號和金融類關鍵系統要求和強調強一致性及高可用性。當面臨機器損壞、網絡分區、主備手工或者自動切換時,傳統的MySQL主備難以保證強一致性和高可用性。PhxSQL將MySQL集群構建在一致性完善的Paxos協議基礎上,保證了集群內MySQL機器之間數據的強一致性和整個集群的高可用性。

  原生MySQL的容災缺陷

  MySQL容災方案

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

  1. 異步復制方案

  Master對數據進行commit操作后再將數據異步復制到Slave。

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

  分布式數據庫PhxSQL設計與實現的實例分析

  圖1 MySQL異步復制流程

  2. 半同步復制方案

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

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

  分布式數據庫PhxSQL設計與實現的實例分析

  圖2 MySQL半同步復制流程

  MySQL重啟流程

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

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

  分布式數據庫PhxSQL設計與實現的實例分析

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

  該情況下MySQL容易出現Master-Slave之間數據不一致的情況,官方也描述了該問題。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發表評論

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

      發表評論,獲取積分! 請遵守相關規定!

      ?
      主站蜘蛛池模板: 亚洲综合春色另类久久| 香蕉视频一级| 2017亚洲男人天堂| 日日干夜夜欢| 亚洲乱码一二三四区| 亚洲综合资源| 特黄特黄视频| 成人亚洲综合| 天天干网址| 亚洲综合一二三区| 三级在线观看视频网站| luxu259在线中文字幕| 视频 在线| 天天色综合色| www.五月天婷婷| 奇米影视亚洲狠狠色777不卡| 亚洲综合成人在线| 很色视频| 五月天婷婷久久| 亚洲综合精品一区二区三区中文| 四虎永久在线观看视频精品| 丁香婷婷综合五月综合色啪| se94se最新网站| 亚洲免费视频在线观看| 国产欧美一区二区三区观看| 成人黄色三级| 久久久国产高清| 久久婷婷国产一区二区三区| 理论片午夜| 亚洲韩国欧美一区二区三区| 欧美在线一级视频| 夜夜狠| 亚洲偷偷| 美女免费黄| 亚洲高清在线视频| 视频一区二区免费| 久久婷婷色一区二区三区| 国产精品天天看天天爽| 五月婷婷色视频| 午夜网站免费版在线观看| 男女交性动态免费视频|