Re: The curious case of two inserts, a shrinking xmax, and a ShareLock on transaction

Поиск
Список
Период
Сортировка
От Jeff Dik
Тема Re: The curious case of two inserts, a shrinking xmax, and a ShareLock on transaction
Дата
Msg-id CAG9nzwTkW4FSXJ=EabB8Z_0TpBQchRncigg7SDYhF=UGnAj6Og@mail.gmail.com
обсуждение исходный текст
Ответ на Re: The curious case of two inserts, a shrinking xmax, and a ShareLock on transaction  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Ответы Re: The curious case of two inserts, a shrinking xmax, and a ShareLock on transaction
Список pgsql-general
On Tue, Sep 22, 2015 at 10:44 PM, Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
Jeff Dik wrote:

> I'd really love to learn:
>
> 1. Why the xmax for foo_id1 goes from 696 to 1 and what does that
>    mean?

When two transactions want to lock the same row, the xmax field is a
multixact, no longer a bare transaction ID.  This is an object that
resolves to multiple transaction IDs.

> 2. How does transaction A know it needs to take a ShareLock on
>    transaction B?

Because it reads the two transaction ID values from pg_multixact.

> 3. What is a virtualtransaction and what do its numerator and denominator
> mean?

It's not a division operation (so no numerator/denominator).  The part
before the / is a backend ID and the part after the / is a local
transaction counter.  It's just an identifier for the transaction,
useful for the time before the transaction acquires a transaction ID.
This optimizes that a transaction that doesn't modify tuples does not
need to acquire a transaction ID (and thus keeps transaction ID
consumption rate low.)

Thanks so much for these explanations!

Is there any way to inspect a multixact via psql to see what transaction ID values it has?  I wasn't able to find anything while searching for an hour or so.

Thanks again!
Jeff
 

--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

В списке pgsql-general по дате отправления:

Предыдущее
От: Etienne Champetier
Дата:
Сообщение: OR vs UNION vs UNION ALL
Следующее
От: Juan Pablo L.
Дата:
Сообщение: Re: numeric data type