Cache penetration
Cache penetration
Def
- Cache penetration occurs when there is a cache miss, but the primary database also lacks the required data. 
Solution1: Cache empty values
Flowchart
- Within the business code, cache special values for empty entries 
Cons
- If each time attacker query different and non-existing keys, large space could be consumed and actual useful entries will be purged out of the storage. 
Solution2: Bloomberg filter
- Use case - Time complexity: O(1) read/write 
- Space complexity: Within 1 billion records (roughly 1.2GB memory) 
 
Flowchart
- The order of cache and bloomfilter could switch: - Cache first, bloomfilter second: Better performance for normal requests 
- Bloomfilter first, cache second: Better protection against attacks. 
 

Cons
- False positives - Solution: Use multiple hash algorithm to calculate multiple hash values 
 
- No support for delete - Solution: Store a counter for each entry 
 
Cache avalanch
Def
- when a significant number of caches expire at the same time, which leads to a large number of requests that don't hit the cache and instead directly query the database. T 
Solution1: Add jitter
- Jitter to expiration time 
Solution2: Rate limiting
- Rate limiting / Circuit breaker to DB 
Last updated
Was this helpful?