Re: [HACKERS] Speedup twophase transactions
От | Michael Paquier |
---|---|
Тема | Re: [HACKERS] Speedup twophase transactions |
Дата | |
Msg-id | CAB7nPqR3fLPsBVAQ_dGPb1VvPEv2mFU4j+eyJrYSMNuAVoFDvA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Speedup twophase transactions (Nikhil Sontakke <nikhils@2ndquadrant.com>) |
Ответы |
Re: [HACKERS] Speedup twophase transactions
|
Список | pgsql-hackers |
On Tue, Jan 31, 2017 at 2:34 PM, Nikhil Sontakke <nikhils@2ndquadrant.com> wrote: >>> I wonder what's the best location for this in the common case when we >>> do shutdown of standby. We could add code in XLOG_CHECKPOINT_SHUTDOWN >>> and XLOG_CHECKPOINT_ONLINE xlog_redo code path. >> >> ShutdownXLOG() calls CreateRestartPoint() when a standby shuts down, >> so doing all the durability work in CheckPointTwoPhase() would take >> care of any problems. >> > > ShutdownXLOG() gets called from the checkpointer process. See comments > above about the checkpointer not having access to the proper > KnownPreparedList. > > The following test sequence will trigger the issue: > > 1) start master > 2) start replica > 3) prepare a transaction on master > 4) shutdown master > 5) shutdown replica > > CheckPointTwoPhase() in (5) does not sync this prepared transaction > because the checkpointer's KnownPreparedList is empty. And that's why this needs to be stored in shared memory with a number of elements made of max_prepared_xacts... -- Michael
В списке pgsql-hackers по дате отправления: