On Tue, 18 May 2021 at 20:33, Peter Geoghegan <p...@bowt.ie> wrote: > > On Tue, May 18, 2021 at 12:29 PM Matthias van de Meent > <boekewurm+postg...@gmail.com> wrote: > > PFA the updated version of this patch. Apart from adding line pointer > > truncation in PageRepairFragmentation (as in the earlier patches), I > > also altered PageTruncateLinePointerArray to clean up all trailing > > line pointers, even if it was the last item on the page. > > Can you show a practical benefit to this patch, such as an improvement > in throughout or in efficiency for a given workload? > > It was easy to see that having something was better than having > nothing at all. But things are of course different now that we have > PageTruncateLinePointerArray().
There does seem to be utility in Matthias' patch, which currently does two things: 1. Allow same thing as PageTruncateLinePointerArray() during HOT cleanup That is going to have a clear benefit for HOT workloads, which by their nature will use a lot of line pointers. Many applications are updated much more frequently than they are vacuumed. Peter - what is your concern about doing this more frequently? Why would we *not* do this? 2. Reduce number of line pointers to 0 in some cases. Matthias - I don't think you've made a full case for doing this, nor looked at the implications. The comment clearly says "it seems like a good idea to avoid leaving a PageIsEmpty()" page behind. So I would be inclined to remove that from the patch and consider that as a separate issue, or close this. -- Simon Riggs http://www.EnterpriseDB.com/