-
Notifications
You must be signed in to change notification settings - Fork 38
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
Implement an LMDB-compatible in-memory KV store #45
Comments
We've been interested in this at Embark also, just a simple transactional one with good perf for small but also big (up to 100 MB ish) items and minimal dependencies |
Glad to hear! Sounds like we have similar goals here. I'm not working on an implementation for this right now, so if anyone wants to do this, go ahead! |
I am interested in working on this. My initial plan is to try building a transaction layer on top of |
That's great @allen-marshall ! It would be great if we can ensure that certain characteristics are maintained:
It may be of note that LMDB is implemented as a "B+ tree on disk". |
Thanks for the clarification. I have started some preliminary work and was wondering if it would be acceptable to omit the ability to have multiple values for the same key in a single database (the |
I'm OK with omitting DUP_SORT, I don't find it very useful personally. @repi ? |
Haven’t been using it either |
It might make sense to look at the sled. Also
|
I apologize for my prolonged silence on this issue. I did some work on it for around a month after my last post, but after that I was derailed by an (unrelated) mental health crisis. I think I am starting to recover, but it is unclear whether I will be able to resume work on this issue any time soon. It is probably safest to assume I will not. I believe my changes are here if anyone wants to build on them. The main task that I worked on was trying to translate the After coming up with a trait-based interface that was as close to elegant as I could manage, I wrote an implementation that wrapped the Hopefully this information can give someone a good idea of the current status of my fork if they want to build on it. On the other hand, if someone wants to start from scratch, they can at least be aware that specifying the interface generically may prove harder than expected without GATs. |
In an effort to minimize the dependency footprint of the project, implementing an in-memory key-value store that implements the LMDB API will allow to make
lmdb
an optional dependency. It will need to support the transaction semantics of LMDB.The text was updated successfully, but these errors were encountered: