Skip to content

feat(distributors): Use a pool of worker to push to ingesters. - #14245

Merged
cyriltovena merged 5 commits into
mainfrom
worker-push-ingester
Sep 26, 2024
Merged

feat(distributors): Use a pool of worker to push to ingesters.#14245
cyriltovena merged 5 commits into
mainfrom
worker-push-ingester

Conversation

@cyriltovena

Copy link
Copy Markdown
Contributor

What this PR does / why we need it:

This introduce a pool to push to ingesters to avoid spawning a new goroutine each time and release go runtime scheduler.

Which issue(s) this PR fixes:
Fixes #

Special notes for your reviewer:

Checklist

  • Reviewed the CONTRIBUTING.md guide (required)
  • Documentation added
  • Tests updated
  • Title matches the required conventional commits format, see here
    • Note that Promtail is considered to be feature complete, and future development for logs collection will be in Grafana Alloy. As such, feat PRs are unlikely to be accepted unless a case can be made for the feature actually being a bug fix to existing behavior.
  • Changes that require user attention or interaction to upgrade are documented in docs/sources/setup/upgrade/_index.md
  • For Helm chart changes bump the Helm chart version in production/helm/loki/Chart.yaml and update production/helm/loki/CHANGELOG.md and production/helm/loki/README.md. Example PR
  • If the change is deprecating or removing a configuration option, update the deprecated-config.yaml and deleted-config.yaml files respectively in the tools/deprecated-config-checker directory. Example PR
@github-actions github-actions Bot added the type/docs Issues related to technical documentation; the Docs Squad uses this label across many repositories label Sep 24, 2024
Comment thread pkg/distributor/distributor.go Outdated

func (d *Distributor) running(ctx context.Context) error {
defer func() {
close(d.ingesterTasks)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not 100% sure, but I think it might be possible for this to cause a panic 🤔 If we are in the middle of a Distributor.Push() call when the context gets cancelled, we might close d.ingesterTasks here right before we try to add to it here:

d.ingesterTasks <- pushIngesterTask{

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change a bit the shutdown logic.

@cyriltovena
cyriltovena marked this pull request as ready for review September 24, 2024 13:52
@cyriltovena
cyriltovena requested a review from a team as a code owner September 24, 2024 13:52

@chaudum chaudum left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@cyriltovena
cyriltovena merged commit f80d68a into main Sep 26, 2024
@cyriltovena
cyriltovena deleted the worker-push-ingester branch September 26, 2024 08:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/M type/docs Issues related to technical documentation; the Docs Squad uses this label across many repositories

3 participants