-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(kafka): enqueue commit offset only once per batch process #14278
feat(kafka): enqueue commit offset only once per batch process #14278
Conversation
MaxBackoff: 5 * time.Second, | ||
MaxRetries: 0, // Retry infinitely | ||
}) | ||
backoff.Wait() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't this be the same (we don't need the manual step at the start before the backoff loop)?
func retryWithBackoff(ctx context.Context, fn func(attempts int) error) error {
backoff := backoff.New(ctx, backoff.Config{
MinBackoff: 100 * time.Millisecond,
MaxBackoff: 5 * time.Second,
MaxRetries: 0, // Retry infinitely
})
for backoff.Ongoing() {
err = fn(backoff.NumRetries())
if err == nil {
return nil
}
if !canRetry(err) {
return err
}
backoff.Wait()
}
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm actually avoiding the backoff creation for every record in case its all fine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might be over-optimization ?
Co-authored-by: George Robinson <[email protected]>
…na#14278) Co-authored-by: George Robinson <[email protected]>
What this PR does / why we need it:
This ensure we enqueue commit in ingester only once we have processed the batch and not when it was sent to the channel for processing which could cause dataloss if the ingester crashes in between
Which issue(s) this PR fixes:
Fixes https://github.com/grafana/loki-private/issues/1123
Special notes for your reviewer:
Checklist
CONTRIBUTING.md
guide (required)feat
PRs are unlikely to be accepted unless a case can be made for the feature actually being a bug fix to existing behavior.docs/sources/setup/upgrade/_index.md
production/helm/loki/Chart.yaml
and updateproduction/helm/loki/CHANGELOG.md
andproduction/helm/loki/README.md
. Example PRdeprecated-config.yaml
anddeleted-config.yaml
files respectively in thetools/deprecated-config-checker
directory. Example PR