davidzollo opened a new issue, #10546:
URL: https://github.com/apache/seatunnel/issues/10546

   Sub-issue of #10533
   
   ## Scope
   
   `TaskExecutionService` implements Zeta's dual-mode task execution: 
cooperative (work-stealing) for lightweight tasks and blocking (dedicated 
thread) for I/O-heavy tasks. Its inner classes — `CooperativeTaskWorker`, 
`RunBusWorkSupplier`, `BlockingWorker`, and `TaskGroupExecutionTracker` — 
implement this model but are entirely undocumented.
   
   ## File
   
   
`seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/TaskExecutionService.java`
   
   ## Methods to document
   
   | Class / Method | Line | What to explain |
   |----------------|------|-----------------|
   | `submitThreadShareTask(...)` | 210 | Routes cooperative (non-blocking) 
tasks into the shared work-stealing queue |
   | `submitBlockingTask(...)` | 235 | Launches a dedicated thread per blocking 
task; why blocking tasks must not share threads |
   | `deployTask(TaskGroupImmutableInformation)` | 276 | Deserializes task 
group; loads connector classes; starts thread-share or blocking tasks based on 
task type |
   | `notifyTaskStatusToMaster(...)` | 442 | Reports per-task status changes to 
`CoordinatorService` via Hazelcast operation |
   | **`CooperativeTaskWorker`** (class) | 731 | Work-stealing cooperative 
executor; `exclusiveTaskTracker` for single-task phases; loop structure |
   | `CooperativeTaskWorker.run()` | 753 | Task-stealing loop; transitions 
between exclusive and shared task execution; yield on empty queue |
   | `RunBusWorkSupplier.runNewBusWork(boolean)` | 849 | Creates new 
`CooperativeTaskWorker` threads on demand when queue pressure is detected |
   | `BlockingWorker.run()` | 667 | Dedicated-thread lifecycle: `init → call → 
done`; status notification on completion or exception |
   | `TaskGroupExecutionTracker.taskDone(Task)` | 928 | All-tasks-complete 
detection (countdown latch pattern); triggers group-level completion and 
resource cleanup |
   | `TaskGroupExecutionTracker.exception(Throwable)` | 901 | 
First-exception-wins: records the first failure and cancels all sibling tasks 
in the group |
   
   ## How to contribute
   
   1. Fork the repo and create a branch
   2. Add Javadoc to the methods above
   3. Run `./mvnw spotless:apply` and `./mvnw -q -DskipTests verify`
   4. Open a PR with title: `[Docs][Core] Add Javadoc to TaskExecutionService 
inner classes`


-- 
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