Es muy probable que las cargas máximas, las fallas y las interrupciones del sistema formen parte de su clúster de caché y no es algo de lo que deba preocuparse. Sin embargo, ¡no tener una solución para tales situaciones definitivamente lo es! La resistencia a fallas frente a tales factores que causan riesgos es el requisito principal de su clúster de almacenamiento en caché para que la recuperación de escenarios de falla siempre sea útil. En algunas situaciones, la pérdida de datos puede ser insignificante y se puede tratar con facilidad, pero en algunos casos en los que se trata de datos de misión crítica, la protección y disponibilidad de datos no se puede considerar un requisito secundario.
NCache ¡NO pierde sus datos!
NCache, al ser un almacén de almacenamiento en caché de datos distribuidos en memoria, proporciona una arquitectura en la que se garantiza una alta disponibilidad de datos en cargas máximas o tiempo de inactividad. Sus datos permanecen 100 % disponibles incluso en situaciones desastrosas como un nodo que abandona permanentemente el clúster. NCache está diseñado para hacer frente a la adición o eliminación de tiempo de ejecución de un nodo de servidor.
También puede modificar las configuraciones de caché en tiempo de ejecución con las funciones aplicables en caliente. Con la arquitectura peer to peer, NCache lo salva con el mayor problema de "punto único de falla". La compatibilidad con la conmutación por error no solo se proporciona dentro del clúster de la memoria caché, sino también con los clientes conectados a la memoria caché. Hace NCache altamente dinámico y extremadamente seguro de no perder datos. Miremos la siguiente figura para entender NCachela disponibilidad.
El paso 1 muestra un clúster conectado donde los clientes están conectados con el NCache Clúster con arquitectura peer to peer.
La Figura 2 muestra un nodo que abandona el clúster de caché debido a un desastre.
La siguiente figura muestra que el clúster de caché equilibró los datos entre los nodos restantes y los clientes permanecen conectados al clúster de caché.
Topologías de almacenamiento en caché
NCache proporciona diferentes topologías para el almacenamiento de datos para que pueda almacenar los datos de acuerdo con sus propios requisitos. Mire las topologías a continuación:
- Topología duplicada: Como su nombre indica, Reflejado topología significa un clúster con dos nodos, uno de los cuales es el nodo activo duplicado con el nodo pasivo.
- Topología replicada: In replicado topología, cada nodo tiene los mismos datos replicados en él.
- Caché con particiones: En dividido topología, cada nodo del servidor tiene una partición y los datos se dividen uniformemente entre el nodo y su partición.
- Partición de caché de réplica: Partición de réplica La topología es la topología más rápida, ya que mantiene la réplica de cada partición. Cada partición se replica en un servidor diferente y las réplicas son pasivas, lo que significa que los clientes no pueden conectarse a ellas.
Analicemos ahora la disponibilidad de datos con las topologías de almacenamiento en caché. Cada topología como se mencionó tiene diferentes características. Topología replicada se asegura de que los datos se repliquen en todos los nodos, manteniendo así los datos 100% disponibles. En Topología particionada, si un solo nodo está inactivo, se pierde una parte de los datos. Sin embargo, en Réplica Particionada topología, como cada partición tiene una réplica, si se pierde un nodo, los datos se redistributado entre los nodos restantes. Hace que la topología POR sea la más eficiente con respecto a la disponibilidad de datos. La topología de réplica particionada asíncrona tiene una replicación de datos en segundo plano que puede provocar la pérdida de datos; sin embargo, con la topología POR síncrona no se produce ninguna pérdida de datos ya que la replicación se produce a través de la aplicación cliente.
Topologías de almacenamiento en caché Agrupación dinámica de recuperación automática NCache Arquitectura
Arquitectura punto a punto en NCache
La arquitectura punto a punto significa que no existe el concepto de nodo maestro o esclavo en NCache. Un clúster está formado por un conjunto bien definido de servidores y cada servidor está conectado a todos los demás servidores del clúster de caché. Hay un nodo coordinador que es responsable de administrar todo el clúster. Un nodo coordinador es el nodo más antiguo con respecto a los nodos que se unen al clúster. Si un nodo coordinador abandona el clúster, el siguiente nodo más antiguo se convierte en el nodo coordinador. El nodo coordinador también comparte toda la información de la distribución de datos en los otros nodos para que el próximo nodo coordinador ya sepa todo sobre la distribución de datos.
La distribución de datos se realiza sobre la base de cubos. Un solo depósito es la unidad mínima de distribución de datos. Todos los cubos se distribuyen uniformemente entre los nodos del clúster de caché.
Por ejemplo, un clúster de caché con dos nodos y 1000 depósitos de datos mantiene 500 depósitos de datos en cada nodo. NCache distribuye los datos en función de un mapa de distribución. El mapa de distribución asigna los depósitos con los nodos en los que residen los depósitos.
El proceso de transferencia de datos de un nodo a otro se denomina transferencia de estado. Transfiere el depósito de datos por depósito desde el nodo existente (nodo de origen) al nodo nuevo (asignado). El tiempo durante el cual se lleva a cabo la transferencia de estado, todas las operaciones que fallan o están relacionadas con un depósito determinado se dirigen al nodo de origen hasta que se lleva a cabo todo el proceso de transferencia de estado. Una vez que se completa el proceso de transferencia de estado, se informa a todos los nodos sobre la finalización de la transferencia de estado.
Descubrimiento en tiempo de ejecución dentro del clúster y los clientes
NCache sobresale en la disponibilidad de datos por sus características dinámicas. Si un nodo se une al clúster de caché, todos los nodos de servidor y cliente reciben esta información en tiempo de ejecución para que se produzca la distribución de datos. El nodo coordinador se asegura de que un nuevo servidor se haya unido al clúster de caché y agrega el nuevo nodo de servidor en la lista de nodos del clúster de caché. También informa a todos los demás nodos de servidor acerca de un nuevo nodo de servidor que ingresa al clúster de caché. Después de eso, el nuevo nodo de servidor adquiere una conexión TCP con todos los demás nodos de servidor. Por lo tanto, el nuevo servidor no tiene información sobre los nodos del servidor de caché existentes hasta que se haya unido al clúster de caché.
De manera similar, los clientes de caché también se descubren en tiempo de ejecución. Cuando un cliente se conecta al clúster de caché, no necesita conocer todo el clúster de caché y todos los nodos del servidor. Solo necesita la información de un único servidor de caché en ejecución. Utiliza esta conexión para ver a qué servidores de caché conectarse. La siguiente es la información vital que recibe el cliente después del establecimiento de la conexión:
- Mapa de distribución de datos: El mapa que contiene la información de qué datos residen en qué nodo del servidor para que se pueda acceder fácilmente.
- Topología de almacenamiento en caché: La información sobre la topología de caché para determinar a qué servidor de caché conectarse.
- Información de membresía del clúster: la información sobre los miembros del clúster, como un nuevo nodo que ingresa al clúster o un nodo existente que sale de un clúster.
- Información sobre compresión o cifrado.
- Información de serialización: Binario o JSON.
Agrupación dinámica Recuperación automática de cerebro dividido Modo de mantenimiento
Soporte de conmutación por error de conexión
NCache cluster es un clúster dinámico de autorreparación y se ocupa de cualquier conmutación por error en tiempo de ejecución. Dos tipos de soporte de conmutación por error son proporcionados por NCache:
- Soporte de conmutación por error dentro del clúster: si un servidor de caché abandona el clúster en cualquier momento, el clúster de caché se recupera muy eficientemente de la pérdida de un servidor de caché. Para explicarlo mejor, significa que el clúster de caché divide los depósitos de datos entre los nodos del servidor de caché restantes y actualiza todos los nodos del servidor de caché sobre la nueva distribución.
- Soporte de conmutación por error dentro del cliente: Al igual que los servidores de caché, los clientes de caché también se ajustan según los otros servidores de caché existentes. Si un cliente está conectado a un servidor de caché y la conexión se pierde debido a la falta de disponibilidad del nodo del servidor, todos los clientes conectados a él se mueven automáticamente a otros nodos existentes.
Modo de mantenimiento
Modo de mantenimiento es otra característica impulsada por el usuario proporcionada por NCache. Como se discutió anteriormente, la transferencia de estado se lleva a cabo en cada nodo que sale o se une al clúster. En escenarios en los que un nodo de servidor abandona el clúster para evitar la transferencia de estado innecesaria, el modo de mantenimiento resulta útil. Le da el control para detener un nodo para mantenimiento y ahorrarle a su clúster el costo de un costoso proceso de transferencia de estado. Mientras un nodo está en mantenimiento, todas las operaciones se atienden desde el nodo de réplica. Tan pronto como el nodo vuelve a unirse al clúster, sincroniza el estado con el nodo de réplica.
Conclusión
La disponibilidad de datos es el mayor desafío cuando se trata de datos de caché. NCache es rico en funciones de alta gama para hacer frente a la disponibilidad de datos a toda costa proporcionando un control de daños inmediato en situaciones desastrosas. No solo eso, NCache tiene una arquitectura muy escalable que proporciona no solo alta disponibilidad, sino que también le permite escalar su clúster de caché de forma lineal. Entonces, es seguro decir que NCache es el mejor nivel de almacenamiento en caché que necesita la arquitectura de su aplicación.