diff --git a/pageserver/src/tenant/blob_io.rs b/pageserver/src/tenant/blob_io.rs index 791eefebe9..a7fcea97af 100644 --- a/pageserver/src/tenant/blob_io.rs +++ b/pageserver/src/tenant/blob_io.rs @@ -19,7 +19,6 @@ use bytes::{BufMut, BytesMut}; use pageserver_api::models::ImageCompressionAlgorithm; use tokio::io::AsyncWriteExt; use tokio_epoll_uring::{BoundedBuf, IoBuf, Slice}; -use tracing::warn; use crate::context::RequestContext; use crate::page_cache::PAGE_SZ; @@ -73,22 +72,14 @@ impl<'a> BlockCursor<'a> { len_buf.copy_from_slice(&buf[off..off + 4]); off += 4; } - let bit_mask = if self.read_compressed { - !LEN_COMPRESSION_BIT_MASK - } else { - 0x7f - }; - len_buf[0] &= bit_mask; + len_buf[0] &= !LEN_COMPRESSION_BIT_MASK; u32::from_be_bytes(len_buf) as usize }; let compression_bits = first_len_byte & LEN_COMPRESSION_BIT_MASK; let mut tmp_buf = Vec::new(); let buf_to_write; - let compression = if compression_bits <= BYTE_UNCOMPRESSED || !self.read_compressed { - if compression_bits > BYTE_UNCOMPRESSED { - warn!("reading key above future limit ({len} bytes)"); - } + let compression = if compression_bits <= BYTE_UNCOMPRESSED { buf_to_write = dstbuf; None } else if compression_bits == BYTE_ZSTD { @@ -331,6 +322,7 @@ impl BlobWriter { if compressed.len() < len { let compressed_len = compressed.len(); compressed_buf = Some(compressed); + (BYTE_ZSTD, compressed_len, slice.into_inner()) } else { (BYTE_UNCOMPRESSED, len, slice.into_inner()) diff --git a/pageserver/src/tenant/block_io.rs b/pageserver/src/tenant/block_io.rs index 601b095155..2a60c248e0 100644 --- a/pageserver/src/tenant/block_io.rs +++ b/pageserver/src/tenant/block_io.rs @@ -149,24 +149,19 @@ impl<'a> BlockReaderRef<'a> { /// ``` /// pub struct BlockCursor<'a> { - pub(super) read_compressed: bool, reader: BlockReaderRef<'a>, } impl<'a> BlockCursor<'a> { pub(crate) fn new(reader: BlockReaderRef<'a>) -> Self { - Self::new_with_compression(reader, false) + Self::new_with_compression(reader, true) } - pub(crate) fn new_with_compression(reader: BlockReaderRef<'a>, read_compressed: bool) -> Self { - BlockCursor { - read_compressed, - reader, - } + pub(crate) fn new_with_compression(reader: BlockReaderRef<'a>, _read_compressed: bool) -> Self { + BlockCursor { reader } } // Needed by cli pub fn new_fileblockreader(reader: &'a FileBlockReader) -> Self { BlockCursor { - read_compressed: false, reader: BlockReaderRef::FileBlockReader(reader), } } @@ -196,17 +191,11 @@ pub struct FileBlockReader<'a> { /// Unique ID of this file, used as key in the page cache. file_id: page_cache::FileId, - - compressed_reads: bool, } impl<'a> FileBlockReader<'a> { pub fn new(file: &'a VirtualFile, file_id: FileId) -> Self { - FileBlockReader { - file_id, - file, - compressed_reads: true, - } + FileBlockReader { file_id, file } } /// Read a page from the underlying file into given buffer. @@ -253,10 +242,7 @@ impl<'a> FileBlockReader<'a> { impl BlockReader for FileBlockReader<'_> { fn block_cursor(&self) -> BlockCursor<'_> { - BlockCursor::new_with_compression( - BlockReaderRef::FileBlockReader(self), - self.compressed_reads, - ) + BlockCursor::new_with_compression(BlockReaderRef::FileBlockReader(self), true) } }