Contrôle d'accès simultané poignées enjeux avec permettant à plusieurs utilisateurs simultanément accéder à des entités communes telles qu'une table de données ou d'autres objets. Dans ce cas, une méthode de contrôle est nécessaire pour gérer les mises à jour . La méthode universellement acceptée était de sérialisation de l' exécution des mises à jour. Mais il n'est pas acceptable dans certains contextes comme premier arrivé traitement , premier servi . Il existe différentes méthodes de contrôle de concurrence qui s'appliquent dans des circonstances différentes . Pessimiste Contrôle de concurence
Cette méthode implémente verrous qui empêche les utilisateurs de données qui modifient d'une manière ayant un impact sur d'autres utilisateurs. Quand un utilisateur effectue une action sur une entité qui applique un verrou sur l'entité, les autres utilisateurs ne peuvent pas mener des actions sur cette entité jusqu'à ce que le propriétaire du verrou libère. Le contrôle pessimiste est utilisée quand il ya une forte affirmation de données.
Optimiste Contrôle de concurence
En utilisant la méthode de contrôle de concurrence optimiste , les utilisateurs ne se verrouillent pas les données quand ils l'utiliser. Lorsqu'un jour les données de l'utilisateur , le système de base de données vérifie si un autre utilisateur a modifié les données après le lire. Après la mise à jour d'un autre utilisateur , une erreur est déclenchée . L' utilisateur qui reçoit le message d'erreur annule la transaction et recommence. Cette méthode est utilisée quand il ya une faible affirmation de données.
Deux techniques de verrouillage de phase
de verrouillage est une opération qui garantit une lecture ou d'écriture sur un entité. Par exemple, Lock ( X). L'entité X est verrouillé par un utilisateur. Grâce à cette technique , une transaction est bien formé si: il bloque une entité lit ou écrit à avant , il ne devrait pas bloquer une entité verrouillée et ne doit pas tenter de débloquer une entité libre
. estampille contrôle de concurence
monotone croissante entier appelé timestamp indique l'âge d'une opération sur une entité. Une valeur d'horodatage plus grande représente une opération récente. Méthode basée sur l'horodateur utilise timestamp pour contrôler l'exécution de transactions simultanées .