On Tue, Mar 10, 2015 at 10:23 AM, Haribabu Kommi <kommi.harib...@gmail.com>
wrote:
>
> On Tue, Mar 10, 2015 at 3:09 PM, Amit Kapila <amit.kapil...@gmail.com>
wrote:
>
> > I have currently modelled it based on existing rescan for seqscan
> > (ExecReScanSeqScan()) which means it will begin the scan again.
> > Basically if the workers are already started/initialized by previous
> > scan, then re-initialize them (refer function ExecReScanFunnel() in
> > patch).
> >
> > Can you elaborate more if you think current handling is not sufficient
> > for any case?
>
> From ExecReScanFunnel function it seems that the re-scan waits till
> all the workers
> has to be finished to start again the next scan. Are the workers will
> stop the current
> ongoing task? otherwise this may decrease the performance instead of
> improving as i feel.
>

Okay, performance-wise it might effect such a case, but I think we can
handle it by not calling WaitForParallelWorkersToFinish(),
as DestroyParallelContext() will automatically terminate all the workers.

> I am not sure if it already handled or not,  when a worker is waiting
> to pass the results,
> whereas the backend is trying to start the re-scan?
>

I think stopping/terminating workers should handle such a case.

Thanks for pointing out this case, I will change it in next update.


With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

Reply via email to