Lidar com dados com eficiência e consistência tornou-se um dos maiores desafios da era moderna. Os aplicativos da Web que atendem constantemente a dados altamente transacionais carecem de desempenho e escalabilidade. Felizmente, você pode introduzir o cache para lidar com essas situações, evitando o custo significativo decorrente de viagens frequentes à rede.
No entanto, ao usar um cache, o aplicativo precisa lidar com duas fontes de dados que podem complicar o código do aplicativo e causar mais atrasos no desempenho. Como no caso de falta de cache, uma viagem de rede ao banco de dados será necessária para obter os dados necessários e preenchê-los no cache. Para simplificar o código do aplicativo e reduzir a latência envolvida nas viagens de rede, NCache fornece um provedor de fonte de dados personalizado chamado Read-Through. Esse provedor interage com o banco de dados em nome de seu aplicativo para buscar os dados necessários da fonte de dados e preencher o cache em uma única operação para uso presente e futuro.
O que é Read-Through?
Read-Through é um provedor de fonte de dados personalizado, por meio do qual você informa ao cache como e quando ele precisa obter dados do banco de dados. Read-Through interage com sua fonte de dados em nome de seu aplicativo e evita que ele faça viagens de banco de dados em tempo de execução, melhorando, portanto, o desempenho do aplicativo.
Usando Read-Through com NCache
No Cache Read-Through, quando há uma falta de cache, NCache chamará seu provedor para carregar dados na chamada get. Em caches em cluster, onde vários servidores estão envolvidos, o provedor ReadThrough será ativado (inicializado) em todos os nós do servidor de cache. No entanto, as operações Read-Through serão realizadas de acordo com a topologia utilizada.
Junto com ReadThrough, NCache também oferece a opção de leitura forçada. Com Read-Through forçado habilitado, seu provedor irá ignorar os dados no cache e irá buscar os dados da fonte de dados. Portanto, os dados não serão verificados no cache e serão buscados diretamente na fonte de dados.
NCache fornece várias maneiras de manter seu cache atualizado e expiração de dados é um deles. Mas a expiração por si só pode causar atrasos no desempenho, e é aqui que Leia Por exemplo, em uma loja de comércio eletrônico, centenas de produtos são armazenados em cache, alguns deles são acessados com frequência - o restante dos itens em cache ficará parado e consumirá a memória do cache.
Ao usar a expiração, você pode invalidar o item após um tempo especificado ou a frequência com que foi acessado. No entanto, pode haver a possibilidade de um item ter expirado, mas o aplicativo solicitar esse mesmo item. Nesse caso, o aplicativo precisa buscar o item no banco de dados e adicioná-lo ao cache. Essa viagem do banco de dados de tempo de execução pode levar a certos atrasos – prejudicando, assim, o desempenho do aplicativo.
Para evitar esse atraso de desempenho, Read-Through junto com o Opções de ressincronização A propriedade buscará automaticamente todos os itens configurados com o sinalizador de ressincronização, no momento em que expirar do cache. Isso sempre manterá o cache atualizado, reduzirá perdas de cache e evitará falhas no banco de dados de tempo de execução.
Da mesma forma, as dependências também podem ser uma ótima maneira de manter os dados consistentes no cache. Principalmente em cenários onde o usuário deseja manter os dados sincronizados com o banco de dados para que a cada atualização nos dados correspondentes no banco de dados, o cache seja informado e automaticamente invalide os respectivos dados. Dessa forma, os dados no cache permanecem atualizados e todas as operações utilizam o conjunto de dados atualizado.
Importância da leitura
As seguintes circunstâncias, em particular, devem incentivá-lo a usar os provedores de fonte de dados Read-Through:
Código de Aplicação Simplificado
Read-Through implementa o código do aplicativo com o princípio “Separation of Concerns”, para alcançar essa simplificação. Após a implantação do Read-Through, toda a comunicação com o banco de dados ocorre por meio da camada de acesso a dados. Agora é responsabilidade do cache fornecer os dados necessários e sincronizar o cache com o banco de dados.
Escalabilidade de leitura aprimorada
Esse recurso com a propriedade ResyncOptions também melhora a escalabilidade de leitura mantendo sempre o item de cache disponível e atualizado. Pode haver muitas situações em que um item de cache expira e o banco de dados enfrenta inúmeras solicitações de threads de usuários.
Essa situação, juntamente com os milhões de itens em cache e milhares de solicitações paralelas de usuários, leva a uma carga visivelmente maior no banco de dados. Felizmente, Read-Through junto com ResyncOptions mantém o item de cache no cache enquanto ele está buscando a cópia mais recente dele do banco de dados, então atualiza o item de cache, evitando assim que o aplicativo vá para o banco de dados para esses itens de cache, mantendo a carga do banco de dados ao mínimo.
Alta disponibilidade de dados e consistência no cache
Read-Through garante alta disponibilidade e consistência de dados no cache, atualizando automaticamente o cache. NCache O provedor Read-Through especificado com ResyncOptions recarrega o objeto imediatamente após sua expiração ou qualquer outra alteração nos dados correspondentes no banco de dados. Isso evita que os dados do cache fiquem obsoletos.
Maneiras de otimizar o desempenho usando read-through
Read-Through não apenas mantém seu cache consistente, mas também melhora o desempenho de seu aplicativo, permitindo que você obtenha itens de cache em massa, economizando chamadas de banco de dados caras e viagens de rede.
Além disso, o Read-Through pode ser uma excelente alternativa ao cache à parte. Além do cache, o aplicativo busca dados da fonte de dados e atualiza o cache, o que aumenta a responsabilidade do aplicativo, complica o código do aplicativo e prejudica o desempenho do aplicativo.
Conclusão
NCacheO provedor de fonte de dados Read-Through aprimora o desempenho de seu aplicativo e garante alta disponibilidade de dados. Read-Through também simplifica o código do aplicativo, eliminando blocos de código para comunicação com a fonte de dados e interage com o banco de dados em nome do aplicativo. Portanto, se você deseja dados de cache permanentes, não hesite em obter NCachede teste gratuito de 60 dias.