MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie geht MongoDB mit gleichzeitigen Updates um?

MongoDB hat eine prozessweite Schreibsperre verwendet, um sicherzustellen, dass jeweils nur ein Schreibvorgang (Aktualisieren/Einfügen/Entfernen) ausgeführt werden kann. Als solches löst es automatisch Parallelitätsprobleme, da Schreibparallelität einfach nicht erlaubt ist.

Wenn 4 Threads eine Aktualisierungsoperation versuchen, übernimmt einer von ihnen die Schreibsperre, führt seine Aktualisierung durch und gibt die Sperre frei. Danach greift einer der verbleibenden 3 das Schloss, führt sein Update durch usw.

Parallelität kommt nur ins Spiel, wenn Ihr Vorgang nicht in einen einzigen Schreibvorgang eingeschlossen werden kann. Beachten Sie, dass MongoDB für den häufigsten Anwendungsfall (ein Dokument finden, aktualisieren und die neue Version atomar abrufen) den Befehl „findAndModify“ anbietet, der genau das tut:http://www.mongodb.org/display/DOCS/findAndModify+Command

UPDATE:Das Sperren ist heutzutage granularer.