Re: Reducing tuple overhead

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
Cc: Jim Nasby <Jim(dot)Nasby(at)bluetreble(dot)com>, Petr Jelinek <petr(at)2ndquadrant(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, hlinnaka <hlinnaka(at)iki(dot)fi>, Bruce Momjian <bruce(at)momjian(dot)us>, Sawada Masahiko <sawada(dot)mshk(at)gmail(dot)com>, Greg Stark <stark(at)mit(dot)edu>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
Subject: Re: Reducing tuple overhead
Date: 2015-04-30 11:33:23
Message-ID: CA+TgmoaDjD061xe5aFoXQuONKszqkVu=R0vFsO2iy-tkwOBk-A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Apr 30, 2015 at 12:31 AM, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> I think I am missing something here, but when this second
> evaluation is needed. Basically what I understand from index
> insertion is that it evaluates the value to be inserted in index
> before calling nbtree module and then nbtree just inserts the
> value/tuple passed to it.

Sure, but what happens if it doesn't evaluate to the same value?

Consider a tuple where a = 1 and a function f(a). You insert the
tuple, evaluate f(a), and get 17. So you insert an index tuple into
the btree with a value of 17, pointing at the tuple. Now you delete
the tuple, evaluate f(a) again, and this time you get 42. You search
the btree for an index tuple with a value of 42, and you don't find
one. But the index tuple is still there.

With the current approach, that doesn't happen, because we effectively
search the entire index for tuples pointing at the heap tuple we're
trying to get rid of. The only problem with that is that it's
crushingly expensive when the index is large and the number of tuples
we're cleaning out is comparatively small. But that's a big problem.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2015-04-30 11:35:50 Re: CTE optimization fence on the todo list?
Previous Message Robert Haas 2015-04-30 11:26:02 Re: alternative compression algorithms?