MongoDB heeft een algemeen schrijfslot . Dit betekent dat slechts één van uw updates tegelijk kan doorgaan.
De db.serverStatus() commando kan u helpen bij het diagnosticeren van problemen met de algemene schrijfvergrendeling.
Hier zijn enkele dingen die u kunt proberen:
1) Zorg ervoor dat u mongodb 2.0 gebruikt. Het heeft een betere gelijktijdigheid dan oudere versies. 2.2 zal nog betere gelijktijdigheid hebben.
2) Zet uw schrijfbewerkingen in de wachtrij zodat ze asynchroon zijn en voer ze allemaal uit met een enkele thread. Dit kan helpen bij gelijktijdigheid, omdat over het algemeen slechts één thread tegelijk probeert de algemene schrijfvergrendeling te gebruiken.
3) Als u de nieuwste versie gebruikt en u uw schrijfbewerkingen niet single-threaded kunt maken, overweeg dan om te sharden. Sharding is voor veel meer dan alleen grootte; het is minstens zo belangrijk voor schrijfconcurrency. Als u shard, wordt elk segment in zijn eigen proces uitgevoerd met zijn eigen algemene schrijfvergrendeling. Hierdoor kan het hele systeem meer schrijfacties verwerken.