VOPS: vectorized executor for Postgres: how to speedup OLAP queries more than 10 times without changing anything in Postgres executor

From: Konstantin Knizhnik <k(dot)knizhnik(at)postgrespro(dot)ru>
To: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: VOPS: vectorized executor for Postgres: how to speedup OLAP queries more than 10 times without changing anything in Postgres executor
Date: 2017-02-13 14:12:05
Message-ID: 50877c0c-fb88-b601-3115-55a8c70d693e@postgrespro.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello hackers,

There were many discussions concerning possible ways of speeding-up
Postgres. Different approaches were suggested:

- JIT (now we have three different prototype implementations based on LLVM)
- Chunked (vectorized) executor
- Replacing pull with push
- Columnar store (cstore_fdw, IMCS)
- Optimizing and improving current executor (reducing tuple deform
overhead, function call overhead,...)

Obviously the best result can be achieved in case of combining all this
approaches. But actually them are more or less interchangeable:
vectorized execution is not eliminating interpretation overhead, but it
is divided by vector size and becomes less critical.

I decided to write small prototype to estimate possible speed
improvement of vectorized executor. I created special types representing
"tile" and implement standard SQL operators for them. So neither
Postgres planer, nether Postgres executor, nether Postgres heap manager
are changed. But I was able to reach more than 10 times speed
improvement on TPC-H Q1/Q6 queries!

Please find more information here:
https://cdn.rawgit.com/postgrespro/vops/ddcbfbe6/vops.html
The sources of the project can be found here:
https://github.com/postgrespro/vops.git

--
Konstantin Knizhnik
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bernd Helmle 2017-02-13 14:16:35 Re: LWLock optimization for multicore Power machines
Previous Message Alexander Korotkov 2017-02-13 13:55:42 Re: Should we cacheline align PGXACT?