Re: FSM versus GIN pending list bloat

From: Simon Riggs <simon(at)2ndQuadrant(dot)com>
To: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: FSM versus GIN pending list bloat
Date: 2015-08-04 08:39:23
Message-ID: CANP8+jK+=HxxrDL7ZPyzkgHfE1onmQ=z5sVML0qWmA4pLqhjrQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 4 August 2015 at 06:03, Jeff Janes <jeff(dot)janes(at)gmail(dot)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.

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.

--
Simon Riggs http://www.2ndQuadrant.com/
<http://www.2ndquadrant.com/>
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Geoghegan 2015-08-04 08:40:41 Re: Using quicksort and a merge step to significantly improve on tuplesort's single run "external sort"
Previous Message Amit Langote 2015-08-04 08:30:45 Re: ON CONFLICT DO UPDATE using EXCLUDED.column gives an error about mismatched types