oltpbench icon indicating copy to clipboard operation
oltpbench copied to clipboard

Difficulties attempting to test with NuoDB

Open bryanosborne opened this issue 6 years ago • 3 comments

How well supported is NuoDB? Would like to use oltpbench for NewSQL research to be published.

Receiving runtime error:

[josborne@caladan oltpbench]$ ./oltpbenchmark -v -b tpcc -c config/config.xml --create=true --load=true 17:56:44,899 (DBWorkload.java:267) INFO - ======================================================================

Benchmark: TPCC {com.oltpbenchmark.benchmarks.tpcc.TPCCBenchmark} Configuration: config/config.xml Type: NUODB Driver: com.nuodb.jdbc.Driver URL: jdbc:com.nuodb://arrakis/tpcc Isolation: TRANSACTION_SERIALIZABLE Scale Factor: 2.0

17:56:44,903 (DBWorkload.java:268) INFO - ====================================================================== 17:56:44,923 (DBWorkload.java:527) INFO - Creating new TPCC database... Error executing: CREATE TABLE CUSTOMER ( C_W_ID INT NOT NULL, C_D_ID INT NOT NULL, C_ID INT NOT NULL, C_DISCOUNT DECIMAL(4,4) NOT NULL, C_CREDIT STRING NOT NULL, C_LAST STRING NOT NULL, C_FIRST STRING NOT NULL, C_CREDIT_LIM DECIMAL(12,2) NOT NULL, C_BALANCE DECIMAL(12,2) NOT NULL, C_YTD_PAYMENT FLOAT NOT NULL, C_PAYMENT_CNT INT NOT NULL, C_DELIVERY_CNT INT NOT NULL, C_STREET_1 STRING NOT NULL, C_STREET_2 STRING NOT NULL, C_CITY STRING NOT NULL, C_STATE STRING NOT NULL, C_ZIP STRING NOT NULL, C_PHONE STRING NOT NULL, C_SINCE TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, C_MIDDLE STRING NOT NULL, C_DATA STRING NOT NULL, PRIMARY KEY (C_W_ID,C_D_ID,C_ID) ) Exception in thread "main" java.lang.RuntimeException: Unexpected error when trying to create the tpcc database at com.oltpbenchmark.api.BenchmarkModule.createDatabase(BenchmarkModule.java:266) at com.oltpbenchmark.api.BenchmarkModule.createDatabase(BenchmarkModule.java:246) at com.oltpbenchmark.DBWorkload.runCreator(DBWorkload.java:815) at com.oltpbenchmark.DBWorkload.main(DBWorkload.java:528) Caused by: java.sql.SQLSyntaxErrorException: explicit or implicit schema required for table "CUSTOMER" ...

Is there a config.xml parameter to specify the NuoDB schema? (I thought NuoDB was supposed to just create unspecified-schema objects in the USER schema, but...)

Also, I can't find any detail info on the config.xml file.

Any assistance is greatly appreciated!

bryanosborne avatar Oct 18 '19 23:10 bryanosborne

"Fixed" the code with a modification to BenchmarkModule.java. Works for MySQL and NuoDB,haven't tried with other DBMS. Hope this helps.

public final Connection makeConnection() throws SQLException {
    Properties properties = new Properties();
    properties.put("user", workConf.getDBUsername());
    properties.put("password", workConf.getDBPassword());
    if(workConf.getDBName() != null) properties.put("schema", workConf.getDBName());

    Connection conn = DriverManager.getConnection(workConf.getDBConnection(),properties);
    Catalog.setSeparator(conn);
    return (conn);
}

bryanosborne avatar Oct 19 '19 17:10 bryanosborne

Can you send a PR?

apavlo avatar Jan 01 '20 16:01 apavlo

Will do, Dr. P.

bryanosborne avatar Jan 02 '20 17:01 bryanosborne