Put the documents MTBL back into LMDB

We makes sure to write the documents into a file before
memory mapping it and putting it into LMDB, this way we avoid
moving it to RAM
This commit is contained in:
Clément Renault
2020-08-28 15:38:05 +02:00
parent d784d87880
commit 0a44ff86ab
10 changed files with 100 additions and 110 deletions

View File

@ -1,5 +1,7 @@
mod mtbl_codec;
mod roaring_bitmap_codec;
mod str_beu32_codec;
pub use self::mtbl_codec::MtblCodec;
pub use self::roaring_bitmap_codec::RoaringBitmapCodec;
pub use self::str_beu32_codec::StrBEU32Codec;

View File

@ -0,0 +1,20 @@
use std::borrow::Cow;
use oxidized_mtbl::Reader;
pub struct MtblCodec;
impl<'a> heed::BytesDecode<'a> for MtblCodec {
type DItem = Reader<&'a [u8]>;
fn bytes_decode(bytes: &'a [u8]) -> Option<Self::DItem> {
Reader::new(bytes).ok()
}
}
impl heed::BytesEncode<'_> for MtblCodec {
type EItem = [u8];
fn bytes_encode(item: &Self::EItem) -> Option<Cow<[u8]>> {
Some(Cow::Borrowed(item))
}
}