Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Status

...

Page properties


...

...

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyFLINK-

...

27530

Release1.16


Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

...

Public Interfaces


Proposed Changes

We will split this JIRA into 3 tasks.

The first task: Ignore max buffers per channel when allocate buffer

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyFLINK-27522

The LocalBufferPool will be unavailable when the maxBuffersPerChannel is reached for this channel or availableMemorySegments.isEmpty.

If we request a memory segment from LocalBufferPool and the maxBuffersPerChannel is reached for this channel, we just ignore that and continue to allocate buffer while availableMemorySegments isn't empty in LocalBufferPool.

The second task: Adding the overdraft buffer

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyFLINK-26762

Adding the new configuration : taskmanager.network.memory.max-overdraft-buffers-per-gate, the default value is 5.

The LocalBufferPool will be unavailable when the maxBuffersPerChannel is reached for this channel or availableMemorySegments.isEmpty or numberOfRequestedOverdraftMemorySegments > 0.

If we request a memory segment, we try to allocate buffer from availableMemorySegments. If availableMemorySegments.isEmpty numberOfRequestedOverdraftMemorySegments < maxOverdraftBuffersPerGate, we will request the overdraftBuffer from NetworkBufferPool.

For return memory segment, we will return the overdraft first if numberOfRequestedOverdraftMemorySegments > 0.

The third task: Compatible with LegacySource

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyFLINK-27789

Since LegacySource does not have checkAvailable, LegacySource will use all overdraft buffers by default, this is not what we expected.

So we'll set overdraft=0 for the SourceStreamTask.

Compatibility, Deprecation, and Migration Plan

...

  • Test for apply for overdraft buffer when overdraft buffer is sufficient
  • Test for apply for overdraft buffer when overdraft buffer is insufficient
  • Checkpoint Duration Benchmark for enable overdraft buffer 

Rejected Alternatives

After discussing, we decided to use overdraft-buffer instead of reserve-buffer. For details, please refer to the mail list.