fix: consolidate AppView read state and attribute request latency - #458
Merged
Merged
Conversation
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.
Publication requests in Development still hit their two-second deadline after PR454. This change removes repeated read-state database work and adds evidence to identify the remaining latency: a cached nonempty page now reads authority, explicit marks, unread overrides, and legacy floors in one statement snapshot (previously five transactions for legacy authority, two for PDS authority).
The overlay retains PDS authority, fails when its projection is unavailable, preserves legacy watermark/tie/override behavior and viewer isolation, and tolerates repeated cached entry IDs. The request deadline is unchanged. Fixed-category timings distinguish cache lookup, refresh-lease contention, publication selection, cache storage, authoritative read state, PostgreSQL pool wait, transaction duration, and application SELECT attempts. One existing slow/failure log carries the bounded numeric summary; fast successes stay silent, background refreshes are excluded, and no SQL, parameters, viewer IDs, URLs, or raw errors are collected.
Validation:
Rollout: Development first, followed by authenticated first/repeat publication loads. The browser session expired and needs sign-in before acceptance. This removes measured-in-source overhead; it does not establish the dominant timeout cause or claim a memory/latency saving. Production PR453 remains held for Development acceptance. No memory limits, replica counts, durability settings, or public XRPC shapes change.
Tracks TSW-121 under TSW-92.