Alta disponibilidad y réplicas

En esta página, se explica cómo la arquitectura de Memorystore for Valkey admite y proporciona alta disponibilidad (HA). En esta página, también se explican las configuraciones recomendadas que contribuyen a mejorar el rendimiento y la estabilidad de las instancias.

Alta disponibilidad

Memorystore for Valkey se basa en una arquitectura de alta disponibilidad en la que los clientes acceden directamente a los nodos administrados de Memorystore for Valkey. Para ello, los clientes se conectan a extremos individuales, como se describe en Conéctate a una instancia de Memorystore for Valkey.

La conexión directa a los fragmentos proporciona los siguientes beneficios:

  • La conexión directa evita los saltos intermedios, lo que minimiza el tiempo de ida y vuelta (latencia del cliente) entre el cliente y el nodo de Valkey.

  • En el modo de clúster habilitado, la conexión directa evita cualquier punto único de falla, ya que cada fragmento está diseñado para fallar de forma independiente. Por ejemplo, si el tráfico de varios clientes sobrecarga una ranura (fragmento de espacio de claves), la falla del fragmento limita el impacto al fragmento responsable de entregar la ranura.

Recomendamos crear instancias multizonales de alta disponibilidad en lugar de instancias zonales únicas debido a la mayor confiabilidad que proporcionan. Sin embargo, si eliges aprovisionar una instancia sin réplicas, te recomendamos que elijas una instancia zonal única. Para obtener más información, consulta Cuándo usar una instancia zonal única.

Para habilitar la alta disponibilidad de tu instancia, debes aprovisionar al menos 1 nodo de réplica por cada fragmento. Puedes hacerlo cuando crees la instancia o puedes escalar el recuento de réplicas a al menos 1 réplica por fragmento. Las réplicas proporcionan conmutación por error automática durante el mantenimiento planificado y la falla inesperada del fragmento.

Debes configurar tu cliente según las instrucciones que se indican en Prácticas recomendadas para clientes. El uso de las prácticas recomendadas permite que tu cliente controle los siguientes elementos de tu instancia de forma automática y sin tiempo de inactividad:

  • El rol (conmutaciones por error automáticas)

  • El extremo (reemplazo de nodos)

  • Cambios en la asignación de ranuras relacionados con el modo de clúster habilitado (escalamiento horizontal de consumidores)

Réplicas

Una instancia de Memorystore for Valkey de alta disponibilidad es un recurso regional. Memorystore for Valkey distribuye las VMs principales y de réplica de los fragmentos en varias zonas para protegerse contra una interrupción zonal. Memorystore for Valkey admite instancias con 0 a 5 réplicas por nodo.

Puedes usar réplicas para aumentar la capacidad de procesamiento de lectura a costa de la posible obsolescencia de los datos.

  • Modo de clúster habilitado: Usa el comando READONLY para establecer una conexión que permita que tu cliente lea desde las réplicas.
  • Modo de clúster inhabilitado: Conéctate al extremo de lector para conectarte a cualquiera de las réplicas disponibles.

Formas de instancias con el modo de clúster habilitado

En los siguientes diagramas, se ilustran las formas de las instancias con el modo de clúster habilitado:

Forma de instancia con tres fragmentos y cero réplicas por nodo

Una instancia de Memorystore for Valkey con el modo de clúster habilitado sin réplicas que tiene nodos divididos de manera uniforme en tres zonas.

Forma de instancia con tres fragmentos y una réplica por nodo

Una instancia de Memorystore para Valkey con el modo de clúster habilitado, con una réplica por nodo y nodos divididos de manera uniforme en tres zonas.

Forma de instancia con tres fragmentos y varias réplicas por nodo

Una instancia de Memorystore para Valkey con el modo de clúster habilitado, varias réplicas por nodo y nodos divididos de manera uniforme en tres zonas.

Formas de instancias con el modo de clúster inhabilitado

En el siguiente diagrama, se ilustra una forma para las instancias con el modo de clúster inhabilitado:

Forma de instancia con varias réplicas

Una instancia de Memorystore para Valkey con el modo de clúster inhabilitado, con varias réplicas y nodos divididos de manera uniforme en tres zonas.

Conmutación por error automática

Las conmutaciones por error automáticas dentro de un fragmento pueden ocurrir debido a mantenimiento o a una falla inesperada del nodo principal. Durante una conmutación por error, una réplica se promueve para convertirse en la principal. Puedes configurar las réplicas de forma explícita. El servicio también puede aprovisionar réplicas adicionales de forma temporal durante el mantenimiento interno para evitar cualquier tiempo de inactividad.

Las conmutaciones por error automáticas evitan la pérdida de datos durante las actualizaciones de mantenimiento. Para obtener detalles sobre el comportamiento de la conmutación por error automática durante el mantenimiento, consulta Comportamiento de la conmutación por error automática durante el mantenimiento.

Duración de la conmutación por error y la reparación de nodos

Las conmutaciones por error automáticas pueden tardar decenas de segundos en el caso de eventos no planificados, como una falla en el proceso del nodo principal o una falla de hardware. Durante este tiempo, el sistema detecta la falla y elige una réplica para que sea la nueva principal.

La reparación de nodos puede tardar minutos para que el servicio reemplace el nodo con fallas. Esto se aplica a todos los nodos principales y de réplica. En el caso de las instancias que no tienen alta disponibilidad (no se aprovisionaron réplicas), la reparación de un nodo principal con fallas también tarda minutos.

Comportamiento del cliente durante una conmutación por error no planificada

Es probable que se restablezcan las conexiones del cliente según la naturaleza de la falla. Después de la recuperación automática, se deben reintentar las conexiones con una retirada exponencial para evitar la sobrecarga de los nodos principales y de réplica.

Los clientes que usan réplicas para la capacidad de procesamiento de lectura deben estar preparados para una degradación temporal de la capacidad hasta que se reemplace automáticamente el nodo con fallas.

Escrituras perdidas

Durante una conmutación por error que se produce debido a una falla inesperada, es posible que se pierdan las escrituras confirmadas debido a la naturaleza asíncrona del protocolo de replicación de Valkey.

Las aplicaciones cliente pueden aprovechar el comando WAIT de Valkey para mejorar la seguridad de los datos reales.

Impacto en el espacio de claves de una interrupción de una sola zona

En esta sección, se describe el impacto de una interrupción de una sola zona en una instancia de Memorystore for Valkey.

Instancias multizonales

  • Instancias de HA: Si una zona tiene una interrupción, todo el espacio de claves está disponible para lecturas y escrituras, pero, como algunas réplicas de lectura no están disponibles, se reduce la capacidad de lectura. Recomendamos aprovisionar en exceso la capacidad del clúster para que la instancia tenga suficiente capacidad de lectura en el caso poco frecuente de una interrupción de una sola zona. Una vez que finaliza la interrupción, se restablecen las réplicas en la zona afectada y la capacidad de lectura del clúster vuelve a su valor configurado. Para obtener más información, consulta Patrones de apps escalables y confiables.

  • Instancias que no son de HA (sin réplicas): Si una zona tiene una interrupción, la parte del espacio de claves que se aprovisiona en la zona afectada se vacía y no está disponible para escrituras ni lecturas durante la interrupción. Una vez que finaliza la interrupción, se restablecen las instancias principales en la zona afectada y la capacidad del clúster vuelve a su valor configurado.

Instancias zonales únicas

  • Instancias de HA y que no son de HA: Si la zona en la que se aprovisiona la instancia tiene una interrupción, el clúster no está disponible y los datos se vacían. Si una zona diferente tiene una interrupción, el clúster continúa entregando solicitudes de lectura y escritura.

Prácticas recomendadas

En esta sección, se describen las prácticas recomendadas para la alta disponibilidad y las réplicas.

Agrega una réplica

Para agregar una réplica, se requiere una instantánea de RDB. Las instantáneas de RDB usan una bifurcación de proceso y un mecanismo de "copia en escritura" para tomar una instantánea de los datos del nodo. Según el patrón de escrituras en los nodos, la memoria usada de los nodos crece a medida que se copian las páginas que tocan las escrituras. El espacio de memoria puede ser hasta el doble del tamaño de los datos en el nodo.

Para asegurarte de que los nodos tengan suficiente memoria para completar la instantánea, mantén o establece maxmemory en el 80% de la capacidad del nodo para que el 20% se reserve para la sobrecarga. Esta sobrecarga de memoria, además de la supervisión de instantáneas, te ayuda a administrar tu carga de trabajo para tener instantáneas exitosas. Además, cuando agregues réplicas, reduce el tráfico de escritura tanto como sea posible. Para obtener más información, consulta Supervisa el uso de memoria de una instancia.