-- pg_turbovec v1.7.1 -- Phase W-2 split-write reverted. -- -- This file is a *reference mirror*. The authoritative install -- script is generated by `cargo pgrx schema`. -- -- v1.7.1 ships zero SQL surface changes. It reverts the v1.7.0 -- (Phase W-2) `ambuild` reordering after validation on `meh` at -- 10 M x 1536-d showed the split-write design did not actually -- lower peak RSS: -- -- pre-W (v1.5.x): 121 GiB peak RSS, 60 GiB swap, 5048 s -- post-W (v1.6.0): 22.5 GiB peak RSS, 0 swap, 5052 s -- v1.7.0 (Phase W-2): 23.04 GiB peak RSS, 2.67 GiB swap, 7748 s -- v1.7.1 (revert): behaves as v1.6.0 (build path identical). -- -- The hypothesis behind Phase W-2 was that dropping the -- ~7.7 GiB row-major `packed_codes` Vec mid-finalise (via the -- new `IdMapIndex::take_packed_codes()`) would shave the peak -- RSS by ~7.7 GiB. It didn't, because `ps -o rss` includes -- shared_buffers pages that the backend has pinned, and -- `write_packed_phase` pins the codes pages in shared memory -- before `take_packed_codes()` runs. The "freed" heap pages -- just migrated to pinned shared mem; same RSS budget, plus -- a 53% build-time penalty from the extra GenericXLog flush -- phase and 2.7 GiB of swap from second-phase allocations -- colliding with the OS page cache. -- -- See `benches/results/phase_w_2_validate_meh_10m_2026_05_27.json` -- and for the full analysis. -- -- The wire format does NOT change. The on-disk index format is -- byte-identical across v1.6.0, v1.7.0, and v1.7.1 (all -- `MetaPageData::version = 3`). There is no DDL or on-disk -- migration required, and no REINDEX is needed across any of -- these versions. -- -- See docs/UPGRADING.md for the v1.7.0 -> v1.7.1 patch row -- (no REINDEX needed). This migration file exists only so the -- upgrade path `ALTER EXTENSION pg_turbovec UPDATE TO '1.7.1';` -- resolves without an error. It is intentionally empty.