Skip to content

feat: add benchmarks and optimize acquire_job#17

Merged
robertLichtnow merged 1 commit into
mainfrom
robertLichtnow/benchmarks
Mar 8, 2026
Merged

feat: add benchmarks and optimize acquire_job#17
robertLichtnow merged 1 commit into
mainfrom
robertLichtnow/benchmarks

Conversation

@robertLichtnow

Copy link
Copy Markdown
Owner

Summary

Add automated benchmark suites for add-jobs throughput and acquire-job latency at scale (10k/100k/1M rows). Results are auto-written to BENCHMARKS.md with hardware and version info.

Optimize acquire_job and acquire_jobs performance from ~110ms to ~0.5ms at 1M rows by: (1) adding indexes on (run_after) and (pattern, run_after), (2) splitting PL/pgSQL into separate code paths to eliminate OR conditions that block index usage, (3) using EXECUTE (dynamic SQL) instead of RETURN QUERY to prevent generic plan caching.

New scripts: bun run bench, bun run bench:add, bun run bench:acquire.

🤖 Generated with Claude Code

Add benchmark scripts for add-jobs throughput and acquire-job latency
at 10k/100k/1M table sizes. Results are auto-written to BENCHMARKS.md
with hardware info and library version.

Add indexes on (run_after) and (pattern, run_after) to support acquire
queries. Rewrite acquire_job/acquire_jobs as PL/pgSQL with separate
code paths and dynamic SQL (EXECUTE) to prevent generic plan caching,
bringing acquire latency from ~110ms to ~0.5ms at 1M rows.
@robertLichtnow robertLichtnow merged commit a7a9b4a into main Mar 8, 2026
9 checks passed
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