There's three things clearly missing in the patch:

1. HOT updates on tables with expression or partial indexes. Hasn't been
done yet because it should be pretty straightforward and we've had more
important things to do. Though not critical, should be finished before
release in my opinion.

2. Pointer swinging. At the moment, after a row is HOT updated, the only
way to get rid of the redirecting line pointer is to run VACUUM FULL or
CLUSTER (or delete or cold update the row and vacuum). If we want to
implement pointer swinging before release, we have to get started now.
If we're happy to release without it and address the issue in later
releases if it seems important, we need to make a conscious decision on
that, now. I personally think we can release without it.

3. Statistics and autovacuum integration. How should HOT updates be
taken into account when deciding when to autovacuum and autoanalyze?
There's a FIXME comment in analyze.c related to this as well. What
additional statio counters do we need? The patch adds counters for HOT
updates and for following a HOT chain. Should we have counters for
pruning and defraging a page as well?

In addition to those, I'm sure there's a lot of small code refactorings
etc. to do, as well as more performance testing, but these are the big
coding tasks left.

Pavan, do you have something in addition to these on your to-do list?

  Heikki Linnakangas

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?


Reply via email to