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 02:08:15
Message-ID: CAB0yre=1WhcVJ9AQD5fHunpU9BQrKRmbZ1giX3hrx==f66WN5w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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.

--
Thanks

Hubert Zhang

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Thomas Munro 2020-02-24 03:49:45 Shouldn't GSSAPI and SSL code use FeBeWaitSet?
Previous Message Dave Cramer 2020-02-24 01:58:59 Re: Error on failed COMMIT