El almacenamiento en caché de datos de uso frecuente de su aplicación es un movimiento extremadamente competente. Pero asegurarse de que los datos almacenados en caché permanezcan sincronizados con su base de datos Oracle es el dilema. El truco para superar esto es usar vencimientos de datos en los que adivina el TTL (Tiempo de vida) del elemento y luego lo almacena en caché.

No importa cuán popular sea este esquema, esto sigue siendo una mera suposición sobre cuánto tiempo permanecerá sin cambios ese elemento en la base de datos. Y las conjeturas no siempre son precisas. Si su aplicación es sensible a los datos donde la obtención y el procesamiento de datos inexactos refuta su propósito, entonces usar la caducidad le costará mucho.

Lo que lo salva de esta situación es usar un mecanismo de sincronización de base de datos en su caché como NCache, que elimina automáticamente los datos de caché correspondientes si se actualiza en la base de datos de Oracle.

NCache Detalles                 Dependencia de caché en la base de datos               Técnicas de caducidad de datos

 

Usar NCache para sincronizar con Oracle Server

Oracle Dependency utiliza notificaciones de eventos que notifican a todos los clientes de la base de datos cuando cambia un conjunto de datos en la base de datos. Información de fondo: NCache utiliza esta función para registrarse como cliente de Oracle Server. Esto significa que siempre que los datos cambien en el conjunto de datos de Oracle, NCache es notificado automáticamente. Usando esta información, NCache mantiene un mapa de todos los elementos almacenados en caché con sus conjuntos de datos correspondientes. Entonces, siempre que NCache recibe una notificación de un cambio, invalida el elemento de caché correspondiente del caché y recupera el actualizado la próxima vez que la aplicación cliente lo solicite.

sincronizarncache-oráculo

Figura: Sincronizar NCache con servidor Oracle

vamos a sincronizar NCache con servidor Oracle

Voy a tomar un ejemplo simple de una aplicación de comercio electrónico (.NET Core basado) cuyo éxito entero radica en su precisión. Miles de clientes acceden a esta aplicación para realizar compras en línea cada minuto, por lo que los datos de esta aplicación se han almacenado en caché.

Ahora, tomemos un escenario muy común donde ClienteA compró la última Xbox Series X que tenía la tienda. El servidor de la aplicación elimina la cantidad de ese elemento de la base de datos, pero la memoria caché aún desconoce este cambio. Esta inconsistencia lleva a la ira del cliente cuando ClienteB le gusta el mismo producto, lo paga y recibe una notificación con un mensaje de pago exitoso, pero no recibe su última Xbox Series X.

Aquí, para asegurarse de que la aplicación no enfrente problemas de integridad de datos cada vez que los datos cambien en la base de datos principal de Oracle, NCache proporciona apoyo de Dependencia de Oracle.

Para utilizar esta función de dependencia, NCache le permite parametrizar su consulta de Oracle con OracleCacheDependencyOracleCacheDependency método que toma valores de parámetros en tiempo de ejecución. Hacer esto reducirá la cantidad de veces que su consulta debe compilarse en Oracle Server, por lo tanto, mejorará diez veces el rendimiento de la aplicación.

NCache Detalles                 Dependencia de caché en Oracle                     Configurar el entorno de Oracle

 

Hay mucho más que puede hacer con OracleCacheDependency. Aquí hay una lista de algunas funciones muy útiles compatibles con esta dependencia de Oracle.

Elemento de caché de recarga automática a través del proveedor de lectura

OracleCacheDependency es responsable de invalidar un elemento de caché una vez que cambia en la fuente de datos. NCache proporciona un Proveedor de fuente de respaldo de lectura completa en caso de que desee que el caché no solo invalide, sino que también obtenga la última versión del elemento modificado del servidor de Oracle. Con Leer de parte a parte opción habilitada, NCache llama al Leer a través proveedor para obtener los datos actualizados cada vez que Oracle Server notifique a la memoria caché de un cambio.

El siguiente código explica cómo puede lograr esta funcionalidad:

NCache Detalles                 Dependencia de caché en Oracle                     Proveedor de lectura

 

Dependencia de Oracle basada en procedimientos almacenados

NCache apoya Dependencia de Oracle basada en procedimientos almacenados si su preferencia radica en mantener todas sus consultas de Oracle dentro de la base de datos de Oracle. Estos procedimientos almacenados están precompilados en el servidor de Oracle y se ejecutan mucho más rápido que las consultas dinámicas de Oracle.

Para crear un procedimiento almacenado en Oracle, vea este ejemplo:

Llamar a este procedimiento almacenado en su aplicación .NET es fácil. Use el siguiente fragmento como ejemplo.

 

NCache Detalles                 Dependencia de caché en Oracle                     Dependencia de Oracle mediante el procedimiento almacenado

Por qué sincronizar NCache con Oracle Server?

Nadie quiere que su aplicación en la que ha trabajado tan duro falle solo porque está procesando datos obsoletos. Pierdes tanto el negocio como la cara de esa manera. Pero NCache, para su comodidad, le proporciona Oracle Dependency que mantiene su caché sincronizada con su base de datos de Oracle para garantizar que la caché que está utilizando para su beneficio no le falle.

NCache Detalles                                Descargar NCache                          Comparación de ediciones