Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

readPreference maxStalenessSeconds

Os membros do conjunto de réplicas podem ficar para trás em relação ao principal devido a congestionamento da rede, baixa taxa de transferência de disco, operações de longa duração etc. A opção de preferência de leitura maxStalenessSeconds permite especificar um atraso máximo de replicação, ou "obsoleto", para leituras de secundários. Quando a desatualização estimada de um secundário excede maxStalenessSeconds, o cliente para de usá-lo para operações de leitura.

Importante

A opção de preferência de leitura maxStalenessSeconds é destinada a aplicativos que leem de arquivos secundários e desejam evitar a leitura de um secundário que está muito atrasado na replicação das gravações primárias. Por exemplo, uma secundária pode parar de replicar devido a uma interrupção de rede entre si e a primária. Nesse caso, o cliente deve parar de ler o secundário até que um administrador resolva a interrupção e o secundário seja recuperado.

Para usar maxStalenessSeconds, todas as instâncias do MongoDB em seu sistema devem usar o MongoDB 3.4 ou posterior. Se alguma instância estiver em uma versão anterior do MongoDB, o driver ou mongos gerará um erro.

Observação

A partir da versão 4.2, o MongoDB introduz um mecanismo de controle de fluxo para controlar a taxa na qual o primário aplica suas gravações com o objetivo de manter o atraso majority committed abaixo de um valor máximo especificado.

Você pode especificar maxStalenessSeconds com os seguintes modos de preferência de leitura:

A obstrução máxima não é compatível com o modo primary e só se aplica ao selecionar um membro secundário de um conjunto para uma operação de leitura.

Ao selecionar um servidor para uma operação de leitura com maxStalenessSeconds, os clientes estimam a desatualização de cada secundário comparando a última gravação do secundário com a do primário. Em seguida, o cliente direcionará a operação de leitura para um secundário cujo atraso estimado é menor ou igual a maxStalenessSeconds.

Se não houver um primário, o cliente usa o secundário com a gravação mais recente para comparar.

Por padrão, não há desatualização máxima e os clientes não considerarão o atraso do secundário ao escolher para onde direcionar uma operação de leitura.

Você deve especificar um valor de maxStalenessSeconds de 90 segundos ou mais: especificar um valor menor de maxStalenessSeconds aumentará um erro. Os clientes estimam a obsolescência dos secundários verificando periodicamente a data de gravação mais recente de cada membro do conjunto de réplicas. Como essas verificações não são frequentes, a estimativa de obsolescência é aproximada. Assim, os clientes não podem impor um valor de maxStalenessSeconds de menos de 90 segundos.

← Conjuntos de tags