Operational Defect Database

BugZero found this defect 79 days ago.

MongoDB | 2596096

Execution control doesn't ramp up fast enough for slow yielding queries

Last update date:

3/12/2024

Affected products:

MongoDB Server

Affected releases:

No affected releases provided.

Fixed releases:

No fixed releases provided.

Description:

Info

When queries don't yield cooperatively for long periods of time, say due to blocking sorts and groups, execution control does not add tickets fast enough, or at all. Imagine a workload where queries take longer than 1 second. The default probing interval is 200ms. We will never observe an increase in throughput even though progress is being made, and thus never increase concurrency. We should consider the following improvements: Adjust probing interval based on query latency If the average query latency is 1 second, we should increase the probing interval to a similar order of magnitude so that our feedback loop captures queries as they complete. But as we scale the probing interval, we should proportionately scale the step size so that we increase tickets with the same velocity as a shorter interval. Unconditionally add tickets when throughput is zero If throughput is zero but tickets are maxed out, we should just unconditionally add tickets. When this happens, this means we have many high-latency queries in progress. As long as we have room to increase tickets, this should help ramp up tickets in a "cold start" scenario.

Top User Comments

louis.williams commented on Tue, 5 Mar 2024 16:57:57 +0000: Triage notes: Service Arch will own this part of the code in the foreseeable future We're not sure that increasing tickets when throughput is zero will work when the system is in a suboptimal state We should to consider disabling EC control when ADL starts up in this special mode

Steps to Reproduce


Additional Resources / Links

Share:

BugZero® Risk Score

What's this?

Coming soon

Status

Backlog

Learn More

Search:

...