How to prohibit parallel scan through tableam?
Hi hackers,
I wonder how it is possible to prohibit parallel scan for the external
storage accessed through tableam?
For example if I want to implement specialized tableam for fast access
to temp tables, how can I inform optimizer that
parallel scan is not possible (because table data is local to the backend)?
Thanks in advance,
--
Konstantin Knizhnik
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
On Wed, 27 Nov 2019 at 12:33, Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
wrote:
Hi hackers,
I wonder how it is possible to prohibit parallel scan for the external
storage accessed through tableam?
For example if I want to implement specialized tableam for fast access
to temp tables, how can I inform optimizer that
parallel scan is not possible (because table data is local to the backend)?How about setting parallel_setup_cost to disable_cost in costsize.c for
your specific scan method.
--
Regards,
Rafia Sabih
On 27.11.2019 15:12, Rafia Sabih wrote:
On Wed, 27 Nov 2019 at 12:33, Konstantin Knizhnik
<k.knizhnik@postgrespro.ru <mailto:k.knizhnik@postgrespro.ru>> wrote:Hi hackers,
I wonder how it is possible to prohibit parallel scan for the
external
storage accessed through tableam?
For example if I want to implement specialized tableam for fast
access
to temp tables, how can I inform optimizer that
parallel scan is not possible (because table data is local to the
backend)?How about setting parallel_setup_cost to disable_cost in costsize.c
for your specific scan method.
How can I do it if i just implementing my AM and not going to change any
postgres code?
--
Konstantin Knizhnik
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
On Wed, 27 Nov 2019 at 12:33, Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
wrote:
Hi hackers,
I wonder how it is possible to prohibit parallel scan for the external
storage accessed through tableam?
For example if I want to implement specialized tableam for fast access
to temp tables, how can I inform optimizer that
parallel scan is not possible (because table data is local to the backend)?One moment, isn't that parallel scans are already restricted for temp
tables, or I have misunderstood something here...?
--
Regards,
Rafia Sabih
Hi,
On 2019-11-27 14:33:42 +0300, Konstantin Knizhnik wrote:
I wonder how it is possible to prohibit parallel scan for the external
storage accessed through tableam?
For example if I want to implement specialized tableam for fast access to
temp tables, how can I inform optimizer that
parallel scan is not possible (because table data is local to the backend)?
I don't think there currently is a good way to do so - but it shouldn't
be hard to add that capability.
Greetings,
Andres Freund
Hi,
On 2019-11-27 16:10:20 +0300, Konstantin Knizhnik wrote:
On 27.11.2019 15:12, Rafia Sabih wrote:
On Wed, 27 Nov 2019 at 12:33, Konstantin Knizhnik
<k.knizhnik@postgrespro.ru <mailto:k.knizhnik@postgrespro.ru>> wrote:Hi hackers,
I wonder how it is possible to prohibit parallel scan for the
external
storage accessed through tableam?
For example if I want to implement specialized tableam for fast
access
to temp tables, how can I inform optimizer that
parallel scan is not possible (because table data is local to the
backend)?�How about setting parallel_setup_cost to disable_cost in costsize.c for
your specific scan method.How can I do it if i just implementing my AM and not going to change any
postgres code?
I think a set_rel_pathlist hook that prevents parallel paths from being
considered would be your best bet for now. But I encourage you to
suggest a patch to tableam to support it properly in future releases.
Greetings,
Andres Freund