Skip to content

docs: add bench spec for fan-out churn#217

Draft
NikolayS wants to merge 3 commits intomainfrom
worktree-agent-a7d184618280ecbf6
Draft

docs: add bench spec for fan-out churn#217
NikolayS wants to merge 3 commits intomainfrom
worktree-agent-a7d184618280ecbf6

Conversation

@NikolayS
Copy link
Copy Markdown
Owner

@NikolayS NikolayS commented May 6, 2026

Summary

  • Adds blueprints/BENCH_FANOUT_CHURN.md, a companion benchmark spec to BENCH_XMIN_HORIZON.md
  • Covers the second main dead-tuple failure mode for SKIP LOCKED queues: steady-state churn under periodic burst fan-out, where autovacuum is unblocked but cannot keep pace with bursts
  • Defines four scenarios (F1–F4), two workloads (W-skiplocked / W-pgque), metrics, PG config, and a file layout placeholder for the implementation

Test plan

  • Read the spec end-to-end; confirm the F1–F4 scenarios cover the steady-state churn case

NikolayS and others added 3 commits May 6, 2026 13:04
Companion to BENCH_XMIN_HORIZON.md covering the second main dead-tuple
failure mode for SKIP LOCKED queues: steady-state churn under burst
fan-out patterns where autovacuum is not blocked but cannot keep pace
with periodic bursts. Defines four scenarios (F1–F4), two workloads,
metrics, PG config, and file layout.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Rename category label "SKIP LOCKED queues" to "UPDATE/DELETE queues"
throughout (the locking primitive is not what causes dead-tuple pain).
Rewrite motivation paragraphs to keep dead tuples (pre-VACUUM, immediate
harm) distinct from bloat (post-VACUUM, cumulative heap growth), and
replace the "tuning reduces bloat" framing with the correct structural
fix: avoiding UPDATE/DELETE on the hot path entirely. Add
autovacuum_vacuum_insert_scale_factor = 0.005 to the PG config block
so insert-heavy bursts trigger vacuum on the enqueue side too. Update
PG17 → PG18 in the hardware section.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Under blocked xmin, VACUUM cannot remove dead tuples at all, so
"only changes the rate" was wrong for that case — tuning does
nothing. Split the single sentence into three that make the
conditional explicit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant