WebSphere eXtreme Scale é uma grade de dados na memória, elástica e escalável. Ele dinamicamente armazena em cache, particiona, replica e gerencia dados do aplicativo e lógica de negócios em múltiplos servidores.
Como o WebSphere eXtreme Scale não é um banco de dados em memória, você deve considerar requisitos de configuração específicos. A primeira etapa para implementar uma grade de dados é iniciar um grupo principal e o serviço de catálogo, que atua como coordenador para todas as outras Java virtual machines que estiverem participando na grade de dados, e gerenciar as informações de configuração. Os processos do WebSphere eXtreme Scale são iniciados com chamadas de script de comando simples a partir da linha de comandos.
A próxima etapa é iniciar os processos do servidor WebSphere eXtreme Scale da grade de dados para armazenar e recuperar dados. Conforme os servidores são iniciados, eles se registram automaticamente no grupo principal e no serviço de catálogo, para que eles possam cooperar no fornecimento de serviços da grade de dados. Uma quantidade maior de servidores aumenta tanto a capacidade quanto a confiabilidade da grade de dados.
Uma grade de dados local é uma grade de instância única e simples na qual todos os dados estão em uma grade. Para usar eficientemente o WebSphere eXtreme Scale como um espaço de processamento de banco de dados na memória, é possível configurar e implementar uma grade de dados distribuída. Os dados na grade distribuída são espalhados por vários servidores do eXtreme Scale que a contêm, sendo que cada servidor contém somente parte dos dados, chamada de partição.
Um parâmetro de configuração principal da grade de dados distribuída é o número de partições na grade. Os dados da grade são particionados nesta quantidades de subconjuntos, cada um dos quais chamados de partição. O serviço de catálogo localiza a partição para um determinado datum com base em sua chave. O número de partições afeta diretamente a capacidade e a escalabilidade da grade de dados. Um servidor pode conter uma ou mais partições de grade de dados. Dessa forma, o espaço de memória do servidor limita o tamanho de uma partição. Por outro lado, aumentar o número de partições aumenta a capacidade da grade de dados. A capacidade máxima de uma grade de dados é o número de partições vezes o tamanho da memória utilizável de cada servidor. Um servidor pode ser uma JVM, porém é possível definir seu servidor eXtreme Scale de acordo com seu ambiente de implementação.
Os dados de uma partição são armazenados em um shard. Para disponibilidade, uma grade de dados pode ser configurada com réplicas, que podem ser síncronas ou assíncronas. Alterações nos dados da grade são feitas no shard primário, e replicadas nos shards de réplica. Portanto, a memória total que é usada ou necessária por uma grade de dados é o tamanho da grade vezes (1 (para o primário) + a quantidade de réplicas).
O WebSphere eXtreme Scale distribui shards de uma grade de dados sobre o número de servidores que compõe a grade. Estes servidores podem estar nos mesmos, ou em diferentes, servidores físicos. Para disponibilidade, os shards de réplica são colocados em servidores físicos separados dos shards primários.
O WebSphere eXtreme Scale monitora o status de seus servidores e movimenta os shards durante falha e recuperação de shard ou de servidor físico. Por exemplo, se o servidor que contém um shard de réplica falhar, o WebSphere eXtreme Scale alocará um novo shard de réplica e replicará os dados do primário na nova réplica. Se um servidor que contém um shard primário falhar, o shard de réplica será promovido para ser o shard primário e um novo shard de réplica será construído. Se um servidor adicional for iniciado para a grade de dados, os shards serão equilibrados entre todos os servidores. Esse re-equilíbrio é chamado de scale-out. Da mesma forma, para o scale-in, é possível parar um dos servidores para reduzir os recursos que são usados por uma grade de dados. Como resultado, os shards estão equilibrados entre os servidores restantes.