On Thu, 6 May 2021 at 4:12 PM, Masahiko Sawada <sawada.m...@gmail.com> wrote:
> On Thu, May 6, 2021 at 7:19 PM Robert Haas <robertmh...@gmail.com> wrote: > > > > On Thu, May 6, 2021 at 5:02 AM Masahiko Sawada <sawada.m...@gmail.com> > wrote: > > > Not sure we will need to hold buffer locks for both the TID fork and > > > the heap at the same time but I agree that we could need to lock on > > > multiple TID fork buffers. We could need to add dead TIDs to up to two > > > pages for the TID fork during replaying XLOG_HEAP2_PRUNE since we > > > write it per heap pages. Probably we can process one by one. > > > > It seems like we do need to hold them at the same time, because > > typically for a WAL record you lock all the buffers, modify them all > > while writing the WAL record, and then unlock them all. > > > > Now maybe there's some argument that we can dodge that requirement > > here, but I have reservations about departing from the usual locking > > pattern. It's easier to reason about the behavior when everybody > > follows the same set of rules. > > Yes, agreed. I was thinking of replaying WAL, not writing WAL. Right, I was pointing to while writing the WAL. > -- Regards, Dilip Kumar EnterpriseDB: http://www.enterprisedb.com