@Override public Integer getValue() { int totalBuffers = 0; for (InternalResultPartition producedPartition : task.getInternalPartitions()) { totalBuffers += producedPartition.getNumberOfQueuedBuffers(); } return totalBuffers; } }
public void registerTask(Task task) throws IOException { final List<InternalResultPartition> resultPartitions = task.getInternalPartitions(); synchronized (lock) { if (isShutdown) { throw new IllegalStateException("NetworkEnvironment is shut down"); } for (final InternalResultPartition partition : resultPartitions) { setupPartition(partition); } // Setup the buffer pool for each buffer reader final SingleInputGate[] inputGates = task.getAllInputGates(); for (SingleInputGate gate : inputGates) { setupInputGate(gate); } } }
@Override public Float getValue() { float maxUsage = 0; for (InternalResultPartition internalResultPartition : task.getInternalPartitions()) { BufferPool bufferPool = internalResultPartition.getBufferPool(); int usedBuffers = bufferPool.bestEffortGetNumOfUsedBuffers(); int bufferPoolSize = bufferPool.getNumBuffers(); if (bufferPoolSize != 0) { float currentPoolUsage = ((float) usedBuffers) / bufferPoolSize; if (currentPoolUsage > maxUsage) { maxUsage = currentPoolUsage; } } } return maxUsage; } }
for (InternalResultPartition partition : task.getInternalPartitions()) { taskEventDispatcher.unregisterPartition(partition.getPartitionId()); partition.destroyBufferPool();