#[non_exhaustive]pub struct RecoveryReport {
pub segment_count: usize,
pub head_seq: u64,
pub next_seq: u64,
pub disk_bytes: u64,
pub removed_tmp_files: usize,
}Expand description
Summary of the recovery scan performed by SegmentBuffer::open.
Returned by SegmentBuffer::open_with_report for programmatic
introspection. The same data is logged via tracing from
SegmentBuffer::open; this struct is for callers that want to inspect
it without parsing logs.
All fields are snapshots taken during recovery — they may be stale by the
time the caller reads them, because other threads can append/flush/delete
immediately after open returns. For a live view, use
SegmentBuffer::stats.
§Recovering over a populated directory
use segment_buffer::{SegmentBuffer, SegmentConfig, FlushPolicy};
use tempfile::tempdir;
let dir = tempdir()?;
// First instance: write three items, flush, drop.
{
let config = SegmentConfig::builder()
.flush_policy(FlushPolicy::Manual)
.build();
let buf: SegmentBuffer<u64> = SegmentBuffer::open(dir.path(), config)?;
for i in 0..3u64 { buf.append(i)?; }
buf.flush()?;
}
// Re-open: recovery must find one segment covering seqs 0..=2.
let (buf, report) =
SegmentBuffer::<u64>::open_with_report(dir.path(), SegmentConfig::default())?;
assert_eq!(report.segment_count, 1);
assert_eq!(report.head_seq, 0);
assert_eq!(report.next_seq, 3);
assert!(report.disk_bytes > 0, "flushed segment must have nonzero size");
assert_eq!(report.removed_tmp_files, 0);Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.segment_count: usizeNumber of valid segment files found on disk during recovery.
head_seq: u64Oldest sequence number recovered (the start of the first segment),
or 0 when the directory was empty.
next_seq: u64Next sequence number that will be assigned by the next
SegmentBuffer::append (the end + 1 of the last segment), or 0
when the directory was empty.
disk_bytes: u64Total bytes of all recovered segment files (sum of file sizes).
removed_tmp_files: usizeNumber of .tmp debris files removed by recovery’s cleanup step.
Trait Implementations§
Source§impl Clone for RecoveryReport
impl Clone for RecoveryReport
Source§fn clone(&self) -> RecoveryReport
fn clone(&self) -> RecoveryReport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more