pub struct Env(/* private fields */);Expand description
An Env is an interface used by the rocksdb implementation to access operating system functionality like the filesystem etc. Callers may wish to provide a custom Env object when opening a database to get fine gain control; e.g., to rate limit file system operations.
All Env implementations are safe for concurrent access from multiple threads without any external synchronization.
Note: currently, C API behinds C++ API for various settings.
See also: rocksdb/include/env.h
Implementations§
Source§impl Env
impl Env
Sourcepub fn mem_env() -> Result<Self, Error>
pub fn mem_env() -> Result<Self, Error>
Returns a new environment that stores its data in memory and delegates all non-file-storage tasks to base_env.
Sourcepub unsafe fn from_raw(env: *mut rocksdb_env_t) -> Self
pub unsafe fn from_raw(env: *mut rocksdb_env_t) -> Self
Returns a new environment which wraps and takes ownership of the provided raw environment.
§Safety
Ownership of env is transferred to the returned Env, which becomes
responsible for freeing it. The caller should forget the raw pointer
after this call.
§When would I use this?
RocksDB’s C++ Env class provides many extension points for low-level database subsystems, such as file IO. These subsystems aren’t covered within the scope of the C interface or this crate, but from_raw() may be used to hand a pre-instrumented Env to this crate for further use.
Sourcepub fn set_background_threads(&mut self, num_threads: c_int)
pub fn set_background_threads(&mut self, num_threads: c_int)
Sets the number of background worker threads of a specific thread pool for this environment.
LOW is the default pool.
Default: 1
Sourcepub fn set_high_priority_background_threads(&mut self, n: c_int)
pub fn set_high_priority_background_threads(&mut self, n: c_int)
Sets the size of the high priority thread pool that can be used to prevent compactions from stalling memtable flushes.
Sourcepub fn set_low_priority_background_threads(&mut self, n: c_int)
pub fn set_low_priority_background_threads(&mut self, n: c_int)
Sets the size of the low priority thread pool that can be used to prevent compactions from stalling memtable flushes.
Sourcepub fn set_bottom_priority_background_threads(&mut self, n: c_int)
pub fn set_bottom_priority_background_threads(&mut self, n: c_int)
Sets the size of the bottom priority thread pool that can be used to prevent compactions from stalling memtable flushes.
Sourcepub fn join_all_threads(&mut self)
pub fn join_all_threads(&mut self)
Wait for all threads started by StartThread to terminate.
Sourcepub fn lower_thread_pool_io_priority(&mut self)
pub fn lower_thread_pool_io_priority(&mut self)
Lowering IO priority for threads from the specified pool.
Sourcepub fn lower_high_priority_thread_pool_io_priority(&mut self)
pub fn lower_high_priority_thread_pool_io_priority(&mut self)
Lowering IO priority for high priority thread pool.
Sourcepub fn lower_thread_pool_cpu_priority(&mut self)
pub fn lower_thread_pool_cpu_priority(&mut self)
Lowering CPU priority for threads from the specified pool.
Sourcepub fn lower_high_priority_thread_pool_cpu_priority(&mut self)
pub fn lower_high_priority_thread_pool_cpu_priority(&mut self)
Lowering CPU priority for high priority thread pool.
Sourcepub fn get_background_threads(&self) -> c_int
pub fn get_background_threads(&self) -> c_int
Returns the current background_threads setting.
See Self::set_background_threads for what this controls.
Sourcepub fn get_bottom_priority_background_threads(&self) -> c_int
pub fn get_bottom_priority_background_threads(&self) -> c_int
Returns the current bottom_priority_background_threads setting.
See Self::set_bottom_priority_background_threads for what this controls.
Sourcepub fn get_high_priority_background_threads(&self) -> c_int
pub fn get_high_priority_background_threads(&self) -> c_int
Returns the current high_priority_background_threads setting.
See Self::set_high_priority_background_threads for what this controls.
Sourcepub fn get_low_priority_background_threads(&self) -> c_int
pub fn get_low_priority_background_threads(&self) -> c_int
Returns the current low_priority_background_threads setting.
See Self::set_low_priority_background_threads for what this controls.
Sourcepub fn create_dir_if_missing<P: AsRef<Path>>(
&self,
path: P,
) -> Result<(), Error>
pub fn create_dir_if_missing<P: AsRef<Path>>( &self, path: P, ) -> Result<(), Error>
Creates path through this environment, and returns Ok if it is
already there.
This is Env::CreateDirIfMissing, one level only. The POSIX
implementation is a plain mkdir, so every parent has to exist
already. It is not the recursive std::fs::create_dir_all.
§Errors
The POSIX environment fails when a parent directory is missing, when
the process cannot write there, or when path exists and is not a
directory. Env::mem_env always succeeds.
Trait Implementations§
Source§impl AsRawPtr<rocksdb_env_t> for Env
Available on crate feature raw-ptr only.
impl AsRawPtr<rocksdb_env_t> for Env
raw-ptr only.Source§unsafe fn as_raw_ptr(&self) -> *mut rocksdb_env_t
unsafe fn as_raw_ptr(&self) -> *mut rocksdb_env_t
Returns a raw pointer to the underlying rocksdb_env_t object.
This allows direct access to the RocksDB environment C API for advanced use cases.