2016-01-29 83 views
3

我在AWS中設置了DynamoDB。我想知道選擇強烈一致的讀取時吞吐量的影響。數據庫一致性模型

高度一致的讀取使用的吞吐量比最終的一致性讀取還是其他方式?

回答

1

最終一致讀取

當讀取數據(的GetItem,BatchGetItem,查詢或掃描操作),響應可能不會反映最近完成的寫入操作的結果(PutItem,的updateItem或DeleteItem) 。響應可能包含一些陳舊的數據。數據的所有副本的一致性通常在一秒內達到;所以如果您在短時間後重復讀取請求,則響應會返回最新的數據。默認情況下,Query和GetItem操作執行最終一致的讀取,但您可以選擇請求強一致的讀取。 BatchGetItem操作在默認情況下最終保持一致,但您可以在每個表的基礎上指定強一致。掃描操作默認最終一致。

強一致性讀取

當你發出一個強烈一致的讀取請求,DynamoDB返回與最先進的最新數據,它反映到DynamoDB返回的所有現有技術相關的寫操作更新響應一個成功的迴應。 A strongly consistent read might be less available in the case of a network delay or outage.對於GetItem,Query或Scan操作,您可以通過在請求中指定可選參數來請求強烈一致的讀取結果。

你可以找到它here

+0

如此強大的一致性讀取使用比最終一致讀取更多的吞吐量? – ljaerj

+0

正確。閱讀CAP理論。如果你有很多存儲數據的框(對於HA),那麼你必須查詢其中的大部分(以查明誰擁有最新數據)或查詢一個(但不知道別人有最新數據的風險)。如果你全部查詢(強大),它的一致性更強,但可靠性更低,使用更多的吞吐量。 – BraveNewCurrency

0

這是有據可查的here:必需

容量單位進行讀取:項目數每秒×4 KB項目大小

讀取(如果你使用最終一致的讀取,你會得到兩倍的讀取每秒。)

因此,強烈的一致性讀取使用的準備吞吐量是最終一致讀取的兩倍。