DynamoDB 高載容量與調適型容量 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

DynamoDB 高載容量與調適型容量

為了將因輸送量異常導致的限流降至最低,DynamoDB 會利用高載容量因應突發用量峰值。DynamoDB 使用調適型容量以自動調整資源,應對不均勻的存取模式。

高載容量

DynamoDB 透過高載容量,為您的輸送量佈建提供一些靈活性。當未充分使用可用輸送量時,DynamoDB 會保留部分閒置容量,供後續輸送量高載期間應對用量峰值之用。使用高載容量,未預期的讀取或寫入請求在經過限流之後可能會成功。

DynamoDB 目前最多可保留 5 分鐘 (300 秒) 的未使用讀寫容量。在偶發的高載讀取或寫入活動中,這些額外容量單位可能迅速被耗盡,速度甚至快於您為資料表設定的每秒佈建輸送容量。

DynamoDB 也可能在不事先通知的情況下為背景維護和其他任務使用高載容量。

請注意,高載容量的詳細資訊可能會在將來有所變更。

調適型容量

DynamoDB 會自動將資料分配至多個分割區,這些分割區儲存於 AWS 雲端多部伺服器上。並非所有情況下都能均勻分配讀寫作業。當資料存取不平衡時,與其他分割區相比,「經常性」分割區可以接收更高量的讀取和寫入流量。由於分割區的讀取與寫入作業皆獨立管理,若單一分割區接收超過 3,000 次讀取作業或 1,000 次以上的寫入作業,即會觸發限流。調適型容量用於自動增加能接收更多流量的分割區輸送容量。

DynamoDB 調適型容量使您的應用程式能夠繼續讀取和寫入經常性分割區而不受限制,加強適應不均衡的存取模式,前提是流量不會超過您資料表的總佈建的容量或分割區最大容量。調適型容量用於自動並立即增加能接收更多流量的分割區輸送容量。

下圖說明調適型容量的運作方式。此範例資料表已佈建 400 個單位 (WCU) 並在四個分割區之間平均共用,因此每個分割區每秒最多可承受 100 個 WCU。分割區 1、2 和 3 各接收每秒 50 個 WCU 的寫入流量。分割區 4 每秒接收 150 個 WCU。此經常性分割區可在仍有未使用的高載容量時接受寫入流量,但最終分割區會限流每秒超過 100 個 WCU 的流量。

DynamoDB 的調適型容量機制會自動提高分割區 4 的容量,使其能承受每秒 150 WCU 的高工作負載而不被限流。

調適型容量會自動提升流量較高之分割區 4 的輸送量,以避免限流。

所有 DynamoDB 資料表都會自動啟用調適型容量,不需額外費用。您不需要明確啟用或停用此功能。

隔離經常存取的項目

若您的應用程式導致一個或多個項目的流量過大,則調適型容量將重新平衡您的分割區,以使經常存取的項目不會駐留在同一分割區上。這種經常存取項目的隔離,可減少因您的工作負載於單一分割區超過輸送量配額而導致需要求限流的可能性。只要項目集合不是由排序索引鍵單調增加或減少所追蹤的流量,您也可以依排序索引鍵將項目集合分成區段。

如果您的應用程式於單一項目經常有高流量,調適型容量可能重新平衡您的資料,讓分割區僅包含單一經常存取的項目。如果是這種情況,DynamoDB 可為分割區中該單一項目的主索引鍵帶來最多 3,000 個 RCU 和 1,000 個 WCU 的輸送量。資料表上存在本機次要索引時,調適型容量不會在多個資料表分割區中分割項目集合。