dlg99 commented on a change in pull request #1088: ISSUE #1086 (@bug 
W-4146427@) Client-side backpressure in netty (Fixes: 
io.netty.util.internal.OutOfDirectMemoryError under continuous heavy load)
URL: https://github.com/apache/bookkeeper/pull/1088#discussion_r168549487
 
 

 ##########
 File path: 
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/PendingAddOp.java
 ##########
 @@ -93,6 +95,7 @@ static PendingAddOp create(LedgerHandle lh, ByteBuf payload, 
AddCallback cb, Obj
         op.callbackTriggered = false;
         op.hasRun = false;
         op.requestTimeNanos = Long.MAX_VALUE;
+        op.allowFastFailOnBlockedWrite = false;
 
 Review comment:
   This is unrelated to client configuration and enabled in runtime per op. 
   This is a flag on the op which controls the behavior in case if netty 
channel is not writable:
   - If set it is false the op is pushed into the netty's buffer and 
non-writable status is bubbled up eventually forcing LedgerHandle to block and 
wait.
   - If set to true it means that LedgerHandle knew that underlying 
bookie/channel is not writable, waited, given up, and is ok with failing this 
quickly. I.e. write op in this case waits for writable bookies in WQ, times 
out, submits op with the flag. Requests to non-writable bookies fail 
immediately triggering ensemble change as usual.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on 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

Reply via email to