otter
sosp23-s3fifo
otter | sosp23-s3fifo | |
---|---|---|
1 | 2 | |
1,445 | 83 | |
- | - | |
8.9 | 6.6 | |
11 days ago | 8 months ago | |
Go | C | |
Apache License 2.0 | - |
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.
otter
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?
golang-fifo - Modern efficient cache design with simple FIFO queue only in Golang
libCacheSim - a high performance library for building cache simulators
theine-go - high performance in-memory cache
ristretto - A high performance memory-bound Go cache
xsync - Concurrent data structures for Go
Caffeine - A high performance caching library for Java