Re: Multixacts wraparound monitoring - Mailing list pgsql-general

From Pavlov, Vladimir
Subject Re: Multixacts wraparound monitoring
Date
Msg-id B38B34EC5621E34DABCE13E8B18936E602DC2C14BE80@EXSERV.Gallup.tns
Whole thread Raw
In response to Re: Multixacts wraparound monitoring  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Responses Re: Multixacts wraparound monitoring  (Thomas Munro <thomas.munro@enterprisedb.com>)
List pgsql-general
I understand correctly, that number of members cannot be more than 2^32 (also uses a 32-bit counter)?
I had 69640 files in main/pg_multixact/members/, 69640*32*2045 = 4557241600 members, this is normal?

Kind regards,
 
Vladimir Pavlov


-----Original Message-----
From: Alvaro Herrera [mailto:alvherre@2ndquadrant.com]
Sent: Thursday, March 31, 2016 4:17 PM
To: Pavlov Vladimir
Cc: 'Adrian Klaver'; 'pgsql-general@postgresql.org'
Subject: Re: [GENERAL] Multixacts wraparound monitoring

Pavlov, Vladimir wrote:
> Hello,
> If I get you right:
> Latest checkpoint's NextMultiXactId:      2075246000
> Latest checkpoint's oldestMultiXid:       2019511697
> Number of members files:    10820
> Size pg_multixact/members/ (bytes) (2.7Gb):    2887696384
> Pages in file:    32
> Members on page:    2045
> Number of members (32*2045*10820):    708060800
> Members per multixact (2075246000 - 2019511697)/708060800:    12,70421916
> Multixact size (bytes) (2887696384/708060800):    4,078316981 - It's a lot?

Yeah, 12.7 members per multixact on average is a lot, unless you have 12 processes concurrently locking the same
tuples,all the time (although 
that is possible).   My guess is that this is related to subtransactions
(either explicit SAVEPOINTs in your SQL code, or EXCEPTION blocks in plpgsql functions).

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


pgsql-general by date:

Previous
From: Melvin Davidson
Date:
Subject: Re: Is it possible to delete a single value from an enum type?
Next
From: Matthew Syphus
Date:
Subject: Create trigger on Materialized View?