Compare commits
2 Commits
32aeb332b1
...
4157779f12
Author | SHA1 | Date |
---|---|---|
GroovieGermanikus | 4157779f12 | |
GroovieGermanikus | f6206641b9 |
|
@ -68,20 +68,20 @@ pub async fn main() {
|
||||||
// exit_notify.resubscribe(),
|
// exit_notify.resubscribe(),
|
||||||
// );
|
// );
|
||||||
|
|
||||||
// let _all_accounts = create_geyser_autoconnection_task_with_mpsc(
|
let _all_accounts = create_geyser_autoconnection_task_with_mpsc(
|
||||||
// config.clone(),
|
|
||||||
// all_accounts(),
|
|
||||||
// autoconnect_tx.clone(),
|
|
||||||
// exit_notify.resubscribe(),
|
|
||||||
// );
|
|
||||||
|
|
||||||
let _token_accounts_task = create_geyser_autoconnection_task_with_mpsc(
|
|
||||||
config.clone(),
|
config.clone(),
|
||||||
token_accounts(),
|
all_accounts(),
|
||||||
autoconnect_tx.clone(),
|
autoconnect_tx.clone(),
|
||||||
exit_notify.resubscribe(),
|
exit_notify.resubscribe(),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// let _token_accounts_task = create_geyser_autoconnection_task_with_mpsc(
|
||||||
|
// config.clone(),
|
||||||
|
// token_accounts(),
|
||||||
|
// autoconnect_tx.clone(),
|
||||||
|
// exit_notify.resubscribe(),
|
||||||
|
// );
|
||||||
|
|
||||||
let current_processed_slot = AtomicSlot::default();
|
let current_processed_slot = AtomicSlot::default();
|
||||||
start_tracking_slots(current_processed_slot.clone());
|
start_tracking_slots(current_processed_slot.clone());
|
||||||
start_tracking_account_consumer(geyser_messages_rx, current_processed_slot.clone());
|
start_tracking_account_consumer(geyser_messages_rx, current_processed_slot.clone());
|
||||||
|
@ -190,15 +190,6 @@ fn start_tracking_account_consumer(mut geyser_messages_rx: Receiver<Message>, cu
|
||||||
let slot = update.slot;
|
let slot = update.slot;
|
||||||
let account_receive_time = get_epoch_sec();
|
let account_receive_time = get_epoch_sec();
|
||||||
|
|
||||||
let latest_slot = current_processed_slot.load(Ordering::Relaxed);
|
|
||||||
|
|
||||||
if latest_slot != 0 {
|
|
||||||
// the perfect is value "-1"
|
|
||||||
let delta = (latest_slot as i64) - (slot as i64);
|
|
||||||
if debouncer.can_fire() {
|
|
||||||
debug!("Account info for upcoming slot {} was {} behind current processed slot", slot, delta);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// if account_info.data.len() > 1000 {
|
// if account_info.data.len() > 1000 {
|
||||||
// trace!("got account update!!! {} - {:?} - {} bytes",
|
// trace!("got account update!!! {} - {:?} - {} bytes",
|
||||||
|
@ -221,13 +212,13 @@ fn start_tracking_account_consumer(mut geyser_messages_rx: Receiver<Message>, cu
|
||||||
|
|
||||||
info!("Slot: {} - num of update messages: {}", slot, updates_per_slot.get(¤t_slot).unwrap());
|
info!("Slot: {} - num of update messages: {}", slot, updates_per_slot.get(¤t_slot).unwrap());
|
||||||
|
|
||||||
let counters = wallclock_updates_per_slot_account.iter()
|
let per_account_updates = wallclock_updates_per_slot_account.iter()
|
||||||
.filter(|((slot, _pubkey), _)| slot == ¤t_slot)
|
.filter(|((slot, _pubkey), _)| slot == ¤t_slot)
|
||||||
.map(|((_slot, _pubkey), updates)| updates.len() as f64)
|
.map(|((_slot, _pubkey), updates)| updates.len() as f64)
|
||||||
.sorted_by(|a, b| a.partial_cmp(b).unwrap())
|
.sorted_by(|a, b| a.partial_cmp(b).unwrap())
|
||||||
.collect_vec();
|
.collect_vec();
|
||||||
let count_histogram = histogram_percentiles::calculate_percentiles(&counters);
|
let per_account_updates_histogram = histogram_percentiles::calculate_percentiles(&per_account_updates);
|
||||||
info!("Count histogram: {}", count_histogram);
|
info!("Per-account updates histogram: {}", per_account_updates_histogram);
|
||||||
|
|
||||||
if let Some(actual_block_time) = block_time_per_slot.get(¤t_slot) {
|
if let Some(actual_block_time) = block_time_per_slot.get(¤t_slot) {
|
||||||
info!("Block time for slot {}: delta {} seconds", current_slot, account_receive_time - *actual_block_time);
|
info!("Block time for slot {}: delta {} seconds", current_slot, account_receive_time - *actual_block_time);
|
||||||
|
@ -247,6 +238,17 @@ fn start_tracking_account_consumer(mut geyser_messages_rx: Receiver<Message>, cu
|
||||||
} // -- slot changed
|
} // -- slot changed
|
||||||
current_slot = slot;
|
current_slot = slot;
|
||||||
|
|
||||||
|
|
||||||
|
let latest_slot = current_processed_slot.load(Ordering::Relaxed);
|
||||||
|
|
||||||
|
if latest_slot != 0 {
|
||||||
|
// the perfect is value "-1"
|
||||||
|
let delta = (latest_slot as i64) - (slot as i64);
|
||||||
|
if debouncer.can_fire() {
|
||||||
|
debug!("Account info for upcoming slot {} was {} behind current processed slot", slot, delta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
None => {}
|
None => {}
|
||||||
_ => {}
|
_ => {}
|
||||||
|
|
Loading…
Reference in New Issue