captainzmc commented 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 see the PR and this change is necessary. +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]
