reorg / pg_repack

Reorganize tables in PostgreSQL databases with minimal locks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support for all old EOL'd PG versions and solving all racing conditions?

MichaelDBA opened this issue · comments

Currently, the pg_repack documentation supports PostgreSQL versions:
PostgreSQL 9.4, 9.5, 9.6, 10, 11, 12, 13, 14, 15

I recommend stopping support for old EOL'd versions ( > 1 yr old ) so that supported versions at the present time would be:
PostgreSQL 10 (EOL), 11, 12, 13, 14, 15.

Even though it might still work for these 2yr and older EOL'd versions, let's state that it is not guaranteed to work and no support will be provided. Supporting the latest EOL version seems reasonable enough.

There's too much work here already with complicated changes needed to accomplish complicated things like racing conditions, which I think we should shy away from anyway. Why do you think VACUUM FULL has no enhancement path to add the CONCURRENTLY option?

Personally, I think we should not keep reaching for the sky in trying to resolve all racing conditions. Perhaps add some coding logic to detect heavy update activity with respect to a table being vacuumed and give up after some specified time or at least an option to do so.

No problem in stopping support for Postgres < 10 or 11.

As per the race conditions problem, they are difficult reproduce and to test. As far as I understand, it is a problem that the core team doesn't feel to solve either, which is the reason why this project has never really been considered to be included in core.

commented

Well, I don't remove old versions if pg_repack passes tests without any changes. I don't have a plan to support certain versions. As long as they don't interfere, I leave it as is.

Why do you think VACUUM FULL has no enhancement path to add the CONCURRENTLY option?

I know: because no one is working on it. It's a long process to bring the discussion to a consensus, implement the patch and bring it to merge to the mainline. A lot of patches are stopped due to lack of attention during review.

Well, I don't remove old versions if pg_repack passes tests without any changes.

I agree, as long as old versions are working, pg_repack can - and should - be tested on them.
Only if problems arise with old versions then they can be made EOL, and the documentation should be updated to reflect this.

Nice feedback, stuff to think about...