Skip to content

Conversation

acogoluegnes
Copy link
Contributor

A quorum queue tries to repair its record in a tick handler. This can happen during a network partition and the metadata store may itself be unavailable, making the update likely to time out.

The default metadata store timeout is usually higher than the tick interval, so the tick handler may be stuck during several ticks. The record takes some time to be updated (timeout + tick interval, 30 + 5 seconds by default), significantly longer than it takes the metadata store to trigger an election and recover.

Client applications may rely on the quorum queue topology to connect to an appropriate node, so making the system reflect the actual topology faster is important to them.

This commit makes the record update operations use a timeout 1-second lower than the tick interval. The tick handler process should finish earlier in case of metadata datastore unavailability and it should not take more than a couple of ticks once the datastore is available to update the record.

@acogoluegnes acogoluegnes added this to the 4.3.0 milestone Oct 3, 2025
@acogoluegnes acogoluegnes force-pushed the use-timeout-for-leader-record-repair branch from 5b2b01e to 183aaa1 Compare October 3, 2025 12:42
@acogoluegnes acogoluegnes marked this pull request as ready for review October 3, 2025 15:12
Copy link
Collaborator

@dumbbell dumbbell left a comment

Choose a reason for hiding this comment

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

Two comments about type specs, otherwise it looks good to me.

@acogoluegnes acogoluegnes force-pushed the use-timeout-for-leader-record-repair branch from 183aaa1 to 489ee8b Compare October 6, 2025 07:23
A quorum queue tries to repair its record in a tick handler. This can
happen during a network partition and the metadata store may itself be
unavailable, making the update likely to time out.

The default metadata store timeout is usually higher than the tick
interval, so the tick handler may be stuck during several ticks. The
record takes some time to be updated (timeout + tick interval, 30 + 5
seconds by default), significantly longer than it takes the metadata
store to trigger an election and recover.

Client applications may rely on the quorum queue topology to connect to
an appropriate node, so making the system reflect the actual topology
faster is important to them.

This commit makes the record update operations use a timeout 1-second
lower than the tick interval. The tick handler process should finish
earlier in case of metadata datastore unavailability and it should not
take more than a couple of ticks once the datastore is available to
update the record.
@acogoluegnes acogoluegnes force-pushed the use-timeout-for-leader-record-repair branch from 489ee8b to 8387d73 Compare October 6, 2025 08:43
@acogoluegnes acogoluegnes merged commit 3f719d5 into main Oct 6, 2025
576 of 577 checks passed
@acogoluegnes acogoluegnes deleted the use-timeout-for-leader-record-repair branch October 6, 2025 09:28
acogoluegnes added a commit that referenced this pull request Oct 6, 2025
Use tick-related timeout to repair leader record (backport #14672)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants