Anton Kalashnikov created FLINK-31610: -----------------------------------------
Summary: Refactoring of LocalBufferPool Key: FLINK-31610 URL: https://issues.apache.org/jira/browse/FLINK-31610 Project: Flink Issue Type: Improvement Components: Runtime / Network Affects Versions: 1.17.0 Reporter: Anton Kalashnikov FLINK-31293 bug highlighted the issue with the internal mutual consistency of different fields in LocalBufferPool. ex.: - `numberOfRequestedOverdraftMemorySegments` - `numberOfRequestedMemorySegments` - `availableMemorySegment` - `currentPoolSize` Most of the problem was fixed already(I hope) but it is a good idea to reorganize the code in such a way that all invariants between all fields inside will be clearly determined and difficult to break. As one example I can propose getting rid of numberOfRequestedOverdraftMemorySegments and using existing numberOfRequestedMemorySegments instead. That means: - the pool will be available when `!availableMemorySegments.isEmpty() && unavailableSubpartitionsCount == 0` - we don't request a new `ordinary` buffer when `numberOfRequestedMemorySegments >= currentPoolSize` but we request the overdraft buffer instead - `setNumBuffers` should work automatically without any changes I think we can come up with a couple of such improvements to simplify the code. -- This message was sent by Atlassian Jira (v8.20.10#820010)