Re: age(xid) on hot standby
От | Alvaro Herrera |
---|---|
Тема | Re: age(xid) on hot standby |
Дата | |
Msg-id | 1326724812-sup-6496@alvh.no-ip.org обсуждение исходный текст |
Ответ на | Re: age(xid) on hot standby (Peter Eisentraut <peter_e@gmx.net>) |
Ответы |
Re: age(xid) on hot standby
|
Список | pgsql-hackers |
Excerpts from Peter Eisentraut's message of dom ene 15 10:00:03 -0300 2012: > > On ons, 2011-12-28 at 14:35 -0500, Tom Lane wrote: > > Alvaro Herrera <alvherre@commandprompt.com> writes: > > > Excerpts from Peter Eisentraut's message of mié dic 28 15:04:09 -0300 2011: > > >> On a hot standby, this fails with: > > >> ERROR: cannot assign TransactionIds during recovery > > > > > I think we could just have the xid_age call > > > GetCurrentTransactionIdIfAny, and if that returns InvalidXid, use > > > ReadNewTransactionId instead. That xid_age assigns a transaction seems > > > more of an accident than really intended. > > > > The trouble with using ReadNewTransactionId is that it makes the results > > volatile, not stable as the function is declared to be. > > Could we alleviate that problem with some caching within the function? Maybe if we have it be invalidated at transaction end, that could work. So each new transaction would get a fresh value. If you had a long running transaction the cached value would get behind, but maybe this is not a problem or we could design some protection against it. For the check_postgres case I imagine it opens a new connection on each round so this would not be a problem. -- Álvaro Herrera <alvherre@commandprompt.com> The PostgreSQL Company - Command Prompt, Inc. PostgreSQL Replication, Consulting, Custom Development, 24x7 support
В списке pgsql-hackers по дате отправления: