devterview_$ iniciar simulação

Write concern e read preference

DifícilSêniorReplicação

Pergunta

O que `write concern` e `read preference` controlam num MongoDB replicado, e qual o trade-off?

Resposta esperada

Num replica set (primário + secundários), write concern define QUANDO um write é considerado confirmado: `w: 1` (só o primário escreveu — rápido, mas se o primário cair antes de replicar, você perde o dado), `w: majority` (a maioria dos nós confirmou — durável mesmo com failover, mas mais lento), `j: true` (esperar o journal em disco). Read preference define DE ONDE ler: `primary` (sempre consistente, mas concentra carga), `secondaryPreferred` (distribui leitura, mas os secundários podem estar atrás — replication lag, mesma questão do Postgres), `nearest` (menor latência). Trade-off central: `w:majority` + ler do primário = consistência forte, menos throughput; `w:1` + ler de secundário = rápido e escalável, mas com janela de perda e de leitura desatualizada. Escolha por operação: saldo/estoque → majority + primary; contador de views → pode relaxar.

Por que perguntam isso

Pergunta sênior de Mongo. Paralelo direto com read replica lag do system-design/Postgres. Sinal bom: 'w:majority pra saldo, relaxa pra contador'.

#write-concern#read-preference#replica-set#consistencia
publicidade

Relacionadas