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_r354086571
########## 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. And for `CPUResource`, I guess what you mean is to avoid having public constructors and factory methods at the same time? We need a private constructor anyway if we want to use factory methods. And I'm not sure whether we need to describe the value type in the name of factory methods. We can simply have factory methods with different argument type, like `create(BigDecimal)` and `create(double)`. So the factory of double type stays the same name as the overridden methods in its super class. ---------------------------------------------------------------- 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: us...@infra.apache.org With regards, Apache Git Services