Skip to content

Merge branch nadav/feature-split-merges into main#6461

Open
nadav-govari wants to merge 23 commits into
mainfrom
nadav/merge-feature-split-merges
Open

Merge branch nadav/feature-split-merges into main#6461
nadav-govari wants to merge 23 commits into
mainfrom
nadav/merge-feature-split-merges

Conversation

@nadav-govari
Copy link
Copy Markdown
Collaborator

@nadav-govari nadav-govari commented May 21, 2026

Description

Merges the split compaction feature branch into main.

Split compaction is gated by an env var and a config flag on the indexer config. It's non-intrusive: when it's off, everything remains as is- indexer nodes spawn merge pipelines and merge their own splits.

Standalone compactors (mergers) is experimental for now, and opt-in. It's configurable and there will be additional changes to it as usage of it increases.

How was this PR tested?

Testing on a cluster receiving a moderate amount of traffic. Unit tests and integration tests as needed.

Make MergeSchedulerService optional
* Spawn merge pipeline from new compactor

* new line because adrien is annoyed about it

* comment
* Wire up compactor service

* lints
* Implement compactor pipeline update logic

* lints and fixes

* comments, lints, test fixes, other things
…xplicitly enabled (#6453)

* Revert to using existing merge flow when standalone compactors isnt explicitly enabled

* Pull out some configs
@nadav-govari nadav-govari changed the title Nadav/merge feature split merges Merge branch nadav/feature-split-merges into main May 21, 2026
@nadav-govari nadav-govari marked this pull request as ready for review May 21, 2026 14:58
@nadav-govari nadav-govari requested review from a team as code owners May 21, 2026 14:58
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e60210f3d1

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +237 to +238
self.indexer_config.enable_standalone_compactors =
self.enable_standalone_compactors.resolve(env_vars)?;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Preserve indexer standalone-compactor flag from config

build_and_validate unconditionally overwrites indexer.enable_standalone_compactors from a separate top-level ConfigValue, whose default is false; this means setting indexer.enable_standalone_compactors: true in the indexer section is silently ignored unless QW_ENABLE_STANDALONE_COMPACTORS (or the top-level field) is also set. In practice, operators enabling standalone compaction through the documented indexer config will still run in legacy mode and may never start external compactor flows.

Useful? React with 👍 / 👎.

Comment on lines +316 to +318
.wait_for(COMPACTION_SERVICE_DISCOVERY_TIMEOUT, |connections| {
!connections.is_empty()
})
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Validate planner endpoint, not just janitor presence

On compactor-only nodes, discovery succeeds as soon as any janitor connection exists, but this does not guarantee that the janitor exposes the compaction planner RPC (for example, janitor nodes running with standalone compactors disabled). In that case startup proceeds with a client to a node that cannot serve report_status, causing repeated runtime failures instead of a clear startup error.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant