|
As discovered during the investigation of SERVER-57309, the update of config.chunks entries during setFCV - happening under the chunk operations lock - may block migrations for long periods in presence of a lot of chunks.
Following, the results of some simple downgrade/upgrade experiments with different number of chunks (executed on the virtual workstation):
| |
downgrade |
downgrade |
upgrade |
upgrade |
update operation
number of chunks |
$set ns |
$unset uuid & timestamp |
$set uuid & timestamp |
$unset ns |
| 100K |
32 s |
27 s |
22 s |
31 s |
| 500K |
180 s |
164 s |
117 s |
144 s |
| 1M |
324 s |
313 s |
211 s |
271 s |
A possible improvement to reduce the window in which balancing is not allowed would be to perform the $unset operations outside such lock, but still during setFCV.
|