Méthodes d'accès concurrentiel (mise en cache de Windows Server AppFabric)

La mise en cache de Windows Server AppFabric prend en charge les modèles de concurrence optimiste et pessimiste. Les sections suivantes décrivent comment les méthodes de client de cache s'alignent sur ces modèles. Pour plus d'informations sur la concurrence, consultez la rubrique Modèles de concurrence (mise en cache de Windows Server AppFabric).

Modèle d'accès concurrentiel optimiste

Dans le modèle d'accès concurrentiel optimiste, les mises à jour des objets mis en cache ne prennent pas de verrous. Au lieu de cela, le client de cache commence par lire la version de l'objet à mettre à jour, puis envoie les informations de cette version avec l'objet mis à jour. Le système met l'objet à jour uniquement si la version envoyée correspond à la version actuelle de l'objet. Chaque mise à jour d'un objet modifie son numéro de version. Cela empêche la mise à jour de remplacer les modifications apportées par quelqu'un d'autre.

Méthode Description

Get

Ne prend aucun verrou en raison de sa conception ; la méthode Get réussit toujours si l'élément existe. Si l'objet est en cours de mise à jour, la méthode Get n'attend pas et seule la version actuelle de l'objet est renvoyée.

GetCacheItem

Renvoie tous les objets DataCacheItem. Outre les objets mis en cache et d'autres informations telles que des balises, les informations de version des objets sont également renvoyées.

GetIfNewer

Permet de vérifier si l'objet mis en cache a été modifié dans la source de données. Pour réduire le trafic réseau, l'objet mis en cache n'est renvoyé que s'il existe une version plus récente.

Add

N'entraîne pas de surcharge en relation avec un accès concurrentiel optimiste. La méthode Add réussit ou échoue.

Put

Prend en charge l'accès concurrentiel optimiste en utilisant les informations de version comme paramètre facultatif. La méthode Put ne réussit que si la version de l'objet à remplacer est identique.

Remove

Prend en charge l'accès concurrentiel optimiste en utilisant les informations de version comme paramètre facultatif. La méthode Remove ne réussit que si la version de l'objet à supprimer est identique.

Modèle d'accès concurrentiel pessimiste

Dans le modèle d'accès concurrentiel pessimiste, le client verrouille explicitement des objets pour exécuter des opérations. Les autres opérations demandant des verrous sont rejetées (le système ne bloque pas les demandes) jusqu'à ce que les verrous soient libérés. Quand des objets sont verrouillés, un handle de verrou est renvoyé sous la forme d'un paramètre de sortie. Le handle de verrou est obligatoire pour déverrouiller l'objet. Si l'application cliente échoue avant la libération d'un objet verrouillé, des délais d'expiration sont fournis pour libérer les verrous. Les objets verrouillés ne sont jamais expirés mais peuvent expirer immédiatement après leur déverrouillage si le délai d'expiration est écoulé.

Notes

Les opérations de fractionnement des transactions ne sont pas prises en charge L'application utilisant le cache est responsable de la détermination de l'ordre des verrous et de la détection des blocages éventuels.

Avertissement

Tout client de cache peut remplacer les objets verrouillés dans le cache avec la méthode Put. Les applications prenant en charge le cache sont responsables de l'utilisation cohérente de l'opération PutAndUnlock pour les éléments qui utilisent le modèle d'accès concurrentiel pessimiste.

Le tableau suivant présente les méthodes que vous pouvez utiliser pour verrouiller et déverrouiller un objet.

Méthode Description

GetAndLock

Renvoie et verrouille l'objet mis en cache (s'il est présent). Les autres appels de la méthode GetAndLock sur le même objet échouent tant que le verrou est valide. Les appels normaux de la méthode Get ne sont pas bloqués et accèdent toujours à la dernière version de l'objet mis en cache.

PutAndUnlock

Met à jour l'objet verrouillé, puis libère le verrou. Le handle de verrou obtenu de la méthode GetAndLock est obligatoire et doit correspondre au handle de verrou de l'objet verrouillé pour réussir.

Unlock

Déverrouille explicitement un objet mis en cache pour autant que le paramètre de handle de verrou corresponde à celui de l'objet verrouillé. La méthode Unlock prend également en charge l'extension de l'expiration de l'élément actuel pour empêcher son expiration dès son déverrouillage (s'il est déverrouillé après son délai d'expiration).

Voir aussi

Concepts

Vue d'ensemble des classes (mise en cache de Windows Server AppFabric)
Méthodes de cache basiques (mise en cache de Windows Server AppFabric)
Méthodes basées sur des balises (mise en cache de Windows Server AppFabric)
Méthodes de configuration (mise en cache de Windows Server AppFabric)
Utilisation des méthodes de cache basiques (mise en cache de Windows Server AppFabric)
Concepts relatifs à la mise en cache de Windows Server AppFabric

  2011-12-05