Skip to content

Commit d8e0ef0

Browse files
committed
wip
1 parent 4036348 commit d8e0ef0

File tree

9 files changed

+32
-60
lines changed

9 files changed

+32
-60
lines changed

src/blob_tree/mod.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -642,9 +642,6 @@ impl AbstractTree for BlobTree {
642642
fn get<K: AsRef<[u8]>>(&self, key: K, seqno: SeqNo) -> crate::Result<Option<crate::UserValue>> {
643643
let key = key.as_ref();
644644

645-
// TODO: refactor memtable, sealed memtables, manifest lock to be a single lock (SuperVersion kind of)
646-
// TODO: then, try to reduce the lock access to 1, because we are accessing it twice (index.get, and then vhandle resolving...)
647-
648645
let Some(item) = self.index.get_internal_entry(key, seqno)? else {
649646
return Ok(None);
650647
};

src/compaction/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ pub enum Choice {
8383
/// and emits a choice on what to do.
8484
#[expect(clippy::module_name_repetitions)]
8585
pub trait CompactionStrategy {
86-
// TODO: could be : Display instead
8786
/// Gets the compaction strategy name.
8887
fn get_name(&self) -> &'static str;
8988

src/config/block_size.rs

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,6 @@ impl std::ops::Deref for BlockSizePolicy {
1414
}
1515
}
1616

17-
// TODO: remove default
18-
impl Default for BlockSizePolicy {
19-
fn default() -> Self {
20-
Self::new(&[4 * 1_024])
21-
}
22-
}
23-
2417
impl BlockSizePolicy {
2518
pub(crate) fn get(&self, level: usize) -> u32 {
2619
self.0
@@ -29,8 +22,6 @@ impl BlockSizePolicy {
2922
.unwrap_or_else(|| self.last().copied().expect("policy should not be empty"))
3023
}
3124

32-
// TODO: accept Vec... Into<Vec<...>>? or owned
33-
3425
/// Uses the same block size in every level.
3526
#[must_use]
3627
pub fn all(c: u32) -> Self {
@@ -39,9 +30,10 @@ impl BlockSizePolicy {
3930

4031
/// Constructs a custom block size policy.
4132
#[must_use]
42-
pub fn new(policy: &[u32]) -> Self {
33+
pub fn new(policy: impl Into<Vec<u32>>) -> Self {
34+
let policy = policy.into();
4335
assert!(!policy.is_empty(), "compression policy may not be empty");
4436
assert!(policy.len() <= 255, "compression policy is too large");
45-
Self(policy.into())
37+
Self(policy)
4638
}
4739
}

src/config/compression.rs

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,6 @@ impl std::ops::Deref for CompressionPolicy {
1616
}
1717
}
1818

19-
// TODO: remove default
20-
impl Default for CompressionPolicy {
21-
fn default() -> Self {
22-
#[cfg(feature = "lz4")]
23-
let c = Self::new(&[CompressionType::None, CompressionType::Lz4]);
24-
25-
#[cfg(not(feature = "lz4"))]
26-
let c = Self::new(&[CompressionType::None]);
27-
28-
c
29-
}
30-
}
31-
3219
impl CompressionPolicy {
3320
pub(crate) fn get(&self, level: usize) -> CompressionType {
3421
self.0
@@ -43,8 +30,6 @@ impl CompressionPolicy {
4330
Self::all(CompressionType::None)
4431
}
4532

46-
// TODO: accept Vec... Into<Vec<...>>? or owned
47-
4833
/// Uses the same compression in every level.
4934
#[must_use]
5035
pub fn all(c: CompressionType) -> Self {
@@ -65,9 +50,10 @@ impl CompressionPolicy {
6550
/// ]);
6651
/// ```
6752
#[must_use]
68-
pub fn new(policy: &[CompressionType]) -> Self {
53+
pub fn new(policy: impl Into<Vec<CompressionType>>) -> Self {
54+
let policy = policy.into();
6955
assert!(!policy.is_empty(), "compression policy may not be empty");
7056
assert!(policy.len() <= 255, "compression policy is too large");
71-
Self(policy.into())
57+
Self(policy)
7258
}
7359
}

src/config/filter.rs

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,6 @@ impl std::ops::Deref for FilterPolicy {
2828
}
2929
}
3030

31-
// TODO: remove default
32-
impl Default for FilterPolicy {
33-
fn default() -> Self {
34-
Self::new(&[FilterPolicyEntry::Bloom(
35-
BloomConstructionPolicy::BitsPerKey(10.0),
36-
)])
37-
}
38-
}
39-
4031
impl FilterPolicy {
4132
pub(crate) fn get(&self, level: usize) -> FilterPolicyEntry {
4233
self.0
@@ -53,8 +44,6 @@ impl FilterPolicy {
5344
Self::all(FilterPolicyEntry::None)
5445
}
5546

56-
// TODO: accept Vec... Into<Vec<...>>? or owned
57-
5847
/// Uses the same block size in every level.
5948
#[must_use]
6049
pub fn all(c: FilterPolicyEntry) -> Self {

src/config/hash_ratio.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ impl HashRatioPolicy {
2222
.unwrap_or_else(|| self.last().copied().expect("policy should not be empty"))
2323
}
2424

25-
// TODO: accept Vec... Into<Vec<...>>? or owned
26-
2725
/// Uses the same block size in every level.
2826
#[must_use]
2927
pub fn all(c: f32) -> Self {
@@ -32,9 +30,10 @@ impl HashRatioPolicy {
3230

3331
/// Constructs a custom block size policy.
3432
#[must_use]
35-
pub fn new(policy: &[f32]) -> Self {
33+
pub fn new(policy: impl Into<Vec<f32>>) -> Self {
34+
let policy = policy.into();
3635
assert!(!policy.is_empty(), "compression policy may not be empty");
3736
assert!(policy.len() <= 255, "compression policy is too large");
38-
Self(policy.into())
37+
Self(policy)
3938
}
4039
}

src/config/mod.rs

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -246,26 +246,36 @@ impl Default for Config {
246246

247247
level_count: DEFAULT_LEVEL_COUNT,
248248

249-
data_block_size_policy: BlockSizePolicy::default(),
249+
data_block_size_policy: BlockSizePolicy::all(4_096),
250250

251-
index_block_pinning_policy: PinningPolicy::new(&[true, true, false]),
252-
filter_block_pinning_policy: PinningPolicy::new(&[true, false]),
251+
index_block_pinning_policy: PinningPolicy::new([true, true, false]),
252+
filter_block_pinning_policy: PinningPolicy::new([true, false]),
253253

254254
top_level_index_block_pinning_policy: PinningPolicy::all(true), // TODO: implement
255255
top_level_filter_block_pinning_policy: PinningPolicy::all(true), // TODO: implement
256256

257-
index_block_partitioning_policy: PinningPolicy::new(&[false, false, false, true]),
258-
filter_block_partitioning_policy: PinningPolicy::new(&[false, false, false, true]),
257+
index_block_partitioning_policy: PinningPolicy::new([false, false, false, true]),
258+
filter_block_partitioning_policy: PinningPolicy::new([false, false, false, true]),
259259

260260
index_block_partition_size_policy: BlockSizePolicy::all(4_096), // TODO: implement
261261
filter_block_partition_size_policy: BlockSizePolicy::all(4_096), // TODO: implement
262262

263-
data_block_compression_policy: CompressionPolicy::default(),
263+
data_block_compression_policy: ({
264+
#[cfg(feature = "lz4")]
265+
let c = CompressionPolicy::new([CompressionType::None, CompressionType::Lz4]);
266+
267+
#[cfg(not(feature = "lz4"))]
268+
let c = CompressionPolicy::new([CompressionType::None]);
269+
270+
c
271+
}),
264272
index_block_compression_policy: CompressionPolicy::all(CompressionType::None),
265273

266274
data_block_hash_ratio_policy: HashRatioPolicy::all(0.0),
267275

268-
filter_policy: FilterPolicy::default(),
276+
filter_policy: FilterPolicy::all(FilterPolicyEntry::Bloom(
277+
BloomConstructionPolicy::BitsPerKey(10.0),
278+
)),
269279

270280
expect_point_read_hits: false,
271281

src/config/pinning.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ impl PinningPolicy {
2222
.unwrap_or_else(|| self.last().copied().expect("policy should not be empty"))
2323
}
2424

25-
// TODO: accept Vec... Into<Vec<...>>? or owned
26-
2725
/// Uses the same block size in every level.
2826
#[must_use]
2927
pub fn all(c: bool) -> Self {
@@ -32,9 +30,10 @@ impl PinningPolicy {
3230

3331
/// Constructs a custom block size policy.
3432
#[must_use]
35-
pub fn new(policy: &[bool]) -> Self {
33+
pub fn new(policy: impl Into<Vec<bool>>) -> Self {
34+
let policy = policy.into();
3635
assert!(!policy.is_empty(), "compression policy may not be empty");
3736
assert!(policy.len() <= 255, "compression policy is too large");
38-
Self(policy.into())
37+
Self(policy)
3938
}
4039
}

src/config/restart_interval.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,10 @@ impl RestartIntervalPolicy {
3232

3333
/// Constructs a custom block size policy.
3434
#[must_use]
35-
pub fn new(policy: &[u8]) -> Self {
35+
pub fn new(policy: impl Into<Vec<u8>>) -> Self {
36+
let policy = policy.into();
3637
assert!(!policy.is_empty(), "compression policy may not be empty");
3738
assert!(policy.len() <= 255, "compression policy is too large");
38-
Self(policy.into())
39+
Self(policy)
3940
}
4041
}

0 commit comments

Comments
 (0)