Repository navigation
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
|
Holding this one out of 0.6.14. We're looking into how Postgres's lock manager behaves under heavy queue-storage workloads, where ring prune repeatedly requests ACCESS EXCLUSIVE and TRUNCATEs partitions. Until we understand that better, the patch release should take only changes that don't add to lock traffic. This PR does add to it:
Before this ships, it also needs the same follow-up as main (#600, The tombstone exclusion on the attempt joins looks good and carries no lock cost. If we want it sooner, it could ship separately. Generated by Claude Code |
HELD OUT of 0.6.14 per review: measure the added per-read relation-lock footprint and prune
Blockedrate under load before reconsidering release inclusion. Full CI does not clear this hold.After a priority move, the old tombstoned ready row and the live row can share a lane sequence. Active lease hydration then duplicates the running job; compact point reads can return the old payload instead of the aged metadata. Exclude the full tombstone identity from active joins and require the compact item's exact prior run lease.
Point reads lock the ready, lease and claim families before their first data query establishes a repeatable-read snapshot. This protects running evidence from claim/lease truncation and also closes the first-query window: a SELECT can take its snapshot before acquiring relation locks, so a read waiting behind queue prune could miss a failed job carried to the live slot. Ready locks are acquired before the snapshot; queue prune takes its ready child NOWAIT before terminal children, and claim-family lock order is preserved. No migration, configuration or public API change.
Validation:
a41c85b5: ten focused read regressions pass on PostgreSQL 17 and 18. Matched old-source controls expose duplicate materialized hydration, stale compact payload, real claim-prune and lease-TRUNCATE races; the row-local control passes before and after.9b05fe2bautomatic full CI 42288944227 passes all 29 jobs. Earlier parent full-CI success is separate.This remains a draft; mixed-load release acceptance is separate from the focused read proofs.