ASP.NET: cómo manejar datos relacionales en una caché distribuida

Por Iqbal Kan

El Microsoft .NET Framework se ha vuelto popular por desarrollar una variedad de aplicaciones de alta transacción que incluyen Web, arquitectura orientada a servicios (SOA), computación de alto rendimiento o computación en cuadrícula y computación en la nube. Todas estas arquitecturas de aplicaciones son escalables. Pero se produce un cuello de botella importante en el almacenamiento de datos, normalmente una base de datos relacional, que no puede escalar ni manejar la mayor carga de transacciones que puede hacer el nivel de la aplicación.

Como resultado, el almacenamiento en caché distribuido se está volviendo bastante popular porque le permite almacenar datos en un caché en memoria al que es mucho más rápido acceder que cualquier base de datos. Además, el almacenamiento en caché distribuido proporciona escalabilidad lineal en varios servidores de caché. Con la escalabilidad lineal, puede agregar más servidores de caché al clúster de caché distribuida si necesita manejar una carga de transacciones mayor. La ganancia incremental en la capacidad transaccional no disminuye a medida que agrega más servidores (es una línea recta en un gráfico XY donde X es la cantidad de servidores de caché e Y es la capacidad de transacción). La Figura 1 muestra cómo el almacenamiento en caché distribuido encaja en una aplicación típica de ASP.NET o Windows Communication Foundation (WCF) y cómo proporciona escalabilidad lineal.

Leer artículo completo

En este artículo, analizaré cómo los desarrolladores deben manejar las relaciones de datos mientras almacenan en caché sus datos.

Aunque el almacenamiento en caché distribuido es excelente, un desafío que presenta es cómo almacenar en caché datos relacionales que tienen varias relaciones entre elementos de datos. Esto se debe a que un caché distribuido le proporciona una interfaz simple, similar a Hashtable (clave, valor), donde la "clave" identifica de forma única un elemento almacenado en caché y el "valor" son sus datos u objeto. Sin embargo, su aplicación probablemente tenga un modelo de objetos de dominio complejo con herencia, agregación y otros tipos de relaciones.

Además, una caché distribuida almacena elementos almacenados en caché individuales por separado, lo cual es diferente de la base de datos donde hay relaciones entre diferentes tablas. Normalmente, no existen relaciones entre los diferentes elementos almacenados en caché en una caché distribuida típica. Esto plantea un desafío para los desarrolladores de aplicaciones .NET. En otras palabras, enfrenta el desafío de rastrear gran parte de la información de relaciones dentro de su aplicación para asegurarse de que puede manejar las relaciones correctamente en el caché y, al mismo tiempo, aprovechar el almacenamiento en caché distribuido.

Leer artículo completo
© Copyright Alachisoft 2002 - Todos los derechos reservados. NCache es una marca registrada de Diyatech Corp.