sketch interface

This commit is contained in:
Christian Schwarz
2024-09-12 11:34:22 +01:00
parent 2d6763882e
commit 88fd46d795
2 changed files with 13 additions and 1 deletions

View File

@@ -68,7 +68,9 @@ use crate::{
tenant::{
layer_map::{LayerMap, SearchResult},
metadata::TimelineMetadata,
storage_layer::{inmemory_layer::IndexEntry, PersistentLayerDesc},
storage_layer::{
inmemory_layer::IndexEntry, LayerId, PersistentLayerDesc, ValueReconstructSituation,
},
},
walredo,
};
@@ -1126,6 +1128,14 @@ impl Timeline {
.await?;
get_data_timer.stop_and_record();
// transform reconstruct state which is per key into a map
// layer => all reads from that layer
struct KeyWaiter {
img: Option<oneshot::Receiver<Bytes>>,
values: Vec<oneshot::Receiver<Bytes>>,
}
let mut key_waiters: BTreeMap<Key, Result<KeyWaiter, PageReconstructError>> = todo!();
let reconstruct_timer = crate::metrics::RECONSTRUCT_TIME
.for_get_kind(get_kind)
.start_timer();

View File

@@ -18,6 +18,7 @@
use std::collections::BTreeMap;
use bytes::BytesMut;
use futures::channel::oneshot;
use pageserver_api::key::Key;
use tokio::io::AsyncWriteExt;
use tokio_epoll_uring::BoundedBuf;
@@ -665,6 +666,7 @@ impl StreamingVectoredReadPlanner {
start_offset: u64,
end_offset: u64,
is_last_blob_in_read: bool,
// destination: oneshot::Sender<Result<Bytes, std::io::Error>>,
) -> Option<VectoredRead> {
match &mut self.read_builder {
Some(read_builder) => {