El manejo de datos con eficiencia y consistencia se ha convertido en uno de los mayores desafíos de la era moderna. Las aplicaciones web que constantemente atienden datos transaccionales carecen de rendimiento y escalabilidad. Afortunadamente, puede introducir el almacenamiento en caché para manejar tales situaciones, evitando el costo significativo que se deriva de los viajes frecuentes a la red.
Sin embargo, mientras usa un caché, la aplicación tiene que lidiar con dos fuentes de datos que pueden complicar el código de la aplicación y causar más retrasos en el rendimiento. Como en el caso de una pérdida de caché, será necesario un viaje de red a la base de datos para obtener los datos requeridos y llenarlos en el caché. Para simplificar el código de la aplicación y reducir la latencia involucrada en los viajes de red, NCache proporciona un proveedor de origen de datos personalizado llamado Read-Through. Este proveedor interactúa con la base de datos en nombre de su aplicación para obtener los datos necesarios de la fuente de datos y llenar la memoria caché en una sola operación para uso presente y futuro.
¿Qué es la lectura directa?
Read-Through es un proveedor de fuente de datos personalizado, a través del cual le indica a la memoria caché cómo y cuándo necesita obtener datos de la base de datos. Read-Through interactúa con su fuente de datos en nombre de su aplicación y le evitará realizar viajes de base de datos en tiempo de ejecución, por lo tanto, mejorará el rendimiento de la aplicación.
Uso de lectura completa con NCache
En el almacenamiento en caché de lectura simultánea, cuando hay un error de caché, NCache llamará a su proveedor para cargar datos en la llamada de obtención. En cachés agrupadas, donde están involucrados varios servidores, el proveedor ReadThrough se activará (inicializará) en todos los nodos del servidor de caché. Sin embargo, las operaciones de lectura completa se realizarán de acuerdo con la topología utilizada.
Junto con ReadThrough, NCache también ofrece la opción de lectura forzada. Con la lectura directa forzada habilitada, su proveedor ignorará los datos en el caché y obtendrá los datos de la fuente de datos a la fuerza. Por lo tanto, los datos no se verificarán en el caché y se obtendrán directamente de la fuente de datos.
NCache proporciona múltiples formas de mantener su caché fresca y caducidad de los datos es uno de ellos. Pero la caducidad por sí sola puede causar retrasos en el rendimiento, y aquí es donde Leer de parte a parte entra. Por ejemplo, en una tienda de comercio electrónico, se almacenan en caché cientos de productos, a algunos de ellos se accede con frecuencia; el resto de los elementos almacenados en caché solo se quedarán allí y consumirán la memoria caché.
Al usar la caducidad, puede invalidar el elemento después de un tiempo específico o la frecuencia con la que se ha accedido. Sin embargo, puede existir la posibilidad de que un elemento haya vencido eventualmente, pero la aplicación solicita ese mismo elemento. En tal caso, la aplicación debe obtener el elemento de la base de datos y luego agregarlo al caché. Este viaje de la base de datos en tiempo de ejecución puede provocar ciertos retrasos y, por lo tanto, perjudicar el rendimiento de la aplicación.
Para evitar este retraso en el rendimiento, Read-Through junto con el Opciones de resincronización La propiedad recuperará automáticamente todos los elementos configurados con el indicador de resincronización, en el momento en que caduque de la memoria caché. Esto siempre mantendrá la memoria caché actualizada, reducirá los errores de memoria caché y evitará los viajes de la base de datos en tiempo de ejecución.
Del mismo modo, las Dependencias también pueden ser una excelente manera de mantener la coherencia de los datos en la memoria caché. Especialmente en escenarios donde el usuario quiere mantener los datos sincronizados con la base de datos para que en cada actualización en los datos correspondientes en la base de datos, el caché sea informado e invalide automáticamente los datos respectivos. De esta manera, los datos en el caché permanecen actualizados y todas las operaciones utilizan el conjunto de datos actualizado.
Importancia de la lectura completa
Las siguientes circunstancias en particular deberían alentarlo a utilizar los proveedores de fuentes de datos de lectura simultánea:
Código de solicitud simplificado
Read-Through implementa el código de la aplicación con el principio de "Separación de preocupaciones" para lograr esta simplificación. Después de implementar Read-Through, toda la comunicación con la base de datos se realiza a través de la capa de acceso a datos. Ahora es responsabilidad del caché proporcionar los datos requeridos y sincronizar el caché con la base de datos.
Escalabilidad de lectura mejorada
Esta característica con ResyncOptions Property también mejora la escalabilidad de lectura al mantener siempre el elemento de caché disponible y actualizado. Puede haber muchas situaciones en las que un el elemento de caché caduca y la base de datos enfrenta innumerables solicitudes de hilos de usuarios.
Esta situación, junto con los millones de elementos almacenados en caché y miles de solicitudes de usuarios en paralelo, genera una carga notablemente mayor en la base de datos. Afortunadamente, Read-Through junto con ResyncOptions mantiene el elemento de caché en el caché mientras obtiene la última copia de la base de datos, luego actualiza el elemento de caché, por lo tanto, evita que la aplicación vaya a la base de datos para estos elementos de caché, manteniendo la carga de la base de datos al mínimo.
Alta disponibilidad de datos y consistencia en caché
Read-Through garantiza una alta disponibilidad y consistencia de los datos en la memoria caché al actualizarla automáticamente. NCache El proveedor de lectura completa especificado con ResyncOptions vuelve a cargar el objeto inmediatamente después de su vencimiento o cualquier otro cambio en los datos correspondientes en la base de datos. Esto evita que los datos de caché se vuelvan obsoletos.
Formas de optimizar el rendimiento mediante la lectura directa
Read-Through no solo mantiene la coherencia de la memoria caché, sino que también mejora el rendimiento de la aplicación al permitirle obtener elementos de caché a granel, ahorrando así costosas llamadas a la base de datos y viajes a la red.
Además, Read-Through puede ser una excelente alternativa a la memoria caché. Aparte de la memoria caché, la aplicación obtiene datos de la fuente de datos y actualiza la memoria caché, lo que aumenta la responsabilidad de la aplicación, complica el código de la aplicación y perjudica el rendimiento de la aplicación.
Conclusión
NCacheEl proveedor de fuente de datos Read-Through de mejora el rendimiento de su aplicación y garantiza una alta disponibilidad de datos. Read-Through también simplifica el código de su aplicación al eliminar fragmentos de código para comunicarse con la fuente de datos e interactúa con la base de datos en nombre de su aplicación. Entonces, si desea datos de caché perennes, no dude en obtener NCachePrueba gratuita de 60 días.