aboutsummaryrefslogtreecommitdiffhomepage
path: root/tinyufo
AgeCommit message (Collapse)Author
2024-10-31Release 0.4.0bleeper-yuchen-88def7550ecYuchen Wu
2024-10-28feat/remove-keys-from-tiny-ufoAyodeji Akinola
Includes-commit: ac601366bd02f97c132e0c1e762e17a9c962b9a6 Includes-commit: f8f456ae72db0f78aa5823f5e4121322ecbb9816 Replicated-from: https://github.com/cloudflare/pingora/pull/442 Co-authored-by: Matthew Gumport <[email protected]>
2024-08-09Updated flurry and quick_cache (flurry being the only relavent change)Nathan Prescott
--- Specified quick_cache version because older version was being loaded on build Includes-commit: 3f5419e92d64769534e3ab6f497ee938f07616fa Includes-commit: de83f0a6122aa9be637faf4e7ed0c3f73d20a78c Replicated-from: https://github.com/cloudflare/pingora/pull/248
2024-07-12Release 0.3.00.3.0Yuchen Wu
2024-06-28make seeded estimator and plumbing for testsMatthew Gumport
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-21change tinyufo test to be deterministicMatthew Gumport
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-05-31Pin triomphe to keep our MSRVYuchen Wu
2024-05-10Release 0.2.00.2.0Yuchen Wu
2024-04-22fix tinylfu test flakeMatthew Gumport
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-22Fix #186 Expose Bucket to prevent compile error in Rust <= 1.73Kevin Guthrie
2024-03-22TinyUFO: add quick_cache for benchmarksYuchen Wu
Add more cache crates to compare with. Co-authored-by: Arthur Silva <[email protected]>
2024-03-22TinyUFO: add the option to use sharded skip list for storageYuchen Wu
This option makes it more memory efficient but a bit slower.
2024-03-15compile and test cleanly with nightlyMatthew Gumport
The vast majority of these are redundant imports.
2024-03-01Fix TinyUFO ahash in nightly RustYuchen Wu
I think ahash has this bug where the hash of &u64 and u64 are different under nightly build. This works around that.
2024-02-27Release Pingora version 0.1.0v0.1.0Yuchen Wu
Co-authored-by: Andrew Hauck <[email protected]> Co-authored-by: Edward Wang <[email protected]>