You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
multicache is the most well-rounded cache implementation for Go today.
12
+
fido is the most well-rounded cache implementation for Go today.
15
13
16
14
Designed for real-world applications in unstable environments, it has a higher average hit rate, higher throughput, and lower latency for production workloads than any other cache. To deal with process eviction in environments like Kubernetes, Cloud Run, or Borg, it also offers an optional persistence tier.
@@ -69,9 +67,9 @@ For maximum efficiency, all backends support S2 or Zstd compression via `pkg/sto
69
67
70
68
## Performance
71
69
72
-
multicache has been exhaustively tested for performance using [gocachemark](https://github.com/tstromberg/gocachemark).
70
+
fido has been exhaustively tested for performance using [gocachemark](https://github.com/tstromberg/gocachemark).
73
71
74
-
Where multicache wins:
72
+
Where fido wins:
75
73
76
74
-**Throughput**: 551M int gets/sec avg (2.4X faster than otter). 89M string sets/sec avg (27X faster than otter).
77
75
-**Hit rate**: Wins 6 of 9 workloads. Highest average across all datasets (+2.7% vs otter, +0.9% vs sieve).
@@ -88,9 +86,9 @@ Run `make benchmark` for full results, or see [benchmarks/gocachemark_results.md
88
86
89
87
## Algorithm
90
88
91
-
multicache uses [S3-FIFO](https://s3fifo.com/), which features three queues: small (new entries), main (promoted entries), and ghost (recently evicted keys). New items enter small; items accessed twice move to main. The ghost queue tracks evicted keys in a bloom filter to fast-track their return.
89
+
fido uses [S3-FIFO](https://s3fifo.com/), which features three queues: small (new entries), main (promoted entries), and ghost (recently evicted keys). New items enter small; items accessed twice move to main. The ghost queue tracks evicted keys in a bloom filter to fast-track their return.
92
90
93
-
multicache has been hyper-tuned for high performance, and deviates from the original paper in a handful of ways:
91
+
fido has been hyper-tuned for high performance, and deviates from the original paper in a handful of ways:
94
92
95
93
-**Tuned small queue** - 13.7% vs paper's 10%, tuned via binary search to maximize average hit rate across 9 production traces
96
94
-**Full ghost frequency restoration** - returning keys restore 100% of their previous access count
0 commit comments