NCache Arquitectura

NCache es una tienda distribuida en memoria de código abierto para .NET, Java, Node.js y Python. NCache Es ideal para aplicaciones de servidor de altas transacciones porque es extremadamente rápido y linealmente escalable. Usar NCache para eliminar cuellos de botella en el rendimiento y escalar sus aplicaciones al procesamiento de transacciones extremo (XTP). NCache También proporciona replicación de datos inteligente y agrupación dinámica para alta disponibilidad.

NCache ha sido muy popular desde 2005 y lo utilizan cientos de clientes de alto nivel en todo el mundo.

 

Clúster dinámico (alta disponibilidad)

NCache tiene un agrupamiento de caché dinámico de recuperación automática basado en una arquitectura punto a punto para proporcionar un tiempo de actividad del 100 %. Este es un clúster basado en TCP donde no hay nodos maestro/esclavo y, en cambio, cada servidor en el clúster es un par. Esto le permite agregar o eliminar cualquier servidor de caché en tiempo de ejecución del clúster sin detener ni el caché ni su aplicación.

 

Clúster de igual a igual (autocurativo)

NCache El clúster tiene una arquitectura de clúster de igual a igual. Esto significa que no hay nodos Maestro/Esclavo y cada servidor es un par. Hay un nodo Coordinador de clúster que es el nodo más antiguo del clúster. Si el nodo Coordinador del clúster deja de funcionar, el siguiente más antiguo se convierte automáticamente en el coordinador.

El Coordinador del clúster gestiona todas las operaciones relacionadas con el clúster, incluida la membresía del clúster cuando se agregan o eliminan nodos, el mapa de distribución para Caché con particiones / Caché de réplica de partición topología y otra información de configuración de caché. El Coordinador de clúster también administró el estado del clúster y elimina a la fuerza cualquier servidor de caché que esté parcialmente conectado a todos los demás servidores del clúster.

 

Agrupación dinámica

NCache tiene un arquitectura de agrupamiento dinámico. Esto significa que puedes add or remove cualquier servidor de caché del clúster sin detener el caché ni las aplicaciones. Cada vez que agrega o elimina un servidor de caché, la membresía del clúster se actualiza inmediatamente en tiempo de ejecución y se propaga a todos los servidores del clúster, así como a todos los clientes conectados al clúster. Esta actualización y propagación en tiempo de ejecución permite NCache para estar siempre en funcionamiento, incluso cuando se realizan dichos cambios.

El agrupamiento dinámico le permite hacer lo siguiente:

  • - Agregar o quitar servidores de caché en tiempo de ejecución: sin detener el caché o su aplicación
  • - Membresía del grupo: se actualiza en tiempo de ejecución y se propaga a todos los servidores del clúster y a todos los clientes conectados al clúster.
 

Manejo de grupos cerebrales divididos

Otra parte de NCache Dynamic Clustering es su inteligente Detección y recuperación de cerebro dividido capacidad. El cerebro dividido ocurre esencialmente cuando, debido a algunos problemas de red, la conexión de red se interrumpe entre estos servidores de caché y esto da como resultado múltiples subclústeres independientes donde cada subclúster asume que todos los demás servidores de caché han caído y es el clúster restante correcto. .

En esos casos, NCache Los servidores se dan cuenta de que los otros servidores de caché abandonaron el clúster abruptamente, por lo que siguen intentando volver a conectarse con ellos. Luego, cuando el problema de las redes desaparece, estos NCache Los servidores pueden volver a conectarse con los otros servidores de caché. Pero ahora cada subclúster ha actualizado el caché en paralelo sin sincronizarse con otros servidores de caché y, por lo tanto, existen múltiples versiones de los datos en los subclústeres.

NCache proporciona una manera de recuperarse de este "cerebro dividido" al decidir automáticamente qué servidores de caché deben ceder sus datos y otros servidores de caché deben conservar sus datos. Hay cierta pérdida de datos, pero el resultado final es una restauración rápida del clúster de caché sin intervención humana.

 

Conexiones dinámicas de clientes

NCache también te deja agregar o eliminar clientes de caché en tiempo de ejecución sin detener el caché u otros clientes. Cuando agrega un cliente, este cliente solo necesita conocer cualquier servidor de caché en el clúster al que conectarse. Una vez que se conecta a ese servidor, recibe información sobre la membresía del clúster y la topología del almacenamiento en caché, en función de la cual decide a qué otros servidores conectarse.

  • - Agregar o quitar clientes en tiempo de ejecución: sin detener el caché o su aplicación.
  • - Caché particionado/Caché de réplica de partición: el cliente se conecta a todas las particiones en todos los servidores de caché (no a las réplicas porque las particiones se comunican con sus réplicas). Esto permite al cliente ir directamente a donde están los datos para lecturas y escrituras. Y, si se agrega un nuevo servidor al clúster, el cliente recibe información actualizada sobre la membresía del clúster y luego también se conecta a este servidor de caché recién agregado.
  • - Caché replicado: en caso de Caché replicado, el cliente simplemente se conecta a un servidor de caché en el clúster, pero con una carga equilibrada para garantizar que todos los servidores de caché tengan la misma cantidad de clientes. El cliente obtiene la información de equilibrio de carga de este servidor de caché y, en función de eso, si es necesario, se vuelve a conectar al servidor de caché adecuado. El cliente se conecta a un solo servidor de caché porque cada servidor tiene el caché completo, por lo que todas las lecturas y escrituras son posibles allí mismo.
  • - Caché reflejada: en caso de Caché reflejada, el cliente solo se conecta solo al nodo activo en este clúster de 2 nodos. Si el cliente se conecta al nodo pasivo, el nodo pasivo le informa al cliente sobre el nodo activo y el cliente se vuelve a conectar automáticamente al nodo activo. Si el nodo activo deja de funcionar y el nodo pasivo se activa, todos los clientes se conectan automáticamente al nuevo nodo activo.
 

Configuración dinámica

NCache también proporciona configuración dinámica de la memoria caché y los clientes. El objetivo es permitirle realizar cambios más adelante cuando la memoria caché se esté ejecutando sin detener la memoria caché o su aplicación.

  • - Propagar a todos los servidores y clientes en tiempo de ejecución: esto incluye toda la configuración y sus cambios y también el Mapa de Distribución.
  • - Configuración de caché: cuando se crea una configuración de caché a través de herramientas de administración, esta información de configuración se copia a todos los servidores de caché conocidos en ese momento. Y cualquier servidor nuevo que se agregue en tiempo de ejecución recibe esta configuración de caché completa y la copia en su disco local.
  • - Aplicar cambios de configuración en caliente: puede cambiar parte de la configuración de la caché en tiempo de ejecución a través de "caliente aplicar" característica de NCache. Cuando lo hace, la información de configuración actualizada se propaga a todos los servidores de caché en tiempo de ejecución y se guarda en sus discos. También se envía a todos los clientes una parte de esta información que es relevante para sus necesidades.
  • - Mapa de distribución (caché particionado/partición-réplica): esto se crea cuando se inicia el caché y luego se copia a todos los servidores y clientes de caché. Este mapa de distribución contiene información sobre qué depósitos (de un total de 1000 depósitos en la caché agrupada) se encuentran en qué partición.
 

Conmutación por error de conexión dentro del clúster

Todos los servidores de caché del clúster están conectados entre sí a través de TCP. Y, cada servidor de caché está conectado a todos los demás servidores de caché en el clúster, incluidos los nuevos servidores agregados en tiempo de ejecución. NCache proporciona varias formas de garantizar que las conexiones dentro del clúster se mantengan activas a pesar de la interrupción de la conexión. La interrupción de la conexión generalmente ocurre debido a una falla en la red debido a un enrutador o firewall o un problema con la tarjeta de red o el controlador de red.

  • - Reintentos de conexión: si se interrumpe la conexión entre dos servidores de caché, NCache El servidor realiza automáticamente varios reintentos para establecer esta conexión. Estos reintentos se realizan hasta que se agota el período de "tiempo de espera". En la mayoría de las situaciones, esto restablece la conexión.
  • - Latido del corazón que mantiene vivo: NCache también tiene una función para que cada servidor de caché siga enviando algunos paquetes de datos pequeños como latido del corazón a todos los demás servidores. Esto garantiza que si hay un problema de interrupción del socket de red, los servidores de caché lo sabrán y lo solucionarán mediante reintentos.
  • - Servidores parcialmente conectados: a pesar de los reintentos, hay ocasiones en las que una conexión no se restablece dentro del período de tiempo de espera y un servidor de caché supone que uno o más de los otros servidores de caché están inactivos. Entonces, sigue funcionando sin ellos. Pero, en realidad, los otros servidores no están inactivos y, de hecho, otros servidores del clúster los ven. Esto se denomina servidores parcialmente conectados. Cuando esto sucede, el coordinador del clúster toma nota de esto y elimina por la fuerza el servidor "parcialmente conectado" del clúster. Al hacer esto, el clúster vuelve a estar sano. Y el servidor que se elimina puede volver a unirse al clúster mediante intervención manual.
 

Conmutación por error de conexión con clientes

Todos los clientes de caché están conectados a uno o más servidores de caché en el clúster a través de TCP, según las topologías de almacenamiento en caché. Para Partitioned/Partition-Replica Cache, cada cliente está conectado a todos los servidores de caché. Para la caché replicada, cada cliente está conectado a solo uno de los servidores de caché, generalmente a través de un algoritmo de equilibrio de carga utilizado por los servidores de caché. Y, para Mirrored Cache, todos los clientes se conectan solo al Nodo activo y solo se conectan al Nodo pasivo cuando el Nodo activo deja de funcionar y el Nodo pasivo se convierte en Nodo activo.

  • - Reintentos de conexión: si se rompe una conexión entre un cliente y los servidores de caché, NCache el cliente lo hace automáticamente múltiples intentos de conexión para establecer esta conexión. Estos reintentos se realizan hasta que se agota el período de "tiempo de espera". En la mayoría de las situaciones, esto restablece la conexión sin que la aplicación cliente lo note. Si no se puede establecer una conexión, se lanza una excepción a la aplicación cliente para que pueda manejarla.
  • - Latido del corazón que mantiene vivo: NCache también tiene una función para que cada cliente siga enviando algunos paquetes de datos pequeños como latido del corazón a todos los servidores de caché a los que está conectado. Esto garantiza que si hay un problema de interrupción del socket de red, el cliente lo sabrá y lo solucionará mediante reintentos de conexión.
  • - Clientes parcialmente conectados (caché particionado/partición-réplica): a pesar de los reintentos, hay ocasiones en las que una conexión no se restablece dentro del período de tiempo de espera y un cliente de caché asume que no puede comunicarse con uno o más de los otros servidores de caché aunque no estén inactivos. Entonces, en el caso de la caché particionada/réplica de partición, interactúa con otros servidores para leer o escribir todos los datos, aunque su mapa de distribución le indique que el servidor con el que no puede comunicarse tiene los datos. En este caso, el otro servidor de caché actúa como intermediario para realizar la operación con éxito.
  • - Desconexión con el servidor (caché replicada/espejada): en el caso de caché replicada, el cliente solo está conectado con un servidor y si esta conexión se interrumpe, el cliente se conecta automáticamente a uno de los otros servidores de caché. En el caso de la caché reflejada, si el cliente no puede conectarse al nodo activo, asume que está inactivo e intenta conectarse al nodo pasivo.
 

Topologías de almacenamiento en caché (escalabilidad lineal)

NCache proporciona una variedad de topologías de almacenamiento en caché para permitir la escalabilidad lineal mientras se mantiene la consistencia y confiabilidad de los datos. El objetivo de esto es abordar las necesidades de las aplicaciones que se ejecutan con cachés de dos servidores muy pequeños a clústeres de caché muy grandes que consisten en decenas o incluso cientos de servidores de caché. Una topología de almacenamiento en caché es esencialmente una estrategia de almacenamiento de datos, replicación de datos y conexiones de clientes en una caché agrupada que abarca varios servidores de caché.

 

Datos de referencia frente a datos transaccionales

Los datos de referencia son datos que no cambian con mucha frecuencia y se almacenan en caché para acceder a ellos una y otra vez y actualizarlos ocasionalmente. Los datos transaccionales, por otro lado, son datos que cambian con mucha frecuencia y puede actualizarlos con la misma frecuencia con la que los lee.

Al principio, un caché se consideraba bueno principalmente para datos de referencia porque los datos que cambiaban con frecuencia quedaban obsoletos y no estaban sincronizados con los datos más recientes de la base de datos. Sin embargo, NCache ahora proporciona funciones muy potentes que permiten que la memoria caché mantenga los datos almacenados en la memoria caché sincronizados con la base de datos.

Todas las topologías de almacenamiento en caché son buenas para datos de referencia, pero sólo algunas topologías de almacenamiento en caché son especialmente mejores para datos transaccionales. Debe determinar cuántas lecturas y escrituras realizará para determinar qué topología es mejor para usted. Además, algunas topologías de almacenamiento en caché no se escalan tanto, especialmente para las actualizaciones, así que téngalo en cuenta también.

A continuación se muestra una lista de topologías de almacenamiento en caché junto con su impacto en las lecturas frente a las escrituras.

  • - Caché con particiones (sin replicación): Muy bueno. Súper rápido tanto para lecturas como para escrituras y también se escala linealmente agregando servidores. La topología más rápida, pero no replica los datos, por lo que se pierden datos si un servidor de caché deja de funcionar.
  • - Caché de réplica de partición (Más popular): Muy bueno. Superrápido tanto para lectura como para escritura y también escala linealmente agregando servidores. Segunda topología más rápida, pero replica datos para brindar confiabilidad sin comprometer la escalabilidad lineal. La mejor combinación de velocidad/escalabilidad y confiabilidad de datos.
  • - Caché replicado: Muy bueno para entornos más pequeños.. Superrápido y linealmente escalable para lecturas. Moderadamente rápido para escrituras en un clúster de 2 nodos, pero no escala a medida que se agregan más servidores porque las escrituras se realizan de forma sincrónica en todos los servidores de caché.
  • - Caché reflejada: Muy bueno para ambientes más pequeños. Superrápido para lecturas. Las escrituras son más rápidas que la caché replicada para activo/pasivo de 2 nodos. Pero no va más allá de esto.
  • - Caché de cliente: Muy bueno para uso intensivo de lectura. con todas las topologías de almacenamiento en caché. Le permite alcanzar la velocidad de InProc con un caché distribuido.
 

Caché con particiones

La caché con particiones es la topología de almacenamiento en caché más rápida y escalable para lecturas y escrituras. Está diseñado para clústeres de caché más grandes y el rendimiento de lecturas y escrituras sigue siendo muy bueno incluso en cargas máximas. Sin embargo, no replica datos y, por lo tanto, hay pérdida de datos si un servidor de caché deja de funcionar.

Estas son algunas de las características de la memoria caché con particiones.

  • - Particiones dinámicas: el caché se divide en particiones en tiempo de ejecución y cada servidor de caché tiene una partición. Hay un total de 1000 depósitos por caché agrupada que se distribuyen uniformemente en todas las particiones. Agregar o eliminar el servidor de caché da como resultado la creación o eliminación de particiones en tiempo de ejecución. La asignación de depósitos a las particiones no cambia cuando se agregan datos al caché. En cambio, solo cambia cuando se agregan o eliminan particiones o cuando se produce el equilibrio de datos (ver más abajo).
  • - Mapa de distribución: el clúster de caché crea un mapa de distribución que contiene información sobre qué depósitos existen en qué particiones. El mapa de distribución se actualiza cada vez que se agregan o eliminan particiones o cuando se produce el equilibrio de datos (ver más abajo). El mapa de distribución se propaga a todos los servidores y clientes. Los clientes usan esto para determinar con qué servidor de caché hablar para leer o escribir un determinado elemento almacenado en caché.
  • - Equilibrio de datos dinámico: dado que todos los depósitos son en realidad depósitos de HashMap donde los datos se almacenan en función de un algoritmo Hashing en las claves, existe la posibilidad de que algunos depósitos tengan más datos que otros dependiendo de las claves que se utilizaron. Si este desequilibrio cruza un umbral configurable, NCache cambia automáticamente los cucharones para equilibrar esta carga.
  • - Los clientes se conectan a TODAS las particiones: los clientes se conectan a todos los servidores de caché para poder leer o escribir datos directamente en una solicitud desde el servidor. Si la conexión de un cliente con un servidor de caché falla, le pide a uno de los otros servidores que lea o escriba un elemento almacenado en caché que existe en el servidor al que no puede acceder. Y ese servidor ayuda al cliente a lograrlo.
 

Caché de réplica de partición

NOTA: todo lo mencionado en Caché Particionada también es cierto aquí.

Al igual que Caché con particiones, Partition-Replica Cache es una topología de almacenamiento en caché extremadamente rápida y linealmente escalable para lecturas y escrituras. Está diseñado para clústeres de caché más grandes y el rendimiento de lecturas y escrituras sigue siendo muy bueno incluso en cargas máximas. Además de esto, Partition-Replica Cache también replica datos y, por lo tanto, no hay pérdida de datos incluso si un servidor de caché deja de funcionar.

Partition-Replica Cache es nuestra topología de almacenamiento en caché más popular porque le brinda lo mejor de ambos mundos, rendimiento/escalabilidad lineal y confiabilidad de datos.

A continuación se presentan algunas de las características de Partition-Replica Cache.

  • - Particiones dinámicas: igual que la caché particionada.
  • - Réplicas dinámicas: cuando se crean o eliminan particiones en tiempo de ejecución, sus réplicas también se crean o eliminan. Las réplicas siempre están en un servidor de caché diferente y solo hay una réplica para una partición.
  • - Replicación asíncrona: de forma predeterminada, la replicación de la partición a la réplica es asincrónica. Esto significa que el cliente puede agregar, actualizar o eliminar cualquier dato en la partición y todas estas operaciones se ponen en cola. Y luego se replican a GRANEL en la réplica. Esto mejora el rendimiento, pero conlleva un ligero riesgo de pérdida de datos en caso de que una partición falle y no todas las actualizaciones se hayan replicado en la réplica. Pero, en la mayoría de las situaciones, esto está perfectamente bien.
  • - Replicación sincronizada: si sus datos son muy confidenciales (por ejemplo, datos financieros) y no puede permitirse el lujo de tener datos obsoletos, puede elegir la opción "Sincronizar replicación" en la configuración. Cuando se selecciona, todas las operaciones de escritura se realizan de forma sincrónica tanto en la partición como en la réplica hasta que se consideran completadas. De esta manera, si la operación falla en la Réplica, también falla en la Partición. Y puede tener la garantía de que todos los datos en el caché (tanto en la partición como en la réplica) siempre serán consistentes. Sin embargo, esto tiene implicaciones en el rendimiento, ya que es más lento que la replicación asíncrona.
  • - Mapa de distribución: igual que la caché particionada.
  • - Equilibrio dinámico de datos (particiones y réplicas): igual que la caché particionada. Sin embargo, en Partition-Replica Cache, el equilibrio de datos también se produce en las réplicas cuando las particiones tienen datos equilibrados.
  • - Los clientes se conectan a TODAS las particiones: igual que la caché particionada. Además, en Partition-Replica Cache, los clientes solo hablan con las particiones y no con sus réplicas. Esto se debe a que las réplicas son pasivas y solo las particiones se comunican con sus réplicas cuando les replican datos.
 

Caché replicado

La caché replicada proporciona confiabilidad de los datos mediante la replicación en dos o más servidores de caché. Es muy rápido y escalable para lecturas. Pero no se escala para escrituras porque son síncronas con todos los servidores del clúster. Para un clúster de 2 nodos, las escrituras son más rápidas que la base de datos, pero no tan rápidas como la caché de réplica de partición. Para 3 o más clústeres de servidores, el rendimiento de escritura se degrada y eventualmente se vuelve poco atractivo.

A continuación se muestran algunas de las características de la caché replicada.

  • - Nodos replicados dinámicos: puede agregar o eliminar servidores de caché en tiempo de ejecución a un caché existente sin detener el caché o su aplicación. El servidor recién agregado hace una copia (réplica) de todo el caché en sí mismo. Y el servidor que se elimina actualiza la membresía del clúster y todos sus clientes se mueven a otros servidores.
  • - Caché completo en cada nodo: todo el caché se copia a cada servidor del clúster.
  • - Las lecturas son escalables: las lecturas son súper rápidas y escalables cuando agregas más servidores. Sin embargo, agregar más servidores no aumenta el tamaño de la caché, ya que el servidor recién agregado es solo otra copia de la caché completa.
  • - Las escrituras son sincrónicas: las escrituras son muy rápidas para un clúster de 2 nodos y más rápidas que su base de datos. Sin embargo, las escrituras son sincrónicas, lo que significa que cada operación de escritura no se completa hasta que todos los servidores de caché se actualizan sincrónicamente. Debido a esto, las escrituras no son tan rápidas como otras topologías y su rendimiento se degrada cuando se aumenta el tamaño del clúster más allá de los 2 nodos.
  • - El cliente se conecta solo a un servidor: cada cliente de caché solo se conecta a un servidor en el clúster según un algoritmo de equilibrio de carga determinado por los servidores de caché. Si este servidor de caché deja de funcionar, el cliente se conecta al siguiente servidor de la lista. También puede especificar manualmente el servidor al que conectarse en el archivo de configuración de caché si no desea utilizar el equilibrio de carga.
 

Caché reflejada

Mirrored Cache es un clúster de caché activo/pasivo de 2 nodos destinado a entornos más pequeños. Proporciona confiabilidad de datos a través de replicación/duplicación asincrónica desde el nodo activo al nodo pasivo. Es muy rápido tanto para lectura como para escritura (de hecho, las escrituras son más rápidas que la caché replicada) pero no escala más allá de este clúster activo/pasivo de 2 nodos.

A continuación se muestran algunas de las características de Mirrored Cache.

  • - 1 servidor activo y 1 pasivo: Mirrored Cache solo tiene dos servidores. Uno es Activo y el otro es Pasivo. Ambos tienen una copia del caché completo. Si el servidor activo deja de funcionar, el servidor pasivo se vuelve activo automáticamente. Y, si el servidor activo previamente caído vuelve a funcionar, se trata como un servidor pasivo a menos que cambie esta designación a través de herramientas de administración en tiempo de ejecución.
  • - Conexiones de clientes con soporte de conmutación por error: cada cliente de caché solo se conecta al Active Server en el clúster para realizar sus operaciones de lectura y escritura. Si este servidor activo deja de funcionar, todos los clientes se conectan automáticamente al servidor pasivo que ya se ha convertido en activo. Esta compatibilidad con la conmutación por error garantiza que Mirrored Cache esté siempre activo y funcionando incluso si un servidor falla.
  • - Duplicación asíncrona: cualquier escritura realizada en el servidor activo se refleja/replica de forma asincrónica en el servidor pasivo. Esto garantiza que el servidor pasivo esté siempre sincronizado con los datos más recientes en caso de que el servidor activo deje de funcionar y el servidor pasivo deba volverse activo. La duplicación asíncrona también significa un rendimiento más rápido porque se realizan múltiples escrituras como una operación BULK en el servidor pasivo.
 

Caché del cliente (velocidad InProc)

Client Cache es local para su servidor web/aplicación y se encuentra muy cerca de su aplicación y le permite almacenar en caché los datos que está leyendo desde el caché distribuido (cualquier topología de almacenamiento en caché). Puede ver esto como un "caché sobre un caché" y mejora en gran medida el rendimiento y la escalabilidad de su aplicación aún más. Si usa Client Cache en modo InProc, puede alcanzar la velocidad de InProc.

Si bien es local para su aplicación, una caché de cliente no es independiente. En su lugar, siempre se sincroniza con la memoria caché en clúster. Esto garantiza que los datos en la memoria caché del cliente nunca se vuelvan obsoletos.

A continuación se muestran algunas de las características de Mirrored Cache.

  • - Bueno para leer casos intensivos: Client Cache es bueno solo si tiene un caso de uso de lectura intensiva donde la cantidad de lecturas es muchas veces mayor que la de escrituras. Si el número de escrituras es el mismo que el de lecturas, entonces la caché del cliente es en realidad más lenta porque una escritura implica actualizarla en dos lugares.
  • - Velocidad más rápida como un caché local (InProc/OutProc): existe una caché de cliente dentro del proceso de su aplicación (modo InProc) o local en su servidor web/aplicaciones (modo OutProc). En cualquier caso, aumenta significativamente el rendimiento de su aplicación en comparación con simplemente obtener estos datos del caché agrupado. El modo InProc le permite almacenar en caché objetos en su "montón de aplicaciones", lo que le brinda una "velocidad InProc" que no puede ser igualada por ningún caché distribuido.
  • - No es un caché independiente: La caché del cliente puede ser una caché local, pero no es una caché independiente. En cambio, se mantiene sincronizado con la caché agrupada. Lo que esto significa es que si otro cliente actualiza datos en la caché agrupada que usted tiene en su caché de cliente, la caché agrupada notifica a la caché de cliente que se actualice con la última copia de esos datos. Y esto se hace de forma asincrónica pero inmediata.
  • - Sincronización optimista/pesimista: De forma predeterminada, Client Cache utiliza sincronización optimista, lo que significa que NCache El cliente asume que todos los datos que tiene la memoria caché del cliente son la copia más reciente. Si la memoria caché del cliente no tiene datos, el cliente los obtiene de la memoria caché en clúster, los coloca en la memoria caché del cliente y los devuelve a la aplicación del cliente. Sincronización pesimista significa que el cliente de caché primero comprueba la caché agrupada si tiene una versión más reciente de un elemento almacenado en caché. Si es así, el cliente lo obtiene, lo coloca en la memoria caché del cliente y lo devuelve a la aplicación del cliente. De lo contrario, devuelve lo que haya en la caché del cliente.
  • - Complemento sin ningún cambio de código: lo mejor de Client Cache es que no implica ningún cambio de código en su aplicación. En su lugar, simplemente conéctelo mediante un cambio de configuración. Y, NCache Client API detrás de escena sabe qué hacer con el uso de Client Cache.

¿Qué hacer a continuación?

© Copyright Alachisoft 2002 - Todos los derechos reservados. NCache es una marca registrada de Diyatech Corp.