Introduce a function to copy and compact a database env

This commit is contained in:
Clément Renault 2019-10-18 12:52:45 +02:00
parent 2d7db2a80f
commit 2ef51f7df9
No known key found for this signature in database
GPG key ID: 92ADA4E935E71FA4
2 changed files with 15 additions and 0 deletions

View file

@ -1,8 +1,10 @@
use std::collections::hash_map::{HashMap, Entry};
use std::fs::File;
use std::path::Path;
use std::sync::{Arc, RwLock};
use std::{fs, thread};
use zlmdb::{Result as ZResult, CompactionOption};
use zlmdb::types::{Str, Unit};
use crossbeam_channel::Receiver;
use log::{debug, error};
@ -163,6 +165,10 @@ impl Database {
}
}
pub fn copy_and_compact_to_path<P: AsRef<Path>>(&self, path: P) -> ZResult<File> {
self.env.copy_to_path(path, CompactionOption::Enabled)
}
pub fn indexes_names(&self) -> MResult<Vec<String>> {
let indexes = self.indexes.read().unwrap();
Ok(indexes.keys().cloned().collect())