diff --git a/src/mito2/src/access_layer.rs b/src/mito2/src/access_layer.rs index 08cc80396f..455258d53b 100644 --- a/src/mito2/src/access_layer.rs +++ b/src/mito2/src/access_layer.rs @@ -47,7 +47,8 @@ pub type SstInfoArray = SmallVec<[SstInfo; 2]>; pub struct Metrics { pub read: Duration, pub write: Duration, - + pub convert: Duration, + pub index: Duration, pub close: Duration, } diff --git a/src/mito2/src/sst/parquet/writer.rs b/src/mito2/src/sst/parquet/writer.rs index 9ff7d7df5f..6d5323db01 100644 --- a/src/mito2/src/sst/parquet/writer.rs +++ b/src/mito2/src/sst/parquet/writer.rs @@ -172,7 +172,9 @@ where match res { Ok(mut batch) => { stats.update(&batch); + let index_start = Instant::now(); self.get_or_create_indexer().await.update(&mut batch).await; + metrics.index += index_start.elapsed(); } Err(e) => { self.get_or_create_indexer().await.abort().await; @@ -250,7 +252,9 @@ where }; metrics.read += read_start.elapsed(); + let convert_start = Instant::now(); let arrow_batch = write_format.convert_batch(&batch)?; + metrics.convert += convert_start.elapsed(); let write_start = Instant::now(); self.maybe_init_writer(write_format.arrow_schema(), opts)