分布式數(shù)據(jù)庫PhxSQL設(shè)計(jì)與實(shí)現(xiàn)的實(shí)例分析
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
“本文詳細(xì)描述了PhxSQL的設(shè)計(jì)與實(shí)現(xiàn)。從MySQL的容災(zāi)缺陷開始講起,接著闡述實(shí)現(xiàn)高可用強(qiáng)一致的思路,然后具體分析每個(gè)實(shí)現(xiàn)環(huán)節(jié)要注意的要點(diǎn)和解決方案,最后展示了PhxSQL在容災(zāi)和性能上的成果?!?/p>
設(shè)計(jì)背景
互聯(lián)網(wǎng)應(yīng)用中賬號(hào)和金融類關(guān)鍵系統(tǒng)要求和強(qiáng)調(diào)強(qiáng)一致性及高可用性。當(dāng)面臨機(jī)器損壞、網(wǎng)絡(luò)分區(qū)、主備手工或者自動(dòng)切換時(shí),傳統(tǒng)的MySQL主備難以保證強(qiáng)一致性和高可用性。PhxSQL將MySQL集群構(gòu)建在一致性完善的Paxos協(xié)議基礎(chǔ)上,保證了集群內(nèi)MySQL機(jī)器之間數(shù)據(jù)的強(qiáng)一致性和整個(gè)集群的高可用性。
原生MySQL的容災(zāi)缺陷
MySQL容災(zāi)方案
MySQL有兩種常見的復(fù)制方案,異步復(fù)制和半同步復(fù)制。
1. 異步復(fù)制方案
Master對(duì)數(shù)據(jù)進(jìn)行commit操作后再將數(shù)據(jù)異步復(fù)制到Slave。
但數(shù)據(jù)無法保證成功復(fù)制,也就無法保證MySQL主備間的數(shù)據(jù)一致性,如圖1所示。
圖1 MySQL異步復(fù)制流程
2. 半同步復(fù)制方案
Master對(duì)數(shù)據(jù)進(jìn)行commit操作前將數(shù)據(jù)復(fù)制到Slave,確認(rèn)復(fù)制成功后再對(duì)數(shù)據(jù)進(jìn)行commit操作。
絕大多數(shù)情況下,半同步復(fù)制能保證MySQL主備間的數(shù)據(jù)一致性,如圖2所示。
圖2 MySQL半同步復(fù)制流程
MySQL重啟流程
半同步方案中的“半”是指Master在等待Slave的ACK失敗時(shí)將退化成異步復(fù)制。同時(shí),MySQL在重啟時(shí)也不會(huì)執(zhí)行半同步復(fù)制。
如圖3中的id(Gtid)=101數(shù)據(jù)是Master機(jī)器中新寫入到Binlog File的Binlog數(shù)據(jù)。但Master在復(fù)制數(shù)據(jù)到Slave的過程中MySQL宕機(jī)導(dǎo)致復(fù)制失敗。MySQL重啟時(shí),數(shù)據(jù)(id=101)會(huì)被直接進(jìn)行commit操作,隨后再將數(shù)據(jù)異步復(fù)制到Slave。(下文將已經(jīng)寫入到Binlog File但未進(jìn)行commit操作的數(shù)據(jù)(id=101)稱為Pending Binlog。)
圖3 MySQL重啟時(shí)直接提交Pending Binlog
該情況下MySQL容易出現(xiàn)Master-Slave之間數(shù)據(jù)不一致的情況,官方也描述了該問題。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
下載地址
分布式數(shù)據(jù)庫PhxSQL設(shè)計(jì)與實(shí)現(xiàn)的實(shí)例分析下載
相關(guān)電子資料下載
- 多方位優(yōu)化!憶聯(lián)分布式數(shù)據(jù)庫存儲(chǔ)解決方案,助力MySQL實(shí)現(xiàn)高性能、低時(shí)延 357
- **分布式數(shù)據(jù)庫|數(shù)據(jù)庫數(shù)據(jù)類型** 157
- 數(shù)字化轉(zhuǎn)型下我國分布式數(shù)據(jù)庫應(yīng)用挑戰(zhàn)及發(fā)展建議 213
- 華為云新一代分布式數(shù)據(jù)庫GaussDB正式發(fā)布 521
- 華為新一代分布式數(shù)據(jù)庫GaussDB向全球客戶提供服務(wù) 223
- 華為云新一代分布式數(shù)據(jù)庫GaussDB,給世界一個(gè)更優(yōu)選擇 386
- 如何對(duì)全國分布式數(shù)據(jù)庫機(jī)房動(dòng)環(huán)進(jìn)行監(jiān)控和報(bào)警 59
- 美國數(shù)倉巨頭退出中國 國產(chǎn)新一代分布式數(shù)據(jù)庫開啟達(dá)夢(mèng)新紀(jì)元 209
- 低延遲的分布式數(shù)據(jù)庫架構(gòu)對(duì)于新興的霧應(yīng)用程序至關(guān)重要 250
- 榮膺桂冠!中興GoldenDB蟬聯(lián)中國金融級(jí)分布式數(shù)據(jù)庫第一 640