Comportamento de topologia para operações de cache
NCache fornece várias topologias de cache que se comportam de maneira diferente na execução de operações de cache nelas. Dado abaixo são NCache topologias e seus comportamentos.
- Cache de espelho (Somente edição Enterprise)
- Cache replicado
- Cache Particionado
- Cache de réplica particionada (Somente edição Enterprise)
- Cache de cliente (Somente edição Enterprise)
Topologia de espelho
Note
Este recurso está disponível apenas em NCache Enterprise edição.
In espelho topologia, o cliente se comunica apenas com o nó ativo, enquanto o nó passivo é a réplica do nó ativo e é usado para backup.
As operações em massa são executadas no nó ativo, onde o aplicativo aguarda que as operações sejam replicadas para o nó passivo.
As operações assíncronas também são executadas no nó ativo, mas o controle é retornado imediatamente ao aplicativo para que ele não espere que a operação seja executada em ambos os nós. Se o retorno de chamada estiver registrado, ele será acionado após o sucesso ou falha da operação.
Topologia replicada
In replicado topologia, o cliente é conectado a um nó por vez. Assim, as operações em massa/assíncronas são enviadas para o nó específico onde o cliente está conectado. Essas operações são então replicadas entre os nós de forma síncrona, garantindo a consistência dos dados.
No caso de operações em massa, as operações são enviadas para o nó específico onde o cliente está conectado. O controle é devolvido ao usuário após a replicação em todos os nós do cluster.
Para operações assíncronas, o controle é retornado imediatamente para o aplicativo, sem esperar que a replicação ocorra. No entanto, uma vez que a replicação ocorre, o retorno de chamada é acionado e retornado ao cliente.
Topologia Particionada
In particionado or réplica particionada topologia, é mantido um mapa de distribuição que é responsável pela distribuição de dados no cluster. Antes de entrarmos nos detalhes das operações que estão sendo executadas, é importante entender o que é um mapa de distribuição. Um mapa de distribuição é uma estrutura de par chave-valor, na qual as chaves representam a identidade do nó e o valor contém informações de buckets (de dados) que residem nesse nó. Dessa forma, um mapa inteiro é gerado para o cache e é mantido no lado do servidor. NCache permite que o nó coordenador decida a distribuição de dados com base no mapa.
Note
O mapa de distribuição distribui todos os dados no caso de um cluster totalmente conectado (todos os nós do cluster estão conectados). Caso um nó seja desconectado do cluster, NCache não divide mais os dados com base no mapa de distribuição e envia os dados para o próximo nó conectado.
Depois de obter o endereço do nó onde o bucket reside, a operação do mapa de distribuição é enviada para o nó de destino. NCache mantém o mapa distribuído na ponta do cliente para que ao realizar a próxima operação na chave, a operação será enviada diretamente para o nó onde os dados residem. Isso melhora o desempenho à medida que a operação é enviada diretamente ao nó onde os dados residem.
Supondo que os itens de dados 1-500 estejam em N1 e 501-1000 estejam em N2 (no entanto, os dados não são divididos em uma ordem e são embaralhados aleatoriamente) conforme o mapa de distribuição. Em qualquer operação realizada em itens em massa, a operação será enviada para o respectivo nó em uma única chamada. A maior facilidade de ter o mapa de distribuição no lado do cliente é o desempenho mais rápido porque a operação será executada diretamente no nó residente dos dados. O controle será devolvido ao usuário (para qualquer operação posterior) assim que a operação for realizada em sua totalidade.
Para operações assíncronas, uma vez que qualquer operação de gravação é executada, a chamada é retornada imediatamente para você enquanto a operação continua sendo executada em segundo plano. NCache mantém uma fila em segundo plano que (não afeta as operações do cliente) acompanha os dados wrt das operações. Dá um conforto maior com extensos conjuntos de dados onde as operações demoram muito para serem executadas.
Topologia de réplica particionada
Note
Este recurso está disponível apenas em NCache Enterprise edição.
In réplica particionada topologia, a operação do cliente é executada primeiro no nó atribuído e, em seguida, replicada para sua réplica de forma síncrona ou assíncrona, conforme especificado pelo usuário.
No caso de operações a granel, se em sincronizar modo, as operações são executadas no nó atribuído e o aplicativo aguarda até que a replicação ocorra na réplica da partição. Se em async modo, o controle é retornado ao aplicativo assim que a operação é executada no nó de partição e não aguarda a replicação, pois é assíncrona.
No caso de operações assíncronas, a operação é enviada ao nó de partição atribuído e o controle é devolvido ao usuário imediatamente, independentemente do modo de sincronização especificado.
Cache de cliente
Note
Este recurso está disponível apenas em NCache Enterprise edição.
A Cache de cliente é um cache local sincronizado com um cache em cluster remoto. Essa sincronização ocorre por meio de pesquisa - se um cache clusterizado detectar uma alteração em qualquer um de seus caches de cliente após o intervalo de pesquisa padrão de 1 segundo, ele informará ao cache do cliente para pesquisar os dados alterados. Caso contrário, após seu intervalo padrão de 10 segundos, o cache do cliente solicitará que o cache clusterizado forneça os dados alterados, se houver.
No caso de operações de gravação, cada operação é executada primeiro no cache do cliente e, posteriormente, executada no cache remoto por meio de um mecanismo interno Write-Behind.
Para operações em massa, o controle é retornado ao aplicativo assim que a operação é executada no cache do cliente e no cache remoto. No caso de operações assíncronas, os retornos de chamada são retornados ao cache do cliente do cache remoto após a operação ser executada no cache.
No entanto, para operações de leitura, a chave é pesquisada primeiro no cache do cliente; se não for encontrado, o cache do cliente buscará o item de chave do cache remoto e o retornará ao cliente. Isso proporciona um aumento máximo no desempenho e escalabilidade do aplicativo sem comprometer a integridade dos dados.
Veja também
Adicionar dados ao cache
Atualizar dados existentes no cache
Recuperar dados de cache existentes
Remover dados do cache