xintongsong commented on a change in pull request #8841:
[FLINK-12765][coordinator] Bookkeeping of available resources of allocated
slots in SlotPool
URL: https://github.com/apache/flink/pull/8841#discussion_r297465713
##########
File path:
flink-core/src/main/java/org/apache/flink/api/common/resources/Resource.java
##########
@@ -73,12 +73,35 @@ public Resource merge(Resource other) {
case AGGREGATE_TYPE_SUM:
default:
- aggregatedValue = this.value + other.value;
+ aggregatedValue = value + other.value;
}
return create(aggregatedValue, resourceAggregateType);
}
+ public Resource subtract(Resource other) {
+ Preconditions.checkArgument(getClass() == other.getClass(),
"Subtract with different resource resourceAggregateType");
+ Preconditions.checkArgument(this.name.equals(other.name),
"Subtract with different resource name");
+ Preconditions.checkArgument(this.resourceAggregateType ==
other.resourceAggregateType, "Subtract with different aggregate
resourceAggregateType");
+ Preconditions.checkArgument(this.value >= other.value, "Try to
subtract a larger resource from this one. ");
+
+ final double subtractedValue;
+ switch (resourceAggregateType) {
+ case AGGREGATE_TYPE_MAX:
+ // From the perspective of resource matching,
if aggregation type is max,
+ // subtracting a value less than the current
value should not decrease the
+ // ability of the original resource.
+ subtractedValue = value;
+ break;
Review comment:
I think we need a TODO or warning here for cases that the subtrahend equals
to the minuend.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services