欧美日本日韩aⅴ在线视频_中文字幕乱码人妻一区二区三区_久久久久青草大香综合精品,_精品久久久久久久精品观看免费_自慰无码免费一区二区三区

新聞中心

首頁(yè) > 新聞中心 > 行業(yè)新聞 >

云計(jì)算AWS之Dynamo數(shù)據(jù)沖突問(wèn)題

時(shí)間:2016-12-28 11:13:46   閱讀:

  分布式系統(tǒng)架構(gòu)通常需要考慮三個(gè)因素:可靠性(Reliability)、可用性(Availability)和一致性(Consistency)。二者不能同時(shí)達(dá)到,最多只可以實(shí)現(xiàn)其中的兩個(gè)。Dynamo系統(tǒng)選擇犧牲一致性來(lái)?yè)Q取系統(tǒng)的可靠性和可用性,這也是由Amazon業(yè)務(wù)特點(diǎn)決定的。Dynamo要保證完美的用戶體驗(yàn),就必須保證數(shù)據(jù)總是可寫的,但是這樣就可能出現(xiàn)數(shù)據(jù)沖突,如何解決數(shù)據(jù)沖突呢?Dynamo采用了最終一致性模型(Eventual Consistency),這種模型和強(qiáng)一致性模型(Strong Consistency)的不同點(diǎn)在于:它并不在意數(shù)據(jù)更新過(guò)程中的一致性問(wèn)題,只要最終的所有數(shù)據(jù)副本能夠保證一致性即可。簡(jiǎn)單地說(shuō)就是“只求結(jié)果,不看過(guò)程”。由于最終一致性模型不保證過(guò)程中數(shù)據(jù)的一致性,在某些情況下(比如說(shuō)某個(gè)存儲(chǔ)節(jié)點(diǎn)出現(xiàn)故障)不同的數(shù)據(jù)副本可能會(huì)出現(xiàn)不同的版本,如何確保所有的副本最終都會(huì)被正確更新是一個(gè)很棘手的問(wèn)題。數(shù)據(jù)副本可能會(huì)以不同的順序看到更新結(jié)果,而不同順序的更新很可能造成數(shù)據(jù)的不一致。為此Dynamo利用技術(shù)手段推斷各個(gè)更新的實(shí)際發(fā)生次序,這種技術(shù)就是向量時(shí)鐘,其原理圖如圖3-6所示。
 
\
 
  Dynamo中的向量時(shí)鐘用一個(gè)(nodes,counter)對(duì)表示。其中nodes表示節(jié)點(diǎn), counter是一個(gè)計(jì)數(shù)器,初始為0,節(jié)點(diǎn)每發(fā)生一次事件就將計(jì)數(shù)器加1。首先Sx對(duì)某個(gè)對(duì)象進(jìn)行一次寫操作,產(chǎn)生一個(gè)對(duì)象版本Dl([Sx,l]),接著Sx再次操作,由于Sx是第二次進(jìn)行操作,所以counter值更新為2,產(chǎn)生第二個(gè)版本D2([Sx,2]);之后,Sy和Sz同時(shí)對(duì)該對(duì)象進(jìn)行寫操作,Sy將自身的信息加入向量時(shí)鐘產(chǎn)生了新的版本D3([Sx,2], [Sy,l]), Sz同樣產(chǎn)生了新的版本信息D4([Sx,2], [Sz,l]),這時(shí)系統(tǒng)中就有了兩個(gè)版本的對(duì)象,但是系統(tǒng)不會(huì)自行選擇,它會(huì)將這兩個(gè)版本同時(shí)保存,等待客戶端解決沖突。最后Sx再次對(duì)對(duì)象進(jìn)行操作,這時(shí)它會(huì)同時(shí)獲得兩個(gè)數(shù)據(jù)版本,用戶根據(jù)版本的信息,重新計(jì)算或得一個(gè)新的對(duì)象記做D5([Sx,2], [S3U],[Sz,l]),并將新的對(duì)象保存到系統(tǒng)中。需要注意的是,向量時(shí)鐘的數(shù)量是有限制的,當(dāng)超過(guò)限制時(shí)需根據(jù)時(shí)間戳(Timestamp)刪除最開(kāi)始的一個(gè)。這種解決一致性問(wèn)題的方式對(duì)Amazon的購(gòu)物網(wǎng)站來(lái)說(shuō)非常有用。例如購(gòu)物車模型,用戶可以通過(guò)它查詢?cè)?jīng)瀏覽的各種商品,而不是僅僅査詢最終購(gòu)買的商品。
 
?

閩公網(wǎng)安備 35010002000114號(hào)