flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From NicoK <...@git.apache.org>
Subject [GitHub] flink pull request #4509: [FLINK-7406][network] Implement Netty receiver inc...
Date Thu, 28 Sep 2017 16:49:42 GMT
Github user NicoK commented on a diff in the pull request:

    https://github.com/apache/flink/pull/4509#discussion_r141667517
  
    --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/consumer/RemoteInputChannel.java
---
    @@ -390,7 +390,63 @@ public BufferProvider getBufferProvider() throws IOException {
     		return inputGate.getBufferProvider();
     	}
     
    -	public void onBuffer(Buffer buffer, int sequenceNumber) {
    +	/**
    +	 * Requests buffer from input channel directly for receiving network data.
    +	 * It should always return an available buffer in credit-based mode.
    +	 *
    +	 * @return The available buffer.
    +	 */
    +	public Buffer requestBuffer() {
    +		synchronized (availableBuffers) {
    +			return availableBuffers.poll();
    +		}
    +	}
    +
    +	/**
    +	 * Receives the backlog from producer's buffer response. If the number of available
    +	 * buffers is less than the backlog length, it will request floating buffers from buffer
    +	 * pool, and then notify unannounced credits to the producer.
    +	 *
    +	 * @param backlog The number of unsent buffers in the producer's sub partition.
    +	 */
    +	private void onSenderBacklog(int backlog) {
    +		int numRequestedBuffers = 0;
    +
    +		synchronized (availableBuffers) {
    +			// Important: the isReleased check should be inside the synchronized block.
    +			if (!isReleased.get()) {
    +				senderBacklog.set(backlog);
    +
    +				while (senderBacklog.get() > availableBuffers.size() && !isWaitingForFloatingBuffers.get())
{
    +					Buffer buffer = null;
    +					try {
    +						buffer = inputGate.getBufferPool().requestBuffer();
    +					} catch (IOException ex) {
    --- End diff --
    
    can we simply throw this `IOException` instead of wrapping it?


---

Mime
View raw message