On Mon, Jan 22, 2018 at 7:16 PM, Robert Haas <robertmh...@gmail.com> wrote: > On Fri, Jan 19, 2018 at 10:59 PM, Amit Kapila <amit.kapil...@gmail.com> wrote: >> The patch doesn't apply cleanly on the head, but after rebasing it, I >> have reviewed and tested it and it seems to be working fine. Apart >> from this specific issue, I think we should consider making >> nworkers_launched reliable (at the very least for cases where it >> matters). You seem to be of opinion that can be a source of subtle >> bugs which I don't deny but now I think we are starting to see some >> use cases of such a mechanism as indicated by Peter G. in parallel >> create index thread. Even, if we find some way for parallel create >> index to not rely on that assumption, I won't be surprised if some >> future parallelism work would have such a requirement. > > Isn't making nworkers_launched reliable exactly what this patch does? > It converts the rare cases in which nworkers_launched would have been > unreliable into errors, precisely so that code like parallel CREATE > INDEX doesn't need to worry about the case where it's inaccurate. >
It does turn such cases into error but only at the end when someone calls WaitForParallelWorkersToFinish. If one tries to rely on it at any other time, it won't work as I think is the case for Parallel Create Index where Peter G. is trying to use it differently. I am not 100% sure whether Parallel Create index has this symptom as I have not tried it with that patch, but I and Peter are trying to figure that out. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com