【问题标题】:YCSB Error with scan operation on mysql db在 mysql db 上进行扫描操作时出现 YCSB 错误
【发布时间】:2014-11-14 20:52:55
【问题描述】:

我正在尝试在 MySQL 数据库(10GB 设置)上使用 YCSB 客户端运行仅扫描工作负载。我正在使用以下命令来运行工作负载

./bin/ycsb 运行 jdbc -P 工作负载/workloademod -p db.driver=com.mysql.jd bc.Driver -p db.url=jdbc:mysql://localhost:3306/ycsbtest -p db. user=username -p maxscanlength=100 -p recordcount=5000 -p operationcount=1000 -p maxexecutiontime=1800 > try_ycsb_emod

但是我得到 java GC out of memory 异常并且工作负载被杀死如下:-

Loading workload...
Starting test.
Maximum execution time specified as: 1800 secs
Exception in thread "Thread-1" java.lang.OutOfMemoryError: Java heap space
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3380)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3327)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:870)
        at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1928)
        at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:3278)
        at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:462)
        at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2997)
        at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:2245)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2638)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2530)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1907)
        at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2030)
        at com.yahoo.ycsb.db.JdbcDBClient.scan(JdbcDBClient.java:348)
        at com.yahoo.ycsb.DBWrapper.scan(DBWrapper.java:107)
        at com.yahoo.ycsb.workloads.CoreWorkload.doTransactionScan(CoreWorkload.java:605)
        at com.yahoo.ycsb.workloads.CoreWorkload.doTransaction(CoreWorkload.java:491)
        at com.yahoo.ycsb.ClientThread.run(Client.java:233)
Could not wait until max specified time, TerminatorThread interrupted.

我尝试通过“export YCSB_HEAP_SIZE=8000”来增加 ycsb 客户端的 java 堆大小以使其达到 8G,但我仍然收到相同的错误。

我检查了 ycsb 客户端发送到 mysql 服务器的 mysql 查询,但没有看到对 max_scan_length 指标的引用/暗示。此外,使用 mysql 客户端而不是 ycsb 客户端运行此 mysql 查询也可以正常工作。

我不确定我能做些什么来解决这个问题。有人可以帮我吗?

谢谢, 雷内

【问题讨论】:

    标签: java mysql jdbc ycsb database-scan


    【解决方案1】:

    这是 jdbc 实现的一个错误: https://github.com/brianfrankcooper/YCSB/issues/171

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 1970-01-01
      • 2018-10-20
      • 1970-01-01
      • 2020-04-06
      • 2016-03-17
      • 2016-01-21
      相关资源
      最近更新 更多