|
|
|
@ -388,17 +388,79 @@ impl Options { |
|
|
|
|
/// # Example
|
|
|
|
|
///
|
|
|
|
|
/// ```
|
|
|
|
|
/// #[allow(deprecated)]
|
|
|
|
|
/// use rocksdb::Options;
|
|
|
|
|
///
|
|
|
|
|
/// let mut opts = Options::default();
|
|
|
|
|
/// opts.set_use_direct_writes(true);
|
|
|
|
|
/// ```
|
|
|
|
|
#[deprecated(note = "replaced by `Options::set_use_direct_io_for_flush_and_compaction`")] |
|
|
|
|
pub fn set_use_direct_writes(&mut self, enabled: bool) { |
|
|
|
|
unsafe { |
|
|
|
|
ffi::rocksdb_options_set_use_direct_writes(self.inner, enabled as c_uchar); |
|
|
|
|
ffi::rocksdb_options_set_use_direct_io_for_flush_and_compaction(self.inner, |
|
|
|
|
enabled as c_uchar); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// Enable direct I/O mode for writing
|
|
|
|
|
/// they may or may not improve performance depending on the use case
|
|
|
|
|
///
|
|
|
|
|
/// Files will be opened in "direct I/O" mode
|
|
|
|
|
/// which means that data written to the disk will not be cached or
|
|
|
|
|
/// buffered. The hardware buffer of the devices may however still
|
|
|
|
|
/// be used. Memory mapped files are not impacted by these parameters.
|
|
|
|
|
///
|
|
|
|
|
/// Default: false
|
|
|
|
|
///
|
|
|
|
|
/// # Example
|
|
|
|
|
///
|
|
|
|
|
/// ```
|
|
|
|
|
/// use rocksdb::Options;
|
|
|
|
|
///
|
|
|
|
|
/// let mut opts = Options::default();
|
|
|
|
|
/// opts.set_use_direct_io_for_flush_and_compaction(true);
|
|
|
|
|
/// ```
|
|
|
|
|
pub fn set_use_direct_io_for_flush_and_compaction(&mut self, enabled: bool) { |
|
|
|
|
unsafe { |
|
|
|
|
ffi::rocksdb_options_set_use_direct_io_for_flush_and_compaction(self.inner, |
|
|
|
|
enabled as c_uchar); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// Hints to the OS that it should not buffer disk I/O. Enabling this
|
|
|
|
|
/// parameter may improve performance but increases pressure on the
|
|
|
|
|
/// system cache.
|
|
|
|
|
///
|
|
|
|
|
/// The exact behavior of this parameter is platform dependent.
|
|
|
|
|
///
|
|
|
|
|
/// On POSIX systems, after RocksDB reads data from disk it will
|
|
|
|
|
/// mark the pages as "unneeded". The operating system may - or may not
|
|
|
|
|
/// - evict these pages from memory, reducing pressure on the system
|
|
|
|
|
/// cache. If the disk block is requested again this can result in
|
|
|
|
|
/// additional disk I/O.
|
|
|
|
|
///
|
|
|
|
|
/// On WINDOWS systems, files will be opened in "unbuffered I/O" mode
|
|
|
|
|
/// which means that data read from the disk will not be cached or
|
|
|
|
|
/// bufferized. The hardware buffer of the devices may however still
|
|
|
|
|
/// be used. Memory mapped files are not impacted by this parameter.
|
|
|
|
|
///
|
|
|
|
|
/// Default: true
|
|
|
|
|
///
|
|
|
|
|
/// # Example
|
|
|
|
|
///
|
|
|
|
|
/// ```
|
|
|
|
|
/// #[allow(deprecated)]
|
|
|
|
|
/// use rocksdb::Options;
|
|
|
|
|
///
|
|
|
|
|
/// let mut opts = Options::default();
|
|
|
|
|
/// opts.set_allow_os_buffer(false);
|
|
|
|
|
/// ```
|
|
|
|
|
#[deprecated(since="0.7.0", note="replaced with set_use_direct_reads/set_use_direct_io_for_flush_and_compaction methods")] |
|
|
|
|
pub fn set_allow_os_buffer(&mut self, is_allow: bool) { |
|
|
|
|
self.set_use_direct_reads(!is_allow); |
|
|
|
|
self.set_use_direct_io_for_flush_and_compaction(!is_allow); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// Sets the number of shards used for table cache.
|
|
|
|
|
///
|
|
|
|
|
/// Default: `6`
|
|
|
|
|