ON CONFLICT now only replaces score/factors when the score actually changed, avoiding dead tuple generation for the ~80% of grid points that don't change between consecutive HRRR runs. Migration sets aggressive autovacuum on propagation_scores: zero cost delay, 2000 cost limit, 1% scale factor. The table was at 72GB with 108M dead rows because default autovacuum couldn't keep pace with 14M upserts per hour. |
||
|---|---|---|
| .. | ||
| migrations | ||
| import_contacts.exs | ||
| import_weather.exs | ||
| seeds.exs | ||