-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: a more friendly dynamic_dispatch bench #332
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
* feat: add foyer bench, reorg workspace Signed-off-by: MrCroxx <[email protected]> * sort cargo file Signed-off-by: MrCroxx <[email protected]> * make fmt and clippy happy Signed-off-by: MrCroxx <[email protected]> * fix bug Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
* ci: add asan test Signed-off-by: MrCroxx <[email protected]> * fix Cargo.toml and CI Signed-off-by: MrCroxx <[email protected]> * regen ci Signed-off-by: MrCroxx <[email protected]> * rename CI step, test asan fail Signed-off-by: MrCroxx <[email protected]> * regen CI Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
* chore: add license checker Signed-off-by: MrCroxx <[email protected]> * fix license checker config Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
…rs#15) Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
* feat: introduce instrusive indexers and collections Signed-off-by: MrCroxx <[email protected]>
* feat: introduce FTL-like storage engine Signed-off-by: MrCroxx <[email protected]> * update ci Signed-off-by: MrCroxx <[email protected]> * sort cargo file Signed-off-by: MrCroxx <[email protected]> * fix memory leak Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
* feat: enable direct i/o on linux target - enable direct i/o on linux target - refine flusher and reclaimer Signed-off-by: MrCroxx <[email protected]> * fix unit test Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
…s#30) * chore: remove unused old storage engien and other components Signed-off-by: MrCroxx <[email protected]> * update ci Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
…-rs#31) Signed-off-by: MrCroxx <[email protected]>
* feat: impl storage recovery Signed-off-by: MrCroxx <[email protected]> * chore Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
* feat: add segment fifo eviction policy Signed-off-by: MrCroxx <[email protected]> * export fifo fs store Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
* feat: export mods Signed-off-by: MrCroxx <[email protected]> * make cargo sort happy Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
This reverts commit a8a56cc.
Signed-off-by: MrCroxx <[email protected]>
* fix: deadlock fix deadlocks: 1. exclusive lock was not `Send` but unsafe impled. 2. submit flush task await blocks `set_region_evictable` 3. no new reclamation task created after `set_region_evctable` if all write process are waiting Signed-off-by: MrCroxx <[email protected]> * update ci Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
* fix: gracefullly shutdown runners Use `Store::shutdown_runners()` to gracefully shutdown runners.` Signed-off-by: MrCroxx <[email protected]> * log warn if send failed instead of panic Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
- fix region advance - fix recovery slice destroy - seal last dirty region when shutdown Signed-off-by: MrCroxx <[email protected]>
* feat: introduce prometheus metrics Signed-off-by: MrCroxx <[email protected]> * calc metrics Signed-off-by: MrCroxx <[email protected]> * fix registry metrics Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
* feat: add eviction alg hit ratio bench * refactor: use enum cache instead of generic cache The enum cache is more easy to use since it only has two generic parameters. The generic cache is more like an internal interface. Signed-off-by: xiaguan <[email protected]> * chore : sort foyer_memory's dependencies Signed-off-by: xiaguan <[email protected]> * chore: use hakari to gen better dependencies Signed-off-by: xiaguan <[email protected]> --------- Signed-off-by: xiaguan <[email protected]>
* chore: update license Signed-off-by: MrCroxx <[email protected]> * chore: fix license checker Signed-off-by: MrCroxx <[email protected]> * chore: update license header Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
* Add S3Fifo eviction for memory * fix: refine s3fifo, fix some bugs Signed-off-by: MrCroxx <[email protected]> * fix: fix license Signed-off-by: MrCroxx <[email protected]> * refactor: expose s3fifo, fix hakari, add s3fifo fuzzy test Signed-off-by: MrCroxx <[email protected]> * bench: add s3fifo to hit ratio bench Signed-off-by: MrCroxx <[email protected]> * test: add s3fifo uts Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]> Co-authored-by: MrCroxx <[email protected]>
…#307) * chore: bump foyer-memory to 0.1.3 Signed-off-by: MrCroxx <[email protected]> * chore: bump foyer-intrusive to 0.3.1 Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
…er-rs#314) Signed-off-by: MrCroxx <[email protected]>
…rs#315) Signed-off-by: MrCroxx <[email protected]>
* refactor: remove usage of unstable features Signed-off-by: MrCroxx <[email protected]> * refactor: some more Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
…er-rs#317) * refactor: use crate allocator_api2 to make foyer build on stable Signed-off-by: MrCroxx <[email protected]> * fix: use stable pipeline for ci tests, use nightly for sanitizer Signed-off-by: MrCroxx <[email protected]> * fix: update ci prefix key Signed-off-by: MrCroxx <[email protected]> * fix: try fix ci Signed-off-by: MrCroxx <[email protected]> * fix: update ci nightly version Signed-off-by: MrCroxx <[email protected]> * chore: try resolve github issue Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
* test: run CI on both linux and macos Signed-off-by: MrCroxx <[email protected]> * fix: fix build on macos Signed-off-by: MrCroxx <[email protected]> * fix: try fix ci run on targets Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
* doc: update README and add a simple example Signed-off-by: MrCroxx <[email protected]> * chore: update Cargo.toml Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
Signed-off-by: MrCroxx <[email protected]>
* chore: fix ci coverage Signed-off-by: MrCroxx <[email protected]> * chore: fix check Signed-off-by: MrCroxx <[email protected]> --------- Signed-off-by: MrCroxx <[email protected]>
// Warmup | ||
for _ in 0..WARMUP_LOOPS { | ||
let s = rand_string(thread_rng().gen_range(0..100)); | ||
let _ = (t.f2)(&s); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any reason to add a warmup loop for this case? 👀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When the iteration number equals 10,000, there is significant performance variability on my machine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With count the random generation or not? I think the variability may come from that. 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With it.
Signed-off-by: MrCroxx <[email protected]>
eecb910
to
c247346
Compare
Signed-off-by: xiaguan <[email protected]>
c247346
to
41b6e07
Compare
What's changed and what's your intention?
Just a little bit enhancement for the bench.
Checklist
make all
(ormake fast
instead if the old tests are not modified) in my local environment.Related issues or PRs (optional)