[FLINK-1505] Separate reader API from result consumption #428
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
@gyfora, can you please rebase on this branch and verify that everything is still working as expected for you?
This PR separates the reader API (record and buffer readers) from result consumption (input gate). The buffer reader was a huge component with mixed responsibilities both as the runtime component to set up input channels for intermediate result consumption and as a lower-level user API to consume buffers/events.
The separation makes it easier for users of the API (e.g. flink-streaming) to extend the handling of low-level buffers and events. Gyula's initial feedback confirmed this.
In view of FLINK-1568, this PR makes it also easier to test the result consumption logic for failure scenarios.
I will rebase #356 on this branch.