apache/seatunnel
View on GitHub[Docs][Core] Add Javadoc to TaskExecutionService inner classes (cooperative/blocking execution model)
Open
#10546 opened on Feb 28, 2026
help wanted
Description
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
- Fork the repo and create a branch
- Add Javadoc to the methods above
- Run
./mvnw spotless:applyand./mvnw -q -DskipTests verify - Open a PR with title:
[Docs][Core] Add Javadoc to TaskExecutionService inner classes