use lower of configure timeout and time till midnight #15
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.
when key_prefix in sync have
date=%F
at mid night a new batch is started and old batch stop getting new data.if old batch is not full (due to size) it will wait for timeout secs before it is uploaded.
till then it keeps the underlying disk buffer files. since all disk buffer for a sink is shared and behave as a sequential tape and ack pointer does not move (because previous day buffer is not uploaded) it hold all requests in disk buffer even some recent batch have been uploaded. a disk buffer full trigger block in full and request timeout happens.
in this PR we set the batch timeout to either configured 180s or close to midnight (midnight + 10 sec) which ever is lower. this flushes the previous day buffer quickly and do not cause disk buffer full and blocking and request timeout due to that.
tested in staging-aws-us-west-2-general1 with manual deployment. no midnight drop seen.
logs