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

Add MDBX as a key-value store #2192

Closed
erthink opened this issue Jun 23, 2020 · 3 comments
Closed

Add MDBX as a key-value store #2192

erthink opened this issue Jun 23, 2020 · 3 comments
Assignees

Comments

@erthink
Copy link

erthink commented Jun 23, 2020

libmdbx is an extremely fast, compact, powerful, embedded, ACID key-value store database, with permissive license. MDBX has a specific set of properties and capabilities, focused on creating unique lightweight solutions with extraordinary performance.

MDBX is a Btree-based database management library modeled loosely on the BerkeleyDB API, but much simplified. The entire database (aka "environment") is exposed in a memory map, and all data fetches return data directly from the mapped memory, so no malloc's or memcpy's occur during data fetches. The library is fully thread-aware and supports concurrent read/write access from multiple processes and threads.

Historically, MDBX is deeply revised and extended descendant of amazing LMDB (Lightning Memory-Mapped Database). MDBX inherits all benefits from LMDB, but resolves some issues and adds set of improvements.


I suggest adding the MDBX as a storage engine. If you think it is appropriate, just assign this issue to me (and I will try to implement this feature when will I have free time). As the main MDBX developer, I will be happy to answer your questions.

Thanks.
Leonid.

@dangleptr
Copy link
Contributor

dangleptr commented Jun 24, 2020

Very exciting suggestion. Please feel free to implement the store engine with MDBX.
For kvstore inside nebula, the plugin strategy is supported naturally. To implement another store engine, just implement the interfaces KVEngine.h and KVIterator.h, you could take RocksEngine.h as example.

@avently
Copy link

avently commented Mar 5, 2021

@erthink do you still plan to implement such feature? Было бы неплохо иметь такую альтернативу

@CPWstatic
Copy link
Contributor

How's it going?

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

No branches or pull requests

4 participants