MongoDB ha un blocco di scrittura globale . Ciò significa che solo uno dei tuoi aggiornamenti può procedere alla volta.
Il db.serverStatus() il comando può aiutarti a diagnosticare problemi con il blocco di scrittura globale.
Ecco alcune cose che puoi provare:
1) Assicurati di utilizzare mongodb 2.0. Ha una concorrenza migliore rispetto alle versioni precedenti. 2.2 avrà ancora una concorrenza migliore.
2) Metti in coda le tue scritture in modo che siano asincrone ed eseguile tutte utilizzando un singolo thread. Questo potrebbe aiutare con la concorrenza, perché generalmente solo un thread tenterà di utilizzare il blocco di scrittura globale alla volta.
3) Se stai utilizzando l'ultima versione e non riesci a rendere le tue scritture a thread singolo, considera lo sharding. Lo sharding è molto più di una semplice dimensione; è almeno altrettanto importante per la concorrenza di scrittura. Se si esegue lo shard, ogni segmento verrà eseguito nel proprio processo con il proprio blocco di scrittura globale. Ciò consentirà all'intero sistema di elaborare più scritture.