Thread: oid wraparound

oid wraparound

From
Hubert Fröhlich
Date:
Hi list,

some time ago, there was a discussion about oid wraparound. See
http://archives.postgresql.org/pgsql-general/2002-10/msg00561.php .

Those days, we had PostgreSQL 7.1 and 7.2, and we had to be careful
oids approaching 2^32 (2.14 billion)

Now, we have 8.0. What does the situation look like? Where do I have to
be careful:

OID > 2billion? 4billion?

What about the danger of TID wraparounds? (databases are VACUUMed regularly)


--
Mit freundlichen Grüßen / With kind regards

Hubert Fröhlich

-------------------------------------------------------------------------------
Dr.-Ing. Hubert Fröhlich
Bezirksfinanzdirektion München
Alexandrastr. 3, D-80538 München, GERMANY
Tel. :+49 (0)89 / 2190 - 2980
Fax  :+49 (0)89 / 2190 - 2997
hubert dot froehlich at bvv dot bayern dot de

Re: oid wraparound

From
Russell Smith
Date:
On Tue, 26 Apr 2005 07:24 pm, Hubert Fröhlich wrote:
> Hi list,
>
> some time ago, there was a discussion about oid wraparound. See
> http://archives.postgresql.org/pgsql-general/2002-10/msg00561.php .
>
> Those days, we had PostgreSQL 7.1 and 7.2, and we had to be careful
> oids approaching 2^32 (2.14 billion)
>
> Now, we have 8.0. What does the situation look like? Where do I have to
> be careful:
>
> OID > 2billion? 4billion?
>
> What about the danger of TID wraparounds? (databases are VACUUMed regularly)
>
With 8.0 you only need to make sure you do database wide vacuums every 1 billion transactions
or so.  If you do that, then there is not problem when the XID (Transaction ID) wraps around.
Postgresql will know which transaction were in the past, and which were in the future.

Regards

Russell Smith.
>

Re: oid wraparound

From
Neil Conway
Date:
Hubert Fröhlich wrote:
> Those days, we had PostgreSQL 7.1 and 7.2, and we had to be careful oids
> approaching 2^32 (2.14 billion)
>
> Now, we have 8.0. What does the situation look like?

With the default settings, there is exactly the same risk of OID
wraparound as in earlier releases. However, you can set the
"default_with_oids" configuration parameter to false to significantly
reduce OID consumption, to the point that you probably won't need to
worry about it. It will mean that tables will not have OIDs by default,
so you should specify WITH OIDS when creating tables that need OIDs if
necessary (although think twice before doing this, as there are only a
few good reasons to use OIDs in user tables).

(This setting will default to false in 8.1)

-Neil

Re: oid wraparound

From
Hubert Fröhlich
Date:
Thanks, Neil.

> Hubert Fröhlich wrote:
>
>> Those days, we had PostgreSQL 7.1 and 7.2, and we had to be careful
>> oids approaching 2^32 (2.14 billion)
>>
>> Now, we have 8.0. What does the situation look like?
>
>
> With the default settings, there is exactly the same risk of OID
> wraparound as in earlier releases. However, you can set the
> "default_with_oids" configuration parameter to false to significantly
> reduce OID consumption, to the point that you probably won't need to
> worry about it. It will mean that tables will not have OIDs by default,
> so you should specify WITH OIDS when creating tables that need OIDs if
> necessary (although think twice before doing this, as there are only a
> few good reasons to use OIDs in user tables).

What good reasons to use OIDs in user tables are still left?
  * For speeding up  some special types of queries?

--
Mit freundlichen Grüßen / With kind regards

Hubert Fröhlich

-------------------------------------------------------------------------------
Dr.-Ing. Hubert Fröhlich
Bezirksfinanzdirektion München
Alexandrastr. 3, D-80538 München, GERMANY
Tel. :+49 (0)89 / 2190 - 2980
Fax  :+49 (0)89 / 2190 - 2997
hubert dot froehlich at bvv dot bayern dot de