Re: Need Multixact Freezing Docs
Josh Berkus <josh@agliodbs.com>
From: Josh Berkus <josh@agliodbs.com>
To: pgsql-hackers@postgresql.org
Date: 2014-04-16T20:39:42Z
Lists: pgsql-hackers
On 04/16/2014 01:30 PM, Alvaro Herrera wrote:
> Josh Berkus wrote:
>>
>>> You can see the current multixact value in pg_controldata output. Keep
>>> timestamped values of that somewhere (a table?) so that you can measure
>>> consumption rate. I don't think we provide SQL-level access to those
>>> values.
>>
>> Bleh. Do we provide SQL-level access in 9.4? If not, I think that's a
>> requirement before release.
>
> Yeah, good idea. Want to propose a patch?
Yeah, lemme dig into this. I really think we need it for 9.4, feature
frozen or not.
>>>> Also: how do I check the multixact age of a table? There doesn't seem
>>>> to be any data for this ...
>>>
>>> pg_class.relminmxid is the oldest multixact value that might be present
>>> in a table.
>>
>> On every database I've tested, age(relminmxid) returns int_max. So this
>> is apparently broken.
>
> Hmm, are you sure it's INT_MAX and not 4244967297? Heikki reported
> that: http://www.postgresql.org/message-id/52401AEA.9000608@vmware.com
> The absolute value is not important; I think that's mostly harmless. I
> don't think applying age() to a multixact value is meaningful, though;
> that's only good for Xids.
Yeah, I'm sure:
josh=# select relname, age(relminmxid) from pg_class;
relname | age
-----------------------------------------+------------
pg_statistic | 2147483647
pg_type | 2147483647
random | 2147483647
dblink_pkey_results | 2147483647
pg_toast_17395 | 2147483647
...
So if age() doesn't mean anything, then how are users to know when the
need to freeze?
--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com
Commits
-
Document pg_get_multixact_members().
- f5551538bce0 17.6 landed
- e6115394d40c 19 (unreleased) landed
- e35a0174a9d2 14.19 landed
- d271b04dc64e 16.10 landed
- c8b9f75111aa 18.0 landed
- a167e654d06f 15.14 landed
- 0ee7f51a8b4e 13.22 landed