Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

Bloqueo de escritura

Si Atlas detecta que el nodo principal de su clúster supera los umbrales de la política de bloqueo de escritura, bloquea las escrituras en el clúster hasta que la utilización del disco descienda por debajo de los umbrales de desbloqueo. Cuando MongoDB recibe escrituras en un clúster, vacía los datos al disco de forma masiva, lo que puede provocar grandes aumentos en la utilización del disco. Quedarse sin espacio en disco en el nodo principal puede provocar un tiempo de inactividad del clúster, especialmente si el agotamiento del disco se propaga a todos los nodos del conjunto de réplicas.

Para evitar esta situación, cuando Atlas observa que el disco del nodo principal del clúster supera los umbrales críticos de la política de bloqueo de escritura, bloquea las escrituras en dicho nodo. Atlas continúa bloqueando las escrituras hasta que la utilización del disco desciende por debajo de los umbrales de desbloqueo.

Al activar el comportamiento de bloqueo de escritura en el nodo primario, Atlas:

  • Evita la indisponibilidad del clúster debido al agotamiento del disco en el nodo primario.

  • Permite que los clústeres que operan cerca de la utilización máxima del almacenamiento conserven la disponibilidad de lectura en casos de picos repentinos en el volumen de escritura.

El comportamiento de bloqueo de escritura del clúster es parte de la gestión inteligente de cargas de trabajo (IWM) en MongoDB Atlas. IWM es un administrador de recursos dinámico que permite la supervisión en tiempo real de la carga de trabajo y salvaguardias automatizadas para mantener una alta disponibilidad bajo carga.

El comportamiento de bloqueo de guardar tiene las siguientes consideraciones:

  • Atlas actualmente bloquea las escrituras en el nodo primario de set de réplicas (no particionados) en clústeres dedicados que ejecutan MongoDB 8.0o superior.

  • Atlas no bloquea el guardado en clústeres Free ni en clústeres Flex.

  • Atlas supervisa la utilización del disco únicamente en el nodo primario.

  • Atlas no supervisa la utilización de discos en los nodos secundarios, de solo lectura, de búsqueda o de análisis.

Para bloquear las escrituras, Atlas utiliza el siguiente proceso:

  • Cuando el espacio libre en disco del nodo principal excede los umbrales de la política de bloqueo de escritura, Atlas bloquea las escrituras en el nodo principal.

    Incluso cuando la base de datos de MongoDB no acepta escrituras, el clúster permanece disponible para lecturas. Puedes leer de los nodos primario y secundarios normalmente.

  • Cuando Atlas bloquea las escrituras, envía la siguiente alerta: Writes have been blocked on your cluster due to critically low disk space. El fuente de actividad refleja esta alerta.

    La parte superior de la página de clúster en la interfaz de usuario de Atlas muestra una pancarta que indica: "To maintain read availability during critically high disk utilization, Atlas has blocked writes to the following clusters: <clusterName>. Increase disk space or enable storage auto-scaling to unblock writes."

  • Cuando el espacio libre en disco aumenta un 50% por encima del umbral de bloqueo, Atlas desbloquea la acción de guardar en el nodo primario. Cuando Atlas desbloquea las grabaciones, recibes esta alerta: Writes have been unblocked on your cluster.

    La fuente de actividad luego refleja esta alerta. No se necesita ninguna acción adicional. Para evitar un comportamiento de bloqueo de escritura en el futuro, considera aumentar el almacenamiento del clúster.

  • Si aumentas manualmente el tamaño del disco del clúster o habilitas el escalado automático en el almacenamiento, Atlas ajusta automáticamente los umbrales de bloqueo de escritura en función del nuevo tamaño del disco.

Para evitar que se produzca un comportamiento de bloqueo de escritura y llevar el clúster por debajo de los umbrales de la política de bloqueo de escritura de Atlas, le recomendamos que:

  • Habilita el escalado automático del almacenamiento, que escala automáticamente el almacenamiento del clúster cuando la utilización del disco supera el 90% y reduce el riesgo de bloqueo de escritura.

    Para habilitar el escalado automático de almacenamiento en la Interfaz de Usuario de Atlas, navegue al menú Cluster Tier y marque la casilla Storage Scaling en la sección Auto-scale.

    • Para todos los clústeres nuevos que crees en Atlas Interfaz de Usuario, Atlas habilita el escalado automático de almacenamiento por defecto.

    • Si creas clústeres con la API, el escalado automático de clústeres no está seleccionado por defecto y debes habilitarlo explícitamente mediante las opciones en el objeto autoScaling del endpoint Actualizar un clúster en un proyecto.

  • Si eliges excluirte del escalado automático de almacenamiento y tu utilización del disco está cerca del 90%, puedes liberar espacio en disco existente antes de que Atlas active el comportamiento de bloqueo de escritura en tu clúster:

Atlas utiliza los siguientes umbrales de bloqueo de escritura para adaptarse a escenarios de utilización de disco con gran volumen de escritura:

Tamaño del disco < 20 GB

Atlas bloquea los guardados cuando el espacio libre en disco cae por debajo de 600 MB. Atlas desbloquea la operación de guardar cuando el espacio en disco supera los 900 MB.

Tamaño del disco < 1.25 TB

Atlas bloquea las escrituras cuando el espacio libre en disco cae por debajo del 4% del tamaño total del disco. Atlas desbloquea las escrituras cuando el espacio en disco supera el 6% del tamaño total del disco.

Tamaño del disco ≥ 1.25 TB

Atlas bloquea los guardados cuando el espacio libre en disco cae por debajo de 50 GB. Atlas desbloquea guardados cuando el espacio libre en disco supera los 75 GB.

Los umbrales no se pueden configurar. Si el tamaño del disco aumenta por escalado automático o si aumentas manualmente el tamaño del disco, Atlas ajusta automáticamente los umbrales basados en el tamaño del disco del clúster.

Una vez que el comportamiento de bloqueo de escritura esté activo en su clúster, usted:

  • Se puede aumentar el almacenamiento del clúster manualmente desde la página Editar clúster o habilitar la escala automática de almacenamiento en la IU de Atlas para evitar cualquier bloqueo futuro de escritura.

  • No se pueden eliminar índices ni colecciones porque Atlas bloquea las operaciones que requieren escribir en la base de datos. Para borrar índices y colecciones, aumenta el almacenamiento del clúster.

Atlas bloquea las escrituras cuando el espacio libre en el disco del nodo principal alcanza aproximadamente el 96% del tamaño total del disco, con las advertencias para discos pequeños y grandes indicadas en los umbrales de la política de bloqueo de escritura.

En comparación, el escalado automático se activa cuando la utilización del disco alcanza el 90% del tamaño total del disco. Esto significa que:

  • Si habilitas el escalado automático, tu clúster tendrá la oportunidad de escalar antes de que se active el bloqueo de escritura. Sin embargo, el escalado automático del almacenamiento y el bloqueo de escritura son mecanismos de seguridad independientes. El redimensionamiento del disco no es instantáneo: tu clúster sigue funcionando con el tamaño de disco anterior hasta que la nueva capacidad esté totalmente aprovisionada. Si el uso del disco cruza los umbrales de bloqueo de escritura durante esta ventana, Atlas aún podría bloquear temporalmente las escrituras para evitar el agotamiento del disco y proteger la disponibilidad del clúster.

  • Si desactivas el escalado automático, debes supervisar el uso del disco y tomar medidas para evitar que se active el bloqueo de escritura.

Cuando Atlas bloquea la escritura en el clúster, se producen las siguientes acciones:

Atlas desbloquea los guardados cuando el espacio libre en disco aumenta 50% por encima del umbral de bloqueo. El búfer extra para desbloquear escrituras garantiza que:

  • Atlas no habilita y deshabilita el comportamiento de bloqueo de escritura en sucesión rápida.

  • El clúster se mantiene en buen estado a medida que comienza a aceptar guardados nuevamente.

Para los parámetros exactos, consulta los umbrales de política de bloqueo de escritura.