diff --git a/src/mito2/src/memtable/time_partition.rs b/src/mito2/src/memtable/time_partition.rs index d422daa0b2..fd7e0e1a17 100644 --- a/src/mito2/src/memtable/time_partition.rs +++ b/src/mito2/src/memtable/time_partition.rs @@ -656,6 +656,11 @@ impl TimePartitions { Ok(()) } + + /// Timeseries count in all time partitions. + pub(crate) fn series_count(&self) -> usize { + self.inner.lock().unwrap().series_count() + } } /// Computes the start timestamp of the partition for `ts`. @@ -697,6 +702,13 @@ impl PartitionsInner { self.next_memtable_id += 1; id } + + pub(crate) fn series_count(&self) -> usize { + self.parts + .iter() + .map(|p| p.memtable.stats().series_count) + .sum() + } } /// Time range of a partition. diff --git a/src/mito2/src/region/opener.rs b/src/mito2/src/region/opener.rs index 50e4537550..885963f21e 100644 --- a/src/mito2/src/region/opener.rs +++ b/src/mito2/src/region/opener.rs @@ -665,9 +665,10 @@ where // to avoid reading potentially incomplete entries in the future. (on_region_opened)(region_id, flushed_entry_id, provider).await?; + let series_count = version_control.current().series_count(); info!( - "Replay WAL for region: {}, rows recovered: {}, last entry id: {}", - region_id, rows_replayed, last_entry_id + "Replay WAL for region: {}, rows recovered: {}, last entry id: {}, total timeseries replayed: {}", + region_id, rows_replayed, last_entry_id, series_count ); Ok(last_entry_id) } diff --git a/src/mito2/src/region/version.rs b/src/mito2/src/region/version.rs index c1198e4d16..935b2bdc12 100644 --- a/src/mito2/src/region/version.rs +++ b/src/mito2/src/region/version.rs @@ -249,6 +249,13 @@ pub(crate) struct VersionControlData { pub(crate) is_dropped: bool, } +impl VersionControlData { + /// Approximate timeseries count in current version. + pub(crate) fn series_count(&self) -> usize { + self.version.memtables.mutable.series_count() + } +} + /// Static metadata of a region. #[derive(Clone, Debug)] pub(crate) struct Version {