Module: workloads/move_chunk_large_chunk_map

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

Source:

Members

(inner) majorVersion

The major version of the server required to infer the FCV in use.

Source:

(inner) numChunks

The number of chunks to create. The default is 500,000.

Source:

(inner) secondaryThrottle

The _secondaryThrottle parameter to the moveChunk command.

Source:

(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.

Source: