Age | Commit message (Collapse) | Author |
|
|
|
Includes-commit: ac601366bd02f97c132e0c1e762e17a9c962b9a6
Includes-commit: f8f456ae72db0f78aa5823f5e4121322ecbb9816
Replicated-from: https://github.com/cloudflare/pingora/pull/442
Co-authored-by: Matthew Gumport <[email protected]>
|
|
---
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
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|
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.
|
|
|
|
Add more cache crates to compare with.
Co-authored-by: Arthur Silva <[email protected]>
|
|
This option makes it more memory efficient but a bit slower.
|
|
The vast majority of these are redundant imports.
|
|
I think ahash has this bug where the hash of &u64 and u64 are different
under nightly build. This works around that.
|
|
Co-authored-by: Andrew Hauck <[email protected]>
Co-authored-by: Edward Wang <[email protected]>
|