Skip to content

v0.1.1

Choose a tag to compare

@giraffesyo giraffesyo released this 29 Sep 21:26
· 26 commits to canary since this release
b2ab68c

The first soak on the reference hardware found three defects in the live
table's upkeep that only show under sustained load; all three are fixed here
and verified with a ten-minute loaded run at 43,000 jobs/s (p50 9.6 ms, p99
52 ms in every window). Upgrading applies schema v7 (one ALTER TABLE).

Fixed

  • The leader re-analyzes the live table on churn again (rate-limited to
    every 30 s, with a small sample): with statistics refreshed only on a
    tenfold size change, the planner's picture of the state mix went stale
    and the finalize drifted back onto its slow join order within minutes at
    43,000 jobs/s.
  • Vacuums of the live table no longer truncate its heap (schema v7 sets
    vacuum_truncate = false; the leader passes TRUNCATE false): the
    truncation retried an exclusive lock for five seconds per pass and
    stalled every claim behind it whenever it got one, which showed as
    pickup-latency spikes of one to two seconds.
  • The claim's LIMIT is a constant (one statement per bucket, 1 to 512,
    with the count applied through row numbers) instead of a bind parameter,
    whose generic plan scanned the whole table per claim; a claim returns at
    most 512 jobs.
  • hopperbench loaded -report N prints per-window latency and rate lines
    for soaks.

Modules: github.com/parallelworks/hopper, github.com/parallelworks/hopper/hopperotel, github.com/parallelworks/hopper/hopperui, all at v0.1.1.