<!-- llms-explorer concept facts · https://llms-explorer.com/tree/overload-aware-remote-targeting-and-read-preference-fallback/ · pack 2026-10-29 · ~1307 tokens -->

# Overload-aware remote targeting and read-preference fallback

> Source-anchored research for Overload-aware remote targeting and read-preference fallback. Run status: COMPLETED.

Parent: [Read Preference](https://llms-explorer.com/tree/read-preference/) · 4 facets · 15 facts · page: https://llms-explorer.com/tree/overload-aware-remote-targeting-and-read-preference-fallback/

## How it works

- Overload retargeting is opt-in because primaryPreferred can select secondaries more often and expose applications to stale reads; secondaryPreferred can send reads to the primary more often. (high confidence) (verified as of 2026-09-20) — [source](https://jira.mongodb.org/browse/SERVER-121740)
- A PyMongo overload-retargeting test raced because secondaries were not necessarily discovered before the operation. Tests expecting a different replica-set target must establish discovery first. (low confidence) (verified as of 2026-04-15) — [source](https://jira.mongodb.org/browse/PYTHON-5798)
- When enabled, mongos can retry a primaryPreferred read on an eligible secondary after a retryable SystemOverloadedError from the primary, even if the primary remains reachable. (high confidence) (verified as of 2026-10-14) — [source](https://www.mongodb.com/docs/manual/reference/parameters.md)
- When enabled, mongos can retry a secondaryPreferred read on the primary when secondaries indicate overload. (medium confidence) (verified as of 2026-10-14) — [source](https://www.mongodb.com/docs/manual/reference/parameters.md)
- With the server flag disabled, retries do not avoid members merely because they signaled overload and may repeatedly target such a member. (low confidence) (verified as of 2026-10-14) — [source](https://www.mongodb.com/docs/manual/reference/parameters.md)

## Problems, failure modes and limitations

- Secondary replication is asynchronous, so increased secondary routing can expose reads to replication lag; enabling overload fallback does not remove the underlying staleness risk. (medium confidence) — [source](https://www.mongodb.com/docs/manual/core/read-preference.md)

## Comparisons and alternatives

- MongoDB 8.3 also introduced retry/backoff parameters for internal server-side clients between mongos and mongod; these accompany overload retargeting but control retry pacing rather than which member is preferred. (low confidence) (verified as of 2026-10-14) — [source](https://www.mongodb.com/docs/manual/release-notes/8.3.md)

## Facts and statements

- MongoDB 8.3 introduced overloadAwareServerSelectionEnabled to opt into avoiding members that recently returned SystemOverloadedError during retries targeting other servers in the cluster. (high confidence) (verified as of 2026-10-14) — [source](https://www.mongodb.com/docs/manual/release-notes/8.3.md)
- With overloadAwareServerSelectionEnabled=true, a router retrying a primary read that received a retryable SystemOverloadedError may choose an eligible secondary; the read-preference documentation limits this behavior to modes that can select multiple servers. (low confidence) (verified as of 2026-10-14) — [source](https://www.mongodb.com/docs/manual/core/read-preference.md)
- Driver enableOverloadRetargeting and server overloadAwareServerSelectionEnabled are separate controls. The driver specification says sharded clients already retarget across mongos instances on retryable errors regardless of that driver setting; mongos separately controls retargeting within shards. (medium confidence) (verified as of 2026-10-27) — [source](https://github.com/mongodb/specifications/blob/master/source/client-backpressure/client-backpressure.md)
- SystemOverloadedError identifies overload but does not by itself establish safe retryability. RetryableError provides the explicit safe-retry signal; overload retries should apply backoff with jitter. (high confidence) (verified as of 2026-10-27) — [source](https://www.mongodb.com/docs/atlas/overload-errors/)
- The client overload policy makes enableOverloadRetargeting an opt-in setting, separate from maxAdaptiveRetries; the C driver release notes expose both URI options. (high confidence) (verified as of 2026-10-27) — [source](https://github.com/mongodb/specifications/blob/master/source/client-backpressure/client-backpressure.md)
- MongoDB 8.3 introduced overloadAwareServerSelectionEnabled. Its read-preference documentation states that this server control is disabled by default. (medium confidence) (verified as of 2026-10-14) — [source](https://www.mongodb.com/docs/manual/reference/parameters.md)
- The server parameter governs overload-induced remote retries, including mongos requests to shard members and mongod remote reads during aggregation. It is not a general balancing policy for initial reads. (medium confidence) (verified as of 2026-10-14) — [source](https://www.mongodb.com/docs/manual/reference/parameters.md)
- Alibaba Cloud documents the flag for ApsaraDB for MongoDB 8.3, but its wording that a client automatically retries against a different node is broader than MongoDB's documented server-internal, retry-eligible scope. (medium confidence) (verified as of 2026-10-27) — [source](https://help.aliyun.com/en/mongodb/product-overview/features-of-mongodb-8-3)
