-
Notifications
You must be signed in to change notification settings - Fork 3
Description
According to AWS DynamoDB docs:
Depending on the size and activity level of a table, the actual delete operation of an expired item can vary. Because TTL is meant to be a background process, the nature of the capacity used to expire and delete items via TTL is variable (but free of charge). TTL typically deletes expired items within 48 hours of expiration.
Items that have expired, but haven’t yet been deleted by TTL, still appear in reads, queries, and scans. If you do not want expired items in the result set, you must filter them out. To do this, use a filter expression that returns only items where the Time to Live expiration value is greater than the current time in epoch format. For more information, see Filter expressions for scan.
Items that are past their expiration, but have not yet been deleted can still be updated, and successful updates to change or remove the expiration attribute will be honored.
Perhaps I am wrong but did not find anywhere in the code a check if the TTL expiration value is greater than the current time. If this is true, it would mean that items that are meant to disappear from cache, may still be there.