| From: | Bertrand Drouvot <bertranddrouvot(dot)pg(at)gmail(dot)com> |
|---|---|
| To: | shveta malik <shveta(dot)malik(at)gmail(dot)com> |
| Cc: | Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)com>, JoongHyuk Shin <sjh910805(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Rui Zhao <zhaorui126(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
| Subject: | Re: Persist slot invalidations before publishing them |
| Date: | 2026-10-06 07:33:11 |
| Message-ID: | asSkN5GOEOKQZs9w@bdtpg |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi,
On Tue, Oct 06, 2026 at 10:25:35AM +0530, shveta malik wrote:
> On Mon, Oct 5, 2026 at 6:54 PM Bertrand Drouvot
> <bertranddrouvot(dot)pg(at)gmail(dot)com> wrote:
> >
> > Hi,
> >
> > On Mon, Oct 05, 2026 at 03:22:53PM +0530, Ashutosh Sharma wrote:
> > > Thanks. I'll review again once the updated patch is posted.
> >
> > Thanks! Here it is.
> >
>
> Since we have now modularized this further by introducing
> SaveSlotToPathInternal() and SaveInvalidatedSlotToPath(), can we make
> SaveSlotToPathInternal() consistent across both flows with respect to
> lock acquisition and release?
>
> We could have SaveSlotToPath() acquire and release the lock,
> preferably within a PG_TRY/PG_CATCH block. Additionally, the
> 'was_dirty' check can also be moved up into SaveSlotToPath(), since
> SaveInvalidatedSlotToPath() always forces a write and doesn't need the
> check.
>
> This way, SaveSlotToPath() would acquire the lock only when the slot
> is dirty, and SaveSlotToPathInternal() would not need to handle lock
> acquisition/release based on the 'cause' argument. This would also let
> us remove the multiple if blocks that currently check the 'cause' and
> release the lock. Thoughts?
Thanks for the proposal!
I looked at it, but I think that it makes ordinary save errors get reported while
holding io_in_progress_lock. In particular, the LOG path would perform logging
and check for interrupts before releasing the lock.
As this is meant to be backpatched, I'm not sure it's worth changing the existing
behavior as part of this fix. The proposed cleanup could be considered separately
on HEAD as a follow up patch though.
What do you think?
Regards,
--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Antonin Houska | 2026-10-06 07:35:13 | Re: REPACK (CONCURRENTLY) might keep dropped-column data |
| Previous Message | jian he | 2026-10-06 07:30:38 | Re: ON CONFLICT DO SELECT returns rows hidden by a view |