Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Post-deploy of v1.2.135: drain the ranked_match backlog and verify the ladder changes

Open
#407 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
1-2 days
Newbie friendliness
8/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Active
Tech stack
aws, postgresql, typescript
Domain
databases, devops

Research direction

This is an operations runbook, not a code change: it needs AWS Elastic Beanstalk console access and RDS access that a newcomer will not have. The relevant setting is the LADDER_MATCH_RETENTION_DAYS environment variable, which controls the batched ranked_match sweep, and the /health endpoint reports the deployed version. Done means the table is drained, the version reads 1.2.135 across several polls, and the listed metrics are checked against their expected values.

Written by the indexing model from the issue text.

Description

priority: high tech-debt

Follow-up to the 2026-10-10 RDS memory investigation. v1.2.135 (#401 + #406) is cut and armed; the deploy alone does not finish the job.

1. Drain the ranked_match backlog (the step the RDS fix depends on)

ranked_match holds roughly 450–500k rows. #406 bounds the table at ~660 rows going forward (66 pairings x cap 10), but it will not clear the existing backlog promptly:

  • Write-time pruning only fires when a pair plays a match — and at deploy nearly every pairing is already saturated (apps have ~1,800 matches each since their last edit, against a cap of 10), so pairs stop playing and are never pruned.
  • The GC sweep window is 90 days, so it only removes rows older than that.

Left alone the table drains over ~90 days. To reclaim it in an afternoon, no code change is needed:

  1. EB console → LADDER_MATCH_RETENTION_DAYS=1
  2. Wait ~4–5 h (the sweep is batched at 5,000 rows/statement, 100k/sweep, hourly)
  3. Set it back to 90

Side effect: every pairing un-saturates, so the ladder replays ~660 matches (~3 h at the new pacing) and re-saturates. Bounded, and it doubles as a clean baseline.

Optional polish: VACUUM (FULL, ANALYZE) ranked_match reclaims the disk and rebuilds the indexes. The FreeableMemory trend is fixed by the delete itself, so this is nice-to-have — and it needs a shell on the DB, which we do not currently have (see the prod-shell-access issue).

2. Verify the deploy

/health reports the version. Poll for ~6 consecutive hits reading 1.2.135 — a single hit can land on an instance mid-rotation during the Immutable swap.

3. Check the predictions

These were derived from measurements on 2026-10-10; they are falsifiable on purpose.

signal expected
share of ladder.match with decided:false <10% (was 20%)
ladder.match log rate near zero in steady state; the pool saturates within minutes of deploy
EC2 CPUUtilization avg toward the ~20% ladder-idle baseline (was 38–42%)
CPUCreditBalance starts re-accruing (has been pinned at 0 since ~2026-08-18)
RDS FreeableMemory the ~-19 MB/month decline flattens
RDS DatabaseConnections avg falls from 5.7

The load-bearing one is decided:false. If it does not drop below ~10%, the contention hypothesis behind #401's timeout change was wrong — something else is preventing matches from deciding, and the lever is LADDER_MATCH_SPEED or the match logic rather than the timeout.

4. Release notes

v1.2.134..v1.2.135 is the notes range. Covers the ladder pacing (#401), the pair saturation cap (#406), and the dependency batch that cleared the audit gate (#402/#403/#404).

Dominant language
TypeScript
Stars
0
Forks
0
Avg merge
8m
Merged PRs (30d)
8

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from LeeAdcock/robocodeJs.com

All issues in LeeAdcock/robocodeJs.com

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.