Re: Asynchronous Append on postgres_fdw nodes.
От | Andrey Lepikhov |
---|---|
Тема | Re: Asynchronous Append on postgres_fdw nodes. |
Дата | |
Msg-id | 90cced83-9061-0cac-0012-84e5faac8c78@postgrespro.ru обсуждение исходный текст |
Ответ на | Re: Asynchronous Append on postgres_fdw nodes. (Kyotaro Horiguchi <horikyota.ntt@gmail.com>) |
Ответы |
Re: Asynchronous Append on postgres_fdw nodes.
|
Список | pgsql-hackers |
On 6/4/20 11:00 AM, Kyotaro Horiguchi wrote: > Removed a useless variable PgFdwScanState.result_ready. > Removed duplicate code from remove_async_node() by using move_to_next_waiter(). > Done some minor cleanups. > I am reviewing your code. A couple of variables are no longer needed (see changes.patch in attachment. Something about the cost of an asynchronous plan: At the simple query plan (see below) I see: 1. Startup cost of local SeqScan is equal 0, ForeignScan - 100. But startup cost of Append is 0. 2. Total cost of an Append node is a sum of the subplans. Maybe in the case of asynchronous append we need to use some reduce factor? explain select * from parts; With Async Append: ===================== Append (cost=0.00..2510.30 rows=106780 width=8) Async subplans: 3 -> Async Foreign Scan on part_1 parts_2 (cost=100.00..177.80 rows=2260 width=8) -> Async Foreign Scan on part_2 parts_3 (cost=100.00..177.80 rows=2260 width=8) -> Async Foreign Scan on part_3 parts_4 (cost=100.00..177.80 rows=2260 width=8) -> Seq Scan on part_0 parts_1 (cost=0.00..1443.00 rows=100000 width=8) Without Async Append: ===================== Append (cost=0.00..2510.30 rows=106780 width=8) -> Seq Scan on part_0 parts_1 (cost=0.00..1443.00 rows=100000 width=8) -> Foreign Scan on part_1 parts_2 (cost=100.00..177.80 rows=2260 width=8) -> Foreign Scan on part_2 parts_3 (cost=100.00..177.80 rows=2260 width=8) -> Foreign Scan on part_3 parts_4 (cost=100.00..177.80 rows=2260 width=8) -- Andrey Lepikhov Postgres Professional https://postgrespro.com The Russian Postgres Company
Вложения
В списке pgsql-hackers по дате отправления: