Re: Pluggable storage

From: Andres Freund <andres(at)anarazel(dot)de>
To: Ants Aasma <ants(dot)aasma(at)eesti(dot)ee>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>,Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>,Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Pluggable storage
Date: 2016-08-18 15:14:58
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On August 18, 2016 7:44:50 AM PDT, Ants Aasma <ants(dot)aasma(at)eesti(dot)ee> wrote:
>On Tue, Aug 16, 2016 at 9:46 PM, Andres Freund <andres(at)anarazel(dot)de>
>> On 2016-08-15 12:02:18 -0400, Robert Haas wrote:
>>> I am somewhat inclined to
>>> believe that we need to restructure the executor in a bigger way so
>>> that it passes around datums instead of tuples; I'm inclined to
>>> believe that the current tuple-centric model is probably not optimal
>>> even for the existing storage format.
>> I actually prototyped that, and it's not an easy win so far. Column
>> extraction cost, even after significant optimization, is still often
>> significant portion of the runtime. And e.g. projection only
>> all columns, after evaluating a restrictive qual referring to an
>> column, can be a significant win. We'd definitely have to give up on
>> extracting columns 0..n when accessing later columns... Hm.
>What about going even further than [1] in converting the executor to
>being opcode based and merging projection and qual evaluation to a
>single pass? Optimizer would then have some leeway about how to order
>column extraction and qual evaluation. Might even be worth it to
>special case some functions as separate opcodes (e.g. int4eq,
>Ants Aasma

Good question. I think I have a reasonable answer, but lets discuss that in the other thread.

Sent from my Android device with K-9 Mail. Please excuse my brevity.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2016-08-18 15:18:06 Re: tab completion for alter extension
Previous Message Alvaro Herrera 2016-08-18 15:05:20 Re: [Patch] New psql prompt substitution %r (m = master, r = replica)