2024-11-13 12:00:18 +01:00
|
|
|
# Age Caching Simulation
|
|
|
|
|
2024-11-08 21:38:45 +01:00
|
|
|
Client -> TTL Cache -> Database
|
2024-11-13 12:00:18 +01:00
|
|
|
Capacity C (C = n (example: 100))
|
2024-11-08 21:38:45 +01:00
|
|
|
|
|
|
|
TTL increases on cache hit
|
|
|
|
Age of information / Age of the entry in the cache
|
|
|
|
Database has latest object, cache entry may be old (we don't know)
|
|
|
|
|
|
|
|
Age of entry should have low age of information
|
|
|
|
|
|
|
|
Update function from cache to refresh based on mu (refresh rate)
|
|
|
|
|
|
|
|
Loss function based on TTL and age in cache called beta(i)
|
|
|
|
|
|
|
|
Event based simulation
|
|
|
|
|
|
|
|
lambda(i) is zipf distribution describing the rate the client requests the object "i"
|
|
|
|
|
|
|
|
Inter arrival time of each object => exponential
|
|
|
|
|
2024-11-13 12:00:18 +01:00
|
|
|
Hit rate and the average age of the object based on TTL
|
2024-11-13 16:46:36 +01:00
|
|
|
|
|
|
|
## Notes 11/13/2024
|
|
|
|
|
|
|
|
### Limitations of time
|
|
|
|
|
|
|
|
Run the simulation not time based but based on when the least ranked object is requested
|
|
|
|
at least times for example.
|
|
|
|
Least ranked object -> least zipf value
|
|
|
|
|
|
|
|
2-3h
|
|
|
|
|
|
|
|
### mu
|
|
|
|
|
|
|
|
Simulate lambda and mu to see what increases the cost function
|
|
|
|
|
|
|
|
### Bandwidth
|
|
|
|
|
|
|
|
Finite bandwidth between cache and server
|
|
|
|
miss requests and cache updates should not go over the bandwidth
|
|
|
|
|
|
|
|
### Two versions
|
|
|
|
|
|
|
|
1.
|
|
|
|
|
|
|
|
- Do Refresh
|
|
|
|
- Do Request
|
|
|
|
|
|
|
|
2.
|
|
|
|
|
|
|
|
- Just Request
|
|
|
|
- No Refresh
|
|
|
|
|
|
|
|
3.
|
|
|
|
|
|
|
|
- LRU
|
|
|
|
- Infinite TTL
|
|
|
|
- No Refresh
|
|
|
|
|
|
|
|
4.
|
|
|
|
|
|
|
|
- Random eviction
|
|
|
|
- Regular TTL
|
|
|
|
- With Refresh
|
|
|
|
|
|
|
|
5.
|
|
|
|
|
|
|
|
- Random eviction
|
|
|
|
- Regular TTL
|
|
|
|
- Without Refresh
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Runtime
|
|
|
|
|
|
|
|
CPU times: user 3min 46s, sys: 43 s, total: 4min 29s
|
|
|
|
Wall time: 4min 29s
|
|
|
|
for ACCESS_COUNT_LIMIT = 10_000 # Total time to run the simulation
|