Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Mitigar los problemas de rendimiento en set de réplicas de PSA autogestionados

En un set de réplicas de tres miembros con una arquitectura primario-secundario-árbitro (PSA) o un clúster fragmentado con particiones PSA de tres miembros, un nodo portador de datos que esté inactivo o retrasado puede provocar problemas de rendimiento.

Si uno de los nodos portadores de datos se cae, el otro nodo se convierte en el principal. Las escrituras con w:1 siguen logrando el éxito en este estado, pero las escrituras con nivel de confirmación de escritura (write concern) "majority" no pueden concluir exitosamente y el punto de confirmación empieza a retrasarse. Si tu set de réplicas PSA contiene un secundario rezagado y tu set de réplicas requiere que dos nodos completen una confirmación por mayoría para un cambio, tu punto de confirmación también estará rezagado.

Con un punto de confirmación retrasado, dos cosas pueden afectar el rendimiento de tu clúster:

  • El motor de almacenamiento guarda todos los cambios que ocurren después del punto de confirmación en el disco para mantener un historial duradero. La E/S extra de estas escrituras tiende a aumentar con el tiempo. Esto puede tener un gran impacto en el rendimiento de guardar y aumentar la presión de caché.

  • MongoDB permite que el oplog crezca más allá de su límite de tamaño configurado para evitar borrar el majority commit point.

Para reducir la presión de la caché y el aumento del tráfico de escritura, configure votes: 0 y priority: 0 para el nodo que está no disponible o con retraso. Para las operaciones de escritura emitidas con "mayoría", solo se consideran los nodos con derecho a voto para determinar el número de nodos necesarios para realizar una confirmación por mayoría. Configurar la configuración del nodo en votes: 0 reduce el número de nodos necesarios para comprometer una escritura con nivel de confirmación de escritura (write concern) "majority" de dos a uno y permite que estas escrituras tengan éxito.

Una vez que se haya alcanzado el secundario, puedes usar el método rs.reconfigForPSASet() para reponer votes a 1.

Nota

En versiones anteriores de MongoDB, enableMajorityReadConcern y --enableMajorityReadConcern se podían configurar para permitir la desactivación del nivel de consistencia de lectura por defecto "majority" que tenía un efecto similar.

Para reducir la presión de caché y el aumento del tráfico de escritura en una implementación con una arquitectura primaria-secundaria-árbitro de tres miembros (PSA), configure { votes: 0, priority: 0 } para el secundario que esté no disponible o retrasado:

cfg = rs.conf();
cfg["members"][<array_index>]["votes"] = 0;
cfg["members"][<array_index>]["priority"] = 0;
rs.reconfig(cfg);

Si quieres cambiar la configuración de la secundaria más tarde, usa el método rs.reconfigForPSASet().

En esta página