MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment MongoDB gère-t-il les mises à jour simultanées ?

MongoDB a utilisé un verrou d'écriture à l'échelle du processus pour garantir qu'une seule opération d'écriture (mise à jour/insertion/suppression) peut être effectuée à la fois. En tant que tel, il résout automatiquement les problèmes de simultanéité puisque la simultanéité d'écriture n'est tout simplement pas autorisée.

Si 4 threads tentent une opération de mise à jour, l'un d'eux prendra le verrou en écriture, effectuera sa mise à jour et libérera le verrou. Après cela, l'un des 3 restants saisira le verrou, effectuera sa mise à jour, etc.

La simultanéité n'entre en jeu que si votre opération ne peut pas être enveloppée dans une seule opération d'écriture. Notez que pour le cas d'utilisation le plus courant (trouver un document, le mettre à jour et récupérer la nouvelle version de manière atomique), MongoDB propose la commande "findAndModify" qui fait exactement cela :http://www.mongodb.org/display/DOCS/findAndModify+Command

MISE À JOUR :Le verrouillage est plus granulaire de nos jours.