Skip to content

v0.2.0 — trace a query, scenarios, daylight, and an honest cache

Choose a tag to compare

@mariuz mariuz released this 27 Jul 09:32

Features ported from the PGSimCity release line, adapted to Firebird mechanics.

Added

  • Query trace with step mode (G or the Trace a query button): follow one UPDATE station by station — harbor, Y-valve, lexer, parser, BLR generator, security, compiler, execution, cache accesses with hit/miss narration and the detour down to the database file, lock manager, record version towers, and the TIP commit — with a camera that follows the particle and Next step / Auto play controls
  • Six scenario presets in the control room: steady state, cache thrash, stuck OIT / version bloat, lock contention, rush hour, and sweep storm — each sets the sliders, seeds the event log, and flies the camera to the relevant district
  • Daylight theme with a visible switcher (D), persisted across visits; the whole canvas palette and UI restyle
  • Page anatomy viewer (P): a labeled diagram of a Firebird data page (header, record descriptors growing down, RLE-compressed records growing up, rpb headers with transaction id and back-version pointer) beside the version-chain lifecycle from newest version to sweep-able garbage
  • Sparkline vitals: sixty-second history for queries/s, cache hit ratio and stale versions in the stats bar
  • Keyboard help overlay (?) and an on-screen version badge

Changed

  • Pause now properly freezes the simulation (space), and a speed control runs the world at 0.5×, 1×, 2× or 4×
  • The cache stopped lying: page access now follows a hot/cold working-set distribution, so the default 64-page cache lands a realistic ~85–90% hit ratio, an evictions counter joined the stats bar, and shrinking the cache below the hot set visibly thrashes

Fixed

  • Record version towers rendered with a stale fill color because the tower gradient emitted a color format the face shader couldn't parse
  • TIP counters over the Transaction Hall are now readable in both themes
  • The canvas self-heals its size when laid out after load

Known issues

  • Touch controls verified in desktop emulation only
  • The traced query is spared deadlocks so the walk stays predictable — real transactions enjoy no such courtesy