Kevin Lewis wrote:
> My opinion is that we aught to find a way to thaw any record in the
> record cache before it becomes unthawable if it needs to be viewed.
> In other words, any record that is visible to any transaction should
> be thawable or already thawed.
> Maybe it can be thawed from the serial log still. Maybe, but there is
> no guarantee that the serial log has not been switched after 150 went
> write complete. We need to find an appropriate time to thaw these
> records before the page get written over by a deleted or updated record.
Why not just guarantee that if a transaction is a) visible (has
dependencies) and b) has chilled records, it is retained in the serial
log inactive transaction list, which will prevent the serial log from
being overwritten. There is some bookkeeping to be done in
SerialLogTransaction, another test in SerialLog::pageCacheFlushed, and
some tricky stuff for a Transaction to tell the SerialLogTransaction
that he's gone boring, but should be no big deal and won't cost anything
in performance, and won't have any effect at all unless records are