Re: Add contrib/pg_logicalsnapinspect - Mailing list pgsql-hackers
From | Masahiko Sawada |
---|---|
Subject | Re: Add contrib/pg_logicalsnapinspect |
Date | |
Msg-id | CAD21AoD2zR_QZE7iDWWjNwHVn6TDi-mJzjvjpxYmTdKBMh2oNQ@mail.gmail.com Whole thread Raw |
In response to | Re: Add contrib/pg_logicalsnapinspect (Bertrand Drouvot <bertranddrouvot.pg@gmail.com>) |
List | pgsql-hackers |
On Fri, Mar 7, 2025 at 2:42 AM Bertrand Drouvot <bertranddrouvot.pg@gmail.com> wrote: > > Hi, > > On Fri, Mar 07, 2025 at 10:26:23AM +0530, Amit Kapila wrote: > > On Fri, Mar 7, 2025 at 3:19 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > > > > > On Wed, Mar 5, 2025 at 4:05 AM Bertrand Drouvot > > > <bertranddrouvot.pg@gmail.com> wrote: > > > > > > > > Hi, > > > > > > > > On Wed, Mar 05, 2025 at 02:42:15PM +0530, Amit Kapila wrote: > > > > > On Wed, Mar 5, 2025 at 12:47 PM Bertrand Drouvot > > > > > <bertranddrouvot.pg@gmail.com> wrote: > > > > > > > > > > > > Agree, PFA a patch doing so. > > > > > > > > > > > > > > > > It would be better if you could add a few comments atop the > > > > > permutation line to explain the working of the test. > > > > > > > > yeah makes sense. Done in the attached, and bonus point I realized that the > > > > test could be simplified (so, removing useless steps in passing). > > > > > > > > > > Thank you for the patch. > > > > > > The new simplified test case can be pretty-formatted as: > > > > > > init > > > begin > > > savepoint > > > truncate > > > checkpoint-1 > > > get_changes-1 > > > commit > > > checkpoint-2 > > > get_changes-2 > > > info_catchange check > > > info_committed check > > > meta check > > Yes. > > > > IIUC if another checkpoint happens between get_change-2 and the > > > subsequent checks, the first snapshot would be removed during the > > > checkpoint, resulting in a test failure. > > Good catch! Yeah you're right, thanks! > > > I think we could check the > > > snapshot files while one transaction keeps open. The more simplified > > > test case would be: > > > > > > init > > > begin > > > savepoint > > > insert(cat-change) > > > begin > > > insert(cat-change) > > > commit > > > checkpoint > > > get_changes > > > info_catchange check > > > info_committed check > > > meta check > > > commit > > > > > > In this test case, we would have at least one serialized snapshot that > > > has both cat-changes and committed txns. What do you think? > > Indeed, I think that would prevent snapshots to be removed. > > The attached ends up doing: > > init > begin > savepoint > truncate table1 > create table table2 > checkpoint > get_changes > info check > meta check > commit > > As the 2 ongoing catalog changes and the committed catalog change are part of the > same snapshot, then I grouped the catchanges and committed changes checks in the > same "info check". > > > Your proposed change in the test sounds better than what we have now > > but I think we should also avoid autovacuum to perform analyze as that > > may add additional counts. For test_decoding, we keep > > autovacuum_naptime = 1d in logical.conf file, we can either use the > > same here or simply keep autovacuum off. > > When writing the attached, I initially added extra paranoia in the tests by > using ">=", does that also address your autovacuum concern? > Thank you for updating the patch. It looks mostly good to me. I've made some cosmetic changes and attached the updated version. Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com
Attachment
pgsql-hackers by date: