Atlas Infinite separa el procesamiento del almacenamiento en dos capas independientes. Los nodos de procesamiento ejecutan las consultas, transacciones y agregaciones. La capa de almacenamiento guarda los datos de forma persistente, manteniendo múltiples copias para garantizar una alta disponibilidad. MongoDB gestiona la capa de almacenamiento independientemente de la capa de procesamiento, por lo que las operaciones de escalado y recuperación se ejecutan sin mover ni replicar los datos.
El siguiente diagrama muestra cómo Atlas Infinite se integra en Atlas, abarcando las capas de aplicación, computación y almacenamiento, con las interfaces de administración de Atlas que se muestran a continuación.
Cómo se integran las soluciones de computación y almacenamiento de Atlas Infinite dentro de la pila de aplicaciones y administración de Atlas.
Capa de cómputo
Los nodos de cómputo son la capa que ejecuta las consultas, transacciones y agregaciones. Dado que los nodos de cómputo están desacoplados del almacenamiento, puede escalar la capacidad de cómputo independientemente de este. Puede aumentar la capacidad de cómputo a medida que crece la demanda y reducirla cuando esta disminuye. Si habilita el escalado automático, Atlas ajusta la capacidad de cómputo automáticamente.
En la versión preliminar pública, Atlas implementa los nodos de cómputo en zonas de disponibilidad separadas dentro de la región del clúster.
Capa de almacenamiento
La capa de almacenamiento de Atlas Infinite mantiene la persistencia de los datos de su aplicación, conservando múltiples copias para una alta disponibilidad. Con Atlas Infinite, MongoDB gestiona el almacenamiento como una capa independiente, separada de los nodos de cómputo que ejecutan la carga de trabajo de su aplicación. La capa de almacenamiento se encarga de la replicación, atiende las lecturas y proporciona copias de seguridad continuas, independientemente de la capa de cómputo. Cuando se escala el nivel del clúster o cuando falla un nodo de cómputo y Atlas Infinite realiza una conmutación por error, los datos de su aplicación permanecen disponibles en la capa de almacenamiento para atender consultas. MongoDB no los copia a los nuevos nodos de cómputo.
Seguridad
Atlas Infinite aísla cada clúster en todas las capas de almacenamiento. Atlas autentica mutuamente el tráfico interno con certificados X.509 para la comunicación dentro de la capa de almacenamiento.
Dado que la capa de almacenamiento es compartida, los datos de cada cliente se cifran con claves únicas que nunca se comparten entre clientes. Para obtener más información sobre cómo Atlas cifra los datos de Atlas Infinite, consulte la descripción general del cifrado en reposo de Atlas.
Replicación y conmutación por error
Un clúster Atlas Infinite tiene dos nodos de cómputo seleccionables: uno principal, que gestiona las escrituras, y uno de reserva, que es el otro nodo seleccionable y toma el control cuando el principal falla o se reinicia. Durante la vista previa pública, puede agregar hasta cinco nodos más para el aislamiento de cargas de trabajo, lo que le da un total de hasta siete. Los nodos que agregue solo pueden gestionar lecturas. Puede agregar los siguientes tipos de nodos:
Los nodos de solo lectura gestionan las lecturas de su carga de trabajo operativa.
Los nodos de análisis aíslan las consultas analíticas de la carga de trabajo operativa.
Los nodos de búsqueda no son compatibles con los clústeres de Atlas Infinite en la versión preliminar pública.
Los nodos de cómputo no votan por un nodo principal. La capa de almacenamiento coordina la conmutación por error en lugar de una elección entre los nodos del clúster. Cuando el nodo principal falla o se reinicia, el nodo en espera se convierte en el principal. La capa de almacenamiento mantiene los datos recientes disponibles para todos los nodos de cómputo.
La preferencia de lectura funciona igual que en un clúster Atlas Core. Puede utilizar todos los modos de preferencia de lectura y las etiquetas de conjunto de réplicas predefinidas.
El controlador de tu aplicación establece la preferencia de lectura. El valor predeterminado del controlador es primary, por lo que tu aplicación envía todas las lecturas al nodo principal a menos que cambies la preferencia de lectura.
Un clúster Atlas Infinite tiene un nodo de reserva. Cuando su aplicación lee datos de un nodo distinto del principal, esas lecturas se dirigen al nodo de reserva, a menos que agregue nodos de solo lectura o nodos de análisis y configure una preferencia de lectura diferente. Siga las siguientes recomendaciones:
Para que las lecturas operativas de su aplicación se gestionen desde más de un nodo, añada nodos de solo lectura. Estos nodos gestionan las lecturas con cualquier preferencia de lectura, excepto
primary, por lo que cada nodo que añada gestionará parte de ese tráfico. Para distribuir esas lecturas entre el nodo en espera y los nodos de solo lectura, establezca una preferencia de lectura desecondaryPreferred. Esto evita que las lecturas de su aplicación se concentren en el nodo principal y previene la sobrecarga del único nodo en espera. En un clúster Atlas Core, varios nodos secundarios distribuyen esas lecturas sin necesidad de añadir nodos.Para aislar una carga de trabajo, como por ejemplo la analítica, de las lecturas operativas de su aplicación, agregue nodos de análisis o nodos de solo lectura y utilice etiquetas de conjunto de réplicas predefinidas para dirigir las consultas a esos nodos.
Para que cada nodo tenga mayor capacidad para procesar lecturas, escale el nivel del clúster.
Las funciones de copia de seguridad, restauración y recuperación a un punto en el tiempo operan en la capa de almacenamiento. Para obtener más información sobre la copia de seguridad y la restauración, consulte Restaurar un clúster Atlas Infinite.
Expresar preocupación sobre los clústeres de Atlas Infinite
Una condición de escritura describe el nivel de confirmación que se solicita a MongoDB para una operación de escritura.
Esta sección describe la configuración predeterminada de seguridad de escritura en un clúster Atlas Infinite, cómo Atlas gestiona cada campo de seguridad de escritura y en qué se diferencia la seguridad de escritura de un clúster Atlas Core.
En un clúster Atlas Infinite, la capa de almacenamiento guarda y replica sus datos, y Atlas confirma la escritura una vez que la capa de almacenamiento la captura.
En un clúster Atlas Infinite, la prioridad de escritura predeterminada es w: "majority". Su aplicación configura la prioridad de escritura en la cadena de conexión o para una única operación de escritura. No puede cambiar la prioridad predeterminada en la interfaz de usuario de Atlas.
Atlas acepta cualquier instrucción de escritura que envíe su aplicación y la modifica, cuando sea necesario, a un valor compatible con un clúster Atlas Infinite, de modo que las instrucciones de escritura de su aplicación sigan funcionando.
En un clúster Atlas Infinite, Atlas gestiona los campos de preocupación de escritura de la siguiente manera:
Su aplicación establece el nivel de confirmación de escritura con
w:Si su aplicación no establece
w, Atlas aplica el valor predeterminado,w: "majority". En un clúster Atlas Infinite,"majority"se refiere a la mayoría dentro de la capa de almacenamiento, no a la mayoría de los nodos del clúster. Atlas nunca revierte una escrituraw: "majority".Si su aplicación establece
wen0o1, Atlas aplica el valor que su aplicación haya establecido.w: 0no requiere confirmación. Una escrituraw: 1se procesa antes que una escrituraw: "majority", pero Atlas puede revertirla en casos excepcionales de fallos.Si su aplicación establece
wen2o en cualquier número mayor que2, Atlas aplicaw: "majority".
Su aplicación puede establecer un límite de tiempo con
wtimeout(wtimeoutMSen una cadena de conexión), en milisegundos.wtimeoutse aplica a las escriturasw: "majority", incluidas las escrituras que utilizan el valor predeterminado:Si su aplicación establece
wtimeout, una escritura que Atlas no puede confirmar devuelve un error de preocupación de escritura cuando alcanza el límitewtimeout.Si su aplicación no establece
wtimeout, la escritura espera indefinidamente y bloquea su aplicación.
|servicio | siempre se aplica
j: trueLa capa de almacenamiento conserva cada escritura fuera de la memoria del nodo antes de que Atlas la confirme. La configuraciónjde su aplicación no afecta a este comportamiento.
La gestión de la escritura difiere entre los clústeres Atlas Infinite y los clústeres Atlas Core de las siguientes maneras:
En un clúster Atlas Infinite, puede configurar
wcon los valores0,1o"majority". Paraw: 1yw: "majority", la capa de almacenamiento garantiza la escritura. Paraw: 0, la capa de almacenamiento no confirma la escritura. En un clúster Atlas Core, también puede configurarwcon un número que solicite confirmación a esa cantidad de nodos.En un clúster Atlas Infinite, Atlas siempre aplica
j: truey no se puede deshabilitar la confirmación del registro. En un clúster Atlas Core, se puede desactivar la confirmación del registro conj: false.
Registro de operaciones en clústeres Atlas Infinite
En un clúster Atlas Infinite, la colección oplog, local.oplog.rs, no se utiliza para la replicación, ya que esta se gestiona en la capa de almacenamiento. La colección gestiona los flujos de cambios y algunas funciones internas que requieren un historial limitado. Esta colección se contabiliza dentro de los datos almacenados del clúster.
La replicación no utiliza la colección oplog. En un clúster Atlas Infinite, la replicación se realiza en la capa de almacenamiento, y Atlas también almacena allí la colección oplog,
local.oplog.rs. Cada nodo lee desde la capa de almacenamiento, por lo que un nodo que se une o se reincorpora al clúster no puede quedarse atrás con respecto a la ventana oplog. Para obtener más información, consulte Replicación y conmutación por error.La colección oplog gestiona los flujos de cambios y las funciones internas.
local.oplog.rsgestiona los flujos de cambios y algunas funciones internas que requieren un historial limitado. La ventana de retención determina hasta qué punto se puede reanudar un flujo de cambios interrumpido, pero no hasta qué punto se puede restaurar el clúster. Para ello, utilice restauraciones puntuales.¿Cuánto tiempo conserva Atlas las entradas? Atlas conserva cada entrada del oplog durante al menos el período mínimo de retención del oplog. Una vez que una entrada supera este período, Atlas la elimina. El período mínimo de retención del oplog predeterminado es de 24 horas en Atlas Infinite y Atlas Core. Puede configurar el período mínimo de retención del oplog en Additional Settings para determinar cuánto historial conserva el clúster.
Cómo afecta la recopilación de oplog al tamaño y coste de los datos. La recopilación de oplog registra cada escritura en el clúster. Esta recopilación se contabiliza dentro de los datos almacenados en el clúster y en los costes de almacenamiento, al igual que en un clúster Atlas Core. El historial que Atlas conserva para la copia de seguridad continua en la nube forma parte de los costes de copia de seguridad. Este historial no se contabiliza dentro del almacenamiento del clúster. Para obtener más información, consulte Costes del clúster MongoDB Atlas Infinite.
Experiencia operativa
Tu aplicación se ejecuta en Atlas Infinite sin necesidad de modificar el código. Atlas Infinite utiliza el protocolo de comunicación de MongoDB, por lo que tu aplicación se conecta al clúster de Atlas Infinite mediante controladores de MongoDB y otros métodos de conexión. También puedes acceder al clúster y gestionarlo con las herramientas de programación de MongoDB.