Use zstd::bulk::Decompressor::decompress instead decompredd_to_buffer

This commit is contained in:
Konstantin Knizhnik
2022-05-03 11:28:32 +03:00
parent 39eadf6236
commit 076b8e3d04
2 changed files with 7 additions and 7 deletions

View File

@@ -24,6 +24,7 @@ pub const ZSTD_MAX_SAMPLES: usize = 1024;
pub const ZSTD_MIN_SAMPLES: usize = 8; // magic requirement of zstd
pub const ZSTD_MAX_DICTIONARY_SIZE: usize = 128 * 1024;
pub const ZSTD_COMPRESSION_LEVEL: i32 = 0; // default compression level
pub const ZSTD_DECOMPRESS_BUFFER_LIMIT: usize = 64 * 1024; // TODO: handle larger WAL records?
pub mod defaults {
use crate::tenant_config::defaults::*;

View File

@@ -277,8 +277,8 @@ impl Layer for DeltaLayer {
)
})?;
let val = if let Some(decompressor) = &mut decompressor {
let mut decompressed: Vec<u8> = Vec::new();
decompressor.decompress_to_buffer(&buf, &mut decompressed)?;
let decompressed =
decompressor.decompress(&buf, config::ZSTD_DECOMPRESS_BUFFER_LIMIT)?;
Value::des(&decompressed)
} else {
Value::des(&buf)
@@ -395,9 +395,8 @@ impl Layer for DeltaLayer {
match cursor.read_blob(blob_ref.pos()) {
Ok(buf) => {
let val = if let Some(decompressor) = &mut decompressor {
let mut decompressed: Vec<u8> = Vec::new();
decompressor
.decompress_to_buffer(&buf, &mut decompressed)
let decompressed = decompressor
.decompress(&buf, config::ZSTD_DECOMPRESS_BUFFER_LIMIT)
.unwrap();
Value::des(&decompressed)
} else {
@@ -858,8 +857,8 @@ impl<'a> DeltaValueIter<'a> {
let buf = self.reader.read_blob(blob_ref.pos())?;
let val = if let Some(decompressor) = &mut self.decompressor {
let mut decompressed: Vec<u8> = Vec::new();
decompressor.decompress_to_buffer(&buf, &mut decompressed)?;
let decompressed =
decompressor.decompress(&buf, config::ZSTD_DECOMPRESS_BUFFER_LIMIT)?;
Value::des(&decompressed)
} else {
Value::des(&buf)