[英]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.