mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-15 17:32:56 +00:00
use image compression for image values in delta layers
This commit is contained in:
@@ -457,8 +457,15 @@ impl DeltaLayerWriterInner {
|
||||
ctx: &RequestContext,
|
||||
) -> (Vec<u8>, anyhow::Result<()>) {
|
||||
assert!(self.lsn_range.start <= lsn);
|
||||
// We don't want to use compression in delta layer creation
|
||||
let compression = ImageCompressionAlgorithm::Disabled;
|
||||
|
||||
let compression = if val.len() >= 8192 {
|
||||
// For full page images, respect configured image compression algorithm.
|
||||
self.conf.image_compression
|
||||
} else {
|
||||
// For small writes, do not use compression. Compression ratios on tiny buffers do not justify CPU cost.
|
||||
ImageCompressionAlgorithm::Disabled
|
||||
};
|
||||
|
||||
let (val, res) = self
|
||||
.blob_writer
|
||||
.write_blob_maybe_compressed(val, ctx, compression)
|
||||
@@ -479,6 +486,10 @@ impl DeltaLayerWriterInner {
|
||||
self.blob_writer.size() + self.tree.borrow_writer().size()
|
||||
}
|
||||
|
||||
fn size_values(&self) -> u64 {
|
||||
self.blob_writer.size()
|
||||
}
|
||||
|
||||
///
|
||||
/// Finish writing the delta layer.
|
||||
///
|
||||
@@ -668,6 +679,10 @@ impl DeltaLayerWriter {
|
||||
self.inner.as_ref().unwrap().size()
|
||||
}
|
||||
|
||||
pub fn size_values(&self) -> u64 {
|
||||
self.inner.as_ref().unwrap().size_values()
|
||||
}
|
||||
|
||||
///
|
||||
/// Finish writing the delta layer.
|
||||
///
|
||||
|
||||
Reference in New Issue
Block a user