zhijiangW commented on a change in pull request #8485: [FLINK-12555] Introduce 
an encapsulated metric group layout for shuffle API
URL: https://github.com/apache/flink/pull/8485#discussion_r291929491
 
 

 ##########
 File path: 
flink-runtime/src/main/java/org/apache/flink/runtime/io/network/NettyShuffleEnvironment.java
 ##########
 @@ -228,91 +211,111 @@ public void 
releasePartitions(Collection<ResultPartitionID> partitionIds) {
         * @return collection of partitions which still occupy some resources 
locally on this task executor
         * and have been not released yet.
         */
-       public Collection<ResultPartitionID> getUnreleasedPartitions() {
+       @Override
+       public Collection<ResultPartitionID> 
getPartitionsOccupyingLocalResources() {
                return resultPartitionManager.getUnreleasedPartitions();
        }
 
        // 
--------------------------------------------------------------------------------------------
        //  Create Output Writers and Input Readers
        // 
--------------------------------------------------------------------------------------------
 
-       public ResultPartition[] createResultPartitionWriters(
-                       String taskName,
-                       ExecutionAttemptID executionId,
-                       Collection<ResultPartitionDeploymentDescriptor> 
resultPartitionDeploymentDescriptors,
-                       MetricGroup outputGroup,
-                       MetricGroup buffersGroup) {
+       @Override
+       public ShuffleIOOwnerContext createShuffleIOOwnerContext(
+                       String ownerName,
+                       ExecutionAttemptID executionAttemptID,
+                       MetricGroup parentGroup) {
+               MetricGroup nettyGroup = 
createShuffleIOOwnerMetricGroup(checkNotNull(parentGroup));
+               return new ShuffleIOOwnerContext(
+                       checkNotNull(ownerName),
+                       checkNotNull(executionAttemptID),
+                       parentGroup,
+                       nettyGroup.addGroup(METRIC_GROUP_INPUT),
+                       nettyGroup.addGroup(METRIC_GROUP_OUTPUT));
+       }
+
+       @Override
+       public Collection<ResultPartition> createResultPartitionWriters(
+                       ShuffleIOOwnerContext ownerContext,
+                       Collection<ResultPartitionDeploymentDescriptor> 
resultPartitionDeploymentDescriptors) {
                synchronized (lock) {
-                       Preconditions.checkState(!isShutdown, "The 
NetworkEnvironment has already been shut down.");
+                       Preconditions.checkState(!isClosed, "The 
NettyShuffleEnvironment has already been shut down.");
 
                        ResultPartition[] resultPartitions = new 
ResultPartition[resultPartitionDeploymentDescriptors.size()];
                        int counter = 0;
                        for (ResultPartitionDeploymentDescriptor rpdd : 
resultPartitionDeploymentDescriptors) {
-                               resultPartitions[counter++] = 
resultPartitionFactory.create(taskName, executionId, rpdd);
+                               resultPartitions[counter++] = 
resultPartitionFactory.create(
+                                       ownerContext.getOwnerName(),
+                                       ownerContext.getExecutionAttemptID(),
+                                       rpdd);
                        }
 
-                       registerOutputMetrics(outputGroup, buffersGroup, 
resultPartitions);
-                       return resultPartitions;
+                       MetricGroup outputMetricGroup = 
ownerContext.getOutputGroup();
+                       registerOutputMetrics(
+                               config.isNetworkDetailedMetrics(),
+                               outputMetricGroup,
+                               
outputMetricGroup.addGroup(METRIC_GROUP_BUFFERS),
 
 Review comment:
   Might be better to cover all the details in `NettyShuffleMetricFactory`. I 
mean the logic of `outputMetricGroup.addGroup(METRIC_GROUP_BUFFERS)` here.

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

Reply via email to