oid wraparound
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
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
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
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