Re: [GENERAL] Corrupt database? 8.1/FreeBSD6.0
От | Tom Lane |
---|---|
Тема | Re: [GENERAL] Corrupt database? 8.1/FreeBSD6.0 |
Дата | |
Msg-id | 3445.1168748569@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: [GENERAL] Corrupt database? 8.1/FreeBSD6.0 (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: [GENERAL] Corrupt database? 8.1/FreeBSD6.0
|
Список | pgsql-hackers |
I wrote: > ... but I suddenly fear that we've missed a fundamental point about > pg_clog truncation. And WAL wraparound for that matter. To wit, a > sufficiently long-lived temp table could contain old XIDs, and there's > no way for anyone except the owning backend to clean them out, or even > guarantee that they're marked committed. After further thought I believe this is OK as of 8.2, because a temp table's relfrozenxid is tracked independently of any other's. (This problem puts a stake through the heart of the recently-discussed idea that a temp table might be able to get along without a globally visible pg_class entry, however.) But it seems that we need a band-aid for 8.1 and earlier. The simplest fix I can think of is for vacuum not to attempt to advance the datvacuumxid/datfrozenxid fields if it skipped over any temp tables of other backends. That's a bit nasty, since in a database making heavy use of temp tables, you might do a whole lot of vacuums without ever meeting that condition. Anyone have a better idea? regards, tom lane
В списке pgsql-hackers по дате отправления: