新聞中心
是時(shí)候把分布式存儲(chǔ)系統(tǒng)的理論指導(dǎo)從CAP轉(zhuǎn)到PACELC
作者:常平 2018-06-08 09:10:49
存儲(chǔ)
存儲(chǔ)軟件
分布式 CAP理論是當(dāng)前分布式存儲(chǔ)系統(tǒng)設(shè)計(jì)的理論指導(dǎo),而PACELC理論是CAP理論的擴(kuò)展,分布式存儲(chǔ)系統(tǒng)設(shè)計(jì)的理論依據(jù)是時(shí)候從CAP理論擴(kuò)展為PACELC理論。

CAP理論是當(dāng)前分布式存儲(chǔ)系統(tǒng)設(shè)計(jì)的理論指導(dǎo),而PACELC理論是CAP理論的擴(kuò)展,分布式存儲(chǔ)系統(tǒng)設(shè)計(jì)的理論依據(jù)是時(shí)候從CAP理論擴(kuò)展為PACELC理論。
PACELC在wiki上的定義是
"It states that in case ofnetwork partitioning (P) in a distributed computer system, one has to choosebetween availability (A) and consistency (C) (as per the CAP theorem), but else(E), even when the system is running normally in the absence of partitions, onehas to choose between latency (L) and consistency (C)."
簡(jiǎn)單來(lái)說(shuō)這里的意思就是:”如果有分區(qū)partition (P),系統(tǒng)就必須在availability 和consistency (A and C)之間取得平衡; 否則else (E) 當(dāng)系統(tǒng)運(yùn)行在無(wú)分區(qū)情況下,系統(tǒng)需要在 latency (L) 和 consistency (C)之間取得平衡”
CAP理論認(rèn)為以下三者不能同時(shí)滿足:
1)一致性(Consistency): 所有的節(jié)點(diǎn)在同一時(shí)刻數(shù)據(jù)是完全一樣的;
2)可用性(Availability): 節(jié)點(diǎn)失效不會(huì)影響系統(tǒng)的IO;
3)分區(qū)容忍性(Partition Tolerance): 系統(tǒng)能支持網(wǎng)絡(luò)分區(qū)(網(wǎng)絡(luò)連接故障),即使分區(qū)之間的消息丟失系統(tǒng)也正常工作;
根據(jù)業(yè)務(wù)場(chǎng)景的不同,不同的分布式存儲(chǔ)系統(tǒng)會(huì)根據(jù)自身業(yè)務(wù)的需求在CAP三者之中進(jìn)行權(quán)衡, CAP理論的意義是在分布式存儲(chǔ)系統(tǒng)設(shè)計(jì)時(shí)需要權(quán)衡的因素,而非絕對(duì)的三者取其二,并且在CAP理論中沒(méi)有提到時(shí)延(Latency),而時(shí)延(Latency)卻是很重要的可用性(Availability)指標(biāo)。
因?yàn)镃AP沒(méi)有考慮到系統(tǒng)中的Latency因素,因此定義了一個(gè)新的模型PACELC,添加了Latency,如下圖:
當(dāng)前分布式存儲(chǔ)系統(tǒng)設(shè)計(jì)指導(dǎo)理論應(yīng)當(dāng)用PACELC理論替代CAP理論,理由如下:
1)PACELC更能滿足實(shí)際操作中分布式存儲(chǔ)的工作場(chǎng)景是更好的工程實(shí)現(xiàn)策略;
2)當(dāng)partition (P)存在的場(chǎng)景下,需要在availability 和consistency (A and C)之間獲得權(quán)衡,當(dāng)時(shí)實(shí)際上分布式系統(tǒng)中絕大多數(shù)時(shí)間里partition (P)是不存在的,那么就需要在latency (L) 和 consistency (C)之間取得權(quán)衡;
3)availability在不存在partition (P)的場(chǎng)景下跟 latency關(guān)聯(lián),在partition (P)時(shí)跟reliable指標(biāo)關(guān)聯(lián);
4)PACELC 可以在 latency vs consistency之間獲得平衡;
5)CAP 理論忽略了 一致性和時(shí)延之間的權(quán)衡。
PACELC建立在CAP之上,二者都描述了在一致性(Consistency),可用性(Availability)和分區(qū)容忍性(Partition Tolerance)之間的限制和權(quán)衡。而PACELC更進(jìn)一步描述了即使在沒(méi)有Partition的場(chǎng)景下,也存在Latency和Consistency之間的權(quán)衡,從而為分布式系統(tǒng)的Consistency模型提供了一個(gè)更為完整的理論依據(jù)。
要保證系統(tǒng)的高可用(high availability)那么就必須復(fù)制數(shù)據(jù),而進(jìn)行數(shù)據(jù)復(fù)制,就會(huì)出現(xiàn)在Consistency和Latency之間要求做個(gè)權(quán)衡。
舉個(gè)PACELC的應(yīng)用場(chǎng)景栗子,如下圖:
1、在強(qiáng)一致性復(fù)制場(chǎng)景下,需要三副本都下盤(pán)才能返回ok給client端,Master向Slave 復(fù)制數(shù)據(jù),Latancy的限制是 20ms,有時(shí)候,slave 2 硬盤(pán)或網(wǎng)絡(luò)出現(xiàn)故障,Master 往 Slave 復(fù)制數(shù)據(jù)的時(shí)延超過(guò) 20ms了,這個(gè)時(shí)候如果還一致等待 slave 2 返回結(jié)果再notify 給client就會(huì)出現(xiàn)性能和時(shí)延抖動(dòng),而且這種抖動(dòng)是經(jīng)常發(fā)生的長(zhǎng)尾效應(yīng)。
2、依據(jù)PACELC理論,我們可以在 consistency和Latency之間做個(gè)權(quán)衡,比如 slave2 節(jié)點(diǎn)的時(shí)延超過(guò) 20ms了,就不等待slave 2 返回,master 和 slave 1 返回結(jié)果給client即可,如果 slave 2 出現(xiàn) 超時(shí)的 次數(shù)超過(guò) 5次那么就認(rèn)為 這個(gè)節(jié)點(diǎn)可能出現(xiàn)故障,打個(gè)故障標(biāo)簽,進(jìn)行后續(xù)的處理。
本文標(biāo)題:是時(shí)候把分布式存儲(chǔ)系統(tǒng)的理論指導(dǎo)從CAP轉(zhuǎn)到PACELC
網(wǎng)站網(wǎng)址:http://m.fisionsoft.com.cn/article/coijghc.html


咨詢
建站咨詢
