wsry opened a new pull request #12993:
URL: https://github.com/apache/flink/pull/12993
## What is the purpose of the change
For current implementation of PipelinedSubpartition, empty Buffer consumes
credit, which means we need at lease one credit to handle the finished empty
Buffer without any data. We can remove and recycle the finished empty Buffer in
the queue when adding a new Buffer, after which, the reader does not need any
available credit to handle the finished empty buffer. For example, if the new
buffer is an event and the previous buffer is finished but without any data,
after it is removed, the reader is able to process the new added event without
any available credit.
## Brief change log
- Remove and recycle the finished empty Buffer in PipelinedSubpartition
when adding a new one
## Verifying this change
New test case PipelinedSubpartitionTest#testRemoveFinishedEmptyBuffer is
added to verify the change
## Does this pull request potentially affect one of the following parts:
- Dependencies (does it add or upgrade a dependency): (yes / **no**)
- The public API, i.e., is any changed class annotated with
`@Public(Evolving)`: (yes / **no**)
- The serializers: (yes / **no** / don't know)
- The runtime per-record code paths (performance sensitive): (yes / **no**
/ don't know)
- Anything that affects deployment or recovery: JobManager (and its
components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: (yes / **no** /
don't know)
- The S3 file system connector: (yes / **no** / don't know)
## Documentation
- Does this pull request introduce a new feature? (yes / **no**)
- If yes, how is the feature documented? (**not applicable** / docs /
JavaDocs / not documented)
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]