MongoDB a un verrou d'écriture global . Cela signifie qu'une seule de vos mises à jour peut être effectuée à la fois.
Le db.serverStatus() La commande peut vous aider à diagnostiquer les problèmes liés au verrou d'écriture global.
Voici quelques trucs que vous pouvez essayer :
1) Assurez-vous que vous utilisez mongodb 2.0. Il a une meilleure simultanéité que les anciennes versions. 2.2 aura encore une meilleure simultanéité.
2) Mettez vos écritures en file d'attente afin qu'elles soient asynchrones et effectuez-les toutes à l'aide d'un seul thread. Cela peut aider avec la simultanéité, car généralement un seul thread tentera d'utiliser le verrou d'écriture global à la fois.
3) Si vous utilisez la dernière version et que vous ne pouvez pas créer de thread unique pour vos écritures, envisagez le sharding. Le sharding est bien plus qu'une simple taille; c'est au moins aussi important pour la concurrence d'écriture. Si vous partitionnez, chaque segment s'exécutera dans son propre processus avec son propre verrou d'écriture global. Cela permettra à l'ensemble du système de traiter plus d'écritures.