diff --git a/pageserver/src/page_service.rs b/pageserver/src/page_service.rs index 985026b2ac..8d313bd998 100644 --- a/pageserver/src/page_service.rs +++ b/pageserver/src/page_service.rs @@ -275,7 +275,6 @@ impl PageServerHandler { pgb.flush().await?; let metrics = PageRequestMetrics::new(&tenant_id, &timeline_id); - let mut n_buffered_responses = 0usize; loop { let msg = tokio::select! { @@ -301,7 +300,6 @@ impl PageServerHandler { trace!("query: {copy_data_bytes:?}"); let neon_fe_msg = PagestreamFeMessage::parse(copy_data_bytes)?; - let mut do_flush = true; let response = match neon_fe_msg { PagestreamFeMessage::Exists(req) => { let _timer = metrics.get_rel_exists.start_timer(); @@ -313,7 +311,6 @@ impl PageServerHandler { } PagestreamFeMessage::GetPage(req) => { let _timer = metrics.get_page_at_lsn.start_timer(); - do_flush = !req.prefetch || n_buffered_responses > MAX_BUFFERED_RESPONSES; self.handle_get_page_at_lsn_request(&timeline, &req).await } PagestreamFeMessage::DbSize(req) => { @@ -332,11 +329,7 @@ impl PageServerHandler { }); pgb.write_message(&BeMessage::CopyData(&response.serialize()))?; - n_buffered_responses += 1; - if do_flush { - pgb.flush().await?; - n_buffered_responses = 0; - } + pgb.flush().await?; } Ok(()) } diff --git a/pgxn/neon/pagestore_client.h b/pgxn/neon/pagestore_client.h index 3f6971fff9..4ea0756e15 100644 --- a/pgxn/neon/pagestore_client.h +++ b/pgxn/neon/pagestore_client.h @@ -60,7 +60,6 @@ typedef struct { NeonMessageTag tag; bool latest; /* if true, request latest page version */ - bool prefetch; /* if true, then request is followed by more prefetch requests */ XLogRecPtr lsn; /* request page version @ this LSN */ } NeonRequest; @@ -172,7 +171,7 @@ extern void neon_extend(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, char *buffer, bool skipFsync); extern bool neon_prefetch(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum); -extern void neon_reset_prefetch(SMgrRelation reln); +extern bool neon_prefetch_in_progress(SMgrRelation reln); extern void neon_read(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, char *buffer); diff --git a/pgxn/neon/pagestore_smgr.c b/pgxn/neon/pagestore_smgr.c index 6ed252843d..f78b1e1cd1 100644 --- a/pgxn/neon/pagestore_smgr.c +++ b/pgxn/neon/pagestore_smgr.c @@ -211,7 +211,6 @@ nm_pack_request(NeonRequest * msg) NeonGetPageRequest *msg_req = (NeonGetPageRequest *) msg; pq_sendbyte(&s, msg_req->req.latest); - pq_sendbyte(&s, msg_req->req.prefetch); pq_sendint64(&s, msg_req->req.lsn); pq_sendint32(&s, msg_req->rnode.spcNode); pq_sendint32(&s, msg_req->rnode.dbNode); @@ -384,7 +383,6 @@ nm_to_string(NeonMessage * msg) appendStringInfo(&s, ", \"blkno\": %u", msg_req->blkno); appendStringInfo(&s, ", \"lsn\": \"%X/%X\"", LSN_FORMAT_ARGS(msg_req->req.lsn)); appendStringInfo(&s, ", \"latest\": %d", msg_req->req.latest); - appendStringInfo(&s, ", \"prefetch\": %d", msg_req->req.prefetch); appendStringInfoChar(&s, '}'); break; } @@ -1143,7 +1141,6 @@ neon_read_at_lsn(RelFileNode rnode, ForkNumber forkNum, BlockNumber blkno, NeonGetPageRequest request = { .req.tag = T_NeonGetPageRequest, .req.latest = request_latest, - .req.prefetch = false, .req.lsn = request_lsn, .rnode = rnode, .forknum = forkNum, @@ -1153,7 +1150,6 @@ neon_read_at_lsn(RelFileNode rnode, ForkNumber forkNum, BlockNumber blkno, if (n_prefetch_requests > 0) { /* Combine all prefetch requests with primary request */ - request.req.prefetch = true; page_server->send((NeonRequest *) & request); for (i = 0; i < n_prefetch_requests; i++) { @@ -1161,7 +1157,6 @@ neon_read_at_lsn(RelFileNode rnode, ForkNumber forkNum, BlockNumber blkno, request.forknum = prefetch_requests[i].forkNum; request.blkno = prefetch_requests[i].blockNum; prefetch_responses[i] = prefetch_requests[i]; - request.req.prefetch = i+1 < n_prefetch_requests; page_server->send((NeonRequest *) & request); } page_server->flush();