A API de Cache Dinâmico está disponível para os aplicativos Java EE que são implementados no WebSphere Application Server. É possível usar o cache dinâmico para armazenar dados de negócios em cache, HTML gerado ou sincronizar dados em cache na célula usando o Data Replication Service (DRS).
Todas as instâncias de cache dinâmico criadas com o provedor de cache dinâmico do WebSphere eXtreme Scale são altamente disponíveis por padrão. O nível e custo de memória de alta disponibilidade depende da topologia usada.
Ao usar a topologia integrada, o tamanho do cache é limitado à quantidade de memória livre em um único processo do servidor, e cada processo do servidor armazena uma cópia completa do cache. Enquanto um único processo do servidor continua a executar, o cache sobrevive. Os dados do cache somente serão perdidos se todos os servidores que acessam o cache forem desligados.
Para armazenamento em cache que usa topologia particionada integrada, o tamanho do cache é limitado a um agregado do espaço livre disponível em todos os processos do servidor. Por padrão, o provedor de cache dinâmico do eXtreme Scale usa 1 réplica para cada shard primário, assim cada parte dos dados armazenados em cache é armazenada duas vezes.
Use a seguinte fórmula A para determinar a capacidade de um cache particionado integrado.
Fórmula A
F * C / (1 + R) = M
Para que uma grade de dados do WebSphere Application Server Network Deployment tenha 256 MB de espaço disponível em cada processo, com um total de 4 processos do servidor, uma instância de cache por todos esses servidores poderia armazenar até 512 megabytes de dados. Deste modo, o cache pode sobreviver a um dano no servidor sem perder dados. Também, até dois servidores poderiam ser desligados sequencialmente sem perda de dado algum. Assim, para o exemplo anterior, a fórmula é a seguinte:
256mb * 4 contêineres/ (1 primário + 1 réplica) = 512mb.
Caches que usam a topologia remota têm características de dimensionamento similares às dos caches que usam topologia particionada integrada, mas eles são limitados pela quantidade de espaço disponível em todos os processos de contêiner do eXtreme Scale.
Em topologias remotas, é possível aumentar o número de réplicas para fornecer um nível mais alto de disponibilidade ao custo de gasto adicional de memória. Na maioria dos aplicativos com cachê dinâmico, isso seria desnecessário, porém o arquivo dynacache-remote-deployment.xml pode ser editado para aumentar o número de réplicas.
Use as seguintes fórmulas, B e C, para determinar o efeito da inclusão de mais réplicas na alta disponibilidade do cache.
Fórmula B
N = Mínimo(T -1, R)
Fórmula C
Limite(T/ (1+N)) = m
Para ajuste de desempenho com o provedor de cache dinâmico, consulte Ajustando o Provedor de Cache Dinâmico.
Antes que um aplicativo que usa o provedor de cache dinâmico do WebSphere eXtreme Scale possa ser implementado, os princípios gerais descritos na seção anterior devem ser combinados com os dados ambientais para os sistemas de produção. O primeiro valor a estabelecer é o número total de processos do contêiner e a quantidade de memória disponível em cada processo para conter os dados do cache. Ao usar a topologia integrada, os contêineres de cache serão colocados dentro dos processos do servidor do WebSphere Application, assim, há um contêiner para cada servidor que estiver compartilhando o cache. Determinar o gasto adicional de memória do aplicativo sem o armazenamento em cache ativado e o WebSphere Application Server é a melhor maneira de descobrir quanto espaço está disponível no processo. Isso pode ser feito por meio de análise detalhada dos dados da coleta de lixo. Ao usar a topologia remota, essas informações podem ser localizadas por meio da verificação da saída detalhada da coleta de lixo de um contêiner independente recentemente iniciado que ainda não foi preenchido com dados do cache. A última coisa a lembrar para descobrir quanto espaço por processo está disponível para dados em cache, é reservar algum espaço de heap para a coleta de lixo. O gasto adicional do contêiner, o WebSphere Application Server ou independente, mais o tamanho reservado para o cache não deve ser maior que 70% do heap total.
Depois que essas informações são coletadas, os valores poderão ser inseridos na fórmula A, descritos anteriormente, para determinar o tamanho máximo para o cache particionado. Depois que o tamanho máximo é conhecido, a próxima etapa é determinar o número total de entradas do cache que pode ser suportado, o que requer determinar o tamanho médio por entrada do cache. A maneira mais simples de fazer isso é incluir 10% ao tamanho do objeto do cliente. Consulte o Guia de Ajuste para Cache Dinâmico e Serviço de Replicação de Dados para obter mais informações detalhadas sobre o dimensionamento de entradas de cache ao usar o cache dinâmico.
Quando a compactação está ativada, ela afeta o tamanho do objeto do cliente, não o gasto adicional do sistema de armazenamento em cache. Use a fórmula a seguir para determinar o tamanho de um objeto em cache ao usar a compactação:
S = O * C + O * 0.10
Depois, use estas informações para determinar o número total de entradas do cache que pode ser suportado. Use a seguinte fórmula D:
Fórmula D
T = S / A
Fórmula E
Cs = Ts / Np