Puente para la replicación geográfica
Para aplicaciones a gran escala, las cachés distribuidas se utilizan para mejorar el rendimiento, la confiabilidad y la escalabilidad del tiempo de ejecución de sus aplicaciones. Por lo tanto, las cachés distribuidas pueden ser una parte muy importante de su plan de recuperación ante desastres, desastres que van desde desastres naturales hasta desastres internos de hardware o fallas de software.
El mejor y más utilizado plan de recuperación ante desastres es la replicación de datos en vivo a otros sitios de respaldo. Entonces, cuando sea necesario, puede redirigir a sus usuarios activos a su sitio de respaldo sin ningún error. Sin embargo, esto requiere asegurarse de que sus cachés activa y de respaldo estén sincronizadas en cualquier momento. Si no están sincronizados, eso puede afectar a los clientes de caché de sus aplicaciones.
NCache le proporciona replicación WAN a través de la función de puente. Se crea un puente entre varias cachés de clúster y los datos se replican desde el origen al otro sitio a través de ese puente.
Si no sólo tiene planes de recuperación ante desastres, sino que también desea implementar su aplicación en regiones geográficamente separadas para clientes muy dispersos, la replicación de datos también resuelve el problema. Aquí puede tener dos o más sitios activos, que tratarán con usuarios de regiones relacionadas y también pueden usarse como respaldo de sitios de otras regiones.
La replicación remota de datos es un componente crítico para cualquier plan que garantice una protección efectiva y eficiente de los datos y una recuperación rápida de una interrupción importante. La replicación sincrónica de datos es buena para el clúster internamente, pero su impacto en el rendimiento se convierte en una consideración importante cuando los clústeres de cachés están separados geográficamente. El puente está diseñado para escenarios que implican la replicación de datos desde cachés en el sitio a otros cachés en el sitio o fuera del sitio a través de la WAN para la recuperación ante desastres. Debido a la replicación asincrónica, todos los clientes conectados a las cachés activas tienen la impresión de que las operaciones se están realizando en la caché activa mientras se realiza una copia de seguridad completa en las otras cachés sin problemas.
Cuando se realiza una operación en la caché de origen, se entrega de forma asincrónica al puente. Luego, esta operación se pone en cola en una cola mantenida por el puente. Las operaciones de la cola se transfieren a la caché de destino cuando el puente encuentra la caché de destino disponible y lista para aceptar operaciones. Con el puente se garantiza que:
- No hay degradación del rendimiento.
- Las operaciones se realizan en la misma secuencia que en el caché original.
- Las operaciones no se pierden en caso de fallo de conexión.
Arquitectura de almacenamiento en caché conectable: Los cachés no se conocen entre sí; simplemente conocen el puente y replican sus datos en el puente. Debido a este acoplamiento flexible, puede configurar un puente entre múltiples cachés, independientemente de su topología de caché. Puede eliminar libremente los cachés configurados con un puente.
Integridad de los datos: El puente pone en cola las operaciones realizadas en la caché de origen y mantiene el orden real en el que se realizaron en la caché de origen. El puente realiza operaciones en la caché de destino en el mismo orden. Los conflictos se resuelven en la caché de destino. De esta manera, los cachés eventualmente se vuelven consistentes.
Servicio de puente dedicado: El puente también es un servicio independiente y dedicado como el servicio de caché, por lo que sus operaciones de caché no se verán afectadas si las operaciones del puente se retrasan debido a la latencia en la red.
Configuración del puente: Puede configurar su puente en el mismo servidor donde reside la caché de su clúster o puede crearlo en un nodo de servidor separado. Luego, puede agregar cualquiera de las cachés de su clúster al puente y los datos se replicarán entre ellas.
Recuperación de desastres: Puede configurar un puente entre un centro de datos activo y pasivo para la recuperación ante desastres.
Cliente disperso geográficamente: Puede tener dos o más sitios activos que se ocupen de los usuarios de regiones relacionadas y también se pueden utilizar como respaldo de los sitios de otras regiones.
Replicación asíncrona: Para la replicación WAN, se utiliza la replicación asíncrona para que las operaciones de caché no se vean afectadas en caso de retrasos en las operaciones de puente.
Copia de seguridad de la cola: El puente es una cola agrupada de múltiples nodos en la que un nodo está activo y el otro es pasivo, teniendo una copia de seguridad de la cola activa para evitar la pérdida de datos en el puente.
Reintentos de conexión: El puente también intenta replicar todas las operaciones reintándolo cuando ocurre algún error en la conexión.
Cola del replicador de puente: El tamaño de la cola del replicador de puente está incluido en el tamaño de la caché. Si el caché no puede conectarse al puente, las operaciones se pondrán en cola en el caché hasta que el caché esté lleno. Si el caché está lleno, se producirá el desalojo de los elementos del caché para dejar espacio para aumentar la cola del puente.
cachés: Puede utilizar cualquier topología para las cachés de clúster que formarán parte del puente. También puede utilizar diferentes cachés de topología en cada sitio en un puente. Sin embargo, se recomienda encarecidamente utilizar la misma topología en ambos lados.
Modos de sincronización de caché para replicación geográfica
El NCache bridge puede tener varios cachés conectados a él, y puede proporcionar cualquiera de los siguientes modos de sincronización al caché para la recuperación ante desastres:
Caché activo:
Una caché activa puede ser de cualquier topología, donde todos los clientes se conectan y realizan operaciones de lectura y escritura que se replican a través de un puente a las demás cachés conectadas.Caché Pasivo:
Una caché pasiva puede tener cualquier topología, pero se recomienda que sea igual que una caché activa. Sin embargo, todas las operaciones realizadas en la caché activa se replican en la caché pasiva. Los clientes pueden conectarse a la caché pasiva y realizar operaciones de lectura y escritura, pero esas operaciones no se replican en la caché activa. Se pueden realizar modificaciones en la caché pasiva si es necesario.Si el sitio activo deja de funcionar por cualquier motivo, puede redirigir sus solicitudes a su sitio pasivo activándolo. Su sitio pasivo se comportará como activo y tratará todas las solicitudes sin fallas.
Cuando su antiguo sitio activo esté listo y reiniciado, puede reformar su configuración como estaba antes. Active ambos sitios y esto transferirá todos los datos del antiguo sitio pasivo al antiguo sitio activo. Cuando se transfieren todos los datos, puede realizar configuraciones en su sitio pasivo y redirigir todas las solicitudes al sitio activo.
En el caso de comunicación entre dos cachés activas, los mismos datos almacenados en caché pueden actualizarse en ambas cachés casi simultáneamente, lo que produce un conflicto. Para resolver este conflicto, NCache proporciona un configurable Solucionador de conflictos lo que resuelve el conflicto de operación en el tiempo del puente. De forma predeterminada, la última operación "gana" y se aplica a la memoria caché en caso de conflicto.
Si algún sitio deja de funcionar, puede redirigir todas las solicitudes a otros sitios activos. Cuando el sitio caído vuelve a estar activo, los datos se transfieren desde el sitio que ya se está ejecutando a este sitio y pueden redirigir la solicitud de esa región a este sitio.
Note
Se recomienda que las cachés tengan las mismas configuraciones además de la topología para evitar problemas. Por ejemplo, si la fuente de datos está configurada en una caché, también debe configurarla en la otra caché. Esto se debe a que las mismas especificaciones de operación de la caché de un sitio se replicarán en el otro sitio.
Transferencia de estado
Se puede activar manualmente una transferencia de estado entre dos cachés si desea sincronizar el estado de la caché de origen con la caché de destino. Esto sucede a través de un puente.
Las operaciones de transferencia de estado se ponen en cola al final de la memoria caché y tan pronto como se conecta al puente, comienza a enviar sus operaciones al puente que se retransmiten a la memoria caché de destino. Una vez que se ha iniciado la transferencia de estado entre los cachés, no puede iniciar otra transferencia de estado, para garantizar la estabilidad del sistema.
Caso 1: Se produce caché en transferencia de estado:
Si la caché A y la caché B tienen una transferencia de estado en curso, la caché A deja de funcionar y no regresa. Dado que el puente está bajo transferencia de estado, cualquier otra solicitud de transferencia de estado entrante puede rechazarse debido a esto. Para solucionar esto, el puente determina de forma inteligente si ha dejado de recibir operaciones de la caché A después de un intervalo específico. Por lo tanto, esa transferencia de estado se considera corrupta y el puente permite la solicitud de transferencia de nuevo estado.
Caso 2: el caché y el puente tienen fallas en la red pero no se desconectan:
En caso de que la conexión de caché y puente experimente un problema de red, como por ejemplo que esté parcialmente conectada, las colas de operación y transferencia de estado seguirán intactas. Por lo tanto, se puede reanudar la transferencia de estado ya que no se han perdido operaciones.
Colas de puente
La caché A es la caché activa, mientras que la caché B es pasiva. La caché A envía operaciones a la caché B a través del puente, pero la caché B deja de funcionar durante algún tiempo. Esto significa que la cola del puente se está llenando con las operaciones que se envían desde la caché A, pero no se retira de la cola porque la caché B está inactiva. Llegará un punto en el que la cola del puente se llenará por completo y no tendrá espacio para almacenar más operaciones. Por lo tanto, le dice a la caché A que mantenga las operaciones al final hasta que tenga algo de espacio. Luego, las operaciones se ponen en cola únicamente al final de la caché. Supongamos que la caché B vuelve a funcionar y la cola del replicador del puente comienza a enviarle las operaciones, por lo que se retira de la cola. Una vez que se libera una cantidad configurable de espacio (20 MB de forma predeterminada), el puente le dice a la caché A que ahora puede enviar sus operaciones en cola.
Sin embargo, en caso de que la cola de caché se llene y el desalojo esté habilitado, el caché expulsará sus elementos almacenados en caché, pero no las operaciones en cola. Esto evita la pérdida de operaciones.
Vea también
Topologías de caché
Clúster de caché
Caché local
Cliente de caché
Caché de cliente