Skip to content

Commit f29ca91

Browse files
committed
fix: uncompressed bytes being wrong (slower GC :( )
1 parent 80fb73a commit f29ca91

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/value_log.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -531,8 +531,16 @@ impl<C: Compressor + Clone> ValueLog<C> {
531531
// IMPORTANT: We purposefully don't use compression
532532
// to just pipe the compressed value directly to the new blob file
533533
// without having to pay (de)compression costs
534-
let reader = MergeReader::new(readers);
535-
let mut writer = self.get_writer_raw()?;
534+
let reader = MergeReader::new(
535+
readers
536+
.into_iter()
537+
.map(|x| x.use_compression(self.config.compression.clone()))
538+
.collect(),
539+
);
540+
541+
let mut writer = self
542+
.get_writer_raw()?
543+
.use_compression(self.config.compression.clone());
536544

537545
for item in reader {
538546
let (k, v, segment_id, _) = item?;

tests/compression.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ fn compression() -> value_log::Result<()> {
5555
{
5656
let index_writer = MockIndexWriter(index.clone());
5757
let bytes_saved = value_log.major_compact(&index, index_writer)?;
58+
value_log.drop_stale_segments()?;
5859

5960
assert_eq!(0, bytes_saved);
6061

0 commit comments

Comments
 (0)