Re: deferred writing of two-phase state files adds fragility
От | Robert Haas |
---|---|
Тема | Re: deferred writing of two-phase state files adds fragility |
Дата | |
Msg-id | CA+TgmoZW9iLXu=4tJZ46uakZ0hJZof7mV-PbELx_SoJKDOL-tw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: deferred writing of two-phase state files adds fragility (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: deferred writing of two-phase state files adds fragility
|
Список | pgsql-hackers |
On Wed, Dec 4, 2024 at 12:19 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > > You can't execute COMMIT > > TRANSACTION or ROLLBACK TRANSACTION, so there's now way to resolve the > > prepared transaction. > > Could we fix it so ROLLBACK TRANSACTION removes the GID from the > list of prepared xacts that need to be written out? Then we'd > no longer have a pending requirement to read the broken WAL record. That would be nice, but I'm not sure that it's possible. As currently implemented, FinishPreparedTransaction() always reads the two-phase state data either from the two-phase file or the WAL, whether it's committing or rolling back. One might expect the commit or rollback to proceed purely on the basis of in-memory state, but I think that does not work because nsubxacts might be greater than PGPROC_MAX_CACHED_SUBXIDS. Even when it isn't, we have no shared memory record of abortrels or abortstats. -- Robert Haas EDB: http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: