2

我在 mongodb 上运行 YCSB 工具以对 db 进行基准测试,我注意到一旦加载工作负载(例如工作负载)并运行事务(例如目标 1500),我就无法在不删除整个数据库和加载的情况下运行另一个事务再次访问数据库。原因是如果我在不删除和加载数据库的情况下运行另一个事务,我会收到“重复键错误”错误。

看起来第一笔交易输入了一些第二笔交易也尝试插入的键。有解决方法吗?或者我正在做的事情有什么问题。

这是我用来加载的命令:

./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>

这是我用于交易阶段的命令

./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>
4

2 回答 2

0

这个问题很老,但无论如何都会添加一个回复。

这就是它的行为方式:理想情况下,加载阶段在将数据插入 MongoDB 后运行,然后是您打算运行的任何工作负载。

在 YCSB wiki 中查看此处以获取可以运行工作负载的序列示例。wiki 中的这个页面列出了运行测试所需的所有内容。

如果加载是您打算进行基准测试的内容,那么您应该在“加载”操作之间和之前删除集合和数据库。

于 2015-04-14T13:43:54.993 回答
0

当您加载一次时,您可以根据需要多次运行 YCSB。但是再次加载会给你错误,因为记录已经加载。因此,您必须删除加载 MongoDB 的目录。

于 2014-10-09T08:25:12.460 回答