[HACKERS] VOPS: vectorized executor for Postgres: how to speedup OLAP queriesmore than 10 times without changing anything in Postgres executor
От | Konstantin Knizhnik |
---|---|
Тема | [HACKERS] VOPS: vectorized executor for Postgres: how to speedup OLAP queriesmore than 10 times without changing anything in Postgres executor |
Дата | |
Msg-id | 50877c0c-fb88-b601-3115-55a8c70d693e@postgrespro.ru обсуждение исходный текст |
Ответы |
Re: [HACKERS] VOPS: vectorized executor for Postgres: how to speedupOLAP queries more than 10 times without changing anything in Postgresexecutor
|
Список | 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
В списке pgsql-hackers по дате отправления: