Skip to content
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

Support for non-deterministic distribution of operations #251

Closed
cdahlqvist opened this issue Mar 10, 2017 · 2 comments
Closed

Support for non-deterministic distribution of operations #251

cdahlqvist opened this issue Mar 10, 2017 · 2 comments
Labels
enhancement Improves the status quo highlight A substantial improvement that is worth mentioning separately in release notes :Load Driver Changes that affect the core of the load driver such as scheduling, the measurement approach etc. :Track Management New operations, changes in the track format, track download changes and the like
Milestone

Comments

@cdahlqvist
Copy link
Contributor

There are use cases where it would be desirable to vary the request rate over time, e.g. when replaying user sessions and/or varying load to simulate daily patterns in long running benchmarks. It would be great to have support for this in Rally as it would add a lot of flexibility.

I have spent the last few days thinking about ways to do this, and one reasonably simple way could be to allow a custom parameter source to return the duration until it expects to run the next request and have Rally use this to override the fixed interval used when in rate limiting mode.

It is a simple way to give control to the parameter source, which allows scripting this, but maybe not the ultimate solution.

@cdahlqvist cdahlqvist added the enhancement Improves the status quo label Mar 10, 2017
@cdahlqvist cdahlqvist changed the title Support for non-uniform distribution off operations Support for non-uniform distribution of operations Mar 10, 2017
@danielmitterdorfer danielmitterdorfer added :Load Driver Changes that affect the core of the load driver such as scheduling, the measurement approach etc. :Track Management New operations, changes in the track format, track download changes and the like labels Mar 10, 2017
@danielmitterdorfer
Copy link
Member

danielmitterdorfer commented Mar 10, 2017

As you describe, the current request throttling strategy is based on a deterministic distribution. It is implemented in driver.py.

I was also thinking about allowing other distributions (like Poisson processes) at some point and I think we should keep request throttling based on any statistical distributions within Rally but let users choose via track.json which distribution to use.

However, you mention simulating more complex traffic patterns and this might even warrant introducing a new concept in addition to parameter sources and runners.

@cdahlqvist
Copy link
Contributor Author

When simulating traffic based e.g. on data from a file, it would be convenient to control this from the parameter source. I however don't see why allowing this would preclude us from also offer another method that might e.g. be more suited to altering patterns around large bulk requests.

@danielmitterdorfer danielmitterdorfer self-assigned this Mar 31, 2017
@danielmitterdorfer danielmitterdorfer added this to the 0.5.3 milestone Mar 31, 2017
@danielmitterdorfer danielmitterdorfer added the highlight A substantial improvement that is worth mentioning separately in release notes label Mar 31, 2017
@danielmitterdorfer danielmitterdorfer changed the title Support for non-uniform distribution of operations Support for non-deterministic distribution of operations Apr 4, 2017
@danielmitterdorfer danielmitterdorfer removed their assignment Sep 20, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improves the status quo highlight A substantial improvement that is worth mentioning separately in release notes :Load Driver Changes that affect the core of the load driver such as scheduling, the measurement approach etc. :Track Management New operations, changes in the track format, track download changes and the like
Projects
None yet
Development

No branches or pull requests

2 participants