On Mon, May 11, 2015 at 3:00 AM, Robert Haas <robertmh...@gmail.com> wrote: > > > I think it might be better to try to solve this problem in a more > localized way. Can we arrange for planstate->instrumentation to point > directory into the DSM, instead of copying the data over later?
Yes, we can do that but I am not sure we can do that for pgBufferUsage which is a separate information we need to pass back to master backend. One way could be to change pgBufferUsage to a pointer and then allocate the memory for same at backend startup time and for parallel workers, it should point to DSM. Do you see any simple way to handle it? Another way could be that master backend waits for parallel workers to finish before collecting the instrumentation information and buffer usage stats. It seems to me that we need this information (stats) after execution in master backend is over, so I think we can safely assume that it is okay to finish the execution of parallel workers if they are not already finished the execution. With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com