-
Notifications
You must be signed in to change notification settings - Fork 10
v4.0 Distributed Mode
In the new major version of Mongoose the new distributed mode architecture is introduced. Comparing to the previous design the scenario is not executed on the controller side completely. The scenario steps are sliced by the local node among all the Mongoose nodes involved in the test. Then each step slice is being executed independently on the corresponding Mongoose node. Mongoose nodes in the distributed mode are equal.
- Higher distributed mode performance due to lack of the single point of contention.
- The opportunity to introduce the modular configuration.
- Joint interface for CLI and GUI.
The distributed mode test involves some set of the Mongoose nodes. The test may be started from any node from that set. The node selected to start the test should be treated as the local node. The local node is not excluded from the actual load execution.
Local node loads the scenario into the corresponding scripting engine. The scripting engine instantiates the scenario steps. Each load step consists of its local and remote parts. The local step functionality:
- step slicing
- load the input items and distribute to the nodes
- item output file aggregation (optional)
- I/O traces aggregation (optional)
The configuration parameters which are the subject of slicing in the scenario:
item-input-file
item-input-path
item-naming-offset
-
item-output-path
(in case of parameterization is used) storage-auth-file
-
storage-net-http-headers-*
(in case of parameterization is used) -
storage-net-node-addrs
(if node-to-node mapping is enabled) -
load-step-distributed
: set tofalse
The items input is being read locally if configured. The items from the input are distributed to the files located on the remote side. Then these files are used as items input files by the remote side.
New configuration parameter item-naming-step
is required to support
a load step slicing in case of a non-random item naming scheme. The
default item-naming-step
parameter value is 1. In the distributed
mode the value is equal to the count of the nodes involved in the test.
Example:
- item-naming-length: 2
- item-naming-offset: 0
- item-naming-radix: 10
- item-naming-scheme: asc
- node-addrs: A,B,C,D
- load-step-limit-count: 18
Node # | Offset | Resulting Item Names |
---|---|---|
A | 0 | 00, 04, 08, 12, 16 |
B | 1 | 01, 05, 09, 13, 17 |
C | 2 | 02, 06, 10, 14 |
D | 3 | 03, 07, 11, 15 |
- Run actually the configured scenario step slice
- Local scenario step should remember the environment variables got upon instantiation from the scripting engine
- Scenario step slice should be serializable
- Items for the input should be transferred and persisted too
- Determine the specified step state (started, paused, finished)
- Return the processed items (optional)
- Return the I/O traces data (optional)
TODO
-
load-step-distributed
Flag which enables the distributed mode. The default value is
false
. -
load-step-node-addrs
Comma-separated list of node IP addresses/hostnames. The default value is
127.0.0.1
. Adding the port numbers is allowed to override theload-step-distributed-node-port
value. For examplenodeA:1100,nodeB:1101,nodeC:1111
-
load-step-node-port
RMI port for the distributed mode. 1099 by default.
- Overview
- Deployment
- User Guide
- Troubleshooting
- Reference