From dcf5a62014f9fb12b0e987d4b41a2208cf1968dd Mon Sep 17 00:00:00 2001 From: "Lei, HUANG" Date: Wed, 24 Sep 2025 18:14:00 +0800 Subject: [PATCH] feat/objbench: ### Add Metrics for Indexing and Conversion in `access_layer.rs` and `writer.rs` - **Enhancements in `access_layer.rs`:** - Added new metrics `convert` and `index` to the `Metrics` struct to track conversion and indexing durations. - **Updates in `writer.rs`:** - Implemented tracking of indexing duration by measuring the time taken for `update` in the indexer. - Added measurement of conversion duration for `convert_batch` to enhance performance monitoring. Signed-off-by: Lei, HUANG --- src/mito2/src/access_layer.rs | 3 ++- src/mito2/src/sst/parquet/writer.rs | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) 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)