Some cases require to perform the load operations on the limited set of objects/files in the unlimited manner (infinitely either using time limit).
- Load type is one of
- Noop
- Read
- Update
- Items input is configured
- Items input supplies the items which count is no more than the configured recycle queue size
- Recycle the load operations on the items.
- Sustain the initial items input order.
- Respect the operation weight in case of the weighted load.
- Respect the rate limit if configured.
- Output only the latest items state.
The Load Generator component is responsible for the operations recycling. There are two additional methods in its interface to support the recycling:
- Check if the load generator is configured to recycle the operations:
boolean isRecycling();
- Enqueue the load operation for further recycling:
void recycle(final O op);
The Load Step Context component keeps in memory the latest state for all items being processed in the recycle mode to meet the requirement (5).
Also, there's a specific "nothing to recycle" state which requires a Load Step Context to detect it to not to hang up the test step. Specific conditions:
- The Load Generator is finished to produce new load operations.
- The Load Generator is recycling.
- All new load operations executed at least once.
- No successful load operation results.
- Load Generator:
- Produces the new load operations which count is no more than the configured recycle queue size
- Storage Driver:
- Resets the next load operation state (status, timestamps, etc)
- Executes the next load operation
- Outputs the next completed load operation to the Load Controller
- Load Step Context:
- Receives the next completed load operation
- Drops the load operation if its status is not successful
- Determines the load operation origin (the Load Generator produced this load operation)
- Checks if the resolved Load Generator is in the recycling mode
- Updates the latest results for the corresponding item.
- Enqueues the load operation back to the Load Generator for further recycle
- Load Generator:
- Begins to recycle only if items input is exhausted
- Produces the recycling load operations from the recycle queue
-
load-op-recycle
The flag to enable the recycle mode. Disabled by default.
-
load-op-imit-recycle
The recycle queue size. Note that this queue size is also used by storage drivers internal queues.
The items are processed multiple times in the recycle mode. For example, the file may be updated several times. The result of each next update operation is different. So the Load Step Context doesn't output the items info on the fly but keeps the latest items info in the memory. The processed items info is dumped at the test step finish in the recycle mode (once for each item).