Alta disponibilidad y réplicas

En esta página, se explica cómo la arquitectura de Memorystore para 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 la instancia.

Alta disponibilidad

Memorystore para Valkey se basa en una arquitectura de alta disponibilidad en la que tus clientes acceden directamente a los nodos administrados de Memorystore para Valkey. Tus clientes se conectan a extremos individuales, como se describe en Conéctate a una instancia de Memorystore para 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 tu 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 con alta disponibilidad en lugar de instancias zonales debido a la mayor confiabilidad que proporcionan. Sin embargo, si decides aprovisionar una instancia sin réplicas, te recomendamos que elijas una instancia de zona única. Para obtener más información, consulta Elige una instancia de una sola zona si tu instancia no usa réplicas.

Para habilitar la alta disponibilidad de tu instancia, debes aprovisionar al menos 1 nodo de réplica por cada fragmento. Puedes hacerlo cuando creas la instancia o puedes ajustar la cantidad 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 las fallas inesperadas de fragmentos.

Debes configurar tu cliente según las instrucciones que se indican en Prácticas recomendadas para clientes. Si tu cliente usa las prácticas recomendadas, podrá controlar 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 nodo)

  • Cambios en la asignación de ranuras relacionados con el modo de clúster habilitado (expansión y reducción del consumidor)

Réplicas

Una instancia de Memorystore para Valkey con alta disponibilidad es un recurso regional. Esto significa que Memorystore para Valkey distribuye los nodos principales y de réplica de las particiones en varias zonas para protegerse contra una interrupción zonal. Memorystore para Valkey admite instancias con 0, 1 o 2 réplicas por nodo.

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

  • Cluster Mode Enabled: 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 lectura 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:

Con 3 fragmentos y 0 réplicas por nodo

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

Con 3 fragmentos y 1 réplica por nodo

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

Con 3 fragmentos y 2 réplicas por nodo

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

Formas de instancias con el modo de clúster inhabilitado

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

Con 2 réplicas

Una instancia de Memorystore para Valkey con el modo de clúster inhabilitado, dos 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 una partición pueden ocurrir debido a mantenimiento o a una falla inesperada del nodo principal. Durante una conmutación por error, una réplica asciende a principal. Puedes configurar réplicas de forma explícita. El servicio también puede aprovisionar temporalmente réplicas adicionales durante el mantenimiento interno para evitar el 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 instancia principal.

La reparación de nodos puede llevar tiempo, del orden de minutos, para que el servicio reemplace el nodo con errores. Esto se aplica a todos los nodos principales y de réplica. En el caso de las instancias que no son de alta disponibilidad (no se aprovisionaron réplicas), reparar un nodo principal con errores también lleva tiempo, del orden de 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 retirada exponencial para evitar sobrecargar los nodos principales y de réplica.

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

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 en el mundo real.

Impacto en el keyspace de una interrupción en una sola zona

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

Instancias de varias zonas

  • Instancias con HA: Si una zona sufre 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 encarecidamente que aprovisiones 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 alta disponibilidad (sin réplicas): Si una zona tiene una interrupción, la parte del espacio de claves que se aprovisiona en la zona afectada se somete a un vaciado de datos y no está disponible para escrituras o lecturas durante la interrupción. Una vez que finaliza la interrupción, se restablecen los servidores principales de la zona afectada y la capacidad del clúster vuelve a su valor configurado.

Instancias de zona única

  • Instancias con HA y sin HA: Si la zona en la que se aprovisiona la instancia tiene una interrupción, el clúster no estará disponible y se borrarán los datos. Si se produce una interrupción en una zona diferente, 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.

Cómo agregar 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 procesos 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 utilizada de los nodos aumenta a medida que se copian las páginas a las que se accede con las escrituras. La huella 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, de modo que el 20% se reserve para la sobrecarga. Esta sobrecarga de memoria, además de supervisar las instantáneas, te ayuda a administrar tu carga de trabajo para que las instantáneas se realicen correctamente. Además, cuando agregues réplicas, reduce el tráfico de escritura lo más posible. Para obtener más información, consulta Cómo supervisar el uso de memoria de una instancia.