Re: switch UNLOGGED to LOGGED
Leonardo Francalanci <m_lists@yahoo.it>
From: Leonardo Francalanci <m_lists@yahoo.it>
To: Robert Haas <robertmhaas@gmail.com>, Noah Misch <noah@leadboat.com>
Cc: pgsql-hackers@postgresql.org
Date: 2011-04-16T16:52:05Z
Lists: pgsql-hackers
> > If the master crashes while a transaction that used CREATE TABLE is >unfinished, > > both the master and the standby will indefinitely retain identical, stray >(not > > referenced by pg_class) files. The catalogs do reference the relfilenode of > > each unlogged relation; currently, that relfilenode never exists on a >standby > > while that standby is accepting connections. By the time the startup >process > > releases the AccessExclusiveLock acquired by the proposed UNLOGGED -> normal > > conversion process, that relfilenode needs to be either fully copied or >unlinked > > all over again. (Alternately, find some other way to make sure queries >don't > > read the half-copied file.) In effect, the problem is that the relfilenode >is > > *not* stray, so its final state does need to be well-defined. > > Oh, right. > > Maybe we should just put in a rule that a server in Hot Standby mode > won't ever try to read from an unlogged table (right now we count on > the fact that there will be nothing to read). If we crash before > copying the whole file, it won't matter, because the catalogs won't > have been updated, so we'll refuse to look at it anyway. And we have > to reinitialize on entering normal running anyway, so we can clean it > up then. Ok then... I'll try to code the "easy" version first (the wal_level=minimal case) and then we'll see.... Leonardo