Skip to content

storage_engine v2.4.0

Latest

Choose a tag to compare

@saulojb saulojb released this 17 May 23:47
· 2 commits to main since this release

storage_engine v2.4.0 improves real colcompress performance on TPC-H without benchmark-masking SQL rewrites, adds safer reread cache reuse for both storage engines, and closes the release with a fully green PostgreSQL 15–19 validation matrix.

Highlights

Planner-hook improvements for real TPC-H workloads

  • Official TPC-H Q21 now retries planning with enable_nestloop=off only for the canonical colcompress shape, avoiding the bad nested-loop plan that dominated PG18.
  • Official TPC-H Q7 gets the same narrow nested-loop avoidance after extending relation-touch detection through RTE_SUBQUERY.
  • Official TPC-H Q18 on PG18 keeps the narrow rewrite but now forces max_parallel_workers_per_gather=0 for that rewritten shape, avoiding repeated worker-side execution and spill-heavy regressions.
  • Decorrelated scalar-aggregate paths on PG16+ now widen the enable_nestloop=off steering for shapes such as Q20 and add a narrow replan for bad final nested loops in Q9-style post-join aggregates over colcompress scans.

Cache reuse and observability

  • rowcompress repeated index probes now reuse backend-local metadata and safely cached decompressed batches across statements.
  • engine.rowcompress_scan_stats() now reports reliable metadata-cache hits/misses, batch-cache hits/misses, and decompression counts even for plain Index Scan paths.
  • colcompress reread cache entries now stay alive for the backend across repeated scans, with invalidation on destructive DDL and rewrite paths.
  • Added focused benchmark scripts for synthetic rereads, real col.lineitem rereads, real TPCH Q14 rereads, and rowcompress index-cache probes.

Validation and build hygiene

  • Removed the remaining warning-causing dead planner-hook code and aligned version guards so PG15 builds cleanly.
  • Repaired the PG19 system test environment and reran the official multi-version target.
  • Final validation matrix:
    • PG15: 294/294 tests passed
    • PG16: 293/293 tests passed
    • PG17: 293/293 tests passed
    • PG18: 293/293 tests passed
    • PG19: 297/297 tests passed

Upgrade

This release publishes the official extension upgrade path from 2.3.0 to 2.4.0 via storage_engine--2.3.0--2.4.0.sql.