Commit graph

13 commits

Author SHA1 Message Date
Nathan Prescott
e0ade326ed Updated flurry and quick_cache (flurry being the only relavent change)
---
Specified quick_cache version because older version was being loaded on build

Includes-commit: 3f5419e92d
Includes-commit: de83f0a612
Replicated-from: https://github.com/cloudflare/pingora/pull/248
2024-08-09 14:30:49 -07:00
Yuchen Wu
9f70abe97b Release 0.3.0 2024-07-12 11:24:29 -07:00
Matthew Gumport
38a9d556b5 make seeded estimator and plumbing for tests
I started fidgeting with another one of the tests breaking because of the
estimator not being deterministic, and then decided to do this another way.

This adds `seeded` and `seeded_compact` constructors to the estimator which are
used in tests to override the LFU. These are hidden behind `cfg(test)`. The
`random_status` field of the UFO object is also overridden with the same seeds
as used for the seeded LFU.

These make the tests pass consistently without requiring further monkeying.
2024-06-28 12:34:25 -07:00
Matthew Gumport
899d86c5d4 change tinyufo test to be deterministic
Previously the test would fail because the item evicted may be the entry (4,4,1)
failing admission. I adjusted the weights so that all weights for items besides
the one we want moved to the main cache are equal and the cache can only hold
three. The test then checks that 1 is moved to the main, the evicted key is
gone, and the other two are present.
2024-06-21 09:54:09 -07:00
Yuchen Wu
216d8e9d92 Pin triomphe to keep our MSRV 2024-05-31 11:04:36 -07:00
Yuchen Wu
3dbdcc6b09 Release 0.2.0 2024-05-10 15:22:37 -07:00
Matthew Gumport
01c69659c8 fix tinylfu test flake
The TinyLFU test was failing for changes unrelated to anything in the tinyufo
crate. This changes the test to stop that! What was occurring was expected
behavior, so the test is what's changing instead of any internal logic.

What was happening were hash collisions in the bloom filter used by the
estimator. Instead of asserting that we'd always start counting from 0, we now
allow for this in the test by `get()`ing first, then comparing relative
values. For the final comparisons, we check that values are greater-than or
equal-to their lower bound as determined by the number of `incr()`s we called on
their keys.
2024-04-22 08:48:19 -07:00
Kevin Guthrie
a23d4d8ef1 Fix #186 Expose Bucket to prevent compile error in Rust <= 1.73 2024-04-22 08:48:19 -07:00
Yuchen Wu
2bfaf5b821 TinyUFO: add quick_cache for benchmarks
Add more cache crates to compare with.

Co-authored-by: Arthur Silva <arthurprs@gmail.com>
2024-03-22 15:00:29 -07:00
Yuchen Wu
ab86012c66 TinyUFO: add the option to use sharded skip list for storage
This option makes it more memory efficient but a bit slower.
2024-03-22 14:26:16 -07:00
Matthew Gumport
ae8ea771b1 compile and test cleanly with nightly
The vast majority of these are redundant imports.
2024-03-15 14:37:56 -07:00
Yuchen Wu
dd54b59d38 Fix TinyUFO ahash in nightly Rust
I think ahash has this bug where the hash of &u64 and u64 are different
under nightly build. This works around that.
2024-03-01 13:47:27 -08:00
Yuchen Wu
8797329225 Release Pingora version 0.1.0
Co-authored-by: Andrew Hauck <ahauck@cloudflare.com>
Co-authored-by: Edward Wang <ewang@cloudflare.com>
2024-02-27 20:25:44 -08:00