When running the pure Java YCSB benchmark I occasionally see an error of the form:
file:usertable-000288.lsm [cursor.next]: read checksum error [24064B @ 51280896, 3508469799 != 359951137] file:usertable-000288.lsm [cursor.search]: read checksum error [24064B @ 51280896, 3508469799 != 359951137] com.wiredtiger.db.DbException: WT_ERROR: non-specific WiredTiger error at com.wiredtiger.db.wiredtigerJNI.Cursor_search_wrap(Native Method) at com.wiredtiger.db.Cursor.search_wrap(Cursor.java:146) at com.wiredtiger.db.Cursor.search(Cursor.java:83) at com.yahoo.ycsb.db.WiredTigerDB.read(WiredTigerDB.java:189) at com.yahoo.ycsb.db.WiredTigerDB.update(WiredTigerDB.java:247) at com.yahoo.ycsb.DBWrapper.update(DBWrapper.java:126) at com.yahoo.ycsb.workloads.CoreWorkload.doTransactionUpdate(CoreWorkload.java:628) at com.yahoo.ycsb.workloads.CoreWorkload.doTransaction(CoreWorkload.java:483) at com.yahoo.ycsb.ClientThread.run(Client.java:233)
The table verifies OK after closing and it is possible to generate statistics.
It does not reproduce reliably, but I have seen it more than once. I see it when running with:
>> run
Specify a workload:
Field count [1]:
Field length [10]: 1000
YCSB property (enter to skip): table
YCSB property value: lsm:usertable
YCSB property (enter to skip):
Thread count [4]: 16
Record count [500000]: 10000000
Operation count [2500000]: 10000000
Read proportion [1.00]: 0.8
Update proportion [0.00]: 0.2
Insert proportion [0.00]:
Scan proportion [0.00]:
Read/update proportion [0.00]:
Details on running the test. At the moment, to run the test you need:
- Clone michaelcahill/wiredtiger-java Git repository
- Get a copy of the wttest YCSB benchmark implementation from Alex
- Configure as per the README in the benchmark, run with the above config.