Alvaro Herrera <alvhe...@alvh.no-ip.org> wrote: > On 2025-Apr-01, Antonin Houska wrote: > > > Besides that, it occurred to me that 0005 ("Preserve visibility > > information of the concurrent data changes.") will probably introduce > > significant overhead. The problem is that the table we're repacking is > > treated like a catalog, for reorderbuffer.c to generate snapshots that > > we need to replay UPDATE / DELETE commands on the new table. > > > > contrib/test_decoding can be used to demonstrate the difference > > between ordinary and catalog tables: > > > > [.. ordinary ..] > > Execution Time: 3521.190 ms > > [.. catalog ..] > > Execution Time: 6561.634 ms > > Significant indeed. Thinking about the scenarios in which I envision > people using REPACK CONCURRENTLY (mostly, cases where very large tables > have accumulated considerable amounts of bloat) and considering the size > of the patch, I think the case for treating it as concurrent-safe is not > credible, at least not at this stage -- not only because of this > performance impact, but also because of the additional code complexity, > which I'm really doubtful we can address at this stage. I would suggest > to put that patch aside for now, maybe with a doc warning that > "repacking a table would cause visibility information to be lost"; and > then address that aspect later on, after this feature has gone through > some battle-hardening.
ok, I'll adjust the patch set. -- Antonin Houska Web: https://www.cybertec-postgresql.com