Skip to content

[Docs][Core] Add Javadoc to TaskExecutionService inner classes (cooperative/blocking execution model) #10546

@davidzollo

Description

@davidzollo

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions