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

Limit number of pipelines per pipeliner #35

Open
turicas opened this issue Feb 23, 2013 · 0 comments
Open

Limit number of pipelines per pipeliner #35

turicas opened this issue Feb 23, 2013 · 0 comments

Comments

@turicas
Copy link
Contributor

turicas commented Feb 23, 2013

Currently pipeliner is greedy: as soon as router announces a new pipeline, it gets this pipeline to take care of.
This approach, for a first point of view, can lead to a greater throughput, but if we analyse it better, it is not a good thing to do, because:

  • Pipeliner's process will stop with MemoryError exception as soon as there are so many pipelines to use the maximum amount of memory allowed by the operating system;
  • As the list of pipelines in Pipeliner will be huge, it'll slow down Pipeliner's operation and can lead in delays to start new jobs, send messages of 'finished pipelines' etc.
  • We (maybe?) can have problems with huge queues on ZeroMQ (think in 1M pipelines finishing -- the amount of used memory of this queue and the time Pipeliner will 'stop' doing things just to process it).

So, the new approach should be like Broker's: limit the number of pipelines that Pipeliner takes care at a time. This number can be fixed or dynamic (dynamic is better, I think) and probably will be based on:

  • Number of workers in the cluster
  • Rate of finished pipelines
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