#include <mongocxx/v_noabi/mongocxx/read_preference.hpp>
Describes how MongoDB clients route read operations to the members of a replica set or sharded cluster.
- See also
-
|
enum class | read_mode : std::uint8_t |
| Determines which members in a replica set are acceptable to read from. More...
|
|
◆ read_mode
Determines which members in a replica set are acceptable to read from.
- Warning
- Read preference tags are not respected when the mode is set to primary.
-
All read preference modes except primary may return stale data because secondaries replicate operations from the primary with some delay. Ensure that your application can tolerate stale data if you choose to use a non-primary mode.
- See also
-
Enumerator |
---|
k_primary | Only read from a primary node.
|
k_primary_preferred | Prefer to read from a primary node.
|
k_secondary | Only read from secondary nodes.
|
k_secondary_preferred | Prefer to read from secondary nodes.
|
k_nearest | Read from the node with the lowest latency irrespective of state.
|
◆ read_preference() [1/5]
mongocxx::v_noabi::read_preference::read_preference |
( |
| ) |
|
◆ read_preference() [2/5]
mongocxx::v_noabi::read_preference::read_preference |
( |
read_mode | mode | ) |
|
◆ read_preference() [3/5]
◆ read_preference() [4/5]
mongocxx::v_noabi::read_preference::read_preference |
( |
read_preference const & | | ) |
|
◆ read_preference() [5/5]
◆ ~read_preference()
mongocxx::v_noabi::read_preference::~read_preference |
( |
| ) |
|
◆ hedge() [1/2]
Gets the current hedge document to be used for the read preference.
- Deprecated
- Hedged reads are deprecated in MongoDB Server version 8.0.
- Returns
- A hedge document if one was set.
◆ hedge() [2/2]
Sets the hedge document to be used for the read preference. Sharded clusters running MongoDB 4.4 or later can dispatch read operations in parallel, returning the result from the fastest host and cancelling the unfinished operations.
This may be an empty document or a document of the form { enabled: <boolean> }.
Hedged reads are automatically enabled in MongoDB 4.4+ when using a nearest
read preference. To explicitly enable or disable hedging, the hedge
document must be passed. An empty document uses server defaults to control hedging, but the enabled
key may be set to true
or false
to explicitly enable or disable hedged reads.
- Parameters
-
hedge | The hedge document to set. For example, the document { enabled: true }. |
- Deprecated
- Hedged reads are deprecated in MongoDB Server version 8.0.
- Returns
- A reference to the object on which this member function is being called. This facilitates method chaining.
◆ max_staleness() [1/2]
Returns the current max staleness setting for this read_preference.
- Returns
- The optionally current max staleness setting.
◆ max_staleness() [2/2]
read_preference & mongocxx::v_noabi::read_preference::max_staleness |
( |
std::chrono::seconds | max_staleness | ) |
|
Sets the max staleness setting for this read_preference. Secondary servers with an estimated lag greater than this value will be excluded from selection under modes that allow secondaries.
Max staleness must be at least 90 seconds, and also at least the sum (in seconds) of the client's heartbeatFrequencyMS and the server's idle write period, which is 10 seconds. For general use, 90 seconds is the effective minimum. If less, an exception will be thrown when an operation is attempted.
Max staleness may only be used with MongoDB version 3.4 or later. If used with an earlier version, an exception will be thrown when an operation is attempted.
- Note
- The max-staleness feature is designed to prevent badly-lagging servers from being selected. The staleness estimate is imprecise and shouldn't be used to try to select "up-to-date" secondaries.
- Parameters
-
max_staleness | The new max staleness setting. It must be positive. |
- Returns
- A reference to the object on which this member function is being called. This facilitates method chaining.
- Exceptions
-
◆ mode() [1/2]
read_mode mongocxx::v_noabi::read_preference::mode |
( |
| ) |
const |
◆ mode() [2/2]
Sets a new mode for this read_preference.
- Parameters
-
mode | The new read preference mode. |
- Returns
- A reference to the object on which this member function is being called. This facilitates method chaining.
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ tags() [1/3]
Sets or updates the tag set list for this read_preference.
- Returns
- The optionally set current tag set list.
- See also
-
◆ tags() [2/3]
Sets or updates the tag set list for this read_preference.
- Parameters
-
tag_set_list | Array of tag sets. |
- See also
-
- Returns
- A reference to the object on which this member function is being called. This facilitates method chaining.
◆ tags() [3/3]
Sets or updates the tag set list for this read_preference.
- Parameters
-
tag_set_list | Document representing the tag set list. |
- See also
-
- Returns
- A reference to the object on which this member function is being called. This facilitates method chaining.
◆ operator!=
◆ operator==
The documentation for this class was generated from the following file: