Qu'est-ce que le contrôle de la concurrence?

Dans la programmation de gestion des données, le contrôle de la concurrence est un mécanisme conçu pour garantir que les résultats précis sont générés par des opérations simultanées. Ces résultats doivent également être obtenus en temps opportun. Le contrôle de la concurrence est très souvent observé dans les bases de données où il existe un cache d'informations consultables à obtenir.

.

Les programmeurs essaient de concevoir une base de données de telle manière que l'effet des transactions importants sur les données partagées sera équivalente en série. Cela signifie que les données qui entrent en contact avec des ensembles de transactions seraient dans un certain état où les résultats peuvent être obtenus si toutes les transactions s'exécutent en série et dans un ordre particulier. Parfois, ces données sont invalides à la suite de la modification par deux transactions, simultanément.

Il existe plusieurs façons de s'assurer que les transactions en exécutent les unes après les autres, y compris l'utilisation de l'exclusion mutuelle ainsi que la création d'une ressource qui décide quelles transactions ont accès. C'est exagéré, cependant, etne permettra pas à un programmeur de bénéficier d'un contrôle de concurrence dans un système distribué. Le contrôle de la concurrence permet l'exécution simultanée de transactions multiples tout en éloignant ces transactions les uns des autres, assurant la linéarinabilité. Une façon d'implémenter le contrôle de concurrence est l'utilisation d'un verrou exclusif sur une ressource particulière pour les exécutions de transactions en série qui partagent les ressources. Les transactions verrouilleront un objet destiné à être utilisé, et si une autre transaction fait une demande pour l'objet verrouillé, cette transaction doit attendre que l'objet déverrouille.

La mise en œuvre de cette méthode dans les systèmes distribués implique des gestionnaires de verrouillage - serveurs qui émettent des verrous de ressources. Ceci est très similaire aux serveurs pour les exclusions mutuelles centralisées, où les clients peuvent demander des verrous et envoyer des messages pour la libération de verrous sur une ressource particulière. Préservation de l'exe en sérieCependant, la CUtion est encore nécessaire pour le contrôle de la concurrence. Si deux transactions distinctes accèdent à un ensemble d'objets similaires, les résultats doivent être similaires et comme si ces transactions étaient exécutées dans un ordre particulier. Pour garantir la commande sur l'accès à une ressource, le verrouillage biphasé est introduit, ce qui signifie que les transactions ne sont pas autorisées à de nouvelles verrous lors de la libération d'un verrou distinct.

Dans le verrouillage en deux phases pour un contrôle de concurrence, sa phase initiale est considérée comme la phase de croissance, où la transaction acquiert son verrouillage nécessaire. La phase suivante est considérée comme une phase de rétrécissement, dans laquelle la transaction a libéré ses verrous. Il y a des problèmes avec ce type de verrouillage. Si les transactions abandonnent, d'autres transactions peuvent utiliser des données à partir d'objets modifiés et déverrouillés par des transactions abandonnées. Cela entraînerait une intervention interdite d'autres transactions.

DANS D'AUTRES LANGUES