On 25.02.2020 19:40, Konstantin Knizhnik wrote:
I have ported vectorize_engine for zedstore (vertical table AM). Results of TPCH-10G/Q1 are the following: par.workers PG9_6 vectorize=off PG9_6 vectorize=on master vectorize=off jit=on master vectorize=off jit=off master vectorize=on jit=on master vectorize=on jit=off zedstore vectorize=off jit=on zedstore vectorize=off jit=off zedstore vectorize=on jit=on zedstore vectorize=on jit=off 0 36 20 16 25.5 15 17.5 18 26 17 19 4 10 - 5 7 - - 5 7 - -
After correct calculation of used columns bitmapset and passing it to table_beginscan_with_column_projection function zedstore+vectorize_engine
show the best result (without parallel execution): par.workers PG9_6 vectorize=off PG9_6 vectorize=on master vectorize=off jit=on master vectorize=off jit=off master vectorize=on jit=on master vectorize=on jit=off zedstore vectorize=off jit=on zedstore vectorize=off jit=off zedstore vectorize=on jit=on zedstore vectorize=on jit=off 0 36 20 16 25.5 15 17.5 18 26 14 16 4 10 - 5 7 - - 5 7 - - but still the difference with vanilla is minimal. Profiler top is the following: 16.30% postgres postgres [.] zedstoream_getnexttile 6.98% postgres postgres [.] decode_chunk 6.68% postgres liblz4.so.1.7.1 [.] LZ4_decompress_safe 5.37% postgres vectorize_engine.so [.] vfloat8_accum 5.23% postgres postgres [.] bpchareq -- Konstantin Knizhnik Postgres Professional: http://www.postgrespro.com The Russian Postgres Company