pgsql: Use more efficient hashtable for tidbitmap.c to speed up bitmap

Поиск
Список
Период
Сортировка
От Andres Freund
Тема pgsql: Use more efficient hashtable for tidbitmap.c to speed up bitmap
Дата
Msg-id E1bvBn6-0002DG-7f@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Use more efficient hashtable for tidbitmap.c to speed up bitmap scans.

Use the new simplehash.h to speed up tidbitmap.c uses. For bitmap scan
heavy queries speedups of over 100% have been measured. Both lossy and
exact scans benefit, but the wins are bigger for mostly exact scans.

The conversion is mostly trivial, except that tbm_lossify() now restarts
lossifying at the point it previously stopped. Otherwise the hash table
becomes unbalanced because the scan in done in hash-order, leaving the
end of the hashtable more densely filled then the beginning. That caused
performance issues with dynahash as well, but due to the open chaining
they were less pronounced than with the linear adressing from
simplehash.h.

Reviewed-By: Tomas Vondra
Discussion: <20160727004333.r3e2k2y6fvk2ntup@alap3.anarazel.de>

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/75ae538bc3168bf44475240d4e0487ee2f3bb376

Modified Files
--------------
src/backend/nodes/tidbitmap.c | 169 ++++++++++++++++++++++++------------------
1 file changed, 97 insertions(+), 72 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tatsuo Ishii
Дата:
Сообщение: pgsql: Remove spurious word.
Следующее
От: Andres Freund
Дата:
Сообщение: pgsql: Add likely/unlikely() branch hint macros.