On 24.02.2020 05:08, Hubert Zhang wrote:
Hi

On Sat, Feb 22, 2020 at 12:58 AM Konstantin Knizhnik <k.knizh...@postgrespro.ru <mailto:k.knizh...@postgrespro.ru>> wrote:



    On 12.02.2020 13:12, Hubert Zhang wrote:
    On Tue, Feb 11, 2020 at 1:20 AM Konstantin Knizhnik
    <k.knizh...@postgrespro.ru <mailto:k.knizh...@postgrespro.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.


Reply via email to