Métodos de simultaneidade (Cache do Windows Server AppFabric)

O armazenamento em cache do Windows Server AppFabric oferece suporte a modelos de simultaneidade otimista e pessimista. As seções a seguir discutem como os métodos do cliente de cache se alinham a esses modelos. Para obter mais informações sobre simultaneidade, consulte Modelos de simultaneidade (cache do Windows Server AppFabric).

Modelo de simultaneidade otimista

No modelo de simultaneidade otimista, faça a atualização para que os objetos de cache não usem bloqueios. Em vez disso, o cliente de cache primeiro lê a versão do objeto para que ela seja atualizada e envia a informação da versão junto com o objeto atualizado. O sistema somente atualizará o objeto se a versão enviada corresponder à versão atual do objeto. Todas as atualizações de um objeto alteram o número da sua versão. Isso evita que uma atualização substitua as alterações de outra pessoa.

Método Descrição

Get

Não usa bloqueios por design; o Obter sempre terá êxito se o item existir. Se o objeto estiver sendo atualizado, o método Obter não esperará e somente a versão atual do objeto retornará.

GetCacheItem

Retorna todos os objetos de DataCacheItem. Além dos objetos armazenados em cache e das outras informações, como marcas, as informações da versão sobre os objetos também retornarão.

GetIfNewer

Podem ser usadas para verificar se o objeto armazenado em cache foi alterado na fonte de dados. Para diminuir o tráfico de rede, o objeto armazenado em cache retornará somente se uma nova versão estiver disponível.

Add

Não há nenhuma sobrecarga relacionada à simultaneidade otimista. Adicionar tem êxito ou falha.

Put

Oferece suporte à simultaneidade otimista, obtendo informações da versão como um parâmetro opcional; Colocar somente terá êxito se o objeto a ser substituído for da mesma versão.

Remove

Oferece suporte à simultaneidade otimista, obtendo informações da versão como um parâmetro opcional; Remover somente terá êxito se o objeto a ser excluído for da mesma versão.

Modelo de simultaneidade pessimista

No modelo de simultaneidade pessimista, o cliente bloqueia explicitamente os objetos para que eles não realizem operações. As outras operações que solicitam bloqueios também serão rejeitadas (o sistema não bloqueia solicitações) até que os bloqueios sejam liberados. Quando os objetos estão bloqueados, uma alça de bloqueio retorna (como um parâmetro de saída). A alça de bloqueio é necessária para desbloquear o objeto. Caso o cliente falhe antes de liberar o objeto bloqueado, tempos limites são fornecidos para liberar os bloqueios. Os objetos bloqueados nunca expiram, mas eles poderão expirar imediatamente após o desbloqueio se ultrapassarem a data de vencimento.

Observação

As operações de extensão de transações não são suportadas. O aplicativo que utiliza cache é responsável por determinar a ordem dos bloqueios e detectar deadlocks, se houver.

Aviso

Os objetos bloqueados no cache ainda podem ser substituídos por qualquer cliente de cache com o método Colocar. Os aplicativos habilitados por cache são responsáveis pela utilização consistente de PutAndUnlock para itens que usam o modelo de simultaneidade pessimista.

A tabela a seguir mostra os métodos que podem ser usados para bloquear ou desbloquear um objeto.

Método Descrição

GetAndLock

Retorna e bloqueia o objeto armazenado em cache (se estiver presente). As outras chamadas do método GetAndLock no mesmo objeto falharão enquanto o bloqueio estiver válido. As chamadas regulares do método Obter não são bloqueadas e sempre acessam a versão mais recente do objeto armazenado em cache.

PutAndUnlock

Atualiza o objeto bloqueado e libera o bloqueio. A alça de bloqueio obtida do GetAndLock é um parâmetro necessário e precisa corresponder à alça de bloqueio do objeto bloqueado para ter êxito.

Unlock

Desbloqueia explicitamente um objeto armazenado em cache, fornecido para que o parâmetro da alça de bloqueio corresponda à do objeto bloqueado. Desbloquear também oferece suporte à extensao da expiração do item atual para ajudar a evitar que ele expire assim que for desbloqueado (se o seu desbloqueio ultrapassar a data de vencimento).

Consulte também

Conceitos

Visão geral de classe (cache do Windows Server AppFabric)
Métodos básicos de cache (cache do Windows Server AppFabric)
Métodos baseados em marca (cache do Windows Server AppFabric)
Métodos de configuração (Cache do Windows Server AppFabric)
Usando métodos básicos de cache (cache do Windows Server AppFabric)
Conceitos de cache do Windows Server AppFabric

  2011-12-05