Re: is parallel union all possible over dblink?

From: "Marinos Yannikos" <mjy(at)geizhals(dot)at>
To: pgsql-performance(at)postgresql(dot)org, "Svetlin Manavski" <svetlin(dot)manavski(at)gmail(dot)com>
Subject: Re: is parallel union all possible over dblink?
Date: 2011-06-29 18:37:18
Message-ID: op.vxuoogblkhmbxg@klump-pc.ghoffice
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On Wed, 29 Jun 2011 13:55:58 +0200, Svetlin Manavski
<svetlin(dot)manavski(at)gmail(dot)com> wrote:

> Question: Is there a way to get the same result from within a PL/pgSQL
> function but running all the sub-queries in parallel? In case it is not
> directly available, which one would be the simplest way to implement it
> in
> my application? (I am very keen to avoid the obvious solution of an
> additional multi-threaded layer which would do it out of the RDBMS)

Have you tried dblink_send_query() + dblink_get_results() yet?

http://www.postgresql.org/docs/current/static/contrib-dblink-send-query.html

You'd have to do something like this to your queries [untested]:

select dblink_send_query('remote1','select * from
appqosfe.F_total_utilization(1306918800000000000::INT8, NULL,
60000000000::INT8, NULL)');
(select * from appqosfe.F_total_utilization(1306918800000000000::INT8,
NULL,
60000000000::INT8, NULL))
UNION ALL
(SELECT * from dblink_get_result('remote1') as T1(detectroid numeric,
timegroup numeric,
numbytes numeric, numpackets numeric))
order by timegroup asc;

i.e. start your remote query/-ies asynchronously, then collect the results
in the UNION query. At least in theory it should work...

Regards,
Marinos

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Greg Spiegelberg 2011-06-29 19:14:32 Re: is parallel union all possible over dblink?
Previous Message Svetlin Manavski 2011-06-29 11:55:58 is parallel union all possible over dblink?