2012-09-15 4 views
2

J'ai eu une discussion avec un ami au sujet de MongoDB et il est atomicité, et je voudrais savoir s'il a raison .. on m'a dit que MongoDB lors d'une mise à jour effectue deux opérations atomiques:MongoDB mise à jour atomicité

  • il supprime le document existant (première opération atomique);
  • et d'en insérer un nouveau (deuxième opération atomique).

Cela signifie que pendant une fraction du temps, le document est vide.

Même si cela ne me semble pas plausible, est-ce que quelqu'un sait avec certitude si cela est vrai ou faux?

Merci beaucoup pour vos réponses et je serais reconnaissant si quelqu'un pouvait pointer vers des documents en ligne pour en savoir plus.

Edit: l'orthographe

+0

avoir un document de mise à jour de remplacement soit non-atomique serait assez surprenant. Votre ami peut-il pointer vers une preuve de cela? – JohnnyHK

Répondre

1

MongoDB utilise un verrou d'écriture globale (par serveur avant 2.2 et par base de données en 2.2) pour toutes les opérations modificatrices. Cela signifie que, indépendamment des détails de mise en œuvre des mises à jour, ils sont atomiques du point de vue des clients. Le verrou d'écriture global garantit qu'aucun autre client ne peut voir une mise à jour partielle d'un seul document.

Il y a la documentation sur le verrou d'écriture globale de MongoDB ici: http://www.mongodb.org/display/DOCS/How+does+concurrency+work