É possível configurar em cache sequencial para um backend de banco de dados ou como um cache secundário para um banco de dados. O armazenamento em cache sequencial utiliza o eXtreme Scale como o meio principal de interação com os dados. Quando o eXtreme Scale é usado como um cache sequencial, o aplicativo interage com o backend usando um plug-in Loader.
Cache Sequencial
Quando usado
como um cache sequencial, o
WebSphere eXtreme
Scale
interage com o backend usando um plug-in Loader. Este cenário
pode simplificar o acesso a dados porque os aplicativos podem acessar as APIs do
eXtreme Scale diretamente. Vários cenários de armazenamento em cache diferentes são suportados no
eXtreme Scale para garantir que os dados no cache e os dados no backend sejam sincronizados.
O diagrama a seguir ilustra como um
cache sequencial interage com o aplicativo e o back end.
Figura 1. Cache Sequencial
A opção de armazenamento em cache em linha simplifica o acesso aos dados pois ela permite que os aplicativos acessem diretamente as APIs do eXtreme Scale. O WebSphere
eXtreme Scale suporta diversos cenários de armazenamento em cache em linha, como os seguintes:
- Read-through
- Write-through
- Write-behind
Cenário de Armazenamento em Cache Read-through
Um
cache read-through é um cache disperso que lentamente carrega entradas de dados
por chave à medida que elas são solicitadas. Isto é feito sem exigir que o
responsável pela chamada saiba quais entradas estão preenchidas. Se os dados não puderem ser localizados no cache do
eXtreme Scale, o
eXtreme Scale irá recuperar os dados ausentes do plug-in do utilitário de carga, que carrega os dados do banco de dados backend e insere os dados no cache. Pedidos subsequentes para
a mesma chave de dados serão localizados no cache até que ele possa ser
removido, invalidado ou despejado.
Figura 2. Armazenamento em Cache Read-through
Cenário de Armazenamento em Cache Write-through
Em um cache
write-through, cada gravação no cache é gravada de maneira síncrona no banco de
dados utilizando o Utilitário de Carga. Este método fornece consistência com o backend, mas diminui o desempenho de gravação pois a operação do banco de dados é síncrona.
Como o cache e o banco de dados são ambos atualizados, as leituras subsequentes
para os mesmos dados serão localizadas no cache, evitando a chamada do banco de
dados.
Um cache write-through sempre é utilizado em conjunto com um cache read-through.
Figura 3. Armazenamento em Cache Write-through
Cenário de Armazenamento em Cache Write-behind
A sincronização
do banco de dados pode ser aprimorada pela gravação de alterações de maneira
assíncrona. Isto é conhecido como um cache write-behind ou write-back. Alterações
que normalmente poderiam ser gravadas de maneira síncrona no utilitário de carga
são, ao invés disso, armazenadas em buffer no
eXtreme Scale
e gravadas no banco de dados utilizando um encadeamento secundário. O desempenho de gravação é significativamente aumentado pois a operação do banco de dados é removida da transação do cliente e as gravações do banco de dados podem ser compactadas.
Figura 4. Armazenamento em Cache Write-behind