libCacheSim
sosp23-s3fifo
libCacheSim | sosp23-s3fifo | |
---|---|---|
2 | 2 | |
123 | 83 | |
- | - | |
8.3 | 6.6 | |
30 days ago | 8 months ago | |
C | C | |
GNU General Public License v3.0 only | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
libCacheSim
-
Sieve is simpler than LRU
https://github.com/1a1a11a/libCacheSim/blob/develop/libCache...
-
Otter, Fastest Go in-memory cache based on S3-FIFO algorithm
/u/someplaceguy,
Those LIRS traces, along with many others, available at this page [1]. I did a cursory review using their traces using Caffeine's and the author's simulators to avoid bias or a mistaken implementation. In their target workloads Caffeine was on par or better [2]. I have not seen anything novel in this or their previous works and find their claims to be easily disproven, so I have not implement this policy in Caffeine simulator yet.
[1]: https://github.com/ben-manes/caffeine/wiki/Simulator
[2]: https://github.com/1a1a11a/libCacheSim/discussions/20
sosp23-s3fifo
-
Otter, Fastest Go in-memory cache based on S3-FIFO algorithm
We observed that quick demotion[2] is important to achieve a low miss ratio in modern cache workloads, and existing algorithms such as TinyLFU and LIRS have lower miss ratios because of the small 1% window they use. This motivated us to design S3-FIFO, which uses simple FIFO queues to achieve low miss ratios. It is true that compared to state-of-the-art, S3-FIFO does not use any fancy techniques, but this does not mean it has bad performance.
In our large-scale evaluations, we found that the fancy techniques in LIRS, ARC, and TinyLFU can sometimes increase the miss ratio. But simple FIFO queues are more robust. However, *it is not true that S3-FIFO is better on every trace*.
* Note that some of the S3-FIFO results in Otter's repo are not updated and have an implementation bug, and we are working with the owner to update them.
[1] https://github.com/Thesys-lab/sosp23-s3fifo?tab=readme-ov-fi...
What are some alternatives?
Caffeine - A high performance caching library for Java
otter - A high performance lockless cache for Go.
xsync - Concurrent data structures for Go
maphash
golang-fifo - Modern efficient cache design with simple FIFO queue only in Golang
go-cache-benchmark - Cache benchmark for web cache workloads in golang.
theine-go - high performance in-memory cache