@@ -51,6 +51,8 @@ public class OptimizingPlanner extends OptimizingEvaluator {
51
51
private final PartitionPlannerFactory partitionPlannerFactory ;
52
52
private List <TaskDescriptor > tasks ;
53
53
54
+ private List <AbstractPartitionPlan > actualPartitionPlans ;
55
+
54
56
public OptimizingPlanner (TableRuntime tableRuntime , ArcticTable table , double availableCore ) {
55
57
super (tableRuntime , table );
56
58
this .partitionFilter =
@@ -69,17 +71,17 @@ protected PartitionEvaluator buildEvaluator(String partitionPath) {
69
71
}
70
72
71
73
public Map <String , Long > getFromSequence () {
72
- return partitionPlanMap . entrySet () .stream ()
74
+ return actualPartitionPlans .stream ()
73
75
.collect (
74
76
Collectors .toMap (
75
- Map . Entry :: getKey , e -> (( AbstractPartitionPlan ) e . getValue ()). getFromSequence () ));
77
+ AbstractPartitionPlan :: getPartition , AbstractPartitionPlan :: getFromSequence ));
76
78
}
77
79
78
80
public Map <String , Long > getToSequence () {
79
- return partitionPlanMap . entrySet () .stream ()
81
+ return actualPartitionPlans .stream ()
80
82
.collect (
81
83
Collectors .toMap (
82
- Map . Entry :: getKey , e -> (( AbstractPartitionPlan ) e . getValue ()). getToSequence () ));
84
+ AbstractPartitionPlan :: getPartition , AbstractPartitionPlan :: getToSequence ));
83
85
}
84
86
85
87
@ Override
@@ -126,10 +128,10 @@ public List<TaskDescriptor> planTasks() {
126
128
evaluators .sort (Comparator .comparing (PartitionEvaluator ::getWeight , Comparator .reverseOrder ()));
127
129
128
130
double maxInputSize = MAX_INPUT_FILE_SIZE_PER_THREAD * availableCore ;
129
- List < PartitionEvaluator > inputPartitions = Lists .newArrayList ();
131
+ actualPartitionPlans = Lists .newArrayList ();
130
132
long actualInputSize = 0 ;
131
133
for (PartitionEvaluator evaluator : evaluators ) {
132
- inputPartitions .add (evaluator );
134
+ actualPartitionPlans .add (( AbstractPartitionPlan ) evaluator );
133
135
actualInputSize += evaluator .getCost ();
134
136
if (actualInputSize > maxInputSize ) {
135
137
break ;
@@ -138,9 +140,8 @@ public List<TaskDescriptor> planTasks() {
138
140
139
141
double avgThreadCost = actualInputSize / availableCore ;
140
142
List <TaskDescriptor > tasks = Lists .newArrayList ();
141
- for (PartitionEvaluator evaluator : inputPartitions ) {
142
- tasks .addAll (
143
- ((AbstractPartitionPlan ) evaluator ).splitTasks ((int ) (actualInputSize / avgThreadCost )));
143
+ for (AbstractPartitionPlan partitionPlan : actualPartitionPlans ) {
144
+ tasks .addAll (partitionPlan .splitTasks ((int ) (actualInputSize / avgThreadCost )));
144
145
}
145
146
if (!tasks .isEmpty ()) {
146
147
if (evaluators .stream ()
0 commit comments