6e8a742705
Introduce a new simulation for Age of Information (AoI) cache management, focusing on varying TTL values and eviction strategies (LRU and Random Eviction). This includes: - New Python script for event-driven cache simulations using . - Experiments for "No Refresh" across multiple TTL configurations (, , ..., ) with: - Hit rate and object age tracking (, , etc.). - Visualizations (e.g., , ). - Updated to describe experimental setup and configurations. - Log export file () for simulation results. - Refactor of with detailed strategy configurations and runtime notes. ### Reason The commit enhances the project by enabling detailed experiments with configurable cache parameters, supporting analysis of cache efficiency and AoI under varying conditions. This provides a foundation for more sophisticated simulations and insights. ### Performance - Runtime: ~4m 29s for . Co-authored experiments introduce structured data files and visualizations, improving clarity for future iterations. Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
Experiments: No Refresh with variable TTL
Explanation for files in each experiment:
details.csv
: Access Count, Hit, Miss, Mu, Lambda and Hit Rate for each objecthit_age.csv
: Shows hit rate/average age at time of request for each object.lambda_distribution.pdf
: Lambda Distribution across all objects/discrete values of the Zipf distributionobjects_in_cache_over_time.pdf
: Amount of cache entries at given time.overall_hit_age.csv
: Cumulative description ofhit_age.csv
Length of simulation doesn't change much since we're not touching the request
rate across the simulations.
Break condition for the simulation is when the each database object has been
requested at least ACCESS_COUNT_LIMIT
(i.e. 10) times.