Skip to content

Commit 68c25fc

Browse files
committed
store: Log a lot of detail from copy_data_internal
1 parent a9557be commit 68c25fc

File tree

1 file changed

+38
-1
lines changed

1 file changed

+38
-1
lines changed

store/postgres/src/copy.rs

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ use graph::{
3737
info, lazy_static, o, warn, BlockNumber, BlockPtr, CheapClone, Logger, StoreError, ENV_VARS,
3838
},
3939
schema::EntityType,
40-
slog::error,
40+
slog::{debug, error},
4141
tokio,
4242
};
4343
use itertools::Itertools;
@@ -1121,26 +1121,61 @@ impl Connection {
11211121
// we do not ever leave the loop with `self.conn == None`
11221122
let mut workers = Workers::new();
11231123
while !state.unfinished.is_empty() || workers.has_work() {
1124+
debug!(self.logger, "copy_data_internal: looking for more work";
1125+
"workers" => workers.len(), "unfinished" => state.unfinished.len());
11241126
// We usually add at least one job here, except if we are out of
11251127
// tables to copy. In that case, we go through the `while` loop
11261128
// every time one of the tables we are currently copying
11271129
// finishes
11281130
if let Some(worker) = self.default_worker(&mut state, &progress) {
11291131
workers.add(worker);
1132+
debug!(self.logger, "copy_data_internal: found more work for default worker";
1133+
"workers" => workers.len(), "unfinished" => state.unfinished.len());
1134+
} else {
1135+
debug!(self.logger, "copy_data_internal: no more work for default worker";
1136+
"workers" => workers.len(), "unfinished" => state.unfinished.len());
11301137
}
11311138
loop {
11321139
if workers.len() >= self.workers {
1140+
debug!(self.logger, "copy_data_internal: max workers reached, not looking for extra work";
1141+
"workers" => workers.len(), "unfinished" => state.unfinished.len());
1142+
11331143
break;
11341144
}
11351145
let Some(worker) = self.extra_worker(&mut state, &progress).await else {
1146+
debug!(self.logger, "copy_data_internal: no more work for extra worker";
1147+
"workers" => workers.len(), "unfinished" => state.unfinished.len());
11361148
break;
11371149
};
1150+
debug!(self.logger, "copy_data_internal: found more work for extra worker";
1151+
"workers" => workers.len(), "unfinished" => state.unfinished.len());
11381152
workers.add(worker);
11391153
}
11401154

11411155
self.assert_progress(workers.len(), &state)?;
1156+
debug!(self.logger, "copy_data_internal: running workers";
1157+
"workers" => workers.len(), "unfinished" => state.unfinished.len());
11421158
let result = workers.select().await;
11431159

1160+
match &result {
1161+
W::Ok(copy_table_worker) => {
1162+
debug!(self.logger, "copy_data_internal: worker finished successfully";
1163+
"workers" => workers.len(),
1164+
"unfinished" => state.unfinished.len(),
1165+
"table" => copy_table_worker.table.dst.name.as_str());
1166+
}
1167+
W::Err(store_error) => {
1168+
debug!(self.logger, "copy_data_internal: worker finished with error";
1169+
"workers" => workers.len(),
1170+
"unfinished" => state.unfinished.len(),
1171+
"error" => store_error.to_string());
1172+
}
1173+
W::Wake => {
1174+
debug!(self.logger, "copy_data_internal: waker finished";
1175+
"workers" => workers.len(), "unfinished" => state.unfinished.len());
1176+
}
1177+
}
1178+
11441179
// Analyze `result` and take another trip through the loop if
11451180
// everything is ok; wait for pending workers and return if
11461181
// there was an error or if copying was cancelled.
@@ -1187,6 +1222,8 @@ impl Connection {
11871222
};
11881223
}
11891224
debug_assert!(self.conn.is_some());
1225+
debug!(self.logger, "copy_data_internal: finished all tables";
1226+
"workers" => workers.len(), "unfinished" => state.unfinished.len());
11901227

11911228
// Create indexes for all the attributes that were postponed at the start of
11921229
// the copy/graft operations.

0 commit comments

Comments
 (0)