-
Notifications
You must be signed in to change notification settings - Fork 0
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
initial changes for yarn integration for dynamic scaling #1
base: temporal-dynamic-scaling
Are you sure you want to change the base?
initial changes for yarn integration for dynamic scaling #1
Conversation
…ulti-active DAG processing (apache#4074)
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.
good start!
...emporal/src/main/java/org/apache/gobblin/temporal/yarn/YarnServiceDynamicScalingManager.java
Outdated
Show resolved
Hide resolved
gobblin-temporal/src/main/java/org/apache/gobblin/temporal/dynamic/WorkforcePlan.java
Outdated
Show resolved
Hide resolved
...emporal/src/main/java/org/apache/gobblin/temporal/yarn/YarnServiceDynamicScalingManager.java
Outdated
Show resolved
Hide resolved
gobblin-temporal/src/main/java/org/apache/gobblin/temporal/yarn/YarnService.java
Outdated
Show resolved
Hide resolved
...emporal/src/main/java/org/apache/gobblin/temporal/yarn/YarnServiceDynamicScalingManager.java
Outdated
Show resolved
Hide resolved
...emporal/src/main/java/org/apache/gobblin/temporal/yarn/DynamicScalingYarnServiceManager.java
Outdated
Show resolved
Hide resolved
...emporal/src/main/java/org/apache/gobblin/temporal/yarn/DynamicScalingYarnServiceManager.java
Outdated
Show resolved
Hide resolved
...emporal/src/main/java/org/apache/gobblin/temporal/yarn/DynamicScalingYarnServiceManager.java
Outdated
Show resolved
Hide resolved
gobblin-temporal/src/main/java/org/apache/gobblin/temporal/yarn/DynamicScalingYarnService.java
Show resolved
Hide resolved
scalingDirectives.forEach(directive -> this.workforceStaffing.reviseStaffing( | ||
directive.getProfileName(), directive.getSetPoint(), directive.getTimestampEpochMillis()) | ||
); |
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.
remember: some ScalingDirective
s may be rejected by WorkforcePlan
(e.g. all kinds of WorkforcePlan::IllegalRevisionException
). accordingly, it's NOT safe to process them directly and make any presumptions about which to use. by contrast, it IS safe to iterate over StaffingDeltas
anyway, that may only be safer to perform inside requestNewContainersForStaffingDeltas
, once each requestContainersForWorkerProfile
succeeds
private synchronized void requestContainersForWorkerProfile(WorkerProfile workerProfile, int numContainers) { | ||
int containerMemoryMbs = workerProfile.getConfig().getInt(GobblinYarnConfigurationKeys.CONTAINER_MEMORY_MBS_KEY); | ||
int containerCores = workerProfile.getConfig().getInt(GobblinYarnConfigurationKeys.CONTAINER_CORES_KEY); | ||
long allocationRequestId = allocationRequestIdGenerator.getAndIncrement(); |
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 unclear on how these IDs are to be used... but wanting to verify it's OK to request multiple containers together w/ the same ID vs. having a unique ID for each container requested. given we ultimately may request N containers together but later want to decomm only a subset, I'd have thought per-container IDs to be clearer.
edit: I see, you're using merely to look up the config for the container. for that, yes per-request ID looks fine. I was imagining for correlating to guide which to terminate for scale-down. for that, we'll probably need per-container IDs.
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.
Yes for terminating or scaling down we will use container.getId() which is unique for every container.
gobblin-temporal/src/main/java/org/apache/gobblin/temporal/yarn/DynamicScalingYarnService.java
Outdated
Show resolved
Hide resolved
gobblin-temporal/src/main/java/org/apache/gobblin/temporal/yarn/YarnService.java
Outdated
Show resolved
Hide resolved
gobblin-temporal/src/main/java/org/apache/gobblin/temporal/yarn/YarnService.java
Outdated
Show resolved
Hide resolved
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.
should WorkforceStaffing
adjustment occur as part of the AMRMClientCallbackHandler
?
… with parser and `FsScalingDirectiveSource` (apache#4068)
…silon (apache#4076) where epsilon is the multi-active execution/lease consolidation period
…ve`s with parser
7273a0b
to
8a51f6c
Compare
Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA
Description
Tests
Commits