Reputation: 1491
This question is about how Synapse DB schedules queries.
I have an Azure Synapse dedicated SQL pool with workload management groups set up.
Suppose query A is submitted and takes 40% of the pool's resources. Query A is really long-running, essentially indefinite.
Shortly after, query B arrives requesting 30% of resources, and runs. Next query X is submitted requesting 40% of resources. Currently running queries are consuming 40+30=70 so there is insufficient for X to start. It is queued.
Now query C shows up requesting 30% of resources. The instance has capacity so my understanding is that C jumps ahead of X and starts running. Is my understanding correct?
For the sake of the question imagine a workload where there is a constant stream of B and C arriving such that there is never a moment where neither is running i.e. the total resource allocation of currently executing queries never drops below 70%. What happens to X in this scenario - does it queue indefinitely until the B/C submissions cease, or A completes in the (distant) future? Does Azure Synapse dedicated SQL pool have a mechanism to prevent this sort of query resource starvation.
Upvotes: 0
Views: 75