-
Notifications
You must be signed in to change notification settings - Fork 744
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
[GOBBLIN-2136] Byebye dag manager #4031
Conversation
1e9b843
to
4f71190
Compare
f1c070f
to
30d9638
Compare
4462811
to
bc27263
Compare
d257fc4
to
d775509
Compare
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.
this PR is a monster! (hard to believe I'm not even 3/4 done yet)
maybe github will give you a badge for the largest PR. I sure hope I get one for reviewing it ;p
that aside, this looks like great work, which I'm eager to incorporate into HEAD. I'll return to finish my first pass ASAP.
my biggest concern is you've clubbed together removing the DagMgr w/ reworking the REST APIs. if we somehow needed to revert one or the other change, they suddenly become inseparable.
changing public APIs like the REST one often requires care, so I'd definitely isolate that one. it will help maintainers as well as end-users to grasp when that change landed, which is harder to do if the commit message is this other one about removing the DM
public static final String JOB_START_SLA_TIME = GOBBLIN_SERVICE_DAG_PROCESSING_ENGINE_PREFIX + ConfigurationKeys.GOBBLIN_JOB_START_SLA_TIME; | ||
public static final String JOB_START_SLA_UNITS = GOBBLIN_SERVICE_DAG_PROCESSING_ENGINE_PREFIX + ConfigurationKeys.GOBBLIN_JOB_START_SLA_TIME_UNIT; | ||
public static final long DEFAULT_FLOW_SLA_MILLIS = TimeUnit.HOURS.toMillis(24); |
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.
three thoughts here:
- previously the property included the
.dagManager
segment:
// Default job start SLA time if configured, measured in minutes. Default is 10 minutes
// todo - rename "sla" -> "deadline", and move them to DagProcUtils
public static final String JOB_START_SLA_TIME = DAG_MANAGER_PREFIX + ConfigurationKeys.GOBBLIN_JOB_START_SLA_TIME;
should we continue to accept that legacy prop name so existing flow defs remain b/w compat?
-
as we introduce a new prop name, let's take the opportunity to align naming and semantics by calling it
start.deadline
, rather than SLA -
given that
.dagProcessingEngine
is as much impl. detail as.dagManager
, it may not belong in the customer-facing name.
gobblin-runtime/src/main/java/org/apache/gobblin/runtime/spec_catalog/FlowCatalog.java
Show resolved
Hide resolved
@@ -74,7 +74,7 @@ public abstract class BaseFlowToJobSpecCompiler implements SpecCompiler { | |||
// to these data structures. | |||
@Getter | |||
@Setter | |||
protected final Map<URI, TopologySpec> topologySpecMap; | |||
protected Map<URI, TopologySpec> topologySpecMap; |
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 didn't notice why this wouldn't still be final
. is a derived class assigning to it?
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.
gobblin-service/src/main/java/org/apache/gobblin/service/modules/flowgraph/Dag.java
Outdated
Show resolved
Hide resolved
public static final String PER_USER_QUOTA = ServiceConfigKeys.GOBBLIN_SERVICE_DAG_PROCESSING_ENGINE_PREFIX + "perUserQuota"; | ||
public static final String PER_FLOWGROUP_QUOTA = ServiceConfigKeys.GOBBLIN_SERVICE_DAG_PROCESSING_ENGINE_PREFIX + "perFlowGroupQuota"; | ||
public static final String USER_JOB_QUOTA_KEY = ServiceConfigKeys.GOBBLIN_SERVICE_DAG_PROCESSING_ENGINE_PREFIX + "defaultJobQuota"; |
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.
again, should we honor the old prop names for b/w compat?
also, when we devise a new name to deprecate the old one, let's avoid embedding impl-specific identifiers in what should otherwise be a user-level config option w/ clear and steady semantics
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.
at least in linkedin no one is using them, so i would prefer to remove them. and if someone outside them is using them, we would not know we can make the switch
gobblin-service/src/test/java/org/apache/gobblin/service/monitoring/GitConfigMonitorTest.java
Show resolved
Hide resolved
...lin-service/src/test/java/org/apache/gobblin/service/modules/orchestration/DagTestUtils.java
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.
is this the right class? isn't this more of a "JobSpecTest"?
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.
moved to DagUtilsTest
...lin-service/src/main/java/org/apache/gobblin/service/modules/orchestration/Orchestrator.java
Outdated
Show resolved
Hide resolved
.../main/java/org/apache/gobblin/service/modules/orchestration/DagManagementTaskStreamImpl.java
Outdated
Show resolved
Hide resolved
5194b07
to
a8c4203
Compare
a8c4203
to
9c99c27
Compare
gobblin-api/src/main/java/org/apache/gobblin/configuration/ConfigurationKeys.java
Outdated
Show resolved
Hide resolved
gobblin-api/src/main/java/org/apache/gobblin/service/ServiceConfigKeys.java
Outdated
Show resolved
Hide resolved
.../main/java/org/apache/gobblin/service/modules/orchestration/DagManagementTaskStreamImpl.java
Outdated
Show resolved
Hide resolved
...ervice/src/main/java/org/apache/gobblin/service/modules/orchestration/DagManagerMetrics.java
Show resolved
Hide resolved
...main/java/org/apache/gobblin/service/modules/orchestration/MySqlDagManagementStateStore.java
Outdated
Show resolved
Hide resolved
...ervice/src/main/java/org/apache/gobblin/service/modules/orchestration/proc/DagProcUtils.java
Outdated
Show resolved
Hide resolved
...va/org/apache/gobblin/service/modules/orchestration/proc/EnforceJobStartDeadlineDagProc.java
Outdated
Show resolved
Hide resolved
...lin-service/src/test/java/org/apache/gobblin/service/modules/orchestration/DagUtilsTest.java
Outdated
Show resolved
Hide resolved
...lin-service/src/test/java/org/apache/gobblin/service/modules/orchestration/DagUtilsTest.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.
great work so far! this looks very close
gobblin-api/src/main/java/org/apache/gobblin/configuration/ConfigurationKeys.java
Outdated
Show resolved
Hide resolved
gobblin-api/src/main/java/org/apache/gobblin/service/ServiceConfigKeys.java
Outdated
Show resolved
Hide resolved
...lin-service/src/main/java/org/apache/gobblin/service/modules/core/GobblinServiceManager.java
Outdated
Show resolved
Hide resolved
...lin-service/src/main/java/org/apache/gobblin/service/modules/core/GobblinServiceManager.java
Outdated
Show resolved
Hide resolved
...lin-service/src/main/java/org/apache/gobblin/service/modules/core/GobblinServiceManager.java
Outdated
Show resolved
Hide resolved
.../src/main/java/org/apache/gobblin/service/modules/utils/FlowCompilationValidationHelper.java
Outdated
Show resolved
Hide resolved
...e/src/main/java/org/apache/gobblin/service/modules/scheduler/GobblinServiceJobScheduler.java
Show resolved
Hide resolved
...ain/java/org/apache/gobblin/service/monitoring/DagManagementDagActionStoreChangeMonitor.java
Outdated
Show resolved
Hide resolved
...lin-service/src/main/java/org/apache/gobblin/service/modules/orchestration/Orchestrator.java
Show resolved
Hide resolved
...lin-service/src/main/java/org/apache/gobblin/service/modules/orchestration/Orchestrator.java
Outdated
Show resolved
Hide resolved
7eac51e
to
65a1e05
Compare
fd652f0
to
349f2b9
Compare
gobblin-api/src/main/java/org/apache/gobblin/configuration/ConfigurationKeys.java
Show resolved
Hide resolved
...service/src/main/java/org/apache/gobblin/service/monitoring/DagActionStoreChangeMonitor.java
Show resolved
Hide resolved
...service/src/main/java/org/apache/gobblin/service/monitoring/DagActionStoreChangeMonitor.java
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.
incredible work here on this enormous cleanup, arjun!
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
Now when we have developed the new GaaS architecture based on DagProcessingEngine, we do not need DagManager and related classes. This also enabled GaaS to work in a multi leader mode, so there is no need for the code that was there for standby hosts.
a)
Removed the code path for GOBBLIN_SERVICE_FLOW_CATALOG_LOCAL_COMMIT = false
Removed the code path for FORCE_LEADER = true
Removed the code path for MULTI_ACTIVE_EXECUTION_ENABLED = false
Removed the code path for MULTI_ACTIVE_SCHEDULER_ENABLED = false
Removed the code path for GOBBLIN_SERVICE_WARM_STANDBY_ENABLED_KEY = false
Removed the code path for DAG_PROC_ENGINE_ENABLED = false
b)
Removed DagManager
c)
Removed Optional from DagManagement, DagTaskStream, DagProcFactory, DagProcessingEngine, DagManagementStateStore, FlowLaunchHandler, DagActionReminderScheduler
d)
Codestyle changes suggested by IntelliJ
Tests
no code logic change, only updated the existing tests
Commits