mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-15 01:12:56 +00:00
sketch interface
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
Reference in New Issue
Block a user