Skip to content

Commit 631c116

Browse files
committed
fix ci
1 parent 17d940c commit 631c116

File tree

2 files changed

+21
-27
lines changed

2 files changed

+21
-27
lines changed

src/wal/src/local_storage_impl/config.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ impl Default for LocalStorageConfig {
3030
fn default() -> Self {
3131
Self {
3232
data_dir: "/tmp/horaedb".to_string(),
33-
segment_size: ReadableSize::mb(128),
33+
segment_size: ReadableSize::mb(64),
3434
cache_size: 3,
3535
}
3636
}

src/wal/src/local_storage_impl/segment.rs

+20-26
Original file line numberDiff line numberDiff line change
@@ -654,7 +654,7 @@ impl Region {
654654
let mut all_segments = HashMap::new();
655655

656656
// Scan the directory for existing WAL files
657-
let mut max_segment_id: i32 = -1;
657+
let mut max_segment_id: u64 = 0;
658658
let mut next_sequence_num: u64 = MIN_SEQUENCE_NUMBER + 1;
659659

660660
// Segment file naming convention: {SEGMENT_NAME_PREFIX}{id}
@@ -671,27 +671,26 @@ impl Region {
671671
.map_err(anyhow::Error::new)
672672
.context(Internal)?;
673673

674-
let segment = Segment::new(filename.to_string(), segment_id, segment_size)?;
674+
let segment = Segment::new(
675+
entry.path().to_string_lossy().to_string(),
676+
segment_id,
677+
segment_size,
678+
)?;
675679
next_sequence_num = next_sequence_num.max(segment.max_seq + 1);
680+
max_segment_id = max_segment_id.max(segment_id);
676681
let segment = Arc::new(Mutex::new(segment));
677-
678-
if segment_id as i32 > max_segment_id {
679-
max_segment_id = segment_id as i32;
680-
}
681682
all_segments.insert(segment_id, segment);
682683
}
683684

684685
// If no existing segments, create a new one
685-
if max_segment_id == -1 {
686-
max_segment_id = 0;
687-
let path = format!("{region_dir}/{SEGMENT_NAME_PREFIX}{max_segment_id}");
688-
let new_segment = Segment::new(path, max_segment_id as u64, segment_size)?;
689-
let new_segment = Arc::new(Mutex::new(new_segment));
690-
all_segments.insert(0, new_segment);
686+
if all_segments.is_empty() {
687+
all_segments.insert(
688+
max_segment_id,
689+
Self::create_new_segment(&region_dir, max_segment_id, segment_size)?,
690+
);
691691
}
692692

693-
let latest_segment = all_segments.get(&(max_segment_id as u64)).unwrap().clone();
694-
693+
let latest_segment = all_segments.get(&max_segment_id).unwrap().clone();
695694
let segment_manager = SegmentManager {
696695
all_segments: Mutex::new(all_segments),
697696
cache: Mutex::new(VecDeque::new()),
@@ -711,17 +710,9 @@ impl Region {
711710
})
712711
}
713712

714-
fn create_new_segment(&self, id: u64) -> Result<Arc<Mutex<Segment>>> {
715-
// Create a new segment
716-
let new_segment = Segment::new(
717-
format!("{}/segment_{}.wal", self.region_dir, id),
718-
id,
719-
self.segment_size,
720-
)?;
721-
let new_segment = Arc::new(Mutex::new(new_segment));
722-
self.segment_manager.add_segment(id, new_segment.clone())?;
723-
724-
Ok(new_segment)
713+
fn create_new_segment(dir: &str, id: u64, size: usize) -> Result<Arc<Mutex<Segment>>> {
714+
let new_segment = Segment::new(format!("{dir}/{SEGMENT_NAME_PREFIX}{id}"), id, size)?;
715+
Ok(Arc::new(Mutex::new(new_segment)))
725716
}
726717

727718
pub fn write(&self, _ctx: &WriteContext, batch: &LogWriteBatch) -> Result<SequenceNumber> {
@@ -766,7 +757,10 @@ impl Region {
766757
let new_segment_id = guard.id + 1;
767758
drop(guard);
768759

769-
*current_segment = self.create_new_segment(new_segment_id)?;
760+
*current_segment =
761+
Self::create_new_segment(&self.region_dir, new_segment_id, self.segment_size)?;
762+
self.segment_manager
763+
.add_segment(new_segment_id, current_segment.clone())?;
770764
}
771765
}
772766

0 commit comments

Comments
 (0)