Azure CosmosDB中的數(shù)據(jù)一致性Azure CosmosDB中的數(shù)據(jù)一致性為了保證分布式數(shù)據(jù)庫(kù)的高可用性和低延遲,我們需要在可用性、延遲和吞吐量之間進(jìn)行權(quán)衡。大多數(shù)商業(yè)分布式數(shù)據(jù)庫(kù)要求開發(fā)者選擇兩種極端的數(shù)據(jù)庫(kù)一致性:強(qiáng)一致性和終極一致性。強(qiáng)一致性是數(shù)據(jù)庫(kù)編程的黃金標(biāo)準(zhǔn)。然而,它需要較高的延遲,并且在故障期間......
為了保證分布式數(shù)據(jù)庫(kù)的高可用性和低延遲,我們需要在可用性、延遲和吞吐量之間進(jìn)行權(quán)衡。
大多數(shù)商業(yè)分布式數(shù)據(jù)庫(kù)要求開發(fā)者選擇兩種極端的數(shù)據(jù)庫(kù)一致性:強(qiáng)一致性和終極一致性。
強(qiáng)一致性是數(shù)據(jù)庫(kù)編程的黃金標(biāo)準(zhǔn)。然而,它需要較高的延遲,并且在故障期間其可用性較低。
另一方面,最終的一致性提供了更高的可用性和更好的性能,但是應(yīng)用程序編程非常困難。
Azure Cosmos DB通過一定范圍的選擇實(shí)現(xiàn)數(shù)據(jù)一致性,而不是走向兩個(gè)極端。
雖然強(qiáng)一致性和最終一致性處于極端,但在整個(gè)范圍內(nèi)有許多一致性選項(xiàng)。開發(fā)人員可以使用這些選項(xiàng)在高可用性或性能方面做出精確的選擇和謹(jǐn)慎的權(quán)衡。
使用Azure Cosmos DB,開發(fā)人員可以在一致性范圍內(nèi)從五個(gè)定義良好的一致性模型中進(jìn)行選擇。
從最強(qiáng)到最弱,這些模型是強(qiáng)的、有界的陳舊性、會(huì)話、一致前綴和最終一致性。
該模型定義清晰且直觀。它們可以用于特定的真實(shí)場(chǎng)景。每個(gè)模型都提供了可用性和性能之間的權(quán)衡,并受全面的SLA支持。下圖以范圍間隔的形式顯示了不同的一致性級(jí)別。
一致性水平與地區(qū)無(wú)關(guān)。無(wú)論是從哪個(gè)區(qū)域提供讀寫,Azure Cosmos帳戶關(guān)聯(lián)的區(qū)域數(shù)量,還是帳戶配置單個(gè)或多個(gè)寫區(qū)域,所有的讀操作都保證Azure Cosmos DB帳戶的一致性級(jí)別。
與一致性級(jí)別相關(guān)的保證
Azure Cosmos DB提供的全面SLA可以保證100%的讀取請(qǐng)求滿足任何選定一致性級(jí)別的一致性保證。如果符合與一致性級(jí)別相關(guān)的所有一致性保證,則讀取請(qǐng)求符合一致性SLA。
下面描述了5個(gè)一致性級(jí)別的描述:
Strong(強(qiáng)一致性):強(qiáng)一致性保證了讀取操作,并且總是返回最新提交的版本??蛻舳擞肋h(yuǎn)不會(huì)看到未提交或未完成的寫入。始終確保用戶讀取最新提交的寫入。
有界陳舊性:讀操作(Read)最多可以比寫操作(Write)晚K個(gè)版本,即T個(gè)時(shí)間。如果我們選擇有界陳舊性,陳舊性可以用兩種方式設(shè)置:
版本號(hào)k
讀操作可能落后于寫操作的時(shí)間間隔(t)。
強(qiáng)一致性場(chǎng)景類似于有限過期的概念,但是過期窗口(過期窗口)是0。
當(dāng)客戶端在接受寫操作的區(qū)域執(zhí)行讀操作時(shí),有界陳舊的一致性提供的保證與強(qiáng)一致性提供的保證相同。
會(huì)話:會(huì)話一致性的范圍僅限于客戶端會(huì)話。
例如,假設(shè)我們支持多會(huì)話場(chǎng)景。其中一個(gè)客戶端A在CosmosDB上進(jìn)行添加、刪除和查詢操作,所以客戶端只能看到自己提交的內(nèi)容。
其他客戶B、C等。,看不到客戶端a執(zhí)行操作的結(jié)果。
一致前綴:返回的更新包含所有更新的一些前綴,沒有間隔。一致的前綴保證了讀取永遠(yuǎn)不會(huì)看到無(wú)序的寫入。
最終一致性): S2/]不保證閱讀的順序。如果任何進(jìn)一步的寫入丟失,拷貝將最終收斂。
接下來,我們舉個(gè)例子:
讓我們以棒球比賽為例。這場(chǎng)比賽目前在第七局中間。這是第七場(chǎng)比賽。目前客隊(duì)25落后。
Azure CosmosDB保存主隊(duì)和客隊(duì)的分?jǐn)?shù)。下表列出了五種不同一致性條件下讀取主隊(duì)和客隊(duì)比分的情況。
有興趣可以參考這篇文章:https://www . Microsoft . com/enus/research/WPcontent/uploads/2011/10/consistencyandbaseballreport . pdf。
特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場(chǎng)。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請(qǐng)于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號(hào)密碼登錄
平臺(tái)顧問
微信掃一掃
馬上聯(lián)系在線顧問
小程序
ESG跨境小程序
手機(jī)入駐更便捷
返回頂部