Skip to content

Extensions for volume testing #223

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 77 commits into from
Mar 8, 2019

Conversation

martinsumner
Copy link

New bench drivers to allow for:

Better volume testing of 2i;
Test runs that first load a majority of PUTs to build up a baseline of data, before switching to majority GETs;
Variations on pareto distributions;
Alternative value generators to make compressed, semi-compressible objects

martinsumner and others added 30 commits December 8, 2016 09:44
Try add a driver thta does a balance of NHS style work
format is not as suggested in erlang client code comments
To give a balance between uniform int and pareto int
Fixed y axis, as well as simplified layout
including logging of stop and start
Cannot use listkeys stats, and so will log timer for each listkeys separately
Idea is to run a separate basho_bench process for testing list keys - that will pause between requests
Only one of the workers will run listkeys
Difficult to be sure that behaviour seen in test is as a result of feedback loop if listkeys takes longer (i.e. less requests are sent), rather than the actual cluster reacting to the ongoing listkeys operation.

So now try and make this listkeys request async (but still ensure only one is run at a time)
When checking is_process_alive
Allows for the frequency of particularly large objects to be enhanced
Reduce the relative frequency of regex queries
get_unique was never getting an object ... always a miss ... no wonder performance improved!
To something more realistic
This seems more realistic
Allows for a GET every 10 seconds which will prompt an AAE exchange
Stop having get requests where not_found is an expected response.

This will slow throughput in early parts of the test - but should make sure the tests are more relaistic, not being dominated by the speed of not_founds for multiple hours.
In testing - use a 24 hour config with more workers
Typos etc
Otherwise they will throw errors when processing 2i query results
AboveMin was BelowMin, and due to 80/20 rule was not frequently being triggered - too many additions, not enough updates.

Also too high a proportion of updates compared to GETs.

Need to avoid running out of disk space in test environment, so overall key space size reduced.
Disk space ran out 18 hours into the test.  Should be enough to reduce proportion of updates, and reduce key space by 20% (not 40%)
This reverts commit c95516c.
Not every increment below 1000.  D'oh.
clincials environment has a different profile - add a specific basho_bench for this
Due to disk space issues
So that there is a natural pre-load stage up to a minumum database size
And allow for change of value size.  clinicals documents ar enot base don internalID, and so will be in a random order
To distnguish between different nodes use a key id rather than random bytes.

Aim is to make different nodes produce different keys - if we run basho_bench from > 1 test harness
General load test.  Sort of somewhere between the demands of all three functional domain clusters.

Also included is a passive version, designed to be a relatively unchallenging passive-site load (for providing load under cluster admin tests).
@martinsumner
Copy link
Author

This is what has been used for 2.9 volume testing

@martinsumner martinsumner merged commit 2878a73 into basho:develop-2.9 Mar 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants