Skip to content

Fix load track behavior on multiple load driver machines#1315

Merged
DJRickyB merged 20 commits intoelastic:masterfrom
DJRickyB:fix-load-track
Aug 24, 2021
Merged

Fix load track behavior on multiple load driver machines#1315
DJRickyB merged 20 commits intoelastic:masterfrom
DJRickyB:fix-load-track

Conversation

@DJRickyB
Copy link
Copy Markdown
Contributor

This commit fixes #1206 by causing the TrackPreparationActor and the Driver actor to register the local track repository/code prior to attempting to receive the loaded track as a serialized message.

@DJRickyB DJRickyB added bug Something's wrong :Load Driver Changes that affect the core of the load driver such as scheduling, the measurement approach etc. labels Aug 20, 2021
@DJRickyB DJRickyB requested a review from dliappis August 20, 2021 17:06
@DJRickyB DJRickyB self-assigned this Aug 20, 2021
@DJRickyB DJRickyB marked this pull request as draft August 20, 2021 19:04
@DJRickyB
Copy link
Copy Markdown
Contributor Author

Further testing seems to indicate some silent hanging, I will circle back to this on Monday. Feedback welcome on current state

@DJRickyB DJRickyB marked this pull request as ready for review August 23, 2021 17:48
Copy link
Copy Markdown
Contributor

@dliappis dliappis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you fixing this! I did an initial pass, looking only at the code, which looks good; left a few minor comments.

Will test a few scenarios, as the next step.

def __init__(self, worker_id, config, track, client_allocations):
"""
:param worker_id: Unique (numeric) id of the worker.
:param config: Rally internal configuration object.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was this removed on purpose?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

whoops! adding it back. I had removed config from this message altogether in an earlier iteration


class RallyConfig:
"""
Prompts loading of a track
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a bit unclear to me what this is actually doing, by just reading the docstring. I fail to understand how an object instantiating this that stores cfg prompts (as in causes/brings about?) the loading of a track. Is there anything short we could add here to make this easier to understand in the future without having to git blame and reference the issue #1206?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great point. I think I will go the "self-documenting" route here. Other message classes are verbs, telling the actor what to do, this one would be better named "Bootstrap" and could in the future denote other activity actors should be doing before their intended work.

@dliappis dliappis self-requested a review August 24, 2021 18:54
Copy link
Copy Markdown
Contributor

@dliappis dliappis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've now concluded tests, things seem to be working fine with large loaddriver clusters.
Also the latest commits after my previous comments are great.
LGTM.

@DJRickyB DJRickyB merged commit 1b56ef4 into elastic:master Aug 24, 2021
@DJRickyB DJRickyB deleted the fix-load-track branch August 24, 2021 19:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something's wrong :Load Driver Changes that affect the core of the load driver such as scheduling, the measurement approach etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Track preparation can fail on multiple load generator machines with custom track processors

2 participants