Skip to content

fix(inkless:migration): catch up replicas that are below the seal#598

Merged
jeqo merged 1 commit into
mainfrom
giuseppelillo/migration-catch-up-replication
May 18, 2026
Merged

fix(inkless:migration): catch up replicas that are below the seal#598
jeqo merged 1 commit into
mainfrom
giuseppelillo/migration-catch-up-replication

Conversation

@giuseppelillo

Copy link
Copy Markdown
Contributor

Schedule a catch-up ReplicaFetcher for diskless follower partitions when the local high watermark is below classicToDisklessStartOffset (the fetcher self-evicts once the follower's log passes the seal), and also create the local log on the fly for newly added replicas of already-migrated topics.

Schedule a catch-up ReplicaFetcher for diskless follower partitions
when the local high watermark is below classicToDisklessStartOffset
(the fetcher self-evicts once the follower's log passes the seal),
and also create the local log on the fly for newly added replicas of
already-migrated topics.

Copilot AI 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.

Pull request overview

This PR updates diskless follower handling during metadata delta application so migrated partitions with a local HW below the seal can catch up classic-era data, including newly added replicas that need a local log created on demand.

Changes:

  • Adds follower catch-up scheduling when highWatermark < classicToDisklessStartOffset.
  • Creates local logs for newly added replicas of already-migrated diskless topics.
  • Adds unit coverage for lagging HW, unset seal offsets, and newly added migrated replicas.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
core/src/main/scala/kafka/server/ReplicaManager.scala Extends diskless follower transition logic to create logs and schedule catch-up fetchers for migrated partitions.
core/src/test/scala/unit/kafka/server/ReplicaManagerTest.scala Adds tests and test helper injection for replica fetcher behavior around migrated diskless followers.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jeqo jeqo merged commit 327fcbc into main May 18, 2026
6 checks passed
@jeqo jeqo deleted the giuseppelillo/migration-catch-up-replication branch May 18, 2026 18:18
giuseppelillo added a commit that referenced this pull request May 28, 2026
Schedule a catch-up ReplicaFetcher for diskless follower partitions
when the local high watermark is below classicToDisklessStartOffset
(the fetcher self-evicts once the follower's log passes the seal),
and also create the local log on the fly for newly added replicas of
already-migrated topics.
giuseppelillo added a commit that referenced this pull request May 29, 2026
Schedule a catch-up ReplicaFetcher for diskless follower partitions
when the local high watermark is below classicToDisklessStartOffset
(the fetcher self-evicts once the follower's log passes the seal),
and also create the local log on the fly for newly added replicas of
already-migrated topics.
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.

3 participants