91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Paxos算法的通俗理解

發布時間:2020-08-11 11:06:12 來源:ITPUB博客 閱讀:421 作者:chenfeng 欄目:MySQL數據庫
Paxos算法解決的問題是一個分布式系統如何就某個值(決議)達成一致。這個算法被認為是同類算法中最有效的。Paxos與MySQL相結合可以實現在分布式的MySQL數據的強一致性。

Paxos要解決的問題,是分布式系統中的一致性問題。那么到底什么是“分布式系統中的一致性問題”呢?在分布式系統中,為了保證數據的高可用,通常,我們會將數據保留多個
副本(replica),這些副本會放置在不同的物理的機器上。副本要保持一致,那么,所有副本的更新序列就要保持一致。因為數據的增刪改查操作一般都存在多個客戶端并發操作,
到底哪個客戶端先做,哪個客戶端后做,更新順序要保證。如果不是分布式,那么可以通過加鎖的方法,誰先申請到鎖誰就先操作,但這就存在單點問題。Paxos協議主要有兩種用法:
一種用法是用來實現全局的鎖服務或者命名和配置服務,例如Google Chubby以及Apache ZooKeeper。另外一種用法是用它來將用戶數據復制到多個數據中心,例如Google Megastore以及Google Spanner。

在Paxos算法中,主要有3種角色:
Proposer:提議者
Acceptor:決策者
Learner:最終決策學習者
實現的時候往往采用一組固定數目的Server,每個Server同時擔任上述三個角色。
Paxos算法分為以下三個階段:
1、Prepare階段
(1)Proposer向大多數Acceptor發起Proposal(epochNo,value)的Prepare請求。
(2)Acceptor收到Prepare請求,如果epochNo比之前接收到的小,直接拒絕;如果epochNo比之前已經接收的大,就將已經接收到的epochNo最大的Proposal返回到Proposer。
(3)Proposer發起的Proposal至少要收到大多數以上的Acceptor的Prepare應答后,才能進入接下來的Accept階段,否則需要重新進行Prepare階段向大多數Acceptor發起Prepare請求。
2、Accept階段:
(1)Proposer收到大多數的Acceptor的Prepare應答后,看Acceptor是否已經有被接受的Proposal。如果沒有已經接受的Proposal,就自己提出一個Proposal,發起Accept請求;如果已經有被接受的Proposal,就從中選出epochNo最大的Proposal,發起對該Proposal的Accept請求。
(2)Acceptor收到請求后,如果該Proposal的epochNo比它最后一次應答Prepare請求的epochNo要大,那么就接受該請求;否則拒絕該請求。
3、Learn階段:
所有Acceptor接受的Proposal要不斷通知Learner,或者Learner主動去查詢,一旦Learner確認Proposal被大多數的Acceptor接受,那么表示這個Proposal的Value被Chosen,Learner就可以學習這個Proposal的Value,同時自己的Sever上就不再受理Proposor的請求。

Paxos協議數據同步方式相對于基于傳統1主N備的同步方式有啥區別?
一般情況下,傳統數據庫的高可用都是基于主備來實現,1主1備2個副本,主庫crash后,通過HA工具來進行切換,提升備庫為主庫。在強一致場景下,復制可以開啟強同步,Oracle和Mysql都是類似的復制模式。但是如果備庫網絡抖動,或者crash,都會導致日志同步失敗,服務不可用。為此,可以引入1主N備的多副本形式,我們對比都是3副本的情況,一個是基于傳統的1主2備,另一種基于paxos的1主2備。傳統的1主兩備,進行日志同步時,只要有一個副本接收到日志并就持久化成功,就可以返回,在一定程度上解決了網絡抖動和備庫crash問題。但如果主庫出問題后,還是要借助于HA工具來進行切換,那么HA切換工具的可用性如何來保證又成為一個問題。基于Paxos的多副本同步其實是在1主N備的基礎上引入了一致性協議,這樣整個系統的可用性完全有3個副本控制,不需要額外的HA工具。而實際上,很多系統為了保證多節點HA工具獲取主備信息的一致性,采用了zookeeper等第三方接口來實現分布式鎖,其實本質也是基于Paxos來實現的。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

苏尼特右旗| 吴堡县| 五台县| 监利县| 拉萨市| 平陆县| 新宾| 重庆市| 墨竹工卡县| 静海县| 太白县| 衡阳县| 茂名市| 时尚| 永平县| 江阴市| 剑川县| 孟连| 邵武市| 天等县| 卢龙县| 宁波市| 桐柏县| 东方市| 大关县| 马尔康县| 营山县| 凭祥市| 抚松县| 遂昌县| 洪湖市| 永嘉县| 巴里| 长岭县| 虹口区| 乌鲁木齐县| 文化| 雅安市| 绍兴县| 绥阳县| 保德县|