Additional instrumentation around global counter events.

This commit is contained in:
Jason Volk
2025-08-06 06:15:36 +00:00
parent bf48c7b1b4
commit 00f11a9e8f
2 changed files with 5 additions and 1 deletions

View File

@@ -150,7 +150,7 @@ impl<F: Fn(u64) -> Result + Sync> State<F> {
.remove(index)
.expect("sequence number at index must be removed");
debug_assert!(removed == id, "sequence number removed must match id");
debug_assert_eq!(removed, id, "sequence number removed must match id");
// release only occurs when the oldest value retires
if index != 0 {
@@ -160,6 +160,8 @@ impl<F: Fn(u64) -> Result + Sync> State<F> {
// release occurs for the maximum retired value
let release = if self.pending.is_empty() { self.dispatched } else { id };
debug_assert!(release >= id, "sequence number released must not be less than id");
(self.release)(release).expect("release callback should not error");
}

View File

@@ -72,12 +72,14 @@ impl Data {
#[inline]
pub(super) fn pending_count(&self) -> Range<u64> { self.counter.range() }
#[tracing::instrument(name = "retire", level = "debug", skip(sender))]
fn handle_retire(sender: &Sender<u64>, count: u64) -> Result {
let _prev = sender.send_replace(count);
Ok(())
}
#[tracing::instrument(name = "dispatch", level = "debug", skip(db, global))]
fn store_count(db: &Arc<Database>, global: &Arc<Map>, count: u64) -> Result {
let _cork = db.cork();
global.insert(COUNTER, count.to_be_bytes());