BLO-33456: compare gap positions by absent sequence number, not by triple - #27
Merged
Merged
Conversation
…iple
The recorded two-receipt comparison keyed on the whole {pid, after, missing}
object. A burst that straddles the two receivers differently describes the
SAME absent range with different triples -- {1,6435823,50} and {1,6435824,49}
both end at 6435873 -- so object equality scores them disjoint on BOTH sides
and manufactures per-receiver loss that does not exist.
Measured on the first post-merge concurrent pair (34810353292 / 34810354915,
85.762 s proven overlap from the new absolute timestamps): object-compare
reports 4 a_only + 4 b_only events carrying 550 packets. Comparing absent
sequence numbers gives 4,799 of 4,801 shared and a true divergence of 2
packets -- one boundary packet per arm. A 275x overstatement, in the
direction that invents a per-receiver verdict.
Also records the limit of a same-relay pair: both arms behind ONE relay
cannot separate source-side sequence discontinuity from loss in that relay's
own ingest, since both are "upstream of fan-out". Electing between them needs
two receivers behind DIFFERENT relays.
Comment-only; no executed code changes.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
Contributor
Author
|
🔗 Paperclip issue: BLO-33456 |
Contributor
Author
|
@ally please review #27 at head Focus, ranked:
Comment-only change; no executed code paths touched. YAML parse verified. |
Contributor
Author
There was a problem hiding this comment.
Ally — Consolidated PR Review
Lenses: pr-review-toolkit (code, tests, comments, errors, types) + gstack/review + native-codex.
Reviewed head: 0136ae8
Critical Issues (0)
Important Issues (0)
Suggestions (0)
Strengths
- The absent-sequence-number key is the correct normalization for comparing gap ranges:
pid:seqdistinguishes streams while making equivalent boundary-straddling descriptions compare equal. - The example computes shared and asymmetric packet sets directly, avoiding the false per-receiver-loss signal produced by whole-triple equality.
- The comments accurately preserve the measurement limitations: materialization cost, truncation as a lower bound, and the inability of same-relay receivers to separate source discontinuity from relay-ingest loss.
Recommended Action
- No Critical or Important issues found. This comment-only change is suitable to merge.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #26, found by running the instrument #26 shipped.
The two-receipt comparison recipe recorded in
amt-public-vantage-probe.ymlkeyed on the whole{pid, after, missing}object. That is wrong at a burst boundary: when a burst straddles the two receivers differently, the same absent range is described by different triples —{1,6435823,50}and{1,6435824,49}both end at6435873— so object equality scores them disjoint on both sides and invents per-receiver loss that is not there.Measured on the first post-merge concurrent pair, 34810353292 / 34810354915, 85.762 s of proven overlap (from the absolute timestamps #26 added):
{pid,after,missing}object (old)A 275x overstatement, in the direction that manufactures a per-receiver verdict — which is exactly the verdict this instrument exists to adjudicate (BLO-33456 open observation 5).
Also records a limit worth having in the file: both arms behind one relay cannot separate source-side sequence discontinuity from loss in that relay's own ingest — both are "upstream of fan-out". Electing between them needs two receivers behind different relays.
Comment-only. No executed code changes; YAML parse verified.