Los miembros atrasados contienen copias de un set de réplicas conjunto de datos. Sin embargo, el conjunto de datos de un miembro retrasado refleja un estado anterior o retrasado del conjunto. Por ejemplo, si la hora actual es 09:52 y un nodo tiene un retraso de una hora, el nodo retrasado no tiene ninguna operación más reciente que 08:52.
Dado que los miembros retrasados son una copia de seguridad continua o una instantánea histórica del conjunto de datos, pueden ayudarle a recuperarse de diversos tipos de errores humanos. Por ejemplo, un miembro retrasado permite recuperarse de actualizaciones de aplicaciones fallidas y errores del operador, como la pérdida de bases de datos y colecciones.
Considerations
Requisitos
miembros atrasados:
Debe ser Miembros con prioridad 0. Establezca la prioridad en 0 para evitar que un miembro retrasado se convierta en principal.
Debe ser hidden nodo. Siempre se debe evitar que las aplicaciones vean y consulten a los miembros atrasados.
Vota en elecciones para primario, si
members[n].votesestá establecido en 1. Asegurar que los miembros atrasados no tengan derecho a voto estableciendomembers[n].votesen 0 puede ayudar a mejorar el rendimiento.
Importante
Si tu set de réplicas contiene miembros atrasados, asegúrate de que los miembros atrasados estén ocultos y no tengan derecho a voto.
Ocultar nodos retrasados del set de réplicas impide que las aplicaciones visualicen y consulten datos retrasados sin una conexión directa a ese nodo. Hacer que los integrantes de set de réplicas retardados no tengan derecho a voto significa que no contarán para reconocer las operaciones de escritura con nivel de confirmación de escritura (write concern) "majority".
Si no ocultas a los miembros atrasados y uno o más nodos dejan de estar disponibles, el set de réplicas debe esperar al miembro atrasado y el punto de confirmación se retrasa. Un punto de confirmación retrasado puede provocar problemas de rendimiento.
Por ejemplo, considere una configuración de conjunto de réplicas primaria-secundaria-retrasada donde la secundaria retrasada vota con un retraso de 10 minutos.
Con un nodo secundario no retrasado no disponible, la configuración degradada de Primario-Retrasado debe esperar al menos 10 minutos para confirmar una operación de escritura con "majority". El punto de validación mayoritaria tardará más en avanzar, lo que provocará una presión de caché problemas de rendimiento similares con un primario con un secundario y un árbitro (PSA) set de réplicas.
Para obtener más información sobre el punto de confirmación mayoritario, consulte coherencia causal y preocupaciones de lectura y escritura. Para obtener detalles adicionales sobre la resolución de problemas de rendimiento, consulta el tutorial de mantenimiento del set de réplicas.
Comportamiento
Los miembros atrasados copian y aplican operaciones desde el oplog de origen con un retraso. Al elegir la cantidad de retraso, considera que la cantidad de retraso:
debe ser igual o mayor a la duración esperada de su periodo de mantenimiento.
debe ser menor que la capacidad del oplog. Para obtener más información sobre el tamaño del Oplog, consulte Tamaño del Oplog.
Nivel de confirmación de escritura
Los miembros de sets de réplicas retrasados pueden reconocer las operaciones de escritura emitidas con:
w: <number>En este caso, los nodos atrasados pueden confirmar las operaciones de guardado incluso si son nodos sin derecho a voto.w : "majority". En este caso, los miembros retrasados deben ser miembros con derecho a voto (es decir,members[n].votesmayor0que) para confirmar la operación de escritura. Los miembros del conjunto de réplicasmembers[n].votes0sin derecho a voto (es decir, es) no pueden contribuir a confirmar operaciones de escritura con elmajorityproblema de escritura.
Los secundarios demorados pueden devolver el reconocimiento de guardado no antes de lo configurado en el secondaryDelaySecs.
Para obtener más información, consulta la opción "w" de nivel de confirmación de escritura (write concern).
particionado
En los clústeres, los miembros atrasados tienen una utilidad limitada cuando se habilita el balanceador. Debido a que los miembros atrasados replican las migraciones de fragmentos con retraso, el estado de los miembros atrasados en un clúster no es útil para recuperando un estado anterior del clúster si ocurren migraciones durante la ventana de retraso.
Ejemplo
En el siguiente conjunto de réplicas de 5 miembros, el primario y todos los secundarios tienen copias del conjunto de datos. Un miembro aplica operaciones con un retraso de 3600 segundos (una hora). Este miembro retrasado también está oculto y tiene prioridad 0.
Configuración
Un miembro atrasado tiene su members[n].priority igual a 0, members[n].hidden igual a true, y su members[n].secondaryDelaySecs igual al número de segundos de retardo:
{ "_id" : <num>, "host" : <hostname:port>, "priority" : 0, "secondaryDelaySecs" : <seconds>, "hidden" : true }
Para configurar un miembro diferido, consulta Configurar un Miembro Diferido de un Conjunto de Réplica Autogestionado.