Re: Physical append-only tables

Поиск
Список
Период
Сортировка
От Magnus Hagander
Тема Re: Physical append-only tables
Дата
Msg-id CABUevEyW_4XDr37OSHyYDAop4MF=8gb48Dpy4HcH8Jn_hAryhQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Physical append-only tables  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Ответы Re: Physical append-only tables
Список pgsql-hackers
On Mon, Nov 14, 2016 at 2:35 AM, Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
Magnus Hagander wrote:

> But then consider the same table. Except rows are typically updated once or
> twice when they are new, and *then* go read only. And we also have a
> process that at some point deletes *some* old rows (but not all - in fact,
> only a small portion).
>
> In this case, the next INSERT once VACUUM has run is likely to stick a
> "new" row somewhere very "far back" in the table, since there is now free
> space there. This more or less completely ruins the BRIN index usability,
> as the "old" blocks will now contain a single row from a "new" series.

Yeah.  When we initially discussed BRIN, there was a mention of allowing
a BRIN index to guide new tuple location -- something like
auto-clustering, if you will.  We haven't discussed the exact details
but I think something along those lines is worth considering.

What I'm talking about is something that would be a lot simpler than auto-clustering. I'm not even talking about trying to detect if the row was about to go into the right place -- this might be expensive and certainly more complicated. I'm only talking about a simple case where we *never* put anything anywhere other than at the end of the table, period. That should make the check both cheap and simple. 

--

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

Предыдущее
От: valeriof
Дата:
Сообщение: Re: Transaction user id through logical decoding
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Physical append-only tables