【问题标题】:YCSB with mysql Duplicate entry for primary key带有mysql的YCSB主键重复条目
【发布时间】:2014-10-14 12:54:14
【问题描述】:
我尝试用 mysql 运行 ycsb。每次我加载并运行 YCSB 的工作负载之一时,我都会手动删除插入的记录,否则我会收到消息“DuPlicate entry'userx for key 'PRIMARY'”。但是,当我加载并运行工作负载 d 时,尽管我已经截断了表,但我面临着重复的主键问题。可能在这种情况下,当我运行工作负载 d 时,它会在与负载相同的字段中插入数据。如果我创建一个没有主键的表,我不确定 ycsb 测试执行的可靠性。这个问题有解决方案吗?
【问题讨论】:
标签:
mysql
duplicates
ycsb
【解决方案1】:
我遇到了类似的问题,我的直觉是 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 开始继续。