Skip to content

Commit 658d07b

Browse files
authored
feat: add written_bytes_since_open column to region_statistics table (#6904)
* feat: add `write_bytes` column to `region_statistics` table Signed-off-by: WenyXu <[email protected]> * chore: update comments Signed-off-by: WenyXu <[email protected]> * chore: rename `write_bytes` to `written_bytes` Signed-off-by: WenyXu <[email protected]> * chore: rename `written_bytes` to `written_bytes_since_open` Signed-off-by: WenyXu <[email protected]> * chore: apply suggestions Signed-off-by: WenyXu <[email protected]> --------- Signed-off-by: WenyXu <[email protected]>
1 parent 24e5c9f commit 658d07b

File tree

18 files changed

+70
-63
lines changed

18 files changed

+70
-63
lines changed

src/catalog/src/system_schema/information_schema/region_statistics.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ const REGION_ID: &str = "region_id";
4040
const TABLE_ID: &str = "table_id";
4141
const REGION_NUMBER: &str = "region_number";
4242
const REGION_ROWS: &str = "region_rows";
43+
const WRITTEN_BYTES: &str = "written_bytes_since_open";
4344
const DISK_SIZE: &str = "disk_size";
4445
const MEMTABLE_SIZE: &str = "memtable_size";
4546
const MANIFEST_SIZE: &str = "manifest_size";
@@ -57,6 +58,7 @@ const INIT_CAPACITY: usize = 42;
5758
/// - `table_id`: The table id.
5859
/// - `region_number`: The region number.
5960
/// - `region_rows`: The number of rows in region.
61+
/// - `written_bytes_since_open`: The total bytes written of the region since region opened.
6062
/// - `memtable_size`: The memtable size in bytes.
6163
/// - `disk_size`: The approximate disk size in bytes.
6264
/// - `manifest_size`: The manifest size in bytes.
@@ -84,6 +86,7 @@ impl InformationSchemaRegionStatistics {
8486
ColumnSchema::new(TABLE_ID, ConcreteDataType::uint32_datatype(), false),
8587
ColumnSchema::new(REGION_NUMBER, ConcreteDataType::uint32_datatype(), false),
8688
ColumnSchema::new(REGION_ROWS, ConcreteDataType::uint64_datatype(), true),
89+
ColumnSchema::new(WRITTEN_BYTES, ConcreteDataType::uint64_datatype(), true),
8790
ColumnSchema::new(DISK_SIZE, ConcreteDataType::uint64_datatype(), true),
8891
ColumnSchema::new(MEMTABLE_SIZE, ConcreteDataType::uint64_datatype(), true),
8992
ColumnSchema::new(MANIFEST_SIZE, ConcreteDataType::uint64_datatype(), true),
@@ -147,6 +150,7 @@ struct InformationSchemaRegionStatisticsBuilder {
147150
table_ids: UInt32VectorBuilder,
148151
region_numbers: UInt32VectorBuilder,
149152
region_rows: UInt64VectorBuilder,
153+
written_bytes: UInt64VectorBuilder,
150154
disk_sizes: UInt64VectorBuilder,
151155
memtable_sizes: UInt64VectorBuilder,
152156
manifest_sizes: UInt64VectorBuilder,
@@ -166,6 +170,7 @@ impl InformationSchemaRegionStatisticsBuilder {
166170
table_ids: UInt32VectorBuilder::with_capacity(INIT_CAPACITY),
167171
region_numbers: UInt32VectorBuilder::with_capacity(INIT_CAPACITY),
168172
region_rows: UInt64VectorBuilder::with_capacity(INIT_CAPACITY),
173+
written_bytes: UInt64VectorBuilder::with_capacity(INIT_CAPACITY),
169174
disk_sizes: UInt64VectorBuilder::with_capacity(INIT_CAPACITY),
170175
memtable_sizes: UInt64VectorBuilder::with_capacity(INIT_CAPACITY),
171176
manifest_sizes: UInt64VectorBuilder::with_capacity(INIT_CAPACITY),
@@ -197,6 +202,7 @@ impl InformationSchemaRegionStatisticsBuilder {
197202
(TABLE_ID, &Value::from(region_stat.id.table_id())),
198203
(REGION_NUMBER, &Value::from(region_stat.id.region_number())),
199204
(REGION_ROWS, &Value::from(region_stat.num_rows)),
205+
(WRITTEN_BYTES, &Value::from(region_stat.written_bytes)),
200206
(DISK_SIZE, &Value::from(region_stat.approximate_bytes)),
201207
(MEMTABLE_SIZE, &Value::from(region_stat.memtable_size)),
202208
(MANIFEST_SIZE, &Value::from(region_stat.manifest_size)),
@@ -216,6 +222,7 @@ impl InformationSchemaRegionStatisticsBuilder {
216222
self.region_numbers
217223
.push(Some(region_stat.id.region_number()));
218224
self.region_rows.push(Some(region_stat.num_rows));
225+
self.written_bytes.push(Some(region_stat.written_bytes));
219226
self.disk_sizes.push(Some(region_stat.approximate_bytes));
220227
self.memtable_sizes.push(Some(region_stat.memtable_size));
221228
self.manifest_sizes.push(Some(region_stat.manifest_size));
@@ -232,6 +239,7 @@ impl InformationSchemaRegionStatisticsBuilder {
232239
Arc::new(self.table_ids.finish()),
233240
Arc::new(self.region_numbers.finish()),
234241
Arc::new(self.region_rows.finish()),
242+
Arc::new(self.written_bytes.finish()),
235243
Arc::new(self.disk_sizes.finish()),
236244
Arc::new(self.memtable_sizes.finish()),
237245
Arc::new(self.manifest_sizes.finish()),

src/cmd/src/standalone.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -834,7 +834,7 @@ impl InformationExtension for StandaloneInformationExtension {
834834
region_manifest: region_stat.manifest.into(),
835835
data_topic_latest_entry_id: region_stat.data_topic_latest_entry_id,
836836
metadata_topic_latest_entry_id: region_stat.metadata_topic_latest_entry_id,
837-
write_bytes: 0,
837+
written_bytes: region_stat.written_bytes,
838838
}
839839
})
840840
.collect::<Vec<_>>();

src/common/meta/src/datanode.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,8 @@ pub struct RegionStat {
102102
pub index_size: u64,
103103
/// The manifest infoof the region.
104104
pub region_manifest: RegionManifestInfo,
105-
/// The write bytes.
106-
pub write_bytes: u64,
105+
/// The total bytes written of the region since region opened.
106+
pub written_bytes: u64,
107107
/// The latest entry id of topic used by data.
108108
/// **Only used by remote WAL prune.**
109109
pub data_topic_latest_entry_id: u64,
@@ -306,7 +306,7 @@ impl From<&api::v1::meta::RegionStat> for RegionStat {
306306
sst_num: region_stat.sst_num,
307307
index_size: region_stat.index_size,
308308
region_manifest: region_stat.manifest.into(),
309-
write_bytes: region_stat.write_bytes,
309+
written_bytes: region_stat.written_bytes,
310310
data_topic_latest_entry_id: region_stat.data_topic_latest_entry_id,
311311
metadata_topic_latest_entry_id: region_stat.metadata_topic_latest_entry_id,
312312
}

src/meta-srv/src/handler/collect_leader_region_handler.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ mod tests {
8787
index_size: 0,
8888
data_topic_latest_entry_id: 0,
8989
metadata_topic_latest_entry_id: 0,
90-
write_bytes: 0,
90+
written_bytes: 0,
9191
}
9292
}
9393

src/meta-srv/src/handler/failure_handler.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ mod tests {
105105
},
106106
data_topic_latest_entry_id: 0,
107107
metadata_topic_latest_entry_id: 0,
108-
write_bytes: 0,
108+
written_bytes: 0,
109109
}
110110
}
111111
acc.stat = Some(Stat {

src/meta-srv/src/handler/persist_stats_handler.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,14 @@ const DEFAULT_CONTEXT: InserterContext = InserterContext {
5151
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
5252
struct PersistedRegionStat {
5353
region_id: RegionId,
54-
write_bytess: u64,
54+
written_bytes: u64,
5555
}
5656

5757
impl From<&RegionStat> for PersistedRegionStat {
5858
fn from(stat: &RegionStat) -> Self {
5959
Self {
6060
region_id: stat.id,
61-
write_bytess: stat.write_bytes,
61+
written_bytes: stat.written_bytes,
6262
}
6363
}
6464
}
@@ -94,8 +94,8 @@ fn compute_persist_region_stat(
9494
let write_bytes_delta = persisted_region_stat
9595
.and_then(|persisted_region_stat| {
9696
region_stat
97-
.write_bytes
98-
.checked_sub(persisted_region_stat.write_bytess)
97+
.written_bytes
98+
.checked_sub(persisted_region_stat.written_bytes)
9999
})
100100
.unwrap_or_default();
101101

@@ -273,7 +273,7 @@ mod tests {
273273
fn create_test_region_stat(
274274
table_id: u32,
275275
region_number: u32,
276-
write_bytes: u64,
276+
written_bytes: u64,
277277
engine: &str,
278278
) -> RegionStat {
279279
let region_id = RegionId::new(table_id, region_number);
@@ -294,7 +294,7 @@ mod tests {
294294
manifest_version: 1,
295295
flushed_entry_id: 100,
296296
},
297-
write_bytes,
297+
written_bytes,
298298
data_topic_latest_entry_id: 200,
299299
metadata_topic_latest_entry_id: 200,
300300
}
@@ -326,7 +326,7 @@ mod tests {
326326
let timestamp_millis = 1640995260000; // 2022-01-01 00:01:00 UTC
327327
let persisted_stat = PersistedRegionStat {
328328
region_id: region_stat.id,
329-
write_bytess: 1000, // Previous write bytes
329+
written_bytes: 1000, // Previous write bytes
330330
};
331331
let result = compute_persist_region_stat(
332332
&region_stat,
@@ -354,7 +354,7 @@ mod tests {
354354
let timestamp_millis = 1640995320000; // 2022-01-01 00:02:00 UTC
355355
let persisted_stat = PersistedRegionStat {
356356
region_id: region_stat.id,
357-
write_bytess: 1200, // Previous write bytes (higher than current)
357+
written_bytes: 1200, // Previous write bytes (higher than current)
358358
};
359359
let result = compute_persist_region_stat(
360360
&region_stat,
@@ -382,7 +382,7 @@ mod tests {
382382
let timestamp_millis = 1640995380000; // 2022-01-01 00:03:00 UTC
383383
let persisted_stat = PersistedRegionStat {
384384
region_id: region_stat.id,
385-
write_bytess: 2000, // Same as current write bytes
385+
written_bytes: 2000, // Same as current write bytes
386386
};
387387
let result = compute_persist_region_stat(
388388
&region_stat,
@@ -410,7 +410,7 @@ mod tests {
410410
let timestamp_millis = 1640995620000; // 2022-01-01 00:07:00 UTC
411411
let persisted_stat = PersistedRegionStat {
412412
region_id: region_stat.id,
413-
write_bytess: 1000, // Higher than current, would cause underflow
413+
written_bytes: 1000, // Higher than current, would cause underflow
414414
};
415415
let result = compute_persist_region_stat(
416416
&region_stat,
@@ -507,7 +507,7 @@ mod tests {
507507
region_id,
508508
PersistedRegionStat {
509509
region_id,
510-
write_bytess: 500,
510+
written_bytes: 500,
511511
},
512512
);
513513
let (expected_row, expected_persisted_region_stat) = to_persisted_if_leader(

src/meta-srv/src/handler/region_lease_handler.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ mod test {
167167
},
168168
data_topic_latest_entry_id: 0,
169169
metadata_topic_latest_entry_id: 0,
170-
write_bytes: 0,
170+
written_bytes: 0,
171171
}
172172
}
173173

src/meta-srv/src/selector/weight_compute.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ mod tests {
198198
},
199199
data_topic_latest_entry_id: 0,
200200
metadata_topic_latest_entry_id: 0,
201-
write_bytes: 0,
201+
written_bytes: 0,
202202
}],
203203
..Default::default()
204204
}
@@ -227,7 +227,7 @@ mod tests {
227227
},
228228
data_topic_latest_entry_id: 0,
229229
metadata_topic_latest_entry_id: 0,
230-
write_bytes: 0,
230+
written_bytes: 0,
231231
}],
232232
..Default::default()
233233
}
@@ -256,7 +256,7 @@ mod tests {
256256
},
257257
data_topic_latest_entry_id: 0,
258258
metadata_topic_latest_entry_id: 0,
259-
write_bytes: 0,
259+
written_bytes: 0,
260260
}],
261261
..Default::default()
262262
}

src/metric-engine/src/utils.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ pub fn get_region_statistic(mito: &MitoEngine, region_id: RegionId) -> Option<Re
6262
metadata_flushed_entry_id: metadata_stat.manifest.data_flushed_entry_id(),
6363
metadata_manifest_version: metadata_stat.manifest.data_manifest_version(),
6464
},
65-
write_bytes: metadata_stat.write_bytes + data_stat.write_bytes,
65+
written_bytes: metadata_stat.written_bytes + data_stat.written_bytes,
6666
data_topic_latest_entry_id: data_stat.data_topic_latest_entry_id,
6767
metadata_topic_latest_entry_id: metadata_stat.metadata_topic_latest_entry_id,
6868
}),

src/mito2/src/engine/basic_test.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ async fn test_write_to_region() {
9393
};
9494
put_rows(&engine, region_id, rows).await;
9595
let region = engine.get_region(region_id).unwrap();
96-
assert!(region.write_bytes.load(Ordering::Relaxed) > 0);
96+
assert!(region.written_bytes.load(Ordering::Relaxed) > 0);
9797
}
9898

9999
#[apply(multiple_log_store_factories)]
@@ -167,7 +167,7 @@ async fn test_region_replay(factory: Option<LogStoreFactory>) {
167167

168168
// The replay won't update the write bytes rate meter.
169169
let region = engine.get_region(region_id).unwrap();
170-
assert_eq!(region.write_bytes.load(Ordering::Relaxed), 0);
170+
assert_eq!(region.written_bytes.load(Ordering::Relaxed), 0);
171171

172172
let request = ScanRequest::default();
173173
let stream = engine.scan_to_stream(region_id, request).await.unwrap();

0 commit comments

Comments
 (0)