Dan Notestein (70908333) at 17 Mar 03:36
Fix hypertable index creation: WITH clause placement and error reco...
Dan Notestein (d9619c50) at 17 Mar 02:32
Use transaction_per_chunk for hypertable indexes, skip pg_dump test
Dan Notestein (f6e0308d) at 17 Mar 01:48
Use separate transactional connection for hypertable indexes
Dan Notestein (888781f2) at 17 Mar 01:34
Show run start time and HAF container uptime on state page
Dan Notestein (1f9aa74a) at 17 Mar 01:17
Add lock_timeout for hypertable index creation
Dan Notestein (edde755c) at 17 Mar 01:03
Add advisory locks to prevent concurrent catalog modification errors
... and 1 more commit
Dan Notestein (16dec608) at 17 Mar 00:50
Fix scope: move index_constraint_name declaration before try block
Dan Notestein (d3be1ad2) at 17 Mar 00:41
Skip CONCURRENTLY for hypertable indexes in poll_and_create
Dan Notestein (e5fc3648) at 17 Mar 00:18
Handle inherited FK constraints from hypertable references
Dan Notestein (b3f7e7fa) at 17 Mar 00:11
Fix FK conditional: use pg_class.relkind instead of timescaledb views
pg_advisory_xact_lock(hashtext('hive_catalog_modification')) to serialize concurrent modifications to HAF catalog tables (hafd.contexts, hafd.registered_tables, hafd.triggers)When multiple apps create contexts and register tables concurrently, their transactions can attempt to INSERT/UPDATE the same catalog rows simultaneously. PostgreSQL raises ERROR: tuple concurrently updated — an immediate failure (not a deadlock) that crashes the app startup.
Uses transaction-scoped advisory locks (pg_advisory_xact_lock) with a single shared lock key across all catalog-modifying functions:
hive.context_create — INSERT into hafd.contexts and hafd.contexts_attachment
hive.context_remove — DELETE from hafd.contexts and related tableshive.register_table — INSERT into hafd.registered_tables and hafd.triggers
hive.unregister_table — DELETE from hafd.registered_tables and related cleanupAdvisory locks are lightweight (no table-level locks), automatically released at transaction end, and only serialize the catalog mutation path — they don't affect normal app operations like app_next_block.
hfm_functional_tests pass (context creation, table registration, removal)Dan Notestein (7ac83e7d) at 17 Mar 00:06
Add advisory locks to prevent concurrent catalog modification errors
Dan Notestein (2debdbe6) at 17 Mar 00:04
Make TimescaleDB hypertable conversion conditional
Dan Notestein (619c6bbc) at 16 Mar 23:41
Add TimescaleDB columnar compression for hafd.operations
... and 19 more commits
Dan Notestein (64a8961f) at 16 Mar 23:33
Dan Notestein (64a8961f) at 16 Mar 23:33
Pin test runner image to working digest
... and 8 more commits
MR !467 (feature/defer-haf-indexes) was branched off the bodyval migration code, so merging it into develop dragged in 4 bodyval prerequisite commits. Subsequent MRs added more bodyval-dependent CI fixes on top.
This reverts all bodyval-specific changes from develop:
0e02c67 Migrate from body_binary to body_value8f3d574 Update submodules and CI to bodyval branchesab5720b Set HAFAH_VERSION to bodyval branch image80786e5 Fix path filter timeout using body_value4c8671d Revert HAF/HAfAH to body-value-migrationd3577f1 Fix test docker-compose entrypoint for bodyval HAFAlso fixes register_haf_indexes() in hafbe_app.sql which was written against bodyval (body_value) but needs body_binary::jsonb -> 'value' on develop.
The bodyval branch (feature/body-value-migration) has its own independent copies of all these changes — nothing is lost.
5b7b588 Defer HAF table index creation (kept, indexes fixed to use body_binary)9041e51 Fix $$ dollar-quote conflict (kept)Eric Frias (900b22b1) at 16 Mar 23:14
Update fc submodule: fix tcp_server IPv6 listening
Eric Frias (5997c78a) at 16 Mar 23:14
Fix tcp_server to support IPv6 listening endpoints
Dan Notestein (64a8961f) at 16 Mar 23:01
Pin test runner image to working digest