aglinxinyuan opened a new pull request, #4441:
URL: https://github.com/apache/texera/pull/4441

   ### What changes were proposed in this PR?
   This PR adds backend support for restarting a workflow region after it has 
already completed or been terminated.
   
   This is needed for control-flow execution, where the same region may run 
multiple times. The changes clean up stale control-channel state, allow region 
execution state to be reinitialized, and make result URI registration 
idempotent across repeated region runs.
   
   We have two future use cases planned for this feature. In the for loop 
implementation, we need to restart the same region multiple times. For the 
py2udf work, we also need to call the same region by function call multiple 
times.
   
   - Allow `WorkflowExecution` to reinitialize an existing region execution.
   - Remove stale input/output control-channel state when terminating region 
workers.
   - Expose input/output gateways through `AsyncRPCClient` for region 
termination cleanup.
   - Make operator-port result URI insertion idempotent with 
`onConflict().doNothing()`.
   - Add tests for control-channel cleanup and duplicate result URI insertion.
   - Update test RPC helper for the new `AsyncRPCClient` constructor.
   
   ### Any related issues, documentation, discussions?
   Closes #4440
   
   ### How was this PR tested?
   sbt "WorkflowExecutionService/compile"
   sbt "WorkflowExecutionService/testOnly 
org.apache.texera.amber.engine.architecture.messaginglayer.NetworkInputGatewaySpec
 
org.apache.texera.web.resource.dashboard.user.workflow.WorkflowExecutionsResourceSpec"
   
   ### Was this PR authored or co-authored using generative AI tooling?
   No.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to