Skip to content

Commit 481c779

Browse files
committed
find_segment now uses FindSegmentReq
1 parent a636c9c commit 481c779

3 files changed

Lines changed: 10 additions & 8 deletions

File tree

libsql-wal/src/replication/storage.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use zerocopy::FromZeroes;
99

1010
use crate::io::buf::ZeroCopyBoxIoBuf;
1111
use crate::segment::Frame;
12+
use crate::storage::backend::FindSegmentReq;
1213
use crate::storage::Storage;
1314

1415
use super::Result;
@@ -43,9 +44,10 @@ where
4344
mut current: u64,
4445
until: u64,
4546
) -> Pin<Box<dyn Stream<Item = Result<Box<Frame>>> + Send + 'a>> {
47+
4648
Box::pin(async_stream::try_stream! {
4749
loop {
48-
let key = self.storage.find_segment(&self.namespace, current, None).await?;
50+
let key = self.storage.find_segment(&self.namespace, FindSegmentReq::EndFrameNoLessThan(current), None).await?;
4951
let index = self.storage.fetch_segment_index(&self.namespace, &key, None).await?;
5052
let mut pages = index.into_stream();
5153
let mut maybe_seg = None;

libsql-wal/src/storage/async_storage.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use crate::io::{FileExt, Io, StdIO};
1313
use crate::segment::compacted::CompactedSegment;
1414
use crate::segment::Segment;
1515

16-
use super::backend::Backend;
16+
use super::backend::{Backend, FindSegmentReq};
1717
use super::scheduler::Scheduler;
1818
use super::{OnStoreCallback, RestoreOptions, Storage, StoreSegmentRequest};
1919

@@ -228,7 +228,7 @@ where
228228
async fn find_segment(
229229
&self,
230230
namespace: &NamespaceName,
231-
frame_no: u64,
231+
req: FindSegmentReq,
232232
config_override: Option<Self::Config>,
233233
) -> super::Result<super::SegmentKey> {
234234
let config = config_override.unwrap_or_else(|| self.backend.default_config());
@@ -237,7 +237,7 @@ where
237237
.find_segment(
238238
&config,
239239
namespace,
240-
super::backend::FindSegmentReq::Frame(frame_no),
240+
req,
241241
)
242242
.await?;
243243
Ok(key)

libsql-wal/src/storage/mod.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ pub trait Storage: Send + Sync + 'static {
207207
fn find_segment(
208208
&self,
209209
namespace: &NamespaceName,
210-
frame_no: u64,
210+
frame_no: FindSegmentReq,
211211
config_override: Option<Self::Config>,
212212
) -> impl Future<Output = Result<SegmentKey>> + Send;
213213

@@ -306,7 +306,7 @@ where
306306
fn find_segment(
307307
&self,
308308
namespace: &NamespaceName,
309-
frame_no: u64,
309+
frame_no: FindSegmentReq,
310310
config_override: Option<Self::Config>,
311311
) -> impl Future<Output = Result<SegmentKey>> + Send {
312312
async move {
@@ -415,7 +415,7 @@ impl Storage for NoStorage {
415415
async fn find_segment(
416416
&self,
417417
_namespace: &NamespaceName,
418-
_frame_no: u64,
418+
_frame_no: FindSegmentReq,
419419
_config_override: Option<Self::Config>,
420420
) -> Result<SegmentKey> {
421421
unimplemented!()
@@ -564,7 +564,7 @@ impl<IO: Io> Storage for TestStorage<IO> {
564564
async fn find_segment(
565565
&self,
566566
namespace: &NamespaceName,
567-
frame_no: u64,
567+
req: FindSegmentReq,
568568
_config_override: Option<Self::Config>,
569569
) -> Result<SegmentKey> {
570570
let inner = self.inner.lock().await;

0 commit comments

Comments
 (0)