我尝试用 mysql 运行 ycsb。每次我加载并运行 YCSB 的工作负载之一时,我都会手动删除插入的记录,否则我会收到消息“DuPlicate entry'userx for key 'PRIMARY'”。但是,当我加载并运行工作负载 d 时,尽管我已经截断了表,但我面临着重复的主键问题。可能在这种情况下,当我运行工作负载 d 时,它会在与负载相同的字段中插入数据。如果我创建一个没有主键的表,我不确定 ycsb 测试执行的可靠性。这个问题有解决方案吗?
问问题
386 次
1 回答
0
我遇到了类似的问题,我的直觉是 YCSB 手动写入表的主键,而不是使用自增宏。因此,每次您再次运行 YCSB 时,它都会从第一条记录开始,因此会导致主键重复。
您需要将 YCSB 配置为从最后插入的主键运行。例如,如果您的加载语句是
ycsb load jdbc -s -P workloads/workloada -P jdbc-binding/conf/db.properties -p recordcount=25000000 -s > load.dat
(这会将 db.properties 作为参数之一加载)您需要将该行插入
insertstart=100001
到您的 db.properties。这个数字假设你的 ycsb 之前在 100000 结束,所以现在命令将从 100001 开始继续。
于 2014-11-12T01:21:26.603 回答