O WebSphere eXtreme Scale atinge altas taxas de processamento movendo a lógica para onde os dados estão e retornando apenas resultados ao cliente.
A lógica de aplicativo em uma Java Virtual Machine (JVM) cliente precisa executar o pull de dados do servidor JVM que contém os dados e executar o push back quando ocorre o commit da transação. Esse processo reduz a taxa em que os dados podem ser processados. Se a lógica de aplicativo estivesse no mesmo JVM que o shard que está hospedando os dados, então a latência de rede e o custo de delegação seriam eliminados e poderia fornecer um significativo impulso no desempenho.
As APIs do ObjectGrid fornecem uma Session para o método do lado do servidor. Tal objeto Session é uma referência direta aos dados do shard. Não há nenhuma lógica de roteamento nesse caminho. A lógica de aplicativo pode trabalhar com os dados desse shard diretamente. O Session não pode ser utilizado para acessar os dados em outra partição porque não há nenhuma lógica de roteamento.
Um plug-in do Utilitário de Carga também fornece um meio para receber um evento quando um shard assume a função de partição primária. Um aplicativo pode implementar um Utilitário de Carga e implementar a interface do ReplicaPreloadController. O método check preload status é chamado apenas quando o shard assume a função de primário. O objeto Session fornecido a esse método é uma referência local aos dados dos shards. Essa abordagem é utilizada normalmente se o shard primário de uma partição precisar iniciar alguns encadeamentos ou assinar uma malha de mensagens para o tráfego relacionado à partição. Ele pode iniciar um encadeamento para escutar mensagens num Mapa local, por meio da API getNextKey.
Se um aplicativo utiliza as APIs do cliente para acessar uma partição que pode ter sido colocada com a JVM que contém o cliente, a rede será evitada mas ainda ocorrerá alguma delegação devido a problemas de implementação atuais. Se uma grade particionada é utilizada, então não há impacto no desempenho do aplicativo porque (N-1)/número N de chamadas são roteadas para uma JVM diferente. Se você sempre precisar de acesso local com um shard, então, utilize o Utilitário de Cargo ou as APIs do ObjectGrid para chamar est lógica.