Jeff Davis <pgsql(at)j-davis(dot)com> wrote:
> There are two ways to do the threshold:
> 1. Constant fraction of vacuum_freeze_min_age
> 2. Extra GUC
I appreciate that there may be room to improve this while protecting
the forensic values; but there are already strategies for managing the
day-to-day performance issues as long as you have adequate backup to
not need to rely on old XID information for recovery. What we don't
have covered is loading a database from pg_dump without having to
rewrite all pages at least once afterward -- and likely two more
times, with most maintenance strategies.
I seem to remember that someone took a shot at making a special case
of WAL-bypassed inserts, but there was a problem or two that were hard
to overcome. Does anyone recall the details? Was that about
pre-setting the hint bits for a successful commit (based on the fact
that the entire table will be empty if rolled back and no data will be
visible to any other transaction until commit), or was it about
setting the frozen XID in the inserted tuples (based on the fact that
this is no less useful for forensic purposes than having all rows set
to any other value)?
Should we have a TODO item for this special case, or is it "not
wanted" or viewed as having intractable problems?
-Kevin