Re: What are multixactids?

From: Andreas Karlsson <andreas(at)proxel(dot)se>
To: depesz(at)depesz(dot)com
Cc: PG Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: What are multixactids?
Date: 2013-12-09 18:59:10
Message-ID: 52A612FE.1040806@proxel.se
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 12/09/2013 06:04 PM, hubert depesz lubaczewski wrote:
> Hi,
> when working on fixing the bug related to vacuum freeze, I found out
> that there is something called "MultiXactId".
>
> Searching docs showed that it is mentioned only once, in release notes
> to 9.3.2:
> http://www.postgresql.org/search/?u=%2Fdocs%2F9.3%2F&q=multixactid
>
> What's more - I found that Peter Eisentraut already once asked about
> them, and lack of documentation:
> http://postgresql.1045698.n5.nabble.com/MultiXactId-concept-underdocumented-td5766754.html
>
> So, my question is - what are multixactids, what are they used for,
> where can I find any documentation/explanation/whatever?
>
> It seems to be related in some way to the relfrozenxid/vacuum bug, but
> I can't comprehend the relation without knowing what multixactid
> actually is.

As you can see from Peter's message it is explained in
README.tuplock[1]. Basically it is used whenever more than one lock is
acquired on the same tuples as a reference to where the locks are
stored. It can store updated/deleted Xid for the tuple so it needs to be
persisted.

I recommend you read the section in README.tuplock.

1.
https://github.com/postgres/postgres/blob/d9250da032e723d80bb0150b9276cc544df6a087/src/backend/access/heap/README.tuplock#L68

--
Andreas Karlsson

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2013-12-09 19:00:32 Re: BUG #8673: Could not open file "pg_multixact/members/xxxx" on slave during hot_standby
Previous Message Greg Stark 2013-12-09 18:56:48 Re: ANALYZE sampling is too good