-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Sharding
-
Fully Compatible
-
Sharding EMEA 2022-11-28
-
(copied to CRM)
The splitVector command internally uses PlanExecutor::YIELD_AUTO in order to enforce automatic yielding. The plan may yield on any call to getNext() if this is non-NULL. This is used to avoid competition for I/O resources. Basically, we could say that they are slow by design to not interfere with application traffic.
When a splitVector command takes more than 100ms, the default slowMS, it is logged as a W message. Since the query itself is designed to be slower than usual, having a splitVector which needs more than 100ms could be common on some environments and therefore not an indication of any problem.
W SHARDING [conn349989] Finding the split vector for DB.Collection over { _id: 1.0 } keyCount: 146525 numSplits: 0 lookedAt: 145991 took 121ms
We should lower the splitVector slow query logging by either lowering the threshold for slow queries or by logging it as Information rather than as Warning.