Heikki Linnakangas wrote: > Alvaro Herrera wrote: > >Tom Lane wrote: > >>"Heikki Linnakangas" <[EMAIL PROTECTED]> writes: > >>>I just noticed that freezing a tuple (in vacuumlazy.c) is not > >>>WAL-logged. > >>The theory is that this doesn't matter because the tuple is committed > >>either way ... it's equivalent to a hint-bit update which we don'ton > >>WAL-log either. > > > >Also it'd be hugely expensive to log each freeze operation. The > >alternative would be to log a VACUUM FREEZE, but that has the potential > >to cause enormous recovery runtime. > > Freezing isn't very common, and a single WAL record per page would be > enough. I can write the patch.
Yeah, you are right, I was thinking that we would freeze a lot of tuples a lot of the time, but this is obviously not true. > It does have the potential to increase recovery times, but I don't think > we can just cross our fingers and hope that no crash happens after > freezing some tuples. Agreed. My idea was to move relminxid to a new pg_class_nt non-transactional catalog in 8.3, but we certainly need to give a solution for the problem in 8.2. I don't remember why I concluded that we were safe against this problem, but you are right that we aren't. -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match