Page MenuHomePhabricator

Instead of retrying safe reads 3 times, retry each eligible service once
ClosedPublic

Authored by epriestley on Sep 3 2019, 5:41 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, May 5, 3:28 PM
Unknown Object (File)
Sat, Apr 26, 5:52 PM
Unknown Object (File)
Tue, Apr 22, 2:24 PM
Unknown Object (File)
Fri, Apr 18, 5:21 AM
Unknown Object (File)
Thu, Apr 17, 2:22 PM
Unknown Object (File)
Mon, Apr 14, 9:40 AM
Unknown Object (File)
Apr 6 2025, 6:33 PM
Unknown Object (File)
Apr 4 2025, 6:18 AM
Subscribers
None

Details

Summary

Ref T13286. When retrying a read request, keep retrying as long as we have canididate services. Since we consume a service with each attempt, there's no real reason to abort early, and trying every service allows reads to always succeed even if (for example) 8 nodes of a 16-node cluster are dead because of a severed network link between datacenters.

Test Plan

Ran git pull in a clustered repository with an up node and a down node; saw retry count dynamically adjust to available node count.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable