@@ -3529,6 +3529,28 @@ impl Options {
3529
3529
ffi:: rocksdb_options_set_avoid_unnecessary_blocking_io ( self . inner , u8:: from ( val) ) ;
3530
3530
}
3531
3531
}
3532
+
3533
+ /// Sets the compaction priority.
3534
+ ///
3535
+ /// If level compaction_style =
3536
+ /// kCompactionStyleLevel, for each level, which files are prioritized to be
3537
+ /// picked to compact.
3538
+ ///
3539
+ /// Default: `DBCompactionPri::MinOverlappingRatio`
3540
+ ///
3541
+ /// # Examples
3542
+ ///
3543
+ /// ```
3544
+ /// use rust_rocksdb::{Options, DBCompactionPri};
3545
+ ///
3546
+ /// let mut opts = Options::default();
3547
+ /// opts.set_compaction_pri(DBCompactionPri::RoundRobinCompaction);
3548
+ /// ```
3549
+ pub fn set_compaction_pri ( & mut self , pri : DBCompactionPri ) {
3550
+ unsafe {
3551
+ ffi:: rocksdb_options_set_compaction_pri ( self . inner , pri as c_int ) ;
3552
+ }
3553
+ }
3532
3554
}
3533
3555
3534
3556
impl Default for Options {
@@ -4166,6 +4188,16 @@ pub enum RateLimiterMode {
4166
4188
KAllIo = 2 ,
4167
4189
}
4168
4190
4191
+ #[ derive( Debug , Copy , Clone , PartialEq , Eq ) ]
4192
+ #[ cfg_attr( feature = "serde1" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
4193
+ pub enum DBCompactionPri {
4194
+ ByCompensatedSize = ffi:: rocksdb_k_by_compensated_size_compaction_pri as isize ,
4195
+ OldestLargestSeqFirst = ffi:: rocksdb_k_oldest_largest_seq_first_compaction_pri as isize ,
4196
+ OldestSmallestSeqFirst = ffi:: rocksdb_k_oldest_smallest_seq_first_compaction_pri as isize ,
4197
+ MinOverlappingRatio = ffi:: rocksdb_k_min_overlapping_ratio_compaction_pri as isize ,
4198
+ RoundRobinCompaction = ffi:: rocksdb_k_round_robin_compaction_pri as isize ,
4199
+ }
4200
+
4169
4201
pub struct FifoCompactOptions {
4170
4202
pub ( crate ) inner : * mut ffi:: rocksdb_fifo_compaction_options_t ,
4171
4203
}
0 commit comments