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

Adaptive processing #173

Open
nsoft opened this issue Feb 21, 2023 · 0 comments
Open

Adaptive processing #173

nsoft opened this issue Feb 21, 2023 · 0 comments
Milestone

Comments

@nsoft
Copy link
Owner

nsoft commented Feb 21, 2023

As a precursor to #115 we will want to ensure that the current node is optimizing for the rate limiting step. The basic task is to identify steps that are always busy, and then allow more threads to be applied to that step.

One thought is to monitor what percentage of wall clock time is vs time spent waiting to take an item from the step's queue. Where wall/wait is large compared to other steps, there is a need for more processing power on that step. We need to think about relationship to other steps and have a threshold, because in some cases it is the document source that is limiting, and nothing should be adjusted in that case. Limits to avoid uncontrolled addition of threads and awareness of the available processors etc are of course needed. In no case should we be adding threads if we already have 2x (?) the threads of the available processing cores.

The current work around for this if one can identify the step manually, is to create a plan with a RoundRobinRouter feeding multiple copies of the step which then funnel back to the remaining steps. The obvious downside is needing to re-design your processing repeatedly for performance tuning, and the fact that you would want to have a different plan depending on what hardware was underlying.

@nsoft nsoft added this to the 1.1 milestone Feb 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant