MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

In che modo MongoDB gestisce gli aggiornamenti simultanei?

MongoDB ha utilizzato un blocco di scrittura a livello di processo per garantire che una sola operazione di scrittura (aggiornamento/inserimento/rimozione) possa essere eseguita alla volta. In quanto tale, risolve automaticamente i problemi di concorrenza poiché la concorrenza di scrittura semplicemente non è consentita.

Se 4 thread tentano un'operazione di aggiornamento, uno di loro prenderà il blocco in scrittura, eseguirà il suo aggiornamento e rilascerà il blocco. Dopodiché, uno dei restanti 3 afferrerà il lucchetto, eseguirà il suo aggiornamento, ecc.

La concorrenza entra in gioco solo se l'operazione non può essere racchiusa in un'unica operazione di scrittura. Nota che per il caso d'uso più comune (trova un documento, aggiornalo e prendi la nuova versione in modo atomico) MongoDB offre il comando "findAndModify" che fa proprio questo:http://www.mongodb.org/display/DOCS/findAndModify+Command

AGGIORNAMENTO:al giorno d'oggi il blocco è più dettagliato.