Re: Unhappy about API changes in the no-fsm-for-small-rels patch

Поиск
Список
Период
Сортировка
От Amit Kapila
Тема Re: Unhappy about API changes in the no-fsm-for-small-rels patch
Дата
Msg-id CAA4eK1LTtYWzAFR6c=nTGPJw6DDxxse-TDWhJ3GunEjuWrH8sw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Unhappy about API changes in the no-fsm-for-small-rels patch  (Amit Kapila <amit.kapila16@gmail.com>)
Ответы Re: Unhappy about API changes in the no-fsm-for-small-rels patch  (John Naylor <john.naylor@2ndquadrant.com>)
Re: Unhappy about API changes in the no-fsm-for-small-rels patch  (Amit Kapila <amit.kapila16@gmail.com>)
Список pgsql-hackers
On Fri, May 3, 2019 at 2:14 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
>
> On Fri, May 3, 2019 at 11:43 AM John Naylor <john.naylor@2ndquadrant.com> wrote:
>
> Fair enough.  I think we have tried to come up with a patch for an
> alternative approach, but it needs time.  I will revert this tomorrow.
>

Attached is a revert patch.  John, can you please once double-check to
ensure I have not missed anything?

To summarize for everyone:  This patch avoids the fsm creation for
small relations (which is a small but good improvement as it saves
space).   This patch was using a process local map to track the first
few blocks and was reset as soon as we get the block with enough free
space.   It was discussed in this thread that it would be better to
track the local map in relcache and then invalidate it whenever vacuum
frees up space in the page or when FSM is created.   There is a
prototype patch written for the same, but it is not 100% clear to me
that the new idea would be a win in all cases (like code complexity or
API design-wise) especially because resetting the map is not
straight-forward.  As time was not enough, we couldn't complete the
patch from all aspects to see if it is really better in all cases.

We have two options (a) revert this patch and try the new approach in
next release, (b) keep the current patch and replace with the new
approach if it turns out to be better in next release.

So, do we want to keep this feature for this release?

I am fine going with option (a), that's why I have prepared a revert
patch, but I have a slight fear that the other option might not turn
out to be better and even if it is then we can anyway replace it as
shown in the prototype, so going with option (b) doesn't sound to be
dumb.

Anybody else wants to weigh in?




--
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Julien Rouhaud
Дата:
Сообщение: Re: Wrong return code in vacuumdb when multiple jobs are used
Следующее
От: Amit Kapila
Дата:
Сообщение: Re: Wrong return code in vacuumdb when multiple jobs are used