Hoje, o cache distribuído é amplamente utilizado para alcançar escalabilidade e desempenho em aplicativos de alto tráfego. O cache distribuído descarrega seus servidores de banco de dados servindo dados armazenados em cache do armazenamento na memória. Além disso, poucos caches distribuídos também fornecem recursos de consulta semelhantes a SQL, que você pode consultar facilmente seu cache distribuído da maneira que consulta seu banco de dados, ou seja, “SELECT employee WHERE employee.city=‘New York’”
Em primeiro lugar, a maioria dos caches distribuídos nem fornece Recursos de consulta semelhantes a SQL. Mesmo alguns que fornecem isso têm um suporte muito limitado para isso. Eles apenas fornecem pesquisa de cache distribuído com base em critérios simples. Considerando que existem vários cenários em que você precisa encontrar o resultado com base em funções agregadas, ou seja, “SELECT COUNT(employee) WHERE salary > 1000”
or “SELECT SUM(salary) WHERE employee.city = ‘New York’”
. Para conseguir isso, você deve primeiro consultar o cache distribuído e, em seguida, calcular a função agregada nos dados de cache buscados.
NCache Adicionar ao carrinho NCache Docs Consulta SQL em NCache Docs
Por que usar NCache consultar o cache distribuído usando funções agregadas
Esta abordagem tem duas grandes desvantagens. A primeira é que você precisa executar a consulta no cache distribuído, o que envolve a busca de todos os dados do cache distribuído para o cliente de cache. Esses dados podem variar de MBs a GBs, e essa operação se torna mais cara quando você também está pagando pela largura de banda da rede consumida. Além disso, na maioria das vezes você não precisa desses dados depois de concluir os cálculos da função agregada.
A segunda desvantagem é que envolve programação personalizada para cálculo de função agregada. Isso adiciona horas extras e ainda a maioria dos cenários complexos não podem ser cobertos. Seria muito melhor se você pudesse continuar desenvolvendo aplicativos para o propósito que está sendo construído e não se preocupar em projetar e implementar esses recursos extras por conta própria.
Estas são as razões pelas quais NCache oferece a flexibilidade de consultar o cache distribuído usando funções agregadas como COUNT, SUM, MIN, MAX e AVG como parte de sua linguagem de consulta de objetos (OQL). Usando NCache Funções agregadas OQL, você pode facilmente realizar os cálculos agregados necessários dentro do domínio de cache distribuído. Essa abordagem não apenas evita o tráfego de rede, mas também oferece um desempenho muito melhor em termos de cálculo de funções agregadas. Isso ocorre porque todas as seleções e cálculos são feitos dentro do domínio de cache distribuído e nenhuma viagem de rede está envolvida.
Aqui está o exemplo de código para pesquisar NCache usando consultas agregadas OQL:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public void Main(string[] args) { ... NCache.InitializeCache("myPartitionReplicaCache"); String query = "SELECT COUNT(Business.Product) WHERE this.ProductID > ? AND this.Price < ?"; Hashtable param = new Hashtable(); param.Add("ProductID", 100); param.Add("Price", 50); // Fetch the cache items matching this search criteria IDictionary searchResults = _cache.SearchEntries(query, values); ... } |
Para um tempo de execução de consulta mais reduzido, NCache executa a consulta semelhante a SQL em paralelo, distribuindo-a para todos os servidores de cache, assim como o mecanismo de redução de mapa. Além disso, você pode usar NCache Consultas agregadas OQL em aplicativos .NET e Java.
Conclusão!
Em suma, NCache fornece a você não apenas a escalabilidade e o desempenho, mas também a flexibilidade de pesquisar o cache distribuído usando a função de agregação do tipo SQL.
NCache Adicionar ao carrinho Baixar NCache Comparação de edições