En el pasado, los expertos intentaron eliminar los cuellos de botella en el rendimiento mediante el uso de cachés del sistema pero, con el aumento del tráfico de usuarios, la necesidad de aplicaciones de alta velocidad se ha vuelto pertinente. Por lo tanto, las soluciones de almacenamiento en caché distribuidas en memoria, linealmente escalables, como NCache se está volviendo popular, mejorando El rendimiento del sistema múltiple.
En general, con una capa de almacenamiento en caché adicional en la arquitectura de su sistema, las aplicaciones son responsables de mantener la integridad de los datos de dos saltos: en cada solicitud de escritura, los datos deben actualizarse tanto en el caché como en la fuente de datos de back-end. Por lo tanto, si tiene varias aplicaciones que acceden al mismo caché y la base de datos, tendrá que duplicar su código de persistencia en todas ellas. Esto agrega complejidad al código en el nivel de la aplicación.
NCache Detalles NCache Documentos de escritura directa NCache Guía de administración de escritura simultánea
¿Qué es Write-Through?
Write-Through es una técnica de almacenamiento en caché, donde cuando las aplicaciones escriben datos en el caché y se configura una fuente de respaldo, también actualiza los registros en la base de datos.
NCache proporciona un Escribo a través interfaz que puede implementar, agregando toda la lógica de código de persistencia que de otro modo habría existido en su aplicación cliente. Debe implementar el código en todos los servidores de caché a través del NCache Administrador web.
De esta manera, cada vez que se realice una operación de escritura en el caché, se llamará al proveedor implementado y la base de datos se actualizará de acuerdo con su lógica.
Para saber cómo configurar un proveedor de escritura simultánea, consulte el oficial NCache Documentación del proveedor de escritura simultánea.
A veces, las operaciones de escritura simultánea pueden fallar. Esto puede suceder debido a varias razones, como problemas de conexión de red o debido a un error en la lógica de implementación de su interfaz. Dado que la escritura simultánea es sincrónica, NCache lanza una excepción a la aplicación. También encontrará el error registrado en los registros de caché.
Además, dado que NCache también proporciona el estado de la operación: brinda a sus usuarios la flexibilidad para manejar varios escenarios predeterminados. Por ejemplo, en caso de que la operación falle y desee volver a intentarlo, puede configurar la opción correspondiente y NCache realizará los retiros por usted.
Para obtener más detalles sobre estas operaciones, consulte NCache Docs.
La interfaz del proveedor de escritura simultánea
Como se mencionó anteriormente, NCache expone un Escribo a través interfaz que se espera que el usuario implemente y luego implemente en el extremo del servidor. El fragmento de código a continuación muestra los métodos IWriteThuProvider:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public interface IWriteThruProvider { // Perform tasks associated with freeing, releasing, or resetting resources. void Dispose(); // Perform tasks like allocating resources or acquiring connections void Init(IDictionary parameters, string cacheId); //Responsible for write operations on data source. OperationResult WriteToDataSource(WriteOperation operation); ICollection WriteToDataSource(ICollection operations); ICollection WriteToDataSource(ICollection dataTypeWriteOperations); } |
Hay tres sobrecargas del Escribir en fuente de datos método. Uno atiende las solicitudes de actualización de bases de datos atómicas, mientras que el otro maneja las solicitudes de escritura de bases de datos masivas. NCache también expone un método donde puede agregar lógica de código para actualizar NCache-estructuras de datos soportadas a la fuente de respaldo.
NCache Detalles Documentos de almacenamiento en caché de escritura simultánea Configurar proveedor de escritura simultánea
Escritura simultánea en la aplicación
La aplicación front-end solo tiene que acceder al caché para cualquier operación de escritura con la opción de Escribir a través especificado para que la memoria caché aplique esa operación en la base de datos a través del proveedor de escritura simultánea.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// Pre-Condition: Cache is already connected // Fetch product with the given ProductID Product product = FetchProductByProductID(1001); // Specify the key of the item string key = $"product.ProductID"; product.UnitPrice = 200; // Create a new cacheItem with the product var cacheItem = new CacheItem(product); // Enable write through for the cacheItem created var writeThruOptions = new WriteThruOptions(); writeThruOptions.Mode = WriteMode.WriteThru; // Add the item in the cache with WriteThru enabled CacheItemVersion itemVersion = cache.Insert(key, cacheItem, writeThruOptions); |
¿Qué es la memoria caché de escritura secundaria?
Escritura posterior en una caché distribuida es lo mismo que el almacenamiento en caché de escritura simultánea, excepto que actualiza la base de datos de forma asíncrona. Esto significa que la aplicación nunca tiene que esperar a que se actualice la fuente de datos, lo que aumenta el rendimiento de la aplicación, ya que las actualizaciones de las fuentes de datos backend son las operaciones de aplicación más lentas.
Tenga en cuenta que si bien es seguro suponer que los datos se actualizarán en la base de datos, se recomienda que opte por Write-Through si está tratando con datos altamente confidenciales. Además, dado que es un mecanismo asíncrono, las fallas en la escritura diferida se registran como excepciones y errores en los registros de caché, pero no se envían a la aplicación. NCache proporciona opciones para manejar fallas de la misma manera que con Write-Through porque también devuelve estados de operación.
Para obtener más detalles sobre cómo diseñar y realizar los esfuerzos de seguimiento y evaluación, refierase a NCache documentos para obtener detalles sobre estas operaciones.
Escritura diferida en aplicaciones
Write-behind es una forma más rápida de realizar operaciones de escritura simultánea, ya que utiliza el mismo proveedor de escritura simultánea pero de forma asíncrona. El único cambio en cuanto a la aplicación es la diferencia al especificar la opción Write-Through como WriteBehind en lugar de WriteThru.
Echa un vistazo al código de ejemplo a continuación:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// Pre-Condition: Cache is already connected // Fetch product with the given ProductID Product product = FetchProductByProductID(1001); // Specify the key of the item string key = $"product.ProductID"; product.UnitPrice = 200; // Create a new cacheItem with the product var cacheItem = new CacheItem(product); // Enable write through for the cacheItem created var writeThruOptions = new WriteThruOptions(); writeThruOptions.Mode = WriteMode.WriteBehind; // Add the item in the cache with WriteThru enabled CacheItemVersion itemVersion = cache.Insert(key, cacheItem, writeThruOptions); |
NCache Detalles Documentos de almacenamiento en caché de escritura simultánea Uso de escritura diferida en caché
Conclusión
Con soluciones de almacenamiento en caché distribuidas como NCache Ahora que ofrece funciones como escritura directa y escritura retrasada, las actualizaciones de la base de datos backend son más simples y manejables. Encapsula toda la lógica del código de persistencia dentro de un único proveedor. Esto le permite mantener la capa de base de datos a nivel de proveedor y la capa de almacenamiento en caché a nivel de aplicación. Entonces, con NCache, obtienes lo mejor de ambos mundos. Obtiene rendimiento de almacenamiento en caché para operaciones de lectura y mantenimiento de datos para operaciones de escritura. Por lo tanto, mejore el rendimiento de su sistema con la ayuda de soluciones empresariales como NCache. ¡Contáctanos y deja que nuestros expertos te ayuden!