读偏好maxStalenessSeconds
副本集成员可能会落后于由于网络拥塞、低磁盘吞吐量、长时间运行的操作等原因,主节点可能因这些问题而无法访问。读取偏好选项 maxStalenessSeconds
允许您指定从 辅助节点进行读取操作的最大复制延迟,或“陈旧度”。当辅助节点的估计陈旧度超过 maxStalenessSeconds
时,客户端将停止使用它进行读取操作。
重要
maxStalenessSeconds
读取偏好选项旨在用于从辅助节点读取且希望避免读取落后于主节点复制的辅助节点应用程序。例如,由于辅助节点与主节点之间的网络中断,辅助节点可能停止复制。在这种情况下,客户端应停止从辅助节点读取,直到管理员解决中断并辅助节点追赶上。
您可以使用以下读取偏好模式指定 maxStalenessSeconds
最大陈旧度与模式 主节点
不兼容,并且仅在选择读取操作时适用于集合并成员的 辅助节点
。
在选择具有 maxStalenessSeconds
的读取操作的服务器时,客户端通过比较辅助节点的最后写入时间与主节点的最后写入时间来估计每个辅助节点的陈旧度。然后客户端将读取操作定向到估计延迟小于或等于 maxStalenessSeconds
的辅助节点。
如果没有主节点,客户端使用具有最近写入的辅助节点进行比较。
默认情况下,没有最大陈旧度,客户端在选择读取操作的定向位置时不会考虑辅助节点的延迟。
您必须指定 90 秒或更长的 maxStalenessSeconds
值:指定更小的 maxStalenessSeconds
值将引发错误。客户端通过定期检查每个副本集成员的最新写入日期来估计辅助节点的陈旧度。由于这些检查不频繁,陈旧度估计是粗略的。因此,客户端无法强制执行小于 90 秒的 maxStalenessSeconds
值。