From 3302d8a1a4bce32e3a22dc23d7470d68f961cbf6 Mon Sep 17 00:00:00 2001 From: Christian Schwarz Date: Fri, 3 Nov 2023 11:57:52 +0000 Subject: [PATCH] no-op pagestream request/response type (server-side impl) --- libs/pageserver_api/src/models.rs | 14 ++++++++++++++ pageserver/src/metrics.rs | 1 + pageserver/src/page_service.rs | 5 +++++ trace/src/main.rs | 1 + 4 files changed, 21 insertions(+) diff --git a/libs/pageserver_api/src/models.rs b/libs/pageserver_api/src/models.rs index fd433b1fa4..b4a36f5afe 100644 --- a/libs/pageserver_api/src/models.rs +++ b/libs/pageserver_api/src/models.rs @@ -612,15 +612,18 @@ pub enum PagestreamFeMessage { Nblocks(PagestreamNblocksRequest), GetPage(PagestreamGetPageRequest), DbSize(PagestreamDbSizeRequest), + NoOp, } // Wrapped in libpq CopyData +#[derive(Debug)] pub enum PagestreamBeMessage { Exists(PagestreamExistsResponse), Nblocks(PagestreamNblocksResponse), GetPage(PagestreamGetPageResponse), Error(PagestreamErrorResponse), DbSize(PagestreamDbSizeResponse), + NoOp, } #[derive(Debug, PartialEq, Eq)] @@ -719,6 +722,10 @@ impl PagestreamFeMessage { bytes.put_u64(req.lsn.0); bytes.put_u32(req.dbnode); } + + Self::NoOp => { + bytes.put_u8(4); + } } bytes.into() @@ -769,6 +776,7 @@ impl PagestreamFeMessage { lsn: Lsn::from(body.read_u64::()?), dbnode: body.read_u32::()?, })), + 4 => Ok(PagestreamFeMessage::NoOp), _ => bail!("unknown smgr message tag: {:?}", msg_tag), } } @@ -803,6 +811,9 @@ impl PagestreamBeMessage { bytes.put_u8(104); /* tag from pagestore_client.h */ bytes.put_i64(resp.db_size); } + Self::NoOp => { + bytes.put_u8(105); + } } bytes.into() @@ -834,6 +845,9 @@ impl PagestreamBeMessage { })) } 104 => todo!(), + 105 => { + Ok(PagestreamBeMessage::NoOp) + }, _ => bail!("unknown tag: {:?}", msg_tag), } } diff --git a/pageserver/src/metrics.rs b/pageserver/src/metrics.rs index 34575d93b2..5354672c1a 100644 --- a/pageserver/src/metrics.rs +++ b/pageserver/src/metrics.rs @@ -760,6 +760,7 @@ pub enum SmgrQueryType { GetRelSize, GetPageAtLsn, GetDbSize, + NoOp, } #[derive(Debug)] diff --git a/pageserver/src/page_service.rs b/pageserver/src/page_service.rs index 536334d051..e1fa41686d 100644 --- a/pageserver/src/page_service.rs +++ b/pageserver/src/page_service.rs @@ -488,6 +488,11 @@ impl PageServerHandler { span, ) } + PagestreamFeMessage::NoOp => { + let _timer = metrics.start_timer(metrics::SmgrQueryType::NoOp); + let span = tracing::info_span!("no_op"); + (Ok(PagestreamBeMessage::NoOp), span) + } }; let response = response.unwrap_or_else(|e| { diff --git a/trace/src/main.rs b/trace/src/main.rs index ddd970e95d..9b20ed99c4 100644 --- a/trace/src/main.rs +++ b/trace/src/main.rs @@ -74,6 +74,7 @@ fn analyze_trace(mut reader: R) { prev = Some(req); } PagestreamFeMessage::DbSize(_) => {} + PagestreamFeMessage::NoOp => {}, }; }