On 22 August 2018 at 22:21, Andres Freund <and...@anarazel.de> wrote: > On 2018-08-22 18:39:18 +0200, Andreas Joseph Krogh wrote: >> Just to be clear; The query really runs slower (wall-clock time), it's not >> just the timing. > > I bet it's not actually running slower, it "just" takes longer to start > up due to the JITing in each worker. I suspect what we should do is to > multiple the cost limits by the number of workers, to model that. But > without the fixed instrumentation that's harder to see...
Attached is a patch that accumulates the per-worker jit counters into the leader process. Similar to SharedExecutorInstrumentation, I added another shared memory segment SharedJitInstrumenation, which is used to accumulate each of the workers' jit instrumentation into the leader's. Earlier I was thinking we can have a common SharedExecutorInstrumentation structure that will have both instrumentions, one usual instrumentation, and the other jit instrumentation. But then thought that fields in SharedExecutorInstrumentation are mostly not relevant to JitInstrumentation. So kept a separate segment in the shared memory. It may happen that the jit context does not get created at the backend because there was no jit compile done, but at the workers it got created. In that case, before retrieving the jit data from the workers, the estate->es_jit needs to be allocated at the backend. For that, I had to have a new function jit_create_context(), and for that a new jit provider callback function create_context(). I used the exsiting llvm_create_context() for this callback function. JitContext now has those counters in a separate JitInstrumentation structure, so that the same structure can be shared by SharedJitInstrumentation and JitContext. ----------------- I think we better show per-worker jit info also. The current patch does not show that. I think it would be easy to continue on the patch to show per-worker info also. Under the Gather node, we can show per-worker jit counters. I think this would be useful too, besides the cumulative figures in the leader process. Comments ? -- Thanks, -Amit Khandekar EnterpriseDB Corporation The Postgres Database Company
jit_instr_account_workers.patch
Description: Binary data