On Dec 10, 2007 6:43 PM, Andrew Dunstan <[EMAIL PROTECTED]> wrote: > > > Pavan Deolasee wrote: > > > > > > > > > > > > I don't agree completely. HOT updates is just one significant benefit of > > HOT and is constrained by the non-index column updates. But the other > > major benefit of truncating the tuples to their line pointers applies to > > HOT as well as COLD updates and DELETEs. This should also have > > a non trivial positive impact on the performance. > > > > There might be few scenarios where HOT may not show any improvement > > such as CPU-bound applications, but I am not sure if its worth > mentioning. > > > > > > > Um, I don't understand. I freely admit that I haven't kept up with all > the nuances of the HOT discussions, but this bit has totally eluded me, > so please elucidate. > >
One of the improvements of HOT is to truncate a DEAD tuple to its line pointer. A DEAD tuple could be an old version of an updated tuple or a deleted tuple. When a tuple is truncated, the space used by the line pointer can not be reused (until the index entries are removed). But the space used by the actual tuple can be reused for a later update, after the page is defragmented. Note that this defragmentation can happen outside of a VACUUM. This gives us an ability to run VACUUM less frequently on a table. We still need to run VACUUM to remove the line pointer bloat, but may be less frequently for the given percentage of bloat. IMHO this should have a positive effect on performance atleast in an IO bound scenario. Thanks, Pavan -- Pavan Deolasee EnterpriseDB http://www.enterprisedb.com