Test performance of each section of chunk migrations under load
Test
Move one chunk, containing 25k documents, from one shard to another.
While one chunk migrating, benchRun is used to apply a mixed load onto the documents in the migrating chunk.
The goal of this test is to determine the time spent in each section of chunk migration as well as the impact of different sections of chunk migration on other commands.
Unless user specifies otherwise, uses default value for _secondaryThrottle (false for WiredTiger and true for MMAPv1)
The test takes an optional 'threadLevels' parameters: an array specifying the number of threads to use for load.
Uses moveChunk command
Results are reported by dsi/dsi/libanalysis/move_chunk_log_analysis.
Setup
Requires a sharded cluster.
Test inserts 25k documents in the first chunk (that is moved). There are also 500,000 empty chunks. The chunk is moved 5 times per thread level.
Field a is indexed, containing uniformly random numbers.
Owning-team
mongodb/sharding
Members
(inner) majorVersion
The major version of the server required to infer the FCV in use.
(inner) numChunks
The number of chunks to create. The default is 500,000.
(inner) secondaryThrottle
The _secondaryThrottle parameter to the moveChunk command.
(inner) threadLevels
The number of threads to run in parallel. The default is [0, 2, 4]. Note: Thread count should be divisible by 2, and this test cannot handle thread levels greater than 4. Higher thread levels risk exceeding the 500MB memory limit for the transfer mods queue and causing the chunk migration to fail.