Skip to content

Conversation

Satbek
Copy link
Contributor

@Satbek Satbek commented Jul 8, 2025

Fix for TNT-1357.

  • Linearizable reads by default
    All ordinary reads to etcd (no wait) are now sent with quorum=true, guaranteeing the value comes from a majority node or fails fast.

  • Strict round-robin over endpoints

    Every request (reads, writes and long-polls) advances the internal cursor and is issued to the next endpoint in the list.
    A single request can therefore no longer monopolise the same minority node.

  • Long-polls (wait=true) unchanged except for rotation
    quorum=true is not added to wait requests (etcd rejects that combination).
    They still benefit from the new round-robin cursor: when the current long-poll completes, the next one goes to a different endpoint, ensuring we eventually reach a majority node.

  • Tests
  • Changelog
  • Documentation

Close #2342

@Satbek Satbek changed the title check quorum on every request implicitly check quorum on every get request implicitly Jul 9, 2025
@Satbek Satbek changed the title check quorum on every get request implicitly etcd-client: linearizable reads + round-robin endpoints fix stale leader map Jul 10, 2025
@Satbek Satbek requested review from a1div0, olegrok and vakhov July 10, 2025 13:01
Copy link
Contributor

@vakhov vakhov left a comment

Choose a reason for hiding this comment

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

Nice work! Left a few minor comments. Nothing blocking from my side.

Satbek and others added 2 commits July 11, 2025 11:44
Satbek and others added 3 commits July 11, 2025 13:22
@Satbek Satbek merged commit f3915cc into master Jul 11, 2025
47 of 52 checks passed
@Satbek Satbek deleted the tnt_1357 branch July 11, 2025 11:19
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.

Split-brain when etcd connectivity is fragmented: routers write to different masters after failover

4 participants