Uninterruptible slow geo_ops.c

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Uninterruptible slow geo_ops.c
Дата
Msg-id 20151211174826.GF2762@alvherre.pgsql
обсуждение исходный текст
Ответы Re: Uninterruptible slow geo_ops.c  (Marco Nenciarini <marco.nenciarini@2ndquadrant.it>)
Re: Uninterruptible slow geo_ops.c  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Re: [HACKERS] Uninterruptible slow geo_ops.c  (Emre Hasegeli <emre@hasegeli.com>)
Список pgsql-hackers
Hi,

A customer of ours hit some very slow code while running the
@>(polygon, polygon) operator with some big polygons.  I'm not familiar
with this stuff but I think the problem is that the algorithm converges
too slowly to a solution and also has some pretty expensive calls
somewhere.  (Perhaps there is also a problem that the algorithm *never*
converges for some inputs ...)

While I'm not familiar with the code itself, and can't post the exact
slow query just yet, I have noticed that it is missing a
CHECK_FOR_INTERRUPTS() call to enable cancelling the slow query.  I'd
backpatch this all the way back.  (The exact issue they hit is mutual
recursion between touched_lseg_between_poly and lseg_between_poly.
Since the latter also recurses on itself, the best way forward seem to
add a check for interrupts in the loop there.)

I will follow up on the actual slowness later, as warranted.

--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Вложения

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

Предыдущее
От: Aleksander Alekseev
Дата:
Сообщение: Re: Patch: fix lock contention for HASHHDR.mutex
Следующее
От: Jim Nasby
Дата:
Сообщение: Remove array_nulls?