Subject Back versions and garbage collection
Author Michael Ludwig
On page 382 of Helen's book, in the section "Preventing Slowdown on
Batches", I'm reading the following:

Two behaviours can cause huge batches to get progressively
slower during executino.

* [maintaining indexes - okay]

* The accumulation of *back versions*, the deltas of the
old rows that are marked for obsolescence once the
update or delete operations are committed. Back version
do not become available for garbage collection until the
transaction completes. In transactions involving back
version numbering in the tens to hundreds of thousands
(or more), garbage colllection may never win its battle
to clean out obsolete version. Under these conditions,
only a backup and restore will sanitize the database
completely.

Not sure I'm following. I thought that once the huge batch is done and
all transactions that are older than the batch completion have also
completed, the back versions will have become eligible for garbage
collection. Correct?

If so, how will GC never win the battle?

Why is a backup/restore needed?
--
Michael Ludwig