-
Notifications
You must be signed in to change notification settings - Fork 202
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
Resource Cluster Aware Scheduler Introduction #182
Conversation
/** | ||
* Factory for the Mantis Scheduler based on the JobDefinition | ||
*/ | ||
public interface MantisSchedulerFactory { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shall we keep interface naming with prefix "I"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not too fond of that convention, honestly. I don't mind following it if it's consistently followed. However, from whatever I can see from the current Mantis code, I don't think a lot of components follow that style.
} | ||
|
||
@Override | ||
public Receive createReceive() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what about when the scheduler is not master? should it stop scheduling requests etc..?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if the scheduler is not master, then the default ServiceLifecycle shuts down the master and waits for it to get restarted.
TaskExecutorGateway gateway = | ||
resourceCluster.getTaskExecutorGateway(event.getTaskExecutorID()).join(); | ||
|
||
TaskExecutorRegistration info = | ||
resourceCluster.getTaskExecutorInfo(event.getTaskExecutorID()).join(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are the two 'get' calls here involve any long IO ops for blocking concern?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, these should be pretty cheap. The only reason they get async responses is because they send fire-and-forget messages to the actors involved.
Context
This diff introduces a new scheduler based on resource cluster fundamentals.
Checklist
./gradlew build
compiles code correctly./gradlew test
passes all testsCONTRIBUTING.md