-
Notifications
You must be signed in to change notification settings - Fork 59
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
Combined version of LMDB mdb.master and mdb.master3 #278
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Kerollmops
force-pushed
the
combined-lmdb-support
branch
12 times, most recently
from
August 21, 2024 16:51
0b257eb
to
ccd61c5
Compare
7 tasks
Kerollmops
force-pushed
the
combined-lmdb-support
branch
from
October 16, 2024 18:00
99aac37
to
b618cc5
Compare
Kerollmops
force-pushed
the
combined-lmdb-support
branch
2 times, most recently
from
November 17, 2024 18:50
92dbe08
to
12fa866
Compare
Kerollmops
force-pushed
the
combined-lmdb-support
branch
from
November 30, 2024 12:09
ee95ba8
to
4f5fff0
Compare
Kerollmops
force-pushed
the
combined-lmdb-support
branch
from
November 30, 2024 12:15
4f5fff0
to
6e71efb
Compare
Kerollmops
force-pushed
the
combined-lmdb-support
branch
from
November 30, 2024 12:34
02550b2
to
9cc209c
Compare
Kerollmops
force-pushed
the
combined-lmdb-support
branch
from
November 30, 2024 14:46
be46ba9
to
36a785b
Compare
Kerollmops
force-pushed
the
combined-lmdb-support
branch
6 times, most recently
from
December 1, 2024 12:01
01dfa14
to
3b853ff
Compare
Kerollmops
force-pushed
the
combined-lmdb-support
branch
from
December 1, 2024 12:10
3b853ff
to
d8bcae1
Compare
Kerollmops
force-pushed
the
combined-lmdb-support
branch
2 times, most recently
from
December 3, 2024 11:02
cbbaa3a
to
8f4ab77
Compare
Kerollmops
force-pushed
the
combined-lmdb-support
branch
from
December 3, 2024 11:06
de104f1
to
73e8e31
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements #51, taking a large inspiration from the im-rs crate .
It uses a second heed3/Cargo.toml with the necessary dependencies. When you need to work or publish the heed3 crate, you must
cp heed3/Cargo.toml heed/Cargo.toml
. The examples were moved out of the standard heed/examples/ folder to make them compile when working on both crates.There are Two Crates Now
heed
: the one you know. Based on LMDB 0.9 (themdb.master
branch).heed3
: Based on LMDB 1.0 (themdb.master3
branch), with support for encryption through theEncryptedDatabase
andEnvOpenOptions::open_encrypted
type and method and will eventually support checksumming.The
heed3
crate uses nearly the sameDatabase
signature as theheed
crate but it has anEncryptedDatabase
that wraps a normalDatabase
and overrides the signature like the following:This way, we ensure that users do not keep pointers for potentially invalid bytes from LMDB between two get/put operations. It's a limitation of LMDB when you use the encryption feature. The LMDB pages are decrypted on the fly in a buffer that cycles. As a result, only a restricted number of entry pointers are valid until the next operation.
To Do
mdb.master3
branch.EnvOpenOptions/EnvEntry
?EncryptedEnv/Env::prepare_for_closing
method.Publish the lmdb-master3-sys, heed-types and heed3 crates on crates.io Publish heed and heed3 #294.Update dependencies Update the heed and heed3 dependencies #293Add the support for checksumming too (Add support for checksumming on heed3 #291)