Juste pour itérer sur les sockets vs HTTP et fsync vs conversation en mémoire.
Par défaut, MongoDB ne renvoie pas de réponse lors d'un appel d'écriture. Vous écrivez simplement vos données sur le socket et supposez qu'elles sont dans la base de données et disponibles. Sous une charge simultanée, cela pourrait être sauvegardé et il n'y a pas de bon moyen de savoir à quelle vitesse Mongo vraiment est à moins que vous n'utilisiez un appel facultatif qui renverra une réponse pour l'écriture une fois que les données seront disponibles.
Je ne dis pas que les performances d'insertion de Mongo ne sont pas plus rapides que Couch, l'insertion dans la mémoire est beaucoup plus rapide que la synchronisation sur disque, la plus grande différence ici réside dans la différence d'objectifs que MongoDB et CouchDB ont en matière de cohérence et de durabilité. Mais tous les outils de "performance" que j'ai vus pour tester Mongo utilisent l'API d'écriture par défaut, donc vous ne testez pas vraiment les performances d'insertion, vous testez la vitesse à laquelle vous pouvez vider un socket.
J'ai vu beaucoup de benchmarks qui montrent que Mongo est plus rapide que Redis et memcached car ils ne réalisent pas que Redis et Memcached renvoient une réponse lorsque les données sont en mémoire et que Mongo ne le fait pas. Mongo n'est certainement pas plus rapide que Redis :)