Skip to content
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

Change LRU cache and other hash tables to use kcas #2281

Open
wants to merge 4 commits into
base: eio
Choose a base branch
from

Conversation

clecat
Copy link
Contributor

@clecat clecat commented Feb 23, 2024

This PR aims to change the existing hash tables of irmin and use Kcas_data hash tables instead.
This should help maintain good performances when using irmin on several domains, by replacing the existing mutexes.

@clecat clecat requested a review from art-w February 23, 2024 14:36
@clecat clecat force-pushed the kcas-lru branch 2 times, most recently from a47e118 to 4dcf752 Compare February 23, 2024 14:49
@clecat
Copy link
Contributor Author

clecat commented Feb 23, 2024

Here are graphs from the multicore benchmarking:
Before:
bench-lru-half
After:
bench-kcas-all-half

@art-w art-w changed the base branch from eio-mirage to eio April 9, 2024 14:01
@art-w
Copy link
Contributor

art-w commented Apr 9, 2024

Thanks! I refreshed your PR on top of the Eio PR such that we can merge yours asap :) I'm pretty happy with the new benchmarks, as they show that multicore usage isn't slower than singlecore under contention!

Could you clean up the commit history, add an entry to the changelog, ... and take a look at the https://github.com/mirage/irmin/blob/main/src/irmin-pack/unix/lru.ml#L32 to remove the data-race there too?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants