captainzmc edited a comment on pull request #2835:
URL: https://github.com/apache/ozone/pull/2835#issuecomment-968054520


   > I see. We probably should limit the size (in bytes) of the buffer list but 
not the number of elements. We could use 
org.apache.ratis.util.DataBlockingQueue then.
   
   Thanks @szetszwo for the update. DataBlockingQueue may not solve this 
problem either. The root cause is that we don't clean up the bufferList until 
the block commit.  Regardless of whether we use DataBlockingQueue or 
BlockingQueue, we always need this queue to hold the entire block data(256MB).  
If the queue is not enough to fit into a block, the client will hang, because 
previously StreamBuffer will not be removed until commit block, new 
StreamBuffer cannot be put in.
   
   >DataBlockingQueue currently does not have a remove(..) method. We could 
easily add one. Filed https://issues.apache.org/jira/browse/RATIS-1434
   
   I had saw the PR and this change still helpful, we can merge it first.  +1
   


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

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to