2013-08-12 1 views
2

Je lance l'outil YCSB sur mongodb pour benchmark db et je remarque qu'une fois que je charge une charge de travail (workloada par exemple) et exécute une transaction (cible 1500 par exemple) je ne peux pas en exécuter une autre transaction sans abandonner la base de données entière et charger à nouveau la base de données. la raison en est que si je cours une autre transaction sans laisser tomber et charger la base de données j'obtiens l'erreur "l'erreur de clef de double".Exécution des charges de travail ycsb sur mongodb

Il semble que la première transaction a entré certaines clés que la deuxième transaction tente également d'insérer. Y at-il une solution de contournement pour cela? Ou y a-t-il quelque chose qui ne va pas dans ce que je fais?

est la commande que j'utilise pour le chargement:

./bin/ycsb load mongodb -P workloads/workloada 
    -p mongodb.url=<ip_address>:27020 
    -p mongodb.maxconnections=150 -s 
    -p mongodb.writeConcern=normal 
    -target 3500 -threads 200 > <output-file> 

est commande J'utilise ici pour la phase de transaction

./bin/ycsb load mongodb 
    -P workloads/workloada 
    -p mongodb.url=<IP_address>:27020 
    -p mongodb.maxconnections=100 -s 
    -p mongodb.writeConcern=normal 
    -target 1500 -threads 100 > <output_file> 
+1

mais votre ligne de commande pour la transaction est erronée, vous exécutez la charge de données – didxga

+0

remplacer "charger" par "exécuter" - c'est ce qui exécute la charge de travail (charger insère seulement et doit être exécuté exactement une fois). –

Répondre

0

Lorsque vous chargez une fois que vous pouvez exécuter YCSb autant de fois que vous le souhaitez . Mais le chargement à nouveau vous donnera l'erreur que les enregistrements sont déjà chargés. Par conséquent, vous devrez supprimer le répertoire sur lequel vous chargez MongoDB.

0

La question est ancienne mais ajoute une réponse de toute façon.

Voilà comment il se comporte: la phase de chargement s'exécute idéalement une fois les données insérées dans MongoDB, suivies de toutes les charges de travail que vous souhaitez exécuter.

Regardez here dans Wiki YCSB pour un exemple d'une séquence dans laquelle les charges de travail peuvent être exécutées. This page dans le wiki parcourt la liste de tout ce qui est nécessaire pour exécuter un test. Si la charge est ce que vous avez l'intention de comparer, vous devez supprimer la collection et la base de données entre et avant vos opérations de «chargement».

Questions connexes