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]
