xintongsong commented on a change in pull request #10146: 
[FLINK-14188][runtime] TaskExecutor derive and register with default slot 
resource profile
URL: https://github.com/apache/flink/pull/10146#discussion_r354100474
 
 

 ##########
 File path: 
flink-runtime/src/main/java/org/apache/flink/runtime/clusterframework/TaskExecutorResourceUtils.java
 ##########
 @@ -526,7 +545,8 @@ private static CPUResource getCpuCores(final Configuration 
config) {
                        }
                        return new CPUResource(cpuCores);
                } else {
-                       return new 
CPUResource(config.getInteger(TaskManagerOptions.NUM_TASK_SLOTS));
+                       final BigDecimal defaultSlotFraction =  
getDefaultSlotFraction(config);
+                       return new 
CPUResource(BigDecimal.valueOf(1.0).divide(defaultSlotFraction, 16, 
RoundingMode.DOWN).doubleValue());
 
 Review comment:
   True, we should avoid the back and forth conversions.
   
   I would not say `CPUResource#create` is a factory method. The method is not 
static, and the reason we cannot make it static is that we use it in 
`Resource#merge/subtract/multiply` to create new instances of `Resource`'s 
subclasses without caring about the `name`.
   
   `CPUResource#create` is only used internally by its superclass `Resource`. 
Externally, only constructors are used. And I think here we can simply make 
`CPUResource(BigDecimal)` public to avoid the back and forth conversions.
   
   WDYT?

----------------------------------------------------------------
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

Reply via email to