Skip to content
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

chore(blooms)!: Remove bloom compactor component #13969

Merged
merged 8 commits into from
Aug 29, 2024

Conversation

chaudum
Copy link
Contributor

@chaudum chaudum commented Aug 27, 2024

What this PR does / why we need it:

This commit removes the code related to the bloom compactor which is superseded by the bloom planner and builders.

A handful of CLI arguments changed their prefixes from -bloom-compactor.* to -bloom-build.*.

Special notes for your reviewer:

✔️ Part of #13957

📔 Documentation update #13965

⚠️ Merging this PR is currently blocked by the fact that removing the bloom compactor is removing the blooms write path from the backend target of the simple scalable deployment.
It does not mean that adding planner/builder to the backend target needs to be part of this PR, but there should be a clear path how this is going to be implemented to have a path forward (PoC)

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 Aug 27, 2024
This commit removes the code related to the bloom compactor which is
superseded by the bloom planner and builders.

A handful of CLI arguments changed their prefixes from
`-bloom-compactor.*` to `-bloom-build.*`.

Part of #13957

Documentation update #13965

Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
…ponent

Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
@chaudum chaudum force-pushed the chaudum/remove-bloom-compactor branch from 194f560 to a4b4018 Compare August 27, 2024 14:45
Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
@chaudum chaudum marked this pull request as ready for review August 29, 2024 09:13
@chaudum chaudum requested a review from a team as a code owner August 29, 2024 09:13
@chaudum chaudum changed the title chore(blooms): Remove bloom compactor component chore(blooms)!: Remove bloom compactor component Aug 29, 2024
BloomCompactorEnabled bool `yaml:"bloom_compactor_enable_compaction" json:"bloom_compactor_enable_compaction" category:"experimental"`
BloomCompactorMaxBlockSize flagext.ByteSize `yaml:"bloom_compactor_max_block_size" json:"bloom_compactor_max_block_size" category:"experimental"`
BloomCompactorMaxBloomSize flagext.ByteSize `yaml:"bloom_compactor_max_bloom_size" json:"bloom_compactor_max_bloom_size" category:"experimental"`
BloomBuildMaxBuilders int `yaml:"bloom_build_max_builders" json:"bloom_build_max_builders" category:"experimental"`
Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks for making these changes!

@chaudum chaudum merged commit b75eacc into main Aug 29, 2024
61 checks passed
@chaudum chaudum deleted the chaudum/remove-bloom-compactor branch August 29, 2024 11:28
pascal-sochacki pushed a commit to pascal-sochacki/loki that referenced this pull request Aug 29, 2024
**What this PR does / why we need it**:

This commit removes the code related to the bloom compactor which is superseded by the bloom planner and builders.

A handful of CLI arguments of per-tenant settings changed their prefix from `-bloom-compactor.*` to `-bloom-build.*`. Other settings for the compactor component itself, also prefixed with `-bloom-compactor.*` were removed. See upgrade docs for further information.

**Special notes for your reviewer**:

:heavy_check_mark: Part of grafana#13957

📔 Documentation update grafana#13965

⚠️ Integrating the bloom planner and builder into the `backend` target is done in a follow-up PR.

---

Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
pascal-sochacki pushed a commit to pascal-sochacki/loki that referenced this pull request Aug 29, 2024
**What this PR does / why we need it**:

This commit removes the code related to the bloom compactor which is superseded by the bloom planner and builders.

A handful of CLI arguments of per-tenant settings changed their prefix from `-bloom-compactor.*` to `-bloom-build.*`. Other settings for the compactor component itself, also prefixed with `-bloom-compactor.*` were removed. See upgrade docs for further information.

**Special notes for your reviewer**:

:heavy_check_mark: Part of grafana#13957

📔 Documentation update grafana#13965

⚠️ Integrating the bloom planner and builder into the `backend` target is done in a follow-up PR.

---

Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
pascal-sochacki pushed a commit to pascal-sochacki/loki that referenced this pull request Aug 29, 2024
**What this PR does / why we need it**:

This commit removes the code related to the bloom compactor which is superseded by the bloom planner and builders.

A handful of CLI arguments of per-tenant settings changed their prefix from `-bloom-compactor.*` to `-bloom-build.*`. Other settings for the compactor component itself, also prefixed with `-bloom-compactor.*` were removed. See upgrade docs for further information.

**Special notes for your reviewer**:

:heavy_check_mark: Part of grafana#13957

📔 Documentation update grafana#13965

⚠️ Integrating the bloom planner and builder into the `backend` target is done in a follow-up PR.

---

Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
chaudum added a commit that referenced this pull request Sep 2, 2024
…#13997)

Previously, the bloom compactor component was part of the `backend` target in the Simple Scalable Deployment (SSD) mode. However, the bloom compactor was removed (#13969) in favour of planner and builder, and therefore also removed from the backend target.

This PR adds the planner and builder components to the backend target so it can continue building blooms if enabled.

The planner needs to be run as singleton, therefore there must only be one instance that creates tasks for the builders, even if multiple replicas of the backend target are deployed.
This is achieved by leader election through the already existing index gateway ring in the backend target. The planner leader is determined by the ownership of the leader key. Builders connect to the planner leader to pull tasks.

----

Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
grafanabot pushed a commit that referenced this pull request Sep 10, 2024
…#13997)

Previously, the bloom compactor component was part of the `backend` target in the Simple Scalable Deployment (SSD) mode. However, the bloom compactor was removed (#13969) in favour of planner and builder, and therefore also removed from the backend target.

This PR adds the planner and builder components to the backend target so it can continue building blooms if enabled.

The planner needs to be run as singleton, therefore there must only be one instance that creates tasks for the builders, even if multiple replicas of the backend target are deployed.
This is achieved by leader election through the already existing index gateway ring in the backend target. The planner leader is determined by the ownership of the leader key. Builders connect to the planner leader to pull tasks.

----

Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
(cherry picked from commit bf60455)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature/blooms size/XXL type/docs Issues related to technical documentation; the Docs Squad uses this label across many repositories
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants