Skip to content

Improvements from live testing#6404

Merged
nadav-govari merged 1 commit into
nadav/feature-split-mergesfrom
nadav/pr12
May 12, 2026
Merged

Improvements from live testing#6404
nadav-govari merged 1 commit into
nadav/feature-split-mergesfrom
nadav/pr12

Conversation

@nadav-govari
Copy link
Copy Markdown
Collaborator

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

Description

There were a number of observations made when testing.

  1. When deploying >2 compactors, the split cache becomes an impediment rather than an optimization. We end up with a bunch of splits on disk that we never end up using in a merge. Rather than fix the split cache, remove it (for now. I might come back and fix this down the road)

  2. The merge policy operations only produced one merge per level per call, which resulted in huge split backlogs buildings. We now construct as many merge operations as we can on every tick/

  3. The splits table wasnt sorted the way we needed, so our scans were expensive. Added an index to make this easier.

  4. Got rid of the scan cursor. We can do this naturally with a scan limit and a maturity greater than. We'll always fetch the <= 5000 oldest immature splits. As splits get merged and marked for deletion, the head will move naturally.

How was this PR tested?

Extensive testing on a test cluster that sees meaningful traffic, including a backfill of over 900k immature splits using the compactor architecture.

Comment thread quickwit/quickwit-compaction/src/planner/compaction_planner.rs
Comment thread quickwit/quickwit-compaction/src/planner/compaction_state.rs
@nadav-govari nadav-govari force-pushed the nadav/pr12 branch 2 times, most recently from 4a63122 to 175f802 Compare May 11, 2026 20:00
.with_split_state(SplitState::Published)
.retain_immature(OffsetDateTime::now_utc())
.with_update_timestamp_gte(self.cursor);
.sort_by_maturity_timestamp()
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

investigate sending NOT IN in flight merges

Base automatically changed from nadav/pr11 to nadav/feature-split-merges May 12, 2026 14:51
Refactor migrations
@nadav-govari nadav-govari merged commit a289fa9 into nadav/feature-split-merges May 12, 2026
4 checks passed
@nadav-govari nadav-govari deleted the nadav/pr12 branch May 12, 2026 15:06
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.

2 participants