簡體   English   中英

Dynamodb 不經常安排的掃描

[英]Dynamodb infrequently scheduled scan

我正在用 nodejs 實現一個 session 表,它將增長到大量項目。 每個 hash 鍵都是代表用戶的 uuid。

為了刪除過期的會話,我必須掃描表中的過期屬性並刪除舊會話。 我計划幾天掃描一次,除此之外,我真的不需要高讀取能力。

我提出了 2 個解決方案,我想聽聽有關它們的一些反饋。

1) UpdateTable 只為那個預定的例程增加容量,掃描完成后,只需將表容量減少到它的原始值。

2) 執行掃描,在 x*MB 讀取后檢索“LastEvaluatedKey”時,創建啟動延遲(不消耗所有讀取/秒單位),然后使用“ExclusiveStartKey”繼續掃描。

如果要進行掃描,則選項1是最好的選擇。 這是保證掃描過程中不會影響應用程序性能的唯一真實方法。

您唯一需要確定的就是每天只運行一次此操作-我相信您每天最多只能將DynamoDB表的吞吐量降低2倍(最多)。

這是一個老問題,但是我是通過相關問題看到的。

現在有一個更好的原生解決方案: DynamoDB Time to Live

它允許您為每個表指定一個屬性,作為每個項目的生存時間值。 然后,您可以使用 Unix 時間戳設置每個項目的屬性,該時間戳指定應刪除項目的時間。

在該時間戳的大約 24 小時內,該項目將被刪除,不收取額外費用。

暫無
暫無

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

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