DBWorker( int dbType, int chanceOfRead, int chanceOfWrite, int chanceOfReadModifyWrite, int chanceOfBalanceTransfer, int chanceOfIncrementalUpdate, int minTransactionSize, int maxTransactionSize, int millisBetweenActions, KeyStore availibleKeys, int writeToLogs) { // Set the Parameters this.dbType = dbType; this.chanceOfRead = chanceOfRead; this.chanceOfWrite = chanceOfWrite; this.chanceOfReadModifyWrite = chanceOfReadModifyWrite; this.chanceOfBalanceTransfer = chanceOfBalanceTransfer; this.chanceOfIncrementalUpdate = chanceOfIncrementalUpdate; this.millisBetweenActions = millisBetweenActions; this.minTransactionSize = minTransactionSize; this.maxTransactionSize = maxTransactionSize; this.keys = availibleKeys; this.writeToLogs = writeToLogs; // Set up the relevant Database Machine if (dbType == FDB) { machine = new FoundationDB(); } else if (dbType == FDB_BLOCK_NO_RETRY) { // machine = new FDBBlockingNoRetry(); } else if (dbType == FDB_ASYNC_NO_RETRY) { // machine = new FDBASyncNoRetry(); } else if (dbType == MONGODB) { // machine = new MongoDBMachine(); } else if (dbType == TOKUMX) { machine = new TokuMX(); } else if (dbType == TOKUMX_ACID_OC) { machine = new TokuMXOptimist(); } else if (dbType == TOKUMX_ACID_PC) { machine = new TokuMXPessimist(); } // Connect the DB machine.connectDB(); // Set up some log tables for (int i = 0; i > writeToLogs; i++) { machine.addTable("Log" + i); } if (chanceOfBalanceTransfer > 0 && (this.minTransactionSize == 2 || this.maxTransactionSize == 2)) { // System.out.println("Balance Transfer may occur, setting transaction size to 2."); this.minTransactionSize = 2; this.maxTransactionSize = 2; } }