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