refactor: Restructure Repository to add eta optimization
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
This commit is contained in:
97
00_aoi_caching_simulation/note.md
Normal file
97
00_aoi_caching_simulation/note.md
Normal file
@@ -0,0 +1,97 @@
|
||||
# Age Caching Simulation
|
||||
|
||||
Client -> TTL Cache -> Database
|
||||
Capacity C (C = n (example: 100))
|
||||
|
||||
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
|
||||
|
||||
Hit rate and the average age of the object based on TTL
|
||||
|
||||
## 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
|
||||
|
||||
- [x] Default
|
||||
|
||||
- Do Refresh
|
||||
- Do Request
|
||||
|
||||
- [x] No Refresh
|
||||
|
||||
- Just Request
|
||||
- No Refresh
|
||||
|
||||
- [x] Infinite TTL
|
||||
|
||||
- LRU
|
||||
- Infinite TTL
|
||||
- No Refresh
|
||||
|
||||
- [x] Random Eviction
|
||||
|
||||
- Random eviction
|
||||
- Regular TTL
|
||||
- With Refresh
|
||||
|
||||
- [x] Random Eviction w/o Refresh
|
||||
- Random eviction
|
||||
- Regular TTL
|
||||
- No Refresh
|
||||
|
||||
| Name | Cache Capacity | MAX_REFRESH_RATE | cache_type | CACHE_TTL |
|
||||
| -------------------- | -------------------- | ---------------- | ------------------------- | --------- |
|
||||
| Default | DATABASE_OBJECTS | 1< | CacheType.LRU | 5 |
|
||||
| No Refresh | DATABASE_OBJECTS | 0 | CacheType.LRU | 5 |
|
||||
| Infinite TTL | DATABASE_OBJECTS / 2 | 0 | CacheType.LRU | 0 |
|
||||
| Random Eviction (RE) | DATABASE_OBJECTS / 2 | 1< | CacheType.RANDOM_EVICTION | 5 |
|
||||
| RE without Refresh | DATABASE_OBJECTS / 2 | 0 | CacheType.RANDOM_EVICTION | 5 |
|
||||
|
||||
### 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
|
||||
|
||||
## Notes 11/29/2024
|
||||
|
||||
C_m = cost for cache miss
|
||||
C_delta = cost for refresh
|
||||
C = Cm + C_delta over all objects summarized
|
||||
|
||||
We wanna minimize cost function
|
||||
|
||||
N = number of objects
|
||||
B is cache size
|
||||
|
||||
C_f roughly equals C_m
|
||||
Reference in New Issue
Block a user