自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

分布式數(shù)據(jù)庫(kù)系統(tǒng)面臨的問(wèn)題和挑戰(zhàn)

運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維 分布式
分布式數(shù)據(jù)庫(kù)系統(tǒng)在邏輯上可以看作一個(gè)完整的系統(tǒng),用戶如同在使用單機(jī)數(shù)據(jù)庫(kù)系統(tǒng);但是,從物理角度看,其為一個(gè)網(wǎng)絡(luò)系統(tǒng),包含若干個(gè)物理意義上的分散的節(jié)點(diǎn),而節(jié)點(diǎn)之間通過(guò)網(wǎng)絡(luò)進(jìn)行連接,通過(guò)網(wǎng)絡(luò)協(xié)議進(jìn)行數(shù)據(jù)交換。

[[431029]]

分布式數(shù)據(jù)庫(kù)系統(tǒng)在邏輯上可以看作一個(gè)完整的系統(tǒng),用戶如同在使用單機(jī)數(shù)據(jù)庫(kù)系統(tǒng);但是,從物理角度看,其為一個(gè)網(wǎng)絡(luò)系統(tǒng),包含若干個(gè)物理意義上的分散的節(jié)點(diǎn),而節(jié)點(diǎn)之間通過(guò)網(wǎng)絡(luò)進(jìn)行連接,通過(guò)網(wǎng)絡(luò)協(xié)議進(jìn)行數(shù)據(jù)交換。

分布式數(shù)據(jù)系統(tǒng)需要應(yīng)對(duì)網(wǎng)絡(luò)故障、節(jié)點(diǎn)故障。網(wǎng)絡(luò)故障會(huì)直接導(dǎo)致分區(qū)事件(CAP

原理中的P,即網(wǎng)絡(luò)發(fā)生故障使得網(wǎng)絡(luò)被分為多個(gè)子部分)發(fā)生,系統(tǒng)的可用性會(huì)受到影響;節(jié)點(diǎn)故障可能會(huì)引發(fā)單點(diǎn)故障,也就是在數(shù)據(jù)為單副本的情況下節(jié)點(diǎn)故障會(huì)直接導(dǎo)致部分?jǐn)?shù)據(jù)不能被訪問(wèn)。為避免單點(diǎn)故障,數(shù)據(jù)需要有多個(gè)副本,從而使系統(tǒng)的可用性得到較大提高。節(jié)點(diǎn)故障也可能引發(fā)分區(qū)事件。

除了上述問(wèn)題外,分布式數(shù)據(jù)庫(kù)系統(tǒng)還可能帶來(lái)不一致問(wèn)題。比如舊讀(stale read)問(wèn)題,即讀操作發(fā)生于數(shù)據(jù)項(xiàng)更新之后,此時(shí)本應(yīng)該讀取到的是該數(shù)據(jù)項(xiàng)的最新值,但是卻讀到了舊值。產(chǎn)生該問(wèn)題的原因是,分布式數(shù)據(jù)庫(kù)系統(tǒng)沒(méi)有一個(gè)統(tǒng)一的時(shí)鐘,這會(huì)導(dǎo)致反序讀取數(shù)據(jù)的情況出現(xiàn)。這種情況在單機(jī)系統(tǒng)中是不存在的。這里所說(shuō)的不一致現(xiàn)象,以及與其類似的不一致性現(xiàn)象,在這里稱為數(shù)據(jù)讀取序不符合數(shù)據(jù)生成序,簡(jiǎn)稱分布式不一致。

為了解決分布式不一致問(wèn)題,諸多學(xué)者經(jīng)過(guò)大量的研究提出了多種分布式一致性的概念,如線性一致性(linearizability)、順序一致性(sequential consistency)、因果一致性(causal consistency),以及Google Spanner的外部一致性(external consistency)等。

分布式數(shù)據(jù)庫(kù)系統(tǒng)需要解決分布式不一致問(wèn)題,使觀察者能讀取到滿足一致性的數(shù)據(jù),以確保數(shù)據(jù)之間的邏輯一直是有序的。本節(jié)后續(xù)內(nèi)容將針對(duì)這個(gè)問(wèn)題展開(kāi)討論:首先討論通用的分布式系統(tǒng)所面臨的問(wèn)題,然后討論因數(shù)據(jù)異常引發(fā)的一致性問(wèn)題,最后討論與分布式數(shù)據(jù)庫(kù)相關(guān)的其他問(wèn)題。

分布式數(shù)據(jù)庫(kù)系統(tǒng)面臨的問(wèn)題

單機(jī)數(shù)據(jù)庫(kù)系統(tǒng)為了應(yīng)對(duì)事務(wù)故障和對(duì)事務(wù)進(jìn)行管理,專門(mén)提供了UNDO日志、回滾段等措施,目的就是實(shí)現(xiàn)事務(wù)的回滾;為了應(yīng)對(duì)系統(tǒng)故障,采用了WAL技術(shù)做日志,目的是先于事務(wù)進(jìn)行持久化存儲(chǔ);為了應(yīng)對(duì)介質(zhì)故障,專門(mén)提供了邏輯備份、物理備份等多種手段,目的是在數(shù)據(jù)層面、日志層面和物理數(shù)據(jù)塊層面實(shí)現(xiàn)數(shù)據(jù)冗余存儲(chǔ)。

相對(duì)于單機(jī)數(shù)據(jù)庫(kù)系統(tǒng)而言,除了上述問(wèn)題外,分布式數(shù)據(jù)庫(kù)系統(tǒng)面臨著更多的挑戰(zhàn)。這些挑戰(zhàn)源自分布式數(shù)據(jù)庫(kù)系統(tǒng)的架構(gòu),其和單機(jī)數(shù)據(jù)庫(kù)系統(tǒng)不同,因而在技術(shù)層面上存在差異。

1. 架構(gòu)異常

架構(gòu)異常是指用戶因數(shù)據(jù)庫(kù)的架構(gòu)而產(chǎn)生的數(shù)據(jù)異常,嚴(yán)格地講,這不屬于數(shù)據(jù)庫(kù)系統(tǒng)領(lǐng)域的數(shù)據(jù)異常。從用戶的角度看,事務(wù)一直在執(zhí)行中,但是讀寫(xiě)數(shù)據(jù)時(shí)產(chǎn)生了類似前述的順序問(wèn)題、數(shù)據(jù)異常等,本書(shū)統(tǒng)稱這種異常為架構(gòu)異常。架構(gòu)異常和分布式架構(gòu)相關(guān),分布式架構(gòu)包括一主一備架構(gòu)、一主多備架構(gòu)、多主多備架構(gòu)等。在分布式架構(gòu)中,前端可能都有一個(gè)類似代理(proxy)的組件面向用戶提供透明的高可用服務(wù),代理組件屏蔽了后端多個(gè)單機(jī)系統(tǒng)故障,所以在用戶看來(lái),分布式架構(gòu)上的所有操作都是在一個(gè)事務(wù)中進(jìn)行的,而因架構(gòu)引發(fā)的異常也是數(shù)據(jù)異常。

如下討論一種已知的架構(gòu)異常,該架構(gòu)異常會(huì)導(dǎo)致讀取到的數(shù)據(jù)不一致。我們以MySQL的主備架構(gòu)Master-Slave為例進(jìn)行說(shuō)明(其他數(shù)據(jù)庫(kù)的同類架構(gòu)存在類似隱患)。此類不一致是這樣產(chǎn)生的。MySQL支持Master-Slave架構(gòu)。假設(shè)在Master上執(zhí)行事務(wù)T,此時(shí)先按條件“score>90”進(jìn)行查詢,發(fā)現(xiàn)沒(méi)有符合條件的事務(wù),故成功寫(xiě)入Binlog File的數(shù)據(jù),假設(shè)其為95(事務(wù)提交),然后在復(fù)制的過(guò)程中宕機(jī),導(dǎo)致復(fù)制失敗。Master重啟時(shí),會(huì)直接對(duì)數(shù)據(jù)95進(jìn)行提交操作,之后Master會(huì)將數(shù)據(jù)95異步復(fù)制到Slave。但是,此時(shí)原來(lái)的Slave可能已經(jīng)切換為主機(jī)并開(kāi)始提供服務(wù),比如新事務(wù)寫(xiě)入數(shù)據(jù)98,而原來(lái)Master上的95沒(méi)有被復(fù)制到新Master上,這就會(huì)造成兩臺(tái)MySQL主機(jī)的數(shù)據(jù)不一致。

如果在主備MySQL服務(wù)前端還有一個(gè)代理服務(wù)器,對(duì)用戶而言,這會(huì)屏蔽后臺(tái)的主備服務(wù),用戶就會(huì)認(rèn)為“只有一個(gè)MySQL”提供服務(wù),因此數(shù)據(jù)95丟失對(duì)用戶而言是不可接受的。

還有一種情況,如果代理服務(wù)器在原始的Master宕機(jī)后沒(méi)有結(jié)束用戶的事務(wù)T,而是把事務(wù)T連接到原備機(jī),并將原備機(jī)變更為新Master。這時(shí),對(duì)于新Master而言,會(huì)發(fā)生兩個(gè)事務(wù),一個(gè)新事務(wù)T1在一定WHERE條件下寫(xiě)入98,另一個(gè)是繼續(xù)執(zhí)行的原事務(wù)T,若此時(shí)原事務(wù)T再次發(fā)起讀操作(邏輯上還在同一個(gè)事務(wù)內(nèi)),就會(huì)發(fā)現(xiàn)自己寫(xiě)過(guò)的數(shù)據(jù)95消失了,這對(duì)于用戶而言是不可接受的。從分布式一致性的角度看,這違背了“Read-your-writes”(讀你所寫(xiě))原則。從事務(wù)的角度看,可能出現(xiàn)“幻讀”,即再次按條件“score>90”查詢,額外讀到事務(wù)T1寫(xiě)入的98,所以出現(xiàn)了事務(wù)的數(shù)據(jù)異常。

與上述相似,官方對(duì)MySQL上出現(xiàn)Master-Slave之間數(shù)據(jù)不一致的情況,也進(jìn)行了描述。

如下圖1所示,如果把數(shù)據(jù)擴(kuò)展到多副本,把讀操作擴(kuò)展到允許從任何副本讀取數(shù)據(jù),把寫(xiě)操作擴(kuò)展到允許向任何副本寫(xiě)入數(shù)據(jù),如果是去中心化的架構(gòu)(即沒(méi)有單一的全局事務(wù)管理機(jī)制)且發(fā)生了網(wǎng)絡(luò)分區(qū)或延,則在事務(wù)一致性視角、分布式一致性視角下去觀察數(shù)據(jù)的讀或?qū)懖僮?,?huì)發(fā)現(xiàn)存在更為復(fù)雜的問(wèn)題。

圖1 多副本異常圖

Distributed algorithms and protocols討論了一種在多副本情況下,副本間數(shù)據(jù)同步與數(shù)據(jù)可見(jiàn)性的異常情況,其所用的示例如圖1所示:足球世界杯比賽結(jié)果出爐,比賽結(jié)果經(jīng)過(guò)Leader節(jié)點(diǎn)記錄到數(shù)據(jù)庫(kù)。事實(shí)結(jié)果是德國(guó)贏得了世界杯冠軍。但是,數(shù)據(jù)從Leader節(jié)點(diǎn)同步到兩個(gè)不同的Follower節(jié)點(diǎn)的時(shí)候,Alice和Bob同處一室,從不同的Follower節(jié)點(diǎn)上查詢世界杯的比賽消息,結(jié)果Alice得知德國(guó)奪冠,而B(niǎo)ob卻得到比賽還沒(méi)有結(jié)束的消息。二人得到了不同的消息,產(chǎn)生了不一致。這也是分布式架構(gòu)下因多副本支持Follower讀帶來(lái)的不一致的問(wèn)題。

2. 分布式一致性和事務(wù)一致性

為了幫助大家充分理解分布式系統(tǒng)中存在的問(wèn)題,我們不妨做一個(gè)類比。

若是世界上只有一個(gè)人,那么這個(gè)世界的關(guān)系是非常簡(jiǎn)單的,但是一旦有多個(gè)人,“社會(huì)”就會(huì)形成。其中,社會(huì)關(guān)系指的就是人與人之間建立的關(guān)系,這種關(guān)系會(huì)隨著人的數(shù)量的增加而不斷復(fù)雜化。這種復(fù)雜的社會(huì)關(guān)系與數(shù)據(jù)庫(kù)結(jié)合到一起得到的就是分布式數(shù)據(jù)庫(kù)系統(tǒng),社會(huì)中的人就相當(dāng)于分布式數(shù)據(jù)庫(kù)系統(tǒng)中的一個(gè)物理節(jié)點(diǎn)或者一個(gè)物理節(jié)點(diǎn)中的一份數(shù)據(jù)副本。圖2以一個(gè)NewSQL系統(tǒng)的架構(gòu)為例描述分布式數(shù)據(jù)庫(kù)中存在的多個(gè)問(wèn)題。

因?yàn)榉植际綌?shù)據(jù)庫(kù)要存儲(chǔ)海量數(shù)據(jù),要對(duì)數(shù)據(jù)分而治之,所以引入了數(shù)據(jù)分片的概念。從邏輯的角度看,每個(gè)節(jié)點(diǎn)的數(shù)據(jù)都是一個(gè)或多個(gè)數(shù)據(jù)分片,但是數(shù)據(jù)庫(kù)要滿足“高可用、高可靠”以及在線實(shí)時(shí)提供服務(wù)的特性,因此每個(gè)數(shù)據(jù)分片就有了多個(gè)副本。數(shù)據(jù)多副本使得分布式數(shù)據(jù)庫(kù)的“一致性”問(wèn)題變得更為復(fù)雜。

我們從讀和寫(xiě)兩個(gè)不同的角度來(lái)感性了解一下分布式數(shù)據(jù)庫(kù)中存在哪些不一致的問(wèn)題。

首先,圖2所示的分布式數(shù)據(jù)庫(kù)系統(tǒng)存在4個(gè)數(shù)據(jù)分片—A、B、C、D,每個(gè)分片又存在3個(gè)副本,且每個(gè)分片的3個(gè)副本中有一個(gè)是Leader,另外兩個(gè)是Follower(比如Raft分布式協(xié)議中的Leader和Follower)。

圖2 分布式數(shù)據(jù)庫(kù)的一致性問(wèn)題關(guān)系圖

其次,對(duì)于寫(xiě)操作,圖2所示有如下兩種情況。

1)寫(xiě)單個(gè)數(shù)據(jù)分片—W1:在這種情況下,一個(gè)事務(wù)不能針對(duì)多個(gè)節(jié)點(diǎn)進(jìn)行操作,所以這樣的事務(wù)是典型的單節(jié)點(diǎn)事務(wù),類似于單機(jī)數(shù)據(jù)庫(kù)系統(tǒng)中的事務(wù)。寫(xiě)單個(gè)數(shù)據(jù)分片可以由單個(gè)節(jié)點(diǎn)上的事務(wù)處理機(jī)制來(lái)確保其具有ACID特性。為了實(shí)現(xiàn)寫(xiě)單個(gè)數(shù)據(jù)分片的數(shù)據(jù)一致性,可只使用數(shù)據(jù)庫(kù)系統(tǒng)中的并發(fā)訪問(wèn)控制技術(shù),如2PL(Two-phase Locking,兩階段封鎖)、TO(Timestamp Ordering,時(shí)間戳排序)、MVCC(Multi Version Concurrency Control,多版本并發(fā)控制)等。

2)寫(xiě)多個(gè)數(shù)據(jù)分片—W2:通過(guò)一個(gè)事務(wù)寫(xiě)多個(gè)數(shù)據(jù)分片,這就是典型的分布式事務(wù)了,此時(shí)需要借助諸如分布式并發(fā)訪問(wèn)控制等技術(shù)來(lái)保證分布式事務(wù)的一致性,需要借助2PC(Two-phase Commit,兩階段提交)技術(shù)保證跨節(jié)點(diǎn)寫(xiě)操作的原子性。另外,如果需要實(shí)現(xiàn)強(qiáng)一致性(詳見(jiàn)5.6節(jié)),還需要考慮在分布式數(shù)據(jù)庫(kù)范圍內(nèi),確保ACID中的C和CAP中的C的強(qiáng)一致性相結(jié)合(即可串行化和線性一致性、順序一致性的結(jié)合)。諸如Spanner等很多數(shù)據(jù)庫(kù)系統(tǒng),都使用線性一致性、SS2PL(Strong Strict 2PL)技術(shù)和2PC技術(shù)來(lái)實(shí)現(xiàn)分布式寫(xiě)事務(wù)的強(qiáng)一致性。CockroachDB、Percolator等分布式數(shù)據(jù)庫(kù)則使用了OCC類的技術(shù)做并發(fā)訪問(wèn)控制來(lái)確保事務(wù)一致性(可串行化),并使用2PC來(lái)確保分布式提交的原子性,但它們沒(méi)有實(shí)現(xiàn)強(qiáng)一致性,其中CockroachDB只實(shí)現(xiàn)了順序可串行化。保證分布式事務(wù)一致性的技術(shù)還有很多,第4章將詳細(xì)討論。

對(duì)于寫(xiě)多個(gè)數(shù)據(jù)分片的情況來(lái)說(shuō),因?yàn)樵诿總€(gè)數(shù)據(jù)分片內(nèi)部存在多個(gè)副本,所以如何保證副本之間的數(shù)據(jù)一致性,也是一個(gè)典型的分布式系統(tǒng)一致性問(wèn)題(第2章會(huì)詳細(xì)討論分布式系統(tǒng)的一致性問(wèn)題,第3章會(huì)詳細(xì)討論多副本在共識(shí)算法加持下的一致性問(wèn)題),著名的Paxos、Raft等協(xié)議就是用來(lái)解決分布式系統(tǒng)的多副本共識(shí)問(wèn)題的。此種情況下,通常沒(méi)有寫(xiě)操作會(huì)發(fā)生在圖1-6所示的A的Leader和B的Follower這樣的組合中。

如果一個(gè)系統(tǒng)支持多寫(xiě)操作,則多寫(xiě)會(huì)同時(shí)發(fā)生在多個(gè)數(shù)據(jù)分片的Leader上。

對(duì)于讀操作,圖2所示也有如下兩種情況。

1)讀單個(gè)數(shù)據(jù)分片—R1:如果一個(gè)事務(wù)只涉及單個(gè)節(jié)點(diǎn),則這個(gè)事務(wù)讀取操作的數(shù)據(jù)一致性一定能保障(通過(guò)節(jié)點(diǎn)上的事務(wù)機(jī)制來(lái)保障)。如果涉及多個(gè)節(jié)點(diǎn),那么此時(shí)的R1就會(huì)被分為R11和R12兩種讀取方式。

R11方式用于讀取Leader:因?yàn)檫M(jìn)行寫(xiě)操作時(shí)首先寫(xiě)的是Leader,所以如果寫(xiě)事務(wù)已經(jīng)提交,那么一定能夠保證R11讀取的數(shù)據(jù)是已經(jīng)提交了的最新數(shù)據(jù)。如果寫(xiě)事務(wù)沒(méi)有提交,那么此時(shí)Leader上若是采用MVCC技術(shù),則R11讀取的會(huì)是一個(gè)舊數(shù)據(jù),這樣的讀取機(jī)制可以保證R11讀數(shù)據(jù)的一致性;Leader上若是采用封鎖并發(fā)訪問(wèn)控制機(jī)制,則讀操作會(huì)被阻塞直至寫(xiě)事務(wù)提交,因而在這種機(jī)制下R11讀取的是提交后的值,從而保證讀數(shù)據(jù)的一致性,換句話說(shuō),這種情況下,保證數(shù)據(jù)一致性依賴的是單節(jié)點(diǎn)上的事務(wù)并發(fā)訪問(wèn)控制機(jī)制。同時(shí),這也意味著一個(gè)分布式數(shù)據(jù)庫(kù)系統(tǒng)中單個(gè)節(jié)點(diǎn)的事務(wù)處理機(jī)制應(yīng)該具備完備的事務(wù)處理功能。

R12的方式用于讀取Follower:讀取Follower時(shí)又分為如下兩種情況。

在一個(gè)分片內(nèi)部,主副本和從副本(即Leader和Follower)之間是強(qiáng)同步的(Leader向所有Follower同步數(shù)據(jù)并在應(yīng)用成功之后向客戶端返回結(jié)果)。這種情況下不管是讀Leader還是讀Follower,數(shù)據(jù)一定是完全相同的,讀取的數(shù)據(jù)一定是一致的。

Leader和Follower之間是弱同步的(Leader沒(méi)有等所有Follower同步數(shù)據(jù)并應(yīng)用成功之后,就向客戶端返回結(jié)果),如采用多數(shù)派協(xié)議就可實(shí)現(xiàn)弱同步。此時(shí)Leader和Follower之間會(huì)存在寫(xiě)數(shù)據(jù)延時(shí),即從Follower上讀取到的可能是一個(gè)舊數(shù)據(jù),但是因?yàn)槭聞?wù)的讀操作只涉及一個(gè)節(jié)點(diǎn),所以也不會(huì)產(chǎn)生讀操作數(shù)據(jù)不一致的問(wèn)題。這就如同MySQL的主備復(fù)制系統(tǒng)中備機(jī)可以提供只讀服務(wù)一樣。

2)讀多個(gè)數(shù)據(jù)分片—R2:注意這種情況下的讀操作會(huì)跨多個(gè)分片/節(jié)點(diǎn),如果事務(wù)處理機(jī)制不妥當(dāng),會(huì)產(chǎn)生不一致的問(wèn)題。而這樣的不一致問(wèn)題,既可能是事務(wù)的不一致,也可能是分布式系統(tǒng)的不一致。下面還是以圖1-6所示為例進(jìn)行介紹。假設(shè)只讀取A、B兩個(gè)數(shù)據(jù)分片,這時(shí)有如下4種情況。

讀A的Leader和B的Leader,這種情況簡(jiǎn)稱全L問(wèn)題。

  • 事務(wù)的一致性:如果存在全局的事務(wù)管理器,那么此時(shí)讀多個(gè)數(shù)據(jù)分片的操作如同在單機(jī)系統(tǒng)進(jìn)行數(shù)據(jù)的讀操作,通過(guò)封鎖并發(fā)訪問(wèn)控制協(xié)議或者M(jìn)VCC(全局快照點(diǎn))等技術(shù),可以確保讀操作過(guò)程中不發(fā)生數(shù)據(jù)異常。因?yàn)槠渌聞?wù)的寫(xiě)操作會(huì)為本事務(wù)的讀操作帶來(lái)數(shù)據(jù)不一致的問(wèn)題,所以通過(guò)全局的并發(fā)訪問(wèn)控制協(xié)議(如全局封鎖并發(fā)訪問(wèn)控制協(xié)議等技術(shù)),能夠避免出現(xiàn)事務(wù)層面的數(shù)據(jù)不一致問(wèn)題。但是,如果沒(méi)有全局的并發(fā)訪問(wèn)控制協(xié)調(diào)者,則容易出現(xiàn)跨節(jié)點(diǎn)的數(shù)據(jù)異常,所以需要由特定的并發(fā)訪問(wèn)控制協(xié)議加以控制。
  • 分布式系統(tǒng)的一致性:這類問(wèn)題只在“讀A的Leader和B的Leader”這種結(jié)構(gòu)中存在,分布式數(shù)據(jù)庫(kù)需要通過(guò)實(shí)現(xiàn)“強(qiáng)一致性”來(lái)規(guī)避因分布和并發(fā)帶來(lái)的分布式事務(wù)型數(shù)據(jù)系統(tǒng)的一致性問(wèn)題。具體可能出現(xiàn)的問(wèn)題會(huì)在第2章介紹。

讀A的Leader和B的Follower,這種情況簡(jiǎn)稱LF問(wèn)題。B的Leader和Follower之間存在時(shí)延,即傳輸存在時(shí)延,從而帶來(lái)主備復(fù)制之間的數(shù)據(jù)不一致問(wèn)題。如果支持“讀A的Leader和B的Follower”這樣的方式,需要確保所讀取的節(jié)點(diǎn)(A的Leader節(jié)點(diǎn)、B的Follower節(jié)點(diǎn))上存在共同的事務(wù)狀態(tài)。

讀A的Follower和B的Leader,這種情況簡(jiǎn)稱FL問(wèn)題。問(wèn)題的分析和解決方法同上。

讀A的Follower和B的Follower,這種情況簡(jiǎn)稱全F問(wèn)題。問(wèn)題的分析和解決方法同上。

若是在讀數(shù)據(jù)時(shí),同時(shí)存在事務(wù)的一致性和分布式系統(tǒng)的一致性問(wèn)題,那么就需要通過(guò)強(qiáng)一致性來(lái)解決。

總體來(lái)說(shuō),事務(wù)的一致性是因并發(fā)的事務(wù)間并發(fā)訪問(wèn)(讀寫(xiě)、寫(xiě)讀、寫(xiě)寫(xiě)沖突)同一個(gè)數(shù)據(jù)項(xiàng)造成的,而分布式一致性是因多個(gè)節(jié)點(diǎn)分散、節(jié)點(diǎn)使用各自的時(shí)鐘,以及沒(méi)有對(duì)各個(gè)節(jié)點(diǎn)上發(fā)生的操作進(jìn)行排序造成的。

本書(shū)摘編自《分布式數(shù)據(jù)庫(kù)原理、架構(gòu)與實(shí)踐》,經(jīng)出版方授權(quán)發(fā)布。

責(zé)任編輯:武曉燕 來(lái)源: 數(shù)倉(cāng)寶貝庫(kù)
相關(guān)推薦

2022-08-01 18:33:45

關(guān)系型數(shù)據(jù)庫(kù)大數(shù)據(jù)

2011-05-19 09:18:48

分布式數(shù)據(jù)庫(kù)

2011-03-24 17:15:06

分布式數(shù)據(jù)庫(kù)系統(tǒng)

2013-05-08 09:40:41

ClustrixSierraMySQL

2010-06-29 16:48:03

SQL Server數(shù)

2021-12-20 15:44:28

ShardingSph分布式數(shù)據(jù)庫(kù)開(kāi)源

2023-12-05 07:30:40

KlustronBa數(shù)據(jù)庫(kù)

2023-07-31 08:27:55

分布式數(shù)據(jù)庫(kù)架構(gòu)

2023-07-28 07:56:45

分布式數(shù)據(jù)庫(kù)SQL

2021-06-30 14:55:39

數(shù)據(jù)庫(kù)系統(tǒng)容錯(cuò)

2023-11-14 08:24:59

性能Scylla系統(tǒng)架構(gòu)

2022-03-10 06:36:59

分布式數(shù)據(jù)庫(kù)排序

2020-06-23 09:35:13

分布式數(shù)據(jù)庫(kù)網(wǎng)絡(luò)

2023-03-07 09:49:04

分布式數(shù)據(jù)庫(kù)

2024-09-09 09:19:57

2022-06-09 10:19:10

分布式數(shù)據(jù)庫(kù)

2013-12-10 09:08:48

分布式網(wǎng)絡(luò)挑戰(zhàn)

2020-04-14 11:14:02

PostgreSQL分布式數(shù)據(jù)庫(kù)

2024-03-11 08:57:02

國(guó)產(chǎn)數(shù)據(jù)庫(kù)證券

2013-06-14 14:17:36

分布式Hbase管理和監(jiān)控
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)