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

Add new concurrent querying challenge #538

Merged
merged 4 commits into from
Jan 17, 2024

Conversation

cbuescher
Copy link
Member

This change adds a new challenge definition to the elastic/logs track that focusses on higher parallel execution of the querying part. The goal is to provide a better basis for detecting changes in our concurrent execution model in the query phases on average and typical workloads that this track defines.

Main changes over the "querying-logging" track this is based one:

  • diabling the query cache using the "disable_query_cache" operation (setting index.requests.cache.enable to false) before querying in order to hit the concurrent search path more often. This is also what the esql parts of this track are doing
  • introducing a "worker_threads_enabled" track parameter (true by default) that controls the "search.worker_threads_enabled" node parameter to be able to switch off concurrency for experiments and comparisons

This change adds a new challenge definition to the elastic/logs track that
focusses on higher parallel execution of the querying part. The goal is to
provide a better basis for detecting changes in our concurrent execution model
in the query phases on average and typical workloads that this track defines.

Main changes over the "querying-logging" track this is based one:
* diabling the query cache using the "disable_query_cache" operation (setting
  index.requests.cache.enable to false) before querying in order to hit the
  concurrent search path more often. This is also what the esql parts of this
  track are doing
* introducing a "worker_threads_enabled" track parameter (true by default) that
  controls the "search.worker_threads_enabled" node parameter to be able to
  switch off concurrency for experiments and comparisons
@javanna
Copy link
Member

javanna commented Dec 11, 2023

introducing a "worker_threads_enabled" track parameter (true by default) that controls the "search.worker_threads_enabled" node parameter to be able to switch off concurrency for experiments and comparisons

I would rather disable parallelism for the query phase, otherwise you disable offloading to search workers thread entirely, for all phases, and that is a thing that we would do only in case something really really bad happens, to restore the behaviour to before ES even supported parallelism.

@cbuescher
Copy link
Member Author

I'm out for some time but handed this over to @carlosdelest who should be able to take the next steps.

@carlosdelest
Copy link
Member

@javanna here is a recent execution of this challenge with the work Christoph has put on this PR.

You can check there are no rejections, and that active search workers are maximized.

Is there anything else we should add to this challenge for checking that inter-segment parallelization behaves correctly?

@javanna
Copy link
Member

javanna commented Jan 16, 2024

I am good with the latest results.

@carlosdelest carlosdelest requested a review from a team January 16, 2024 16:20
Copy link
Member

@gareth-ellis gareth-ellis left a comment

Choose a reason for hiding this comment

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

LGTM

@carlosdelest carlosdelest merged commit e5d42c9 into elastic:master Jan 17, 2024
13 checks passed
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.

4 participants