Re: Yet another vectorized engine

From: Hubert Zhang <hzhang(at)pivotal(dot)io>
To: Konstantin Knizhnik <k(dot)knizhnik(at)postgrespro(dot)ru>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org, Gang Xiong <gxiong(at)pivotal(dot)io>, Asim R P <apraveen(at)pivotal(dot)io>, Ning Yu <nyu(at)pivotal(dot)io>
Subject: Re: Yet another vectorized engine
Date: 2020-02-24 12:43:39
Message-ID: CAB0yremYGSMnTVwBxU1e0=USpJnD2zxvnd=73eqAGg-Z6NT1pg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Konstantin,
I have added you as a collaborator on github. Please accepted and try again.
I think non collaborator could also open pull requests.

On Mon, Feb 24, 2020 at 8:02 PM Konstantin Knizhnik <
k(dot)knizhnik(at)postgrespro(dot)ru> wrote:

>
>
> On 24.02.2020 05:08, Hubert Zhang wrote:
>
> Hi
>
> On Sat, Feb 22, 2020 at 12:58 AM Konstantin Knizhnik <
> k(dot)knizhnik(at)postgrespro(dot)ru> wrote:
>
>>
>>
>> On 12.02.2020 13:12, Hubert Zhang wrote:
>>
>> On Tue, Feb 11, 2020 at 1:20 AM Konstantin Knizhnik <
>> k(dot)knizhnik(at)postgrespro(dot)ru> wrote:
>>
>>>
>>> So looks like PG-13 provides significant advantages in OLAP queries
>>> comparing with 9.6!
>>> Definitely it doesn't mean that vectorized executor is not needed for
>>> new version of Postgres.
>>> Once been ported, I expect that it should provide comparable
>>> improvement of performance.
>>>
>>> But in any case I think that vectorized executor makes sense only been
>>> combine with columnar store.
>>>
>>
>> Thanks for the test. +1 on vectorize should be combine with columnar
>> store. I think when we support this extension
>> on master, we could try the new zedstore.
>> I'm not active on this work now, but will continue when I have time. Feel
>> free to join bring vops's feature into this extension.
>>
>> Thanks
>>
>> Hubert Zhang
>>
>>
>> I have ported vectorize_engine to the master.
>> It takes longer than I expected: a lot of things were changed in executor.
>>
>> Results are the following:
>>
>>
>> par.warkers
>> PG9_6
>> vectorize=off
>> PG9_6
>> vectorize=on
>> master
>> vectorize=off
>> jit=on
>> master
>> vectorize=off
>> jit=off master
>> vectorize=on
>> jit=ofn master
>> vectorize=on
>> jit=off
>> 0
>> 36
>> 20
>> 16
>> 25.5
>> 15
>> 17.5
>> 4
>> 10
>> -
>> 5 7
>> -
>> -
>>
>> So it proves the theory that JIT provides almost the same speedup as
>> vector executor (both eliminates interpretation overhead but in different
>> way).
>> I still not sure that we need vectorized executor: because with standard
>> heap it provides almost no improvements comparing with current JIT version.
>> But in any case I am going to test it with vertical storage (zedstore or
>> cstore).
>>
>>
> Thanks for the porting and testing.
> Yes, PG master and 9.6 have many changes, not only executor, but also
> tupletableslot interface.
>
> What matters the performance of JIT and Vectorization is its
> implementation. This is just the beginning of vectorization work, just as
> your vops extension reported, vectorization could run 10 times faster in
> PG. With the overhead of row storage(heap), we may not reach that speedup,
> but I think we could do better. Also +1 on vertical storage.
>
> BTW, welcome to submit your PR for the PG master version.
>
>
>
> Sorry, but I have no permissions to push changes to your repository.
> I can certainly create my own fork of vectorize_engine, but I think it
> will be beter if I push pg13 branch in your repository.
>
>
>

--
Thanks

Hubert Zhang

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andy Fan 2020-02-24 12:44:26 Re: [PATCH] Erase the distinctClause if the result is unique by definition
Previous Message Andy Fan 2020-02-24 12:38:58 Re: [PATCH] Erase the distinctClause if the result is unique by definition