Repository navigation
Conversation
This branch has not been deployed
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.
Cyclic listing bursts queue application work when app CPU competes with other node workloads. This change releases listing rows before typed decoding, prepares versioned listing JSON during writes, and adds checkout timing, opt-in loopback profiling and configurable per-replica DB pool limits. Defaults remain 60 maximum / 10 minimum connections. Derived JSON preserves fresh metadata, invalidates on old-writer updates and falls back for unknown codecs; existing rows have an explicit bounded backfill tool.
Draft: neither latest staging layout passed the short offered-load gate. Production is unchanged. The experimental scaling configuration is not approved for promotion.
Generator calibration and staging results
The benchmark now separates scheduler/worker delay, connection acquisition, TLS, first-byte and body-transfer timing by request kind and bounded cache outcome. An HTTPS loopback fixture at 4,500 reads/s reproduced 6.40% dropped work on the four-vCPU client/fixture host. A temporary sixteen-vCPU host completed all 405,000 calibration requests without drops or failures. This resolves a local generator limitation; it does not independently certify external network capacity or attribute all older losses to the generator.
Both subsequent staging tests used the same larger generator, prepared-JSON image, four app replicas at 400m CPU request each, six ingress replicas, four nodes and three-CPU DB quota. Pools remained 30/5 per app, totaling 120/20. Each burst scheduled 810,000 reads over three minutes at 4,500/s with varied keys, updated listings and searches; neither short test published data.
The worst shared-layout app was on a node without PostgreSQL. DB isolation improved measured SQL time but app CPU stalls and queues persisted. Isolation also concentrates apps and ingress on three nodes, so this measures the complete placement change, not an isolated DB effect. Each layout was tested once. Different placements also limit comparisons with older generator runs.
Both two-minute recoveries completed 12,000 reads without drops or failures and ended with zero sampled pool queues. DB throttling did not increase within either captured run; neither app nor DB restarted. The failed short gates mean the conditional ten-minute burst with publishing and thirty-minute recovery was not run. No app HPA was implemented. These results do not justify increasing the DB pool or treating a dedicated DB node as a proven fix.
The next resource design needs to address app CPU allocation and placement alongside busy ingress workloads, including scheduling feasibility and the desired idle footprint. The specific production configuration is not yet validated.
Validation and restoration
See latest report and portable evidence, earlier fixed-budget comparison, CPU diagnosis, and benchmark/backfill instructions.