日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

分布式系统基本副本协议

發(fā)布時(shí)間:2024/2/28 windows 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式系统基本副本协议 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、中心化副本控制協(xié)議

中心化副本控制協(xié)議的基本思路是由一個(gè)中心節(jié)點(diǎn)協(xié)調(diào)副本數(shù)據(jù)的更新、維護(hù)副本之間的一致性。

優(yōu)點(diǎn):協(xié)議相對(duì)較為簡(jiǎn)單,所有的副本相關(guān)的控制交由中心節(jié)點(diǎn)完成。并發(fā)控制也由中心節(jié)點(diǎn)完成。

缺點(diǎn):系統(tǒng)的可用性依賴于中心化節(jié)點(diǎn),當(dāng)中心節(jié)點(diǎn)異常時(shí)存在一定的停服務(wù)時(shí)間。

primary-secondary協(xié)議

primary-secondary協(xié)議(也稱 primary-backup)是中心化副本控制協(xié)議的非常常用的一種。在 primary-secondary 類型的協(xié)議中,副本被分為兩大類,其中有且僅有一個(gè)副本作為 primary 副本,除 primary 以外的副本都作為 secondary 副本。

維護(hù) primary 副本的節(jié)點(diǎn)作為中心節(jié)點(diǎn),中心節(jié)點(diǎn)負(fù)責(zé)維護(hù)數(shù)據(jù)的更新、并發(fā)控制、協(xié)調(diào)副本的一致性。

Primary-secondary 類型的協(xié)議一般要解決四大類問(wèn)題:數(shù)據(jù)更新流程、數(shù)據(jù)讀取方式、Primary副本的確定和切換、數(shù)據(jù)同步(reconcile)。

1、數(shù)據(jù)更新的基本流程

①數(shù)據(jù)更新都由 primary 節(jié)點(diǎn)協(xié)調(diào)完成。

②外部節(jié)點(diǎn)將更新操作發(fā)給 primary 節(jié)點(diǎn)

③primary 節(jié)點(diǎn)進(jìn)行并發(fā)控制即確定并發(fā)更新操作的先后順序

④primary 節(jié)點(diǎn)將更新操作發(fā)送給 secondary 節(jié)點(diǎn)

⑤primary 根據(jù) secondary 節(jié)點(diǎn)的完成情況決定更新是否成功并將結(jié)果返回外部節(jié)點(diǎn)

?

其中第4步,如果由primary節(jié)點(diǎn)同時(shí)將更新數(shù)據(jù)發(fā)送給其他secondary副本,則其他secondary副本的的更新受primary網(wǎng)絡(luò)帶寬的影響,最大為1/N.為了解決這個(gè)問(wèn)題,有些系統(tǒng)(GFS)使用接力的方式同步數(shù)據(jù)。

2、數(shù)據(jù)讀取方式

①如果只需要最終一致性,則讀取任何副本都可以滿足需求。

②如果需要會(huì)話一致性,則可以為副本設(shè)置版本號(hào),每次更新后遞增版本號(hào),用戶讀取副本時(shí)驗(yàn)證版本號(hào),從而保證用戶讀到的數(shù)據(jù)在會(huì)話范圍內(nèi)單調(diào)遞增。

primary-secondary 比較困難的是實(shí)現(xiàn)強(qiáng)一致性,以下是2中思路:

①如果始終只讀 primary 副本的數(shù)據(jù),可以實(shí)現(xiàn)強(qiáng)一致性,但是secondary將不提供讀服務(wù)。實(shí)踐中,如果副本不與機(jī)器綁定,以數(shù)據(jù)段為副本的基本單位,將副本分散到集群中個(gè),假設(shè)primary 也是隨機(jī)的確定的,那么每臺(tái)機(jī)器上都有一些數(shù)據(jù)的 primary 副本,也有另一些數(shù)據(jù)段的 secondary 副本,從而每臺(tái)服務(wù)器實(shí)際都提供讀寫服務(wù)。

②由?primary?控制節(jié)點(diǎn)?secondary?節(jié)點(diǎn)的可用性。當(dāng)?primary?更新某個(gè)?secondary?副本不成功時(shí),primary?將該?secondary?副本標(biāo)記為不可用,不可用的secondary?副本可以繼續(xù)嘗試與?primary?同步數(shù)據(jù)直到同步成功,primary將副本標(biāo)記為可用。這種方式依賴于一個(gè)中心元數(shù)據(jù)管理系統(tǒng),用于記錄哪些副本可用,哪些副本不可用。

3、primary副本的確定和切換

確定副本:在 primary-secondary 類型的分布式系統(tǒng)中,哪個(gè)副本是 primary 這一信息都屬于元信息,由專門的元數(shù)據(jù)服務(wù)器維護(hù)。

切換副本的難點(diǎn):

①如何發(fā)現(xiàn)primary節(jié)點(diǎn)異常,Lease 機(jī)制(后面介紹)

②切換primary后如何做到不影響副本的一致性。如何確定一個(gè) secondary 副本使得該副本上的數(shù)據(jù)與原primary一致?

由于分布式系統(tǒng)中可靠的發(fā)現(xiàn)節(jié)點(diǎn)異常是需要一定的探測(cè)時(shí)間的,這樣的探測(cè)時(shí)間通常是 10秒級(jí)別,在這 10 秒時(shí)間內(nèi),由于沒(méi)有 primary,系統(tǒng)不能提供更新服務(wù),甚至不能提供讀服務(wù)。因此,primary-backup 類副本協(xié)議的最大缺點(diǎn)就是primary切換帶來(lái)的一定的停服務(wù)時(shí)間。

4、數(shù)據(jù)同步

通常不一致的形式有三種:

①由于網(wǎng)絡(luò)分化等異常,secondary?上的數(shù)據(jù)落后于?primary?上的數(shù)據(jù)。回放?primary?上的操作日志。

②在某些協(xié)議下,secondary?上的數(shù)據(jù)有可能是臟數(shù)據(jù),需要被丟棄。臟數(shù)據(jù)是由于primary?副本沒(méi)有進(jìn)行某一更新操作,而?secondary?副本上反而進(jìn)行的多余的修改操作,從而造成secondary?副本數(shù)據(jù)錯(cuò)誤。可以設(shè)計(jì)一些基于?undo?日志的方式(后期分享)從而可以刪除臟數(shù)據(jù)。

③secondary?是一個(gè)新增加的副本,完全沒(méi)有數(shù)據(jù),需要從其他副本上拷貝數(shù)據(jù)。直接拷貝?primary?副本的數(shù)據(jù),但拷貝數(shù)據(jù)時(shí)?primary?副本需要能夠繼續(xù)提供更新服務(wù),這就要求?primary?副本支持快照(snapshot)功能。即對(duì)某一刻的副本數(shù)據(jù)形成快照,然后拷貝快照,拷貝完成后使用回放日志的方式追快照形成后的更新操作。

二、去中心化副本控制協(xié)議

去中心化副本控制協(xié)議沒(méi)有中心節(jié)點(diǎn),協(xié)議中所有的節(jié)點(diǎn)都是完全對(duì)等的,節(jié)點(diǎn)之間通過(guò)平等協(xié)商達(dá)到一致。從而去中心化協(xié)議沒(méi)有因?yàn)橹行幕?jié)點(diǎn)異常而帶來(lái)的停服務(wù)等問(wèn)題。

缺點(diǎn):協(xié)議過(guò)程通常比較復(fù)雜、效率低
Paxos?是唯一在工程中得到應(yīng)用的強(qiáng)一致性去中心化副本控制協(xié)議。

?

實(shí)例:

①GFS?系統(tǒng)的副本控制協(xié)議是典型的?Primary-Secondary?型協(xié)議,Primary?副本由?Master?指定,Primary?副本決定并發(fā)更新操作的順序。雖然在?GFS?中,更新操作的數(shù)據(jù)由客戶端提交,并在各個(gè)副本之間流式的傳輸,及由上一個(gè)副本傳遞到下一個(gè)副本,每個(gè)副本都即接受其他副本的更新,也向下更新另一個(gè)副本,但是數(shù)據(jù)的更新過(guò)程完全是由?primary?控制的,所以也可以認(rèn)為數(shù)據(jù)是由primary?副本同步到?secondary?副本的。

②Zookeeper?使用了基于?Paxos?的去中心化協(xié)議(后期分享)選出?primary?節(jié)點(diǎn),但完成?primary節(jié)點(diǎn)的選舉后,這兩個(gè)系統(tǒng)都轉(zhuǎn)為中心化的副本控制協(xié)議,即由?primary?節(jié)點(diǎn)負(fù)責(zé)同步更新操作到secondary?節(jié)點(diǎn)。

?

參考資料:《分布式系統(tǒng)原理介紹》作者:劉杰

如有錯(cuò)誤歡迎指正!

總結(jié)

以上是生活随笔為你收集整理的分布式系统基本副本协议的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。