Re: Revisiting {CREATE INDEX, REINDEX} CONCURRENTLY improvements
| От | Matthias van de Meent |
|---|---|
| Тема | Re: Revisiting {CREATE INDEX, REINDEX} CONCURRENTLY improvements |
| Дата | |
| Msg-id | CAEze2WiXYx1LKr=9d7PLsZOYrGytY9AN__tFFw4p_Ysgm1-e5g@mail.gmail.com обсуждение исходный текст |
| Ответ на | Re: Revisiting {CREATE INDEX, REINDEX} CONCURRENTLY improvements (Mihail Nikalayeu <mihailnikalayeu@gmail.com>) |
| Ответы |
Re: Revisiting {CREATE INDEX, REINDEX} CONCURRENTLY improvements
|
| Список | pgsql-hackers |
On Thu, 27 Nov 2025 at 20:00, Mihail Nikalayeu <mihailnikalayeu@gmail.com> wrote: > > Hello, Mathias! > > On Thu, Nov 27, 2025 at 7:41 PM Matthias van de Meent > <boekewurm+postgres@gmail.com> wrote: > > I'm not sure a complete and common approach is that easy between CIC > > and REPACK CONCURRENTLY. > > Yes, you're right, but I hope something like [0] may work. While it might not break, and might not hold back other tables' visibility horizons, it'll still hold back pruning on the table we're acting on, and that's likely one which already had bloat issues if you're running RIC (or REPACK). Hence the approach with properly taking a new snapshot every so often in CIC/RIC -- that way pruning is allowed up to a relatively recent point in every table, including the one we're acting on; potentially saving us from a vicious cycle where RIC causes table bloat in the table it's working on due to long-held snapshots and a high-churn workload in that table. Kind regards, Matthias van de Meent Databricks (https://www.databricks.com) PS. When I checked the code you linked to on that thread, I noticed there is a stale pointer dereference issue in GetPinnedOldestNonRemovableTransactionId, where it pulls data from a hash table entry that could've been released by that point.
В списке pgsql-hackers по дате отправления: