Skip to content

Commit a66dd1b

Browse files
committed
[ENH] Rename FragmentSeqNo to FragmentIdentifier.
This doesn't change anything about the code (yet), but we're going to be having a FragmentIdentifier::SeqNo and FragmentIdentifier::UUID.
1 parent 5c3e375 commit a66dd1b

17 files changed

+503
-503
lines changed

rust/wal3/src/batch_manager.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::time::{Duration, Instant};
33

44
use tracing::Span;
55

6-
use crate::{Error, FragmentSeqNo, LogPosition, ManifestManager, ThrottleOptions};
6+
use crate::{Error, FragmentIdentifier, LogPosition, ManifestManager, ThrottleOptions};
77

88
/////////////////////////////////////////// ManagerState ///////////////////////////////////////////
99

@@ -39,7 +39,7 @@ impl ManagerState {
3939
options: &ThrottleOptions,
4040
manifest_manager: &ManifestManager,
4141
record_count: usize,
42-
) -> Result<Option<(FragmentSeqNo, LogPosition)>, Error> {
42+
) -> Result<Option<(FragmentIdentifier, LogPosition)>, Error> {
4343
if self.next_write > Instant::now() {
4444
return Ok(None);
4545
}
@@ -139,7 +139,7 @@ impl BatchManager {
139139
manifest_manager: &ManifestManager,
140140
) -> Result<
141141
Option<(
142-
FragmentSeqNo,
142+
FragmentIdentifier,
143143
LogPosition,
144144
Vec<(
145145
Vec<Vec<u8>>,
@@ -292,7 +292,7 @@ mod tests {
292292
batch_manager.push_work(vec![vec![4, 5, 6]], tx, tracing::Span::current());
293293
let (seq_no, log_position, work) =
294294
batch_manager.take_work(&manifest_manager).unwrap().unwrap();
295-
assert_eq!(seq_no, FragmentSeqNo(1));
295+
assert_eq!(seq_no, FragmentIdentifier(1));
296296
assert_eq!(log_position.offset(), 1);
297297
assert_eq!(2, work.len());
298298
// Check batch 1

rust/wal3/src/bin/wal3-construct-garbage-from-manifest.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::str::FromStr;
22

3-
use wal3::{FragmentSeqNo, Garbage, LogPosition, Manifest};
3+
use wal3::{FragmentIdentifier, Garbage, LogPosition, Manifest};
44

55
fn main() {
66
let args = std::env::args().skip(1).collect::<Vec<_>>();
@@ -17,7 +17,7 @@ fn main() {
1717
eprintln!("offset: {offset:#?}");
1818
let garbage = Garbage::bug_patch_construct_garbage_from_manifest(
1919
&manifest,
20-
FragmentSeqNo(seq_no),
20+
FragmentIdentifier(seq_no),
2121
LogPosition::from_offset(offset),
2222
);
2323
println!("{}", serde_json::to_string(&garbage).unwrap());

rust/wal3/src/copy.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use setsum::Setsum;
55

66
use crate::reader::LogReader;
77
use crate::{
8-
prefixed_fragment_path, Error, FragmentSeqNo, Limits, LogPosition, LogWriterOptions, Manifest,
8+
prefixed_fragment_path, Error, FragmentIdentifier, Limits, LogPosition, LogWriterOptions, Manifest,
99
};
1010

1111
pub async fn copy(
@@ -56,7 +56,7 @@ pub async fn copy(
5656
.iter()
5757
.map(|f| f.seq_no)
5858
.min()
59-
.unwrap_or(FragmentSeqNo::BEGIN),
59+
.unwrap_or(FragmentIdentifier::BEGIN),
6060
);
6161
let manifest = Manifest {
6262
setsum,

rust/wal3/src/gc.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use chroma_storage::{
1313
use crate::manifest::unprefixed_snapshot_path;
1414
use crate::writer::OnceLogWriter;
1515
use crate::{
16-
deserialize_setsum, prefixed_fragment_path, serialize_setsum, Error, Fragment, FragmentSeqNo,
16+
deserialize_setsum, prefixed_fragment_path, serialize_setsum, Error, Fragment, FragmentIdentifier,
1717
GarbageCollectionOptions, LogPosition, LogWriterOptions, Manifest, ScrubError, Snapshot,
1818
SnapshotCache, SnapshotPointer, ThrottleOptions,
1919
};
@@ -25,8 +25,8 @@ pub struct Garbage {
2525
pub snapshots_to_drop: Vec<SnapshotPointer>,
2626
pub snapshots_to_make: Vec<Snapshot>,
2727
pub snapshot_for_root: Option<SnapshotPointer>,
28-
pub fragments_to_drop_start: FragmentSeqNo,
29-
pub fragments_to_drop_limit: FragmentSeqNo,
28+
pub fragments_to_drop_start: FragmentIdentifier,
29+
pub fragments_to_drop_limit: FragmentIdentifier,
3030
#[serde(
3131
deserialize_with = "deserialize_setsum",
3232
serialize_with = "serialize_setsum"
@@ -41,8 +41,8 @@ impl Garbage {
4141
snapshots_to_drop: Vec::new(),
4242
snapshots_to_make: Vec::new(),
4343
snapshot_for_root: None,
44-
fragments_to_drop_start: FragmentSeqNo(0),
45-
fragments_to_drop_limit: FragmentSeqNo(0),
44+
fragments_to_drop_start: FragmentIdentifier(0),
45+
fragments_to_drop_limit: FragmentIdentifier(0),
4646
setsum_to_discard: Setsum::default(),
4747
first_to_keep: LogPosition::from_offset(1),
4848
}
@@ -89,8 +89,8 @@ impl Garbage {
8989
snapshots_to_drop: vec![],
9090
snapshots_to_make: vec![],
9191
snapshot_for_root: None,
92-
fragments_to_drop_start: FragmentSeqNo(0),
93-
fragments_to_drop_limit: FragmentSeqNo(0),
92+
fragments_to_drop_start: FragmentIdentifier(0),
93+
fragments_to_drop_limit: FragmentIdentifier(0),
9494
setsum_to_discard: Setsum::default(),
9595
first_to_keep,
9696
};
@@ -261,7 +261,7 @@ impl Garbage {
261261
paths.into_iter().chain(
262262
(self.fragments_to_drop_start.0..self.fragments_to_drop_limit.0)
263263
.map(move |seq_no| (seq_no, Arc::clone(&prefix)))
264-
.map(|(seq_no, prefix)| prefixed_fragment_path(&prefix, FragmentSeqNo(seq_no))),
264+
.map(|(seq_no, prefix)| prefixed_fragment_path(&prefix, FragmentIdentifier(seq_no))),
265265
)
266266
}
267267

@@ -502,7 +502,7 @@ impl Garbage {
502502
// snapshot, recursively, until you find the first fragment. That's your seq_no.
503503
pub fn bug_patch_construct_garbage_from_manifest(
504504
manifest: &Manifest,
505-
seq_no: FragmentSeqNo,
505+
seq_no: FragmentIdentifier,
506506
offset: LogPosition,
507507
) -> Garbage {
508508
let mut garbage = Garbage {
@@ -582,11 +582,11 @@ mod tests {
582582
let manifest: Manifest = serde_json::from_str(manifest_json).unwrap();
583583
let output = Garbage::bug_patch_construct_garbage_from_manifest(
584584
&manifest,
585-
FragmentSeqNo(806913),
585+
FragmentIdentifier(806913),
586586
LogPosition::from_offset(900883),
587587
);
588-
assert_eq!(output.fragments_to_drop_start, FragmentSeqNo(806913));
589-
assert_eq!(output.fragments_to_drop_limit, FragmentSeqNo(806913));
588+
assert_eq!(output.fragments_to_drop_start, FragmentIdentifier(806913));
589+
assert_eq!(output.fragments_to_drop_limit, FragmentIdentifier(806913));
590590
assert_eq!(
591591
output.setsum_to_discard.hexdigest(),
592592
"c921d21a0820be5d3b6f2d90942648f2853188bb0e3c6a22fe3dbd81c1e1c380"

rust/wal3/src/lib.rs

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ pub enum Error {
9191
#[error("garbage collection: {0}")]
9292
GarbageCollection(String),
9393
#[error("garbage collection precondition failed: manifest missing this: {0}")]
94-
GarbageCollectionPrecondition(SnapshotPointerOrFragmentSeqNo),
94+
GarbageCollectionPrecondition(SnapshotPointerOrFragmentIdentifier),
9595
#[error("scrub error: {0}")]
9696
ScrubError(#[from] Box<ScrubError>),
9797
#[error("parquet error: {0}")]
@@ -141,29 +141,29 @@ impl chroma_error::ChromaError for Error {
141141
///////////////////////////////////// SnapshotPointerOrFragment ////////////////////////////////////
142142

143143
#[derive(Clone, Debug)]
144-
pub enum SnapshotPointerOrFragmentSeqNo {
144+
pub enum SnapshotPointerOrFragmentIdentifier {
145145
SnapshotPointer(SnapshotPointer),
146-
FragmentSeqNo(u64),
146+
FragmentIdentifier(u64),
147147
Stringy(String),
148148
}
149149

150-
impl From<SnapshotPointer> for SnapshotPointerOrFragmentSeqNo {
150+
impl From<SnapshotPointer> for SnapshotPointerOrFragmentIdentifier {
151151
fn from(inner: SnapshotPointer) -> Self {
152152
Self::SnapshotPointer(inner)
153153
}
154154
}
155155

156-
impl From<u64> for SnapshotPointerOrFragmentSeqNo {
156+
impl From<u64> for SnapshotPointerOrFragmentIdentifier {
157157
fn from(inner: u64) -> Self {
158-
Self::FragmentSeqNo(inner)
158+
Self::FragmentIdentifier(inner)
159159
}
160160
}
161161

162-
impl std::fmt::Display for SnapshotPointerOrFragmentSeqNo {
162+
impl std::fmt::Display for SnapshotPointerOrFragmentIdentifier {
163163
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
164164
match self {
165165
Self::SnapshotPointer(ptr) => write!(f, "Snapshot({:?})", ptr.path_to_snapshot),
166-
Self::FragmentSeqNo(seq) => write!(f, "Fragment({})", *seq),
166+
Self::FragmentIdentifier(seq) => write!(f, "Fragment({})", *seq),
167167
Self::Stringy(s) => write!(f, "Stringy({s})"),
168168
}
169169
}
@@ -187,7 +187,7 @@ pub enum ScrubError {
187187
#[error("CorruptFragment: {seq_no} {what}")]
188188
CorruptFragment {
189189
manifest: String,
190-
seq_no: FragmentSeqNo,
190+
seq_no: FragmentIdentifier,
191191
what: String,
192192
},
193193
#[error("MismatchedPath: {reference:?} expected {:?} got {:?}", reference.path, empirical.path)]
@@ -500,24 +500,24 @@ pub struct GarbageCollectionOptions {
500500
pub throttle: ThrottleOptions,
501501
}
502502

503-
/////////////////////////////////////////// FragmentSeqNo //////////////////////////////////////////
503+
/////////////////////////////////////////// FragmentIdentifier //////////////////////////////////////////
504504

505-
/// A FragmentSeqNo is an identifier that corresponds to the the number of fragments that have been
506-
/// issued prior to the segment with this FragmentSeqNo.
505+
/// A FragmentIdentifier is an identifier that corresponds to the the number of fragments that have been
506+
/// issued prior to the segment with this FragmentIdentifier.
507507
#[derive(
508508
Clone, Copy, Debug, PartialEq, Eq, Ord, PartialOrd, Hash, serde::Deserialize, serde::Serialize,
509509
)]
510-
pub struct FragmentSeqNo(pub u64);
510+
pub struct FragmentIdentifier(pub u64);
511511

512-
impl FragmentSeqNo {
513-
const BEGIN: FragmentSeqNo = FragmentSeqNo(1);
512+
impl FragmentIdentifier {
513+
const BEGIN: FragmentIdentifier = FragmentIdentifier(1);
514514

515-
/// Returns the successor of this FragmentSeqNo, or None if this FragmentSeqNo is the maximum
515+
/// Returns the successor of this FragmentIdentifier, or None if this FragmentIdentifier is the maximum
516516
pub fn successor(&self) -> Option<Self> {
517517
if self.0 == u64::MAX {
518518
None
519519
} else {
520-
Some(FragmentSeqNo(self.0 + 1))
520+
Some(FragmentIdentifier(self.0 + 1))
521521
}
522522
}
523523

@@ -527,37 +527,37 @@ impl FragmentSeqNo {
527527
}
528528
}
529529

530-
impl std::fmt::Display for FragmentSeqNo {
530+
impl std::fmt::Display for FragmentIdentifier {
531531
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
532532
write!(f, "{}", self.0)
533533
}
534534
}
535535

536-
impl std::ops::Add<FragmentSeqNo> for u64 {
537-
type Output = FragmentSeqNo;
536+
impl std::ops::Add<FragmentIdentifier> for u64 {
537+
type Output = FragmentIdentifier;
538538

539-
fn add(self, rhs: FragmentSeqNo) -> Self::Output {
540-
FragmentSeqNo(self.wrapping_add(rhs.0))
539+
fn add(self, rhs: FragmentIdentifier) -> Self::Output {
540+
FragmentIdentifier(self.wrapping_add(rhs.0))
541541
}
542542
}
543543

544-
impl std::ops::Add<u64> for FragmentSeqNo {
545-
type Output = FragmentSeqNo;
544+
impl std::ops::Add<u64> for FragmentIdentifier {
545+
type Output = FragmentIdentifier;
546546

547547
fn add(self, rhs: u64) -> Self::Output {
548-
FragmentSeqNo(self.0.wrapping_add(rhs))
548+
FragmentIdentifier(self.0.wrapping_add(rhs))
549549
}
550550
}
551551

552-
impl std::ops::Sub<FragmentSeqNo> for FragmentSeqNo {
552+
impl std::ops::Sub<FragmentIdentifier> for FragmentIdentifier {
553553
type Output = u64;
554554

555-
fn sub(self, rhs: FragmentSeqNo) -> Self::Output {
555+
fn sub(self, rhs: FragmentIdentifier) -> Self::Output {
556556
self.0.wrapping_sub(rhs.0)
557557
}
558558
}
559559

560-
impl std::ops::AddAssign<u64> for FragmentSeqNo {
560+
impl std::ops::AddAssign<u64> for FragmentIdentifier {
561561
fn add_assign(&mut self, rhs: u64) {
562562
self.0 = self.0.wrapping_add(rhs);
563563
}
@@ -569,7 +569,7 @@ impl std::ops::AddAssign<u64> for FragmentSeqNo {
569569
#[derive(Clone, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
570570
pub struct Fragment {
571571
pub path: String,
572-
pub seq_no: FragmentSeqNo,
572+
pub seq_no: FragmentIdentifier,
573573
pub start: LogPosition,
574574
pub limit: LogPosition,
575575
pub num_bytes: u64,
@@ -614,7 +614,7 @@ pub fn fragment_prefix() -> String {
614614
"log/".to_string()
615615
}
616616

617-
pub fn prefixed_fragment_path(prefix: &str, fragment_seq_no: FragmentSeqNo) -> String {
617+
pub fn prefixed_fragment_path(prefix: &str, fragment_seq_no: FragmentIdentifier) -> String {
618618
format!(
619619
"{}/{}Bucket={:016x}/FragmentSeqNo={:016x}.parquet",
620620
prefix,
@@ -624,20 +624,20 @@ pub fn prefixed_fragment_path(prefix: &str, fragment_seq_no: FragmentSeqNo) -> S
624624
)
625625
}
626626

627-
pub fn unprefixed_fragment_path(fragment_seq_no: FragmentSeqNo) -> String {
627+
pub fn unprefixed_fragment_path(fragment_seq_no: FragmentIdentifier) -> String {
628628
format!(
629629
"log/Bucket={:016x}/FragmentSeqNo={:016x}.parquet",
630630
fragment_seq_no.bucket(),
631631
fragment_seq_no.0,
632632
)
633633
}
634634

635-
pub fn parse_fragment_path(path: &str) -> Option<FragmentSeqNo> {
636-
// FragmentSeqNo is always in the basename.
635+
pub fn parse_fragment_path(path: &str) -> Option<FragmentIdentifier> {
636+
// FragmentIdentifier is always in the basename.
637637
let (_, basename) = path.rsplit_once('/')?;
638638
let fsn_equals_number = basename.strip_suffix(".parquet")?;
639639
let number = fsn_equals_number.strip_prefix("FragmentSeqNo=")?;
640-
u64::from_str_radix(number, 16).ok().map(FragmentSeqNo)
640+
u64::from_str_radix(number, 16).ok().map(FragmentIdentifier)
641641
}
642642

643643
/////////////////////////////////////////////// tests //////////////////////////////////////////////
@@ -650,7 +650,7 @@ mod tests {
650650
fn paths() {
651651
assert_eq!(
652652
"THIS_IS_THE_COLLECTION/log/Bucket=0000000000000000/FragmentSeqNo=0000000000000001.parquet",
653-
prefixed_fragment_path("THIS_IS_THE_COLLECTION", FragmentSeqNo(1))
653+
prefixed_fragment_path("THIS_IS_THE_COLLECTION", FragmentIdentifier(1))
654654
);
655655
}
656656
}

0 commit comments

Comments
 (0)