Skip to content

Add dedicated network configs#201

Merged
fvaleri merged 2 commits into
showuon:cl3from
fvaleri:net-cfgs
Jun 16, 2026
Merged

Add dedicated network configs#201
fvaleri merged 2 commits into
showuon:cl3from
fvaleri:net-cfgs

Conversation

@fvaleri

@fvaleri fvaleri commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

Mirror fetcher threads (MirrorFetcherThread + MirrorSourceSender) previously shared all fetch and socket configs with internal replication (ReplicaFetcherThread). This meant cross-cluster mirroring could not be tuned independently. For example, a mirror fetching from a remote datacenter with higher latency could not use a longer socket timeout without also affecting intra-cluster replication.

This patch adds 7 new per-mirror configs:

  • mirror.fetch.wait.max.ms = 1000
  • mirror.fetch.backoff.ms = 1000
  • mirror.fetch.min.bytes = 1
  • mirror.fetch.response.max.bytes = 10485760
  • mirror.fetch.max.bytes = 1048576
  • mirror.socket.timeout.ms = 30000
  • mirror.socket.receive.buffer.bytes = 65536

Running fetcher threads pick up new values when they are recreated (e.g., after leader change or mirror restart), not while running. Broker-level defaults can be set in server.properties but require a restart, same as the replica equivalents.

@fvaleri fvaleri requested a review from showuon June 15, 2026 06:21
@showuon showuon requested review from OmniaGM and gaurav-narula June 16, 2026 02:48

@showuon showuon left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

LGTM!

@fvaleri

fvaleri commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator Author

@showuon Did some ClusterMirrorConfig refactoring to reuse existing constants where appropriate and also updated the KIP to list only new properties.

STs are good:

================================================================================
SESSION REPORT (ALL TESTS)
ducktape version: 0.14.0
session_id:       2026-06-16--001
run time:         20 minutes 0.032 seconds
tests run:        24
passed:           24
flaky:            0
failed:           0
ignored:          0
================================================================================

Mirror fetcher threads (MirrorFetcherThread + MirrorSourceSender)
previously shared all fetch and socket configs with internal
replication (ReplicaFetcherThread). This meant cross-cluster
mirroring could not be tuned independently. For example, a
mirror fetching from a remote datacenter with higher latency
could not use a longer socket timeout without also affecting
intra-cluster replication.

This patch adds 7 new per-mirror configs:

- mirror.fetch.wait.max.ms = 1000
- mirror.fetch.backoff.ms = 1000
- mirror.fetch.min.bytes = 1
- mirror.fetch.response.max.bytes = 10485760
- mirror.fetch.max.bytes = 1048576
- mirror.socket.timeout.ms = 30000
- mirror.socket.receive.buffer.bytes = 65536

Running fetcher threads pick up new values when they are recreated
(e.g., after leader change or mirror restart), not while running.
Broker-level defaults can be set in server.properties but require
a restart, same as the replica equivalents.

Signed-off-by: Federico Valeri <fedevaleri@gmail.com>
Signed-off-by: Federico Valeri <fedevaleri@gmail.com>

@showuon showuon left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

LGTM!

@fvaleri fvaleri merged commit df80f37 into showuon:cl3 Jun 16, 2026
1 check failed
@fvaleri fvaleri deleted the net-cfgs branch June 16, 2026 12:17
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