diff --git a/src/cmd/src/bin/objbench.rs b/src/cmd/src/bin/objbench.rs index 1a17a2e9e0..d5a1275648 100644 --- a/src/cmd/src/bin/objbench.rs +++ b/src/cmd/src/bin/objbench.rs @@ -227,10 +227,15 @@ impl Command { "Reader build time".bold(), reader_build_elapsed ); - println!(" {}: {:?}", "Write time".bold(), write_elapsed); + println!(" {}: {:?}", "Total time".bold(), write_elapsed); // Print metrics in a formatted way - println!(" {}: {:?}", "Metrics".bold(), metrics); + println!( + " {}: {:?}, sum: {:?}", + "Metrics".bold(), + metrics, + metrics.sum() + ); // Cleanup println!("\n{}", "Cleaning up...".yellow()); diff --git a/src/mito2/src/access_layer.rs b/src/mito2/src/access_layer.rs index 455258d53b..163d003397 100644 --- a/src/mito2/src/access_layer.rs +++ b/src/mito2/src/access_layer.rs @@ -48,10 +48,17 @@ pub struct Metrics { pub read: Duration, pub write: Duration, pub convert: Duration, - pub index: Duration, + pub index_update: Duration, + pub index_finish: Duration, pub close: Duration, } +impl Metrics { + pub fn sum(&self) -> Duration { + self.read + self.write + self.convert + self.index_update + self.index_finish + self.close + } +} + /// A layer to access SST files under the same directory. pub struct AccessLayer { region_dir: String, diff --git a/src/mito2/src/sst/parquet/writer.rs b/src/mito2/src/sst/parquet/writer.rs index 6d5323db01..d6875afafe 100644 --- a/src/mito2/src/sst/parquet/writer.rs +++ b/src/mito2/src/sst/parquet/writer.rs @@ -174,7 +174,7 @@ where stats.update(&batch); let index_start = Instant::now(); self.get_or_create_indexer().await.update(&mut batch).await; - metrics.index += index_start.elapsed(); + metrics.index_update += index_start.elapsed(); } Err(e) => { self.get_or_create_indexer().await.abort().await; @@ -183,7 +183,9 @@ where } } + let index_finish_start = Instant::now(); let index_output = self.get_or_create_indexer().await.finish().await; + metrics.index_finish += index_finish_start.elapsed(); if stats.num_rows == 0 { return Ok(smallvec![]);