ASP.NET - Como lidar com dados relacionais em um cache distribuído

Por Iqbal Khan

A Microsoft .NET Framework tornou-se popular por desenvolver uma série de aplicativos de alta transação, incluindo Web, arquitetura orientada a serviços (SOA), computação de alto desempenho ou computação em grade e computação em nuvem. Todas essas arquiteturas de aplicativos são escaláveis. Mas um grande gargalo ocorre no armazenamento de dados – normalmente um banco de dados relacional – que não é capaz de dimensionar e lidar com o aumento da carga de transações que a camada do aplicativo pode.

Como resultado, o cache distribuído está se tornando bastante popular porque permite armazenar dados em cache em um cache na memória que é muito mais rápido de acessar do que qualquer banco de dados. Além disso, o cache distribuído fornece escalabilidade linear em vários servidores de cache. Com escalabilidade linear, você pode adicionar mais servidores de cache ao cluster de cache distribuído se precisar lidar com uma carga de transação maior. O ganho incremental na capacidade transacional não diminui à medida que você adiciona mais servidores (é uma linha reta em um gráfico XY onde X é o número de servidores de cache e Y é a capacidade de transação). A Figura 1 mostra como o cache distribuído se encaixa em um aplicativo ASP.NET ou Windows Communication Foundation (WCF) típico e como ele fornece escalabilidade linear.

Leia o artigo completo

Neste artigo, discutirei como os desenvolvedores devem lidar com relacionamentos de dados enquanto armazenam seus dados em cache.

Embora o cache distribuído seja excelente, um desafio que ele apresenta é como armazenar em cache dados relacionais que possuem vários relacionamentos entre elementos de dados. Isso ocorre porque um cache distribuído fornece uma interface simples, semelhante a Hashtable (chave, valor), onde a “chave” identifica exclusivamente um item armazenado em cache e o “valor” são seus dados ou objeto. No entanto, seu aplicativo provavelmente possui um modelo de objeto de domínio complexo com herança, agregação e outros tipos de relacionamentos.

Além disso, um cache distribuído armazena itens individuais em cache separadamente, o que é diferente do banco de dados onde você tem relacionamentos entre diferentes tabelas. Geralmente, não há relacionamentos entre os diferentes itens armazenados em cache em um cache distribuído típico. Isso representa um desafio para os desenvolvedores de aplicativos .NET. Em outras palavras, você está enfrentando o desafio de rastrear muitas informações de relacionamento dentro do seu aplicativo para garantir que possa lidar corretamente com os relacionamentos no cache e, ao mesmo tempo, aproveitar as vantagens do cache distribuído.

Leia o artigo completo
© Copyright Alachisoft 2002 - . Todos os direitos reservados. NCache é uma marca registrada da Diyatech Corp.