MongoDB a utilisé un verrou d'écriture de processus large 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 concurrence en écriture n'est tout simplement pas autorisée.
Si 4 threads tentent une opération de mise à jour, l'un d'entre eux prendra le verrou en écriture, effectuera sa mise à jour et relâchera le verrou. Après que l'un des 3 restants saisira le verrou, fera sa mise à jour, etc.
La simultanéité entrera en jeu seulement si votre opération ne peut pas être enveloppée dans une seule opération d'écriture. Notez que pour l'utilisation la plus courante (trouver un document, le mettre à jour et saisir la nouvelle version atomiquement) MongoDB offre 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.
Merci, je comprends pourquoi il semblait que la connaissance commune. – lollancf37
De rien. Cela semble être une caractéristique limitative, mais parce que les écritures sont relativement rapides, c'est rarement un problème de performance. Gardez un oeil sur "% verrouillé" dans mongostat pour voir combien de temps est passé avec le verrou tenu. –