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 hotstart_threshold to flame.pool #32

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

DeemoONeill
Copy link

upon the concurrency exceeding the threshold a new node is added to the pool.

This allows for pre-empting load and is intended for usecases where a cold-start is costly, such as for machine learning models

I'm not 100% on the implementation on this. Do we would want to spawn the new runner, but then do the cond case as usual? That way the waiting job goes into the exisiting runner, and the new runner can spin up.

Also the new runner will most likely become the new min_runner which means potentially not utilising the previous min runner to it's maximum potential. Would this be an issue?

related to #30

upon exceeding the threshold a new node is added to the pool. This
allows for pre-empting load and is intended for usecases where a cold-start
is too costly, such as for machine learning models
@samharnack
Copy link

samharnack commented May 12, 2024

@DeemoONeill this is great! This is something I've wanted to contribute to for a while, just wasn't sure where to start. You've also raised questions that hadn't occurred to me. I was thinking of using behaviours or a protocol and passing in the module or MFA instead. This would allow for custom growth strategies and flexible configuration.

Good callout on min_runner, it feels like the growth strategy and work distribution need to be separate concerns. At the cost of adding an extra dependency, is this something that GenStage could be used for? FLAME becomes a producer, and each runner is a consumer.

Thank you for putting some time into this! I'd love to pair with you on this if you ever want another pair of eyes.

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.

None yet

2 participants