簡體   English   中英

Azure CosmosDB 一致性保證

[英]Azure CosmosDB Consistency guaranty

微軟在他們的文檔中他們 state 為Consistent 前綴一致性如下:

在一致的前綴選項中,返回的更新包含所有更新的某個前綴,沒有間隙。 一致的前綴一致性級別保證讀取永遠不會看到亂序寫入。

下面兩段,他們state:

以下是一致前綴的一致性保證:

  • 對於具有單個寫入區域的帳戶,同一區域中的客戶端的一致性 = 一致的前綴

  • 單個寫入區域的帳戶在不同區域的客戶端的一致性 = 一致的前綴

  • 為具有多個寫入區域的帳戶寫入單個區域的客戶端的一致性 = 一致的前綴

  • 為具有多個寫入區域的帳戶寫入多個區域的客戶端的一致性 = 最終

我真的不明白客戶端如何為具有多個寫入區域的帳戶寫入多個區域可以具有最終一致性保證。 由於Consistent 前綴一致性保證讀取永遠不會看到亂序寫入,因此下面的語句(多次寫入)應該是錯誤的,因為它保證了最終一致性

有人可以幫我弄清楚我錯過了什么嗎?

通常,一致性保證是在假設它是單區域寫入(單主)的情況下編寫的。 因為 Cosmos DB 提供了多區域寫入(多主)能力,所以一致性保證需要進一步解釋,以詳細說明給定不同數量的讀取器和寫入器的服務行為,包括多區域寫入(多主)。

當您有多個寫入者並使用多區域寫入時,在帳戶中配置的區域內本地寫入的數據將在本地提交,然后通過 WAN 復制並合並到主要區域中。 一旦數據在主要區域中合並,它會以完全提交的方式復制回賬戶中的每個其他區域。

因為這發生在 WAN 上,所以無法保證寫入多個次要區域的數據將准確地按照本地提交的順序復制和合並到主要區域中。 數據在 WAN 中並不總是以相同的速率和速度復制。 這既是因為區域之間的距離不同,也因為 WAN 有時會有些不穩定。

出於這個原因,當使用多個寫入器的多區域寫入時,讀取器只能獲得最終的一致性保證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM