Re: FSM versus GIN pending list bloat - Mailing list pgsql-hackers

From Jeff Janes
Subject Re: FSM versus GIN pending list bloat
Date
Msg-id CAMkU=1yG+E1uN6=ouXX4OQjQQaCdfbFUz9Ypyp0yyYvzRgg3Gw@mail.gmail.com
Whole thread Raw
In response to Re: FSM versus GIN pending list bloat  (Simon Riggs <simon@2ndQuadrant.com>)
Responses Re: FSM versus GIN pending list bloat  (Jeff Janes <jeff.janes@gmail.com>)
List pgsql-hackers
On Tue, Aug 4, 2015 at 1:39 AM, Simon Riggs <simon@2ndquadrant.com> wrote:
On 4 August 2015 at 06:03, Jeff Janes <jeff.janes@gmail.com> wrote:
 
The attached proof of concept patch greatly improves the bloat for both the insert and the update cases.  You need to turn on both features: adding the pages to fsm, and vacuuming the fsm, to get the benefit (so JJ_GIN=3).  The first of those two things could probably be adopted for real, but the second probably is not acceptable.  What is the right way to do this?  Could a variant of RecordFreeIndexPage bubble the free space up the map immediately rather than waiting for a vacuum?  It would only have to move up until it found a page with freespace already recorded in it, which the vast majority of the time would mean observing up one level and then not writing to it, assuming the pending list pages remain well clustered.

You make a good case for action here since insert only tables with GIN indexes on text are a common use case for GIN. 

Why would vacuuming the FSM be unacceptable? With a large gin_pending_list_limit it makes sense.

But with a smallish gin_pending_list_limit (like the default 4MB) this could be called a lot (multiple times a second during some spurts), and would read the entire fsm each time.  
 

If it is unacceptable, perhaps we can avoid calling it every time, or simply have FreeSpaceMapVacuum() terminate more quickly on some kind of 80/20 heuristic for this case.

Or maybe it could be passed a range of blocks which need vacuuming, so it concentrated on that range.

But from the README file, it sounds like it is already supposed to be bubbling up.  I'll have to see just whats going on there when I get a chance.

Cheers,

Jeff

pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Raising our compiler requirements for 9.6
Next
From: Robert Haas
Date:
Subject: Re: More work on SortSupport for text - strcoll() and strxfrm() caching