azagrebin 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_r291980296
##########
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),
+ resultPartitions);
+ return Arrays.asList(resultPartitions);
}
}
- public SingleInputGate[] createInputGates(
- String taskName,
- ExecutionAttemptID executionId,
+ @Override
+ public Collection<SingleInputGate> createInputGates(
+ ShuffleIOOwnerContext ownerContext,
PartitionProducerStateProvider
partitionProducerStateProvider,
- Collection<InputGateDeploymentDescriptor>
inputGateDeploymentDescriptors,
- MetricGroup parentGroup,
- MetricGroup inputGroup,
- MetricGroup buffersGroup) {
+ Collection<InputGateDeploymentDescriptor>
inputGateDeploymentDescriptors) {
synchronized (lock) {
- Preconditions.checkState(!isShutdown, "The
NetworkEnvironment has already been shut down.");
+ Preconditions.checkState(!isClosed, "The
NettyShuffleEnvironment has already been shut down.");
+
+ MetricGroup networkInputGroup =
ownerContext.getInputGroup();
+ @SuppressWarnings("deprecation")
+ InputChannelMetrics inputChannelMetrics = new
InputChannelMetrics(networkInputGroup, ownerContext.getParentGroup());
Review comment:
The gate creation loop will create `InputChannelMetrics` multiple times, I
would avoid this because `InputChannelMetrics` are shared by gates at the
moment.
----------------------------------------------------------------
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