Jeff Janes 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?
I think that's the right way, only that I wouldn't call FSMVacuum()
inside the loop but only once you're out of it.
FWIW I had to add a FSMVacuum call somewhere in the BRIN code also,
which I didn't like at all. If there's a way to optimize this "bubbling
up" of some individual page all the way to the root level, that would
probably be a lot better than what it's currently doing.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services