danny0405 opened a new pull request #2553: URL: https://github.com/apache/hudi/pull/2553
… the new writer ## What is the purpose of the pull request This is the #step 2 of RFC-24: https://cwiki.apache.org/confluence/display/HUDI/RFC+-+24%3A+Hoodie+Flink+Writer+Proposal Buffering data during one checkpoint when flush the buffer out all at a time is not resource friendly for streaming write. The more proper way it to cut the batches based on their real memory data buffer size (say, 128Mb), the writer always flushes the buffer out when its size reaches the configured threshold. Thus, after this change, one instant may span one (if every checkpoint succeeds) or more (if there are checkpoint failures) checkpoints. The instant only commits when there is a successful checkpoint. ## Brief change log - Modify the BaseFlinkCommitActionExecutor to keep the write handles explicitly, the write task can then decides when and how to roll over the underneath file handles - The StreamWriteOperatorCoordinator now commits the old instant and creates new one only if the checkpoint succeeds, thus, we can skip some failed checkpoints actually. ## Verify this pull request Added test cases. ## Committer checklist - [ ] Has a corresponding JIRA in PR title & commit - [ ] Commit message is descriptive of the change - [ ] CI is green - [ ] Necessary doc changes done or have another open PR - [ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA. ---------------------------------------------------------------- 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]
