Uninterruptible slow geo_ops.c
От | Alvaro Herrera |
---|---|
Тема | Uninterruptible slow geo_ops.c |
Дата | |
Msg-id | 20151211174826.GF2762@alvherre.pgsql обсуждение исходный текст |
Ответы |
Re: Uninterruptible slow geo_ops.c
Re: Uninterruptible slow geo_ops.c Re: [HACKERS] Uninterruptible slow geo_ops.c |
Список | 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 по дате отправления: