2011-10-10 4 views
2

J'essaie d'anonymiser un grand ensemble de données d'environ 600 000 enregistrements (en supprimant des informations sensibles telles que les courriels, etc.) afin de pouvoir l'utiliser pour certains tests de performance. J'utilise Scala (Casbah) avec Mongo. Le script réel est assez simple et direct. Lorsque j'exécute le script, l'ensemble du processus démarre assez rapidement - en analysant 1000 enregistrements toutes les 2-3 secondes, mais il ralentit énormément et commence à ramper très lentement.MongoDB - anonymisation 600k enregistrements

Je sais que c'est assez vague sans trop de détails, mais aucune idée de la raison pour laquelle cela se produit, et des conseils sur la façon dont je pourrais accélérer cela?

+0

Avez-vous des index sur l'un des champs que vous anonymisez? –

+1

pouvez-vous partager une sortie de votre 'mongostat'? y a-t-il trop de verrous d'écriture et de fautes de page? – DhruvPathak

+1

Êtes-vous sur une machine 64 bits? – Matt

Répondre

1

Il s'est avéré être un problème avec le conducteur et pas avec Mongo. Quand j'ai essayé les mêmes inserts en utilisant la coquille de mongo, c'était sans transpirer.

MISE À JOUR

Alors, j'ai essayé les deux approches. Insertion dans la collection existante et vidage des résultats dans une nouvelle collection. La première approche a été plus rapide pour moi. Bien sûr, il ne faut jamais supposer que cela soit toujours vrai et il faut faire un benchmark avant de choisir la première approche au cours de la seconde. Dans les deux cas, Mongo était très très rapide (ce qui signifiait qu'il ne fallait pas des heures pour le faire). Il y avait un problème avec l'interface Java que j'utilisais pour me connecter avec Mongo, ce qui était plus une erreur stupide de ma part.

+0

Pouvez-vous fournir plus de détails? Quelle est votre approche originale/nouvelle? ('update' la collection originale ou' insert' dans un nouveau) –

Questions connexes