corb2
corb2 copied to clipboard
Corb as a performance testing tool.
Corb had been successfully used as a performance testing tool at a major client installation and received a lot of appreciation. This is done by simulating the predictable load from multiple corb instances from different hosts talking to Marklogic. However, this use case had limitations due to lack built-in knobs to control the execution from outside. I suggest we should look into following enhancements to make this more robust and useful with out of the box capabilities.
- Introduce configured/arbitrary sleep on each thread to simulate actual user interactions.
- Constant throughput - by adjusting thread-counts or may be sleep times if necessary. There should be a min/max thread counts to avoid potential issues.
- Use a plan file - to increase/decrease thread counts or sleep times based on a defined plan (can we adjust the plan at run time?) ex: first 10min 1 thread 1sec sleep, next 5min - 5 threads, 1 sec sleep, next 15min - 10threads, 2sec sleep, next back to 1 thread 1sec sleep and so on..
- Multiple transforms - this is a wild idea, but not required as we can easily achieve this by a single transform delegating to multiple xqueries.
- More ideas??
Revisiting this topic. If we wanted to be able to add some sort of delay between thread executions, it would be good to be able to set a static value, as well as providing the ability to have some sort of randomized length of time within a threshold.
With properties such as:
-
BATCH-DELAY (default
0
) - possible values are either numeric for a static amount of time, or the word "random" to generate randomized values using the BATCH-DELAY-MIN and BATCH-DELAY-MAX values. -
BATCH-DELAY-MIN (default
0
) -
BATCH-DELAY-MAX (default
0
)
These settings should be adjustable in the COMMAND-FILE and probably the UI