国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
ACID, BASE和CAP(轉(zhuǎn))
云計(jì)算平臺(tái)是非常巨大的分布式系統(tǒng),需要處理龐大的處理請(qǐng)求,因此任何小概率事件在此平臺(tái)中都必然發(fā)生。


DBMS強(qiáng)調(diào)ACID:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。其中的一致性強(qiáng)調(diào)當(dāng)程序員定義的事務(wù)完成時(shí),數(shù)據(jù)庫(kù)處于一致的狀態(tài),如對(duì)于轉(zhuǎn)帳來(lái)說(shuō),事務(wù)完成時(shí)必須是A少了多少錢B就多了多少錢。而對(duì)于很多互聯(lián)網(wǎng)應(yīng)用來(lái)說(shuō),對(duì)于一致性和隔離性的要求可以降低,而可用性(Availability)的要求則更為明顯。從而產(chǎn)生了兩種弱一致性的理論:BASE和CAP。

BASE:Basically Availble --基本可用;Soft-state --;Eventual Consistency --最終一致性

CAP: Consistency 一致性;Availability 可用性; Tolerance of networkPartition分區(qū)容忍性(可理解為部分節(jié)點(diǎn)故障或節(jié)點(diǎn)之間連接故障下系統(tǒng)仍可正常工作)。Brewer提出的該經(jīng)驗(yàn)理論認(rèn)為這三個(gè)目標(biāo)最多只能達(dá)成兩個(gè),而另一個(gè)則需要通過(guò)其他方式來(lái)彌補(bǔ)。


如果網(wǎng)絡(luò)中不存在分區(qū),客戶端和存儲(chǔ)系統(tǒng)在同一環(huán)境中,通過(guò)分布式事務(wù)機(jī)制可以保證一致性和可用性。但在大型網(wǎng)絡(luò)系統(tǒng)中,分區(qū)是必然存在的,因此一般的選擇只能是在一致性和可用性之間權(quán)衡和折衷。如Ebay的經(jīng)驗(yàn)盡可能保證可用性,但采用周密調(diào)整數(shù)據(jù)庫(kù)操作的次序、異步恢復(fù)事件,以及數(shù)據(jù)核對(duì)(reconciliation)或者集中決算(settlement batches)等方式來(lái)幫助系統(tǒng)達(dá)到最終一致性。


實(shí)際互聯(lián)網(wǎng)系統(tǒng)往往都是ACID和BASE兩種系統(tǒng)的結(jié)合,例如用戶身份數(shù)據(jù)、交易數(shù)據(jù)通常采取ACID準(zhǔn)則。

Guy Pardon認(rèn)為,CAP理論認(rèn)為三者不能同時(shí)達(dá)到是假定CAP被滿足是在at the same moment intime,如果放棄這個(gè)假定就可以得到三者都滿足的方案。但是在我看來(lái),其方案也只是在可用性和一致性之間的折衷而已。放棄了讀寫一致性,讀到的可能只是cache中的快照而不是最新值;通過(guò)在系統(tǒng)無(wú)分區(qū)時(shí)才執(zhí)行寫入隊(duì)列來(lái)保證數(shù)據(jù)更新一致性,而結(jié)果則是異步獲得,相當(dāng)于是對(duì)寫入可用性要求的一種降低。

數(shù)據(jù)一致性通常指關(guān)聯(lián)數(shù)據(jù)之間的邏輯關(guān)系是否正確和完整。而數(shù)據(jù)存儲(chǔ)的一致性模型則可以認(rèn)為是存儲(chǔ)系統(tǒng)和數(shù)據(jù)使用者之間的一種約定。如果使用者遵循這種約定,則可以得到系統(tǒng)所承諾的訪問(wèn)結(jié)果。
常用的一致性模型有:
a、嚴(yán)格一致性(linearizability, strict/atomic Consistency):讀出的數(shù)據(jù)始終為最近寫入的數(shù)據(jù)。這種一致性只有全局時(shí)鐘存在時(shí)才有可能,在分布式網(wǎng)絡(luò)環(huán)境不可能實(shí)現(xiàn)。

b、順序一致性(sequential consistency):所有使用者以同樣的順序看到對(duì)同一數(shù)據(jù)的操作,但是該順序不一定是實(shí)時(shí)的。
c、因果一致性(causal consistency):只有存在因果關(guān)系的寫操作才要求所有使用者以相同的次序看到,對(duì)于無(wú)因果關(guān)系的寫入則并行進(jìn)行,無(wú)次序保證。因果一致性可以看做對(duì)順序一致性性能的一種優(yōu)化,但在實(shí)現(xiàn)時(shí)必須建立與維護(hù)因果依賴圖,是相當(dāng)困難的。
d、管道一致性(PRAM/FIFO consistency):在因果一致性模型上的進(jìn)一步弱化,要求由某一個(gè)使用者完成的寫操作可以被其他所有的使用者按照順序的感知到,而從不同使用者中來(lái)的寫操作則無(wú)需保證順序,就像一個(gè)一個(gè)的管道一樣。 相對(duì)來(lái)說(shuō)比較容易實(shí)現(xiàn)。
e、弱一致性(weak consistency):只要求對(duì)共享數(shù)據(jù)結(jié)構(gòu)的訪問(wèn)保證順序一致性。對(duì)于同步變量的操作具有順序一致性,是全局可見(jiàn)的,且只有當(dāng)沒(méi)有寫操作等待處理時(shí)才可進(jìn)行,以保證對(duì)于臨界區(qū)域的訪問(wèn)順序進(jìn)行。在同步時(shí)點(diǎn),所有使用者可以看到相同的數(shù)據(jù)。
f、 釋放一致性(release consistency):弱一致性無(wú)法區(qū)分使用者是要進(jìn)入臨界區(qū)還是要出臨界區(qū),釋放一致性使用兩個(gè)不同的操作語(yǔ)句進(jìn)行了區(qū)分。需要寫入時(shí)使用者acquire該對(duì)象,寫完后release,acquire-release之間形成了一個(gè)臨界區(qū),提供 釋放一致性也就意味著當(dāng)release操作發(fā)生后,所有使用者應(yīng)該可以看到該操作。
g、最終一致性(eventualconsistency):當(dāng)沒(méi)有新更新的情況下,更新最終會(huì)通過(guò)網(wǎng)絡(luò)傳播到所有副本點(diǎn),所有副本點(diǎn)最終會(huì)一致,也就是說(shuō)使用者在最終某個(gè)時(shí)間點(diǎn)前的中間過(guò)程中無(wú)法保證看到的是新寫入的數(shù)據(jù)??梢圆捎米罱K一致性模型有一個(gè)關(guān)鍵要求:讀出陳舊數(shù)據(jù)是可以接受的。
h、delta consistency:系統(tǒng)會(huì)在delta時(shí)間內(nèi)達(dá)到一致。這段時(shí)間內(nèi)會(huì)存在一個(gè)不一致的窗口,該窗口可能是因?yàn)閘og shipping的過(guò)程導(dǎo)致。

最終一致性的幾種具體實(shí)現(xiàn):
1、讀不舊于寫一致性(Read-your-writes consistency):使用者讀到的數(shù)據(jù),總是不舊于自身上一個(gè)寫入的數(shù)據(jù)。
2、會(huì)話一致性(Session consistency):比讀不舊于寫一致性更弱化。使用者在一個(gè)會(huì)話中才保證讀寫一致性,啟動(dòng)新會(huì)話后則無(wú)需保證。
3、單讀一致性(Monotonic read consistency):讀到的數(shù)據(jù)總是不舊于上一次讀到的數(shù)據(jù)。
4、單寫一致性(Monotonic write consistency):寫入的數(shù)據(jù)完成后才能開(kāi)始下一次的寫入。
5、寫不舊于讀一致性(Writes-follow-reads consistency):寫入的副本不舊于上一次讀到的數(shù)據(jù),即不會(huì)寫入更舊的數(shù)據(jù)。
Werner Vogels認(rèn)為:在很多互聯(lián)網(wǎng)應(yīng)用中,單讀一致性+讀不舊于寫一致性可以提供足夠的一致性了。

Werner Vogels基于NWR模型來(lái)分析一致性,該模型決定了亞馬遜云計(jì)算技術(shù)架構(gòu)的方向。
N-副本個(gè)數(shù),W-每次同步寫入的副本個(gè)數(shù),R-每次讀出副本個(gè)數(shù)。認(rèn)為只要W+R>N,就可以達(dá)到很強(qiáng)一致性。例如同步方式N=2,W=2,R=1,則始終是一致的;而如果是異步方式,則每次同步寫入的W只有1,就不能保證一致性。如果W<N,則需要采取lazy的方式后續(xù)將更新同步給其他N-W個(gè)副本。
要保證強(qiáng)一致性,那么如果每次不能寫夠W份時(shí),此次寫操作必須失敗,系統(tǒng)變得不可用。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
NoSQL 簡(jiǎn)介 | w3cschool菜鳥(niǎo)教程
高并發(fā)架構(gòu)系列:詳解分布式一致性ACID、CAP、BASE,以及區(qū)別
說(shuō)透分布式事務(wù)
C++11 并發(fā)指南七(C++11 內(nèi)存模型一:介紹)
分布式CAP理論介紹:一致性(Consistency),可用性(Availability),容忍網(wǎng)絡(luò)分區(qū)(Partition tolerance)
分布式架構(gòu)之Consistency(一致性、強(qiáng)一致性,弱一致性,順序一致性,最終一致性)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服