Skip to content

Commit 1dd621d

Browse files
committed
Add timing, rename some spans
1 parent 3219020 commit 1dd621d

2 files changed

Lines changed: 51 additions & 26 deletions

File tree

modules/tpcc/src/load.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ fn run_chunk(ctx: &ReducerContext, config: &TpccLoadConfig, job: &TpccLoadJob) -
372372
}
373373

374374
fn load_item_chunk(ctx: &ReducerContext, config: &TpccLoadConfig, job: &TpccLoadJob) -> Result<ChunkAdvance, String> {
375-
let _timer = LogStopwatch::new("load_items");
375+
let _timer = LogStopwatch::new("load_item_chunk");
376376
if job.next_item_id == 0 || job.next_item_id > ITEMS {
377377
return Err(format!("invalid item cursor {}", job.next_item_id));
378378
}
@@ -402,7 +402,7 @@ fn load_warehouse_district_chunk(
402402
config: &TpccLoadConfig,
403403
job: &TpccLoadJob,
404404
) -> Result<ChunkAdvance, String> {
405-
let _timer = LogStopwatch::new("load_warehouses_districts");
405+
let _timer = LogStopwatch::new("load_warehouses_district_chunk");
406406
let end_warehouse = warehouse_end(config.database_number, config.warehouses_per_database);
407407
if job.next_warehouse_id < warehouse_start(config.database_number, config.warehouses_per_database)
408408
|| job.next_warehouse_id > end_warehouse
@@ -439,7 +439,7 @@ fn load_warehouse_district_chunk(
439439
}
440440

441441
fn load_stock_chunk(ctx: &ReducerContext, config: &TpccLoadConfig, job: &TpccLoadJob) -> Result<ChunkAdvance, String> {
442-
let _timer = LogStopwatch::new("load_stocks");
442+
let _timer = LogStopwatch::new("load_stock_chunk");
443443
let start_warehouse = warehouse_start(config.database_number, config.warehouses_per_database);
444444
let end_warehouse = warehouse_end(config.database_number, config.warehouses_per_database);
445445
if job.next_warehouse_id < start_warehouse || job.next_warehouse_id > end_warehouse {
@@ -480,7 +480,7 @@ fn load_customer_history_chunk(
480480
config: &TpccLoadConfig,
481481
job: &TpccLoadJob,
482482
) -> Result<ChunkAdvance, String> {
483-
let _timer = LogStopwatch::new("load_customers_history");
483+
let _timer = LogStopwatch::new("load_customer_history_chunk");
484484
let start_warehouse = warehouse_start(config.database_number, config.warehouses_per_database);
485485
let end_warehouse = warehouse_end(config.database_number, config.warehouses_per_database);
486486
if job.next_warehouse_id < start_warehouse || job.next_warehouse_id > end_warehouse {
@@ -530,7 +530,7 @@ fn load_customer_history_chunk(
530530
}
531531

532532
fn load_order_chunk(ctx: &ReducerContext, config: &TpccLoadConfig, job: &TpccLoadJob) -> Result<ChunkAdvance, String> {
533-
let _timer = LogStopwatch::new("load_orders");
533+
let _timer = LogStopwatch::new("load_order_chunk");
534534
let start_warehouse = warehouse_start(config.database_number, config.warehouses_per_database);
535535
let end_warehouse = warehouse_end(config.database_number, config.warehouses_per_database);
536536
if job.next_warehouse_id < start_warehouse || job.next_warehouse_id > end_warehouse {

tools/tpcc-runner/src/loader.rs

Lines changed: 46 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -60,33 +60,58 @@ fn database_number_chunks(num_databases: u16, parallelism: usize) -> Vec<Vec<u16
6060
.collect()
6161
}
6262

63+
macro_rules! time {
64+
($span_name:literal { $($body:tt)*}) => {{
65+
let before = std::time::Instant::now();
66+
log::info!("Span {} starting at {:?}", $span_name, before);
67+
let res = (|| Ok::<_, anyhow::Error>({ $($body)* }))();
68+
let elapsed = before.elapsed();
69+
log::info!("Span {} ended after {:?}", $span_name, elapsed);
70+
res?
71+
}}
72+
}
73+
6374
fn run_one_database(config: &LoadConfig, database_number: u16, topology: &DatabaseTopology) -> Result<()> {
64-
let database_identity = topology.identity_for_database_number(database_number)?;
65-
log::info!(
66-
"starting tpcc load into {} / {} with {} warehouse(s)",
67-
config.connection.uri,
68-
database_identity,
69-
config.warehouses_per_database
70-
);
75+
time!("run_one_database" {
76+
let database_identity = topology.identity_for_database_number(database_number)?;
77+
log::info!(
78+
"starting tpcc load into {} / {} with {} warehouse(s)",
79+
config.connection.uri,
80+
database_identity,
81+
config.warehouses_per_database
82+
);
83+
84+
let mut client = ModuleClient::connect(&config.connection, database_identity)?;
85+
client.subscribe_load_state()?;
86+
87+
time!("reset" {
88+
if config.reset {
89+
client.reset_tpcc().context("failed to reset tpcc data")?;
90+
}
91+
});
7192

72-
let mut client = ModuleClient::connect(&config.connection, database_identity)?;
73-
client.subscribe_load_state()?;
93+
let request = time!("build_load_request" {
94+
build_load_request(config, database_number, topology)?
95+
});
96+
time!("configure_tpcc_load" {client
97+
.configure_tpcc_load(request)
98+
.context("failed to configure tpcc load")})?;
7499

75-
if config.reset {
76-
client.reset_tpcc().context("failed to reset tpcc data")?;
77-
}
100+
time!("start_tpcc_load" {
101+
client.start_tpcc_load().context("failed to start tpcc load")?
102+
});
78103

79-
let request = build_load_request(config, database_number, topology)?;
80-
client
81-
.configure_tpcc_load(request)
82-
.context("failed to configure tpcc load")?;
83-
client.start_tpcc_load().context("failed to start tpcc load")?;
104+
time!("wait_for_load_completion" {
105+
wait_for_load_completion(&client, database_identity)?
106+
});
84107

85-
wait_for_load_completion(&client, database_identity)?;
86-
client.shutdown();
108+
time!("shutdown" {
109+
client.shutdown()
110+
});
87111

88-
log::info!("tpcc load for database {database_identity} finished");
89-
Ok(())
112+
log::info!("tpcc load for database {database_identity} finished");
113+
Ok(())
114+
})
90115
}
91116

92117
fn build_load_request(

0 commit comments

Comments
 (0)