Urmi Mustafi created GOBBLIN-1982:
-------------------------------------

             Summary: Show a consistent flowExecutionId btwn Compilation & 
Execution 
                 Key: GOBBLIN-1982
                 URL: https://issues.apache.org/jira/browse/GOBBLIN-1982
             Project: Apache Gobblin
          Issue Type: Bug
          Components: gobblin-service
            Reporter: Urmi Mustafi
            Assignee: Abhishek Tiwari


The problem statement addressed in this issue is to determine a unique ID per 
execution that is agreed upon by all hosts, computed before returning any 
information back to user (about compilation or execution).

Upon receiving the request for an adhoc flow, the recipient host creates a 
flowExecutionId when initializing FlowSpec from config for non-scheduled flows 
(see 
[code|https://jarvis.corp.linkedin.com/codesearch/result/?name=FlowConfigResourceLocalHandler.java&path=gobblin-elr%2Fgobblin-restli%2Fgobblin-flow-config-service%2Fgobblin-flow-config-service-server%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fgobblin%2Fservice&reponame=linkedin%2Fgobblin-elr#276]).
 This flowExecutionId is returned to the user for tracking the flow status. 
This should not change later on.

Scheduled flows are fired upon each host at a different system clock time, so 
those ones need a consensus mechanism to coordinate between hosts. During 
multiActiveLeaseArbitration we update the flowExecutionId of a DagAction with 
an agreed upon value from the database to gain this consistency. However, this 
should only be done for scheduled flows before we any information externally 
about the flowExecutionId until later.

To address the problems above we 

1) skip flowExecutionId replacement for adhoc flows

2) remove a flow compilation and GTE emission before the consensus on 
flowExecutionId is removed.

There's no significant impact of removing this check. It will result in 
dagActions created for flows that may fail compilation later (after lease 
arbitration and before execution). Since we already compile the flow on 
accepting it, we are okay with a slight delay in failing a flow. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to