From daf214e2e9e8c04df11c75d2fd1c1f603f44f9ec Mon Sep 17 00:00:00 2001 From: Yuchen Liang Date: Wed, 11 Dec 2024 19:13:08 +0000 Subject: [PATCH] review: create follow-up issue for changing `BlockBuf::blocks` https://github.com/neondatabase/neon/pull/10063/files#r1880401785 Signed-off-by: Yuchen Liang --- pageserver/src/tenant/storage_layer/delta_layer.rs | 2 ++ pageserver/src/tenant/storage_layer/image_layer.rs | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pageserver/src/tenant/storage_layer/delta_layer.rs b/pageserver/src/tenant/storage_layer/delta_layer.rs index b0477fc308..3b059169de 100644 --- a/pageserver/src/tenant/storage_layer/delta_layer.rs +++ b/pageserver/src/tenant/storage_layer/delta_layer.rs @@ -117,6 +117,8 @@ impl From<&DeltaLayer> for Summary { impl Summary { /// Serializes the summary header into an aligned buffer of lenth `PAGE_SZ`. pub fn ser_into_page(&self) -> Result { + let mut buf = bytes::BytesMut::with_capacity(PAGE_SZ); + Self::ser_into(&self, &mut buf); let mut buf = IoBufferMut::with_capacity(PAGE_SZ); Self::ser_into(&self, &mut buf)?; // Pad zeroes to the buffer so the length is a multiple of the alignment. diff --git a/pageserver/src/tenant/storage_layer/image_layer.rs b/pageserver/src/tenant/storage_layer/image_layer.rs index 932cf20745..2db55c80a3 100644 --- a/pageserver/src/tenant/storage_layer/image_layer.rs +++ b/pageserver/src/tenant/storage_layer/image_layer.rs @@ -887,9 +887,11 @@ impl ImageLayerWriterInner { let file = self.blob_writer.into_inner(ctx).await?; // Write out the index - // TODO(yuchen): should we just replace BlockBuf::blocks with one big buffer? let mut offset = index_start_blk as u64 * PAGE_SZ as u64; let (index_root_blk, block_buf) = self.tree.finish()?; + + // TODO(yuchen): https://github.com/neondatabase/neon/issues/10092 + // Should we just replace BlockBuf::blocks with one big buffer? for buf in block_buf.blocks { let (_buf, res) = file.write_all_at(buf.slice_len(), offset, ctx).await; res?;