pub struct SstFileManager(/* private fields */);Expand description
SstFileManager is used to track SST files in the database and control their deletion rate.
All SstFileManager public functions are thread-safe.
SstFileManager can be used to:
- Set a limit on the total size of SST files. Once the limit is exceeded, writes will fail with a specific status.
- Control the deletion rate of obsolete files to avoid saturating the disk bandwidth with deletion operations.
- Track the total size of SST files and the total size of trash files.
See also: rocksdb/include/rocksdb/sst_file_manager.h
Implementations§
Source§impl SstFileManager
impl SstFileManager
Sourcepub fn set_max_allowed_space_usage(&self, max_allowed_space: u64)
pub fn set_max_allowed_space_usage(&self, max_allowed_space: u64)
Sets the maximum allowed space usage for SST files.
If the total size of SST files exceeds this limit, writes will fail. Setting this to 0 disables the limit.
§Arguments
max_allowed_space- Maximum allowed space in bytes (0 = unlimited)
Sourcepub fn set_compaction_buffer_size(&self, compaction_buffer_size: u64)
pub fn set_compaction_buffer_size(&self, compaction_buffer_size: u64)
Sets the size of the compaction buffer.
The compaction buffer is used to reserve space for compaction output. If set, the SstFileManager will consider this space as used when checking against the maximum allowed space.
§Arguments
compaction_buffer_size- Size of the compaction buffer in bytes
Sourcepub fn is_max_allowed_space_reached(&self) -> bool
pub fn is_max_allowed_space_reached(&self) -> bool
Returns true if the total size of SST files exceeded the maximum allowed space.
Sourcepub fn is_max_allowed_space_reached_including_compactions(&self) -> bool
pub fn is_max_allowed_space_reached_including_compactions(&self) -> bool
Returns true if the total size of SST files plus compaction buffer size exceeded the maximum allowed space.
Sourcepub fn get_total_size(&self) -> u64
pub fn get_total_size(&self) -> u64
Returns the total size of all tracked SST files in bytes.
Sourcepub fn get_delete_rate_bytes_per_second(&self) -> i64
pub fn get_delete_rate_bytes_per_second(&self) -> i64
Returns the current delete rate in bytes per second.
Returns 0 if there is no rate limiting.
Sourcepub fn set_delete_rate_bytes_per_second(&self, delete_rate: i64)
pub fn set_delete_rate_bytes_per_second(&self, delete_rate: i64)
Sets the delete rate limit in bytes per second.
This controls how fast obsolete files are deleted. Setting this to 0 disables rate limiting and files will be deleted immediately.
§Arguments
delete_rate- Delete rate in bytes per second (0 = unlimited)
Sourcepub fn get_max_trash_db_ratio(&self) -> f64
pub fn get_max_trash_db_ratio(&self) -> f64
Returns the maximum trash to DB size ratio.
If the trash size exceeds this ratio of the total DB size, files will be deleted immediately regardless of the delete rate limit.
Sourcepub fn set_max_trash_db_ratio(&self, ratio: f64)
pub fn set_max_trash_db_ratio(&self, ratio: f64)
Sets the maximum trash to DB size ratio.
When the size of pending-deletion files (trash) exceeds this ratio relative to the database size, files will be deleted immediately regardless of the delete rate limit.
§Arguments
ratio- Maximum trash to DB size ratio (e.g., 0.25 = 25%)
Sourcepub fn get_total_trash_size(&self) -> u64
pub fn get_total_trash_size(&self) -> u64
Returns the total size of trash files (files pending deletion) in bytes.
Trait Implementations§
Source§impl Clone for SstFileManager
impl Clone for SstFileManager
Source§fn clone(&self) -> SstFileManager
fn clone(&self) -> SstFileManager
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more