On Tue, Aug 17, 2021 at 12:06 PM Amit Kapila <amit.kapil...@gmail.com> wrote:
> One more comment: > @@ -2976,39 +2952,17 @@ subxact_info_write(Oid subid, TransactionId xid) > .. > + /* Try to open the subxact file, if it doesn't exist then create it */ > + fd = BufFileOpenShared(xidfileset, path, O_RDWR, true); > + if (fd == NULL) > + fd = BufFileCreateShared(xidfileset, path); > .. > > Instead of trying to create the file here based on whether it exists > or not, can't we create it in subxact_info_add where we are first time > allocating memory for subxacts? If that works then in the above code, > the file should always exist. One problem with this approach is that for now we delay creating the subxact file till the end of the stream and if by end of the stream all the subtransactions got aborted within the same stream then we don't even create that file. But with this suggestion, we will always create the file as soon as we get the first subtransaction. -- Regards, Dilip Kumar EnterpriseDB: http://www.enterprisedb.com