oid wraparound

Started by Hubert Fröhlichalmost 21 years ago4 messagesgeneral
Jump to latest
#1Hubert Fröhlich
hubert.froehlich@bvv.bayern.de

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

#2Russell Smith
mr-russ@pws.com.au
In reply to: Hubert Fröhlich (#1)
Re: oid wraparound

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.

Show quoted text
#3Neil Conway
neilc@samurai.com
In reply to: Hubert Fröhlich (#1)
Re: oid wraparound

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

#4Hubert Fröhlich
hubert.froehlich@bvv.bayern.de
In reply to: Neil Conway (#3)
Re: oid wraparound

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