...
Now these two SlotManager have some duplicated codes(eg, the delay check of checkResourceRequirements ) and some similar component names(eg, TaskManagerTracker, TaskExecutorManager). This causes duplicate development of features (, such as Make ResourceActions declarative).
This FLIP aims to unify the implementation of SlotManager. Since FineGrainedSlotManager has almost all the capability of DeclarativeSlotManager, we will implement all the lacks of FineGrainedSlotManager and enable it by default.
...
Overview of FineGrainedSlotManager and DeclarativeSlotManager
Functionality supports
functionality | FineGrainedSlotManager | DeclarativeSlotManager |
---|---|---|
Allocate new task managers when resource not enough | YES | YES |
Release idle task managers if there are no tasks/resultPartitions | YES | YES |
Keep some redundant task managers | NO | YES |
Max limitations of slots number | YES | YES |
Filter out blocked resources | YES | YES |
Track requirements of multiple jobs | YES | YES |
Fulfill requirements by evenly strategy | NO | YES |
Reclaim inactive slots when job finished | NO | YES |
Different slot resources in the same task manager | YES | NO |
sub-components
DeclarativeSlotManager
...
The redundant task managers are used to speed up failover. The .
FineGrainedSlotManager has reserved the interface of heterogeneous task managers, but there are only one implementation which will requests task managers in same resources currently. Therefore, the current redundant task managers will not consider heterogeneity. This could be considered in detail when we decide to support heterogeneous task managers.
The logic in FineGrainedSlotManager should be:
...