Skip to content

Commit

Permalink
Updated summary output file to include the DB version
Browse files Browse the repository at this point in the history
  • Loading branch information
dvanaken committed Jan 23, 2015
1 parent 81b48fd commit dcca527
Show file tree
Hide file tree
Showing 7 changed files with 63 additions and 43 deletions.
11 changes: 6 additions & 5 deletions src/com/oltpbenchmark/util/ResultUploader.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ public class ResultUploader {
XMLConfiguration expConf;
Results results;
CommandLine argsLine;
DBParameterCollector collector;

String dbUrl, dbType;
String username, password;
Expand All @@ -66,14 +67,13 @@ public ResultUploader(Results r, XMLConfiguration conf, CommandLine argsLine) {
windowSize = Integer.parseInt(argsLine.getOptionValue("s"));
uploadCode = expConf.getString("uploadCode");
uploadUrl = expConf.getString("uploadUrl");

this.collector = DBParameterCollectorGen.getCollector(dbType, dbUrl, username, password);
}

public void writeDBParameters(PrintStream os) {
DBParameterCollector collector = DBParameterCollectorGen.getCollector(dbType);
Map<String, String> dbConf = collector.collect(dbUrl, username, password);
for (Map.Entry<String, String> kv: dbConf.entrySet()) {
os.println(kv.getKey().toLowerCase() + "=" + kv.getValue().toLowerCase());
}
String dbConf = collector.collectParameters();
os.print(dbConf);
}

public void writeBenchmarkConf(PrintStream os) throws ConfigurationException {
Expand All @@ -89,6 +89,7 @@ public void writeSummary(PrintStream os) {
Date now = new Date();
os.println(now.getTime() / 1000L);
os.println(dbType);
os.println(collector.collectVersion());
os.println(benchType);
os.println(results.latencyDistribution.toString());
os.println(results.getRequestsPerSecond());
Expand Down
29 changes: 29 additions & 0 deletions src/com/oltpbenchmark/util/dbms_collectors/DBCollector.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.oltpbenchmark.util.dbms_collectors;

import com.oltpbenchmark.catalog.Catalog;
import org.apache.log4j.Logger;

import java.util.Map;
import java.util.TreeMap;

class DBCollector implements DBParameterCollector {
private static final Logger LOG = Logger.getLogger(DBCollector.class);
protected final Map<String, String> dbConf = new TreeMap<String, String>();

@Override
public String collectParameters() {
StringBuilder confBuilder = new StringBuilder();
for (Map.Entry<String, String> kv : dbConf.entrySet()) {
confBuilder.append(kv.getKey().toLowerCase())
.append("=")
.append(kv.getValue().toLowerCase())
.append("\n");
}
return confBuilder.toString();
}

@Override
public String collectVersion() {
return "";
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.oltpbenchmark.util.dbms_collectors;

import java.util.Map;

public interface DBParameterCollector {
Map<String, String> collect(String oriDBUrl, String username, String password);
String collectParameters();
String collectVersion();
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.oltpbenchmark.util.dbms_collectors;

public class DBParameterCollectorGen {
public static DBParameterCollector getCollector(String dbType) {
public static DBParameterCollector getCollector(String dbType, String dbUrl, String username, String password) {
String db = dbType.toLowerCase();
if (db.equals("mysql")) {
return new MYSQLCollector();
return new MYSQLCollector(dbUrl, username, password);
} else if (db.equals("postgres")) {
return new POSTGRESCollector();
return new POSTGRESCollector(dbUrl, username, password);
} else {
return new DummyCollector();
return new DBCollector();
}
}
}
11 changes: 0 additions & 11 deletions src/com/oltpbenchmark/util/dbms_collectors/DummyCollector.java

This file was deleted.

23 changes: 13 additions & 10 deletions src/com/oltpbenchmark/util/dbms_collectors/MYSQLCollector.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,12 @@

import java.sql.*;
import java.util.Map;
import java.util.TreeMap;

class MYSQLCollector implements DBParameterCollector {
class MYSQLCollector extends DBCollector {
private static final Logger LOG = Logger.getLogger(MYSQLCollector.class);
private static final String VERSION = "VERSION";

public MYSQLCollector() {
}

@Override
public Map<String, String> collect(String oriDBUrl, String username, String password) {
Map<String, String> results = new TreeMap<String, String>();
public MYSQLCollector(String oriDBUrl, String username, String password) {
String dbUrl = oriDBUrl.substring(0, oriDBUrl.lastIndexOf('/'));
dbUrl = dbUrl + "/information_schema";
try {
Expand All @@ -24,11 +19,19 @@ public Map<String, String> collect(String oriDBUrl, String username, String pass
Statement s = conn.createStatement();
ResultSet out = s.executeQuery("SELECT * FROM GLOBAL_VARIABLES;");
while(out.next()) {
results.put(out.getString("VARIABLE_NAME"), out.getString("VARIABLE_VALUE"));
dbConf.put(out.getString("VARIABLE_NAME"), out.getString("VARIABLE_VALUE"));
}
} catch (SQLException e) {
LOG.debug("Error while collecting DB parameters: " + e.getMessage());
}
return results;
}

@Override
public String collectVersion() {
String dbVersion = dbConf.get(VERSION);
int verIdx = dbVersion.indexOf('-');
if (verIdx >= 0)
dbVersion = dbVersion.substring(0, verIdx);
return dbVersion;
}
}
19 changes: 9 additions & 10 deletions src/com/oltpbenchmark/util/dbms_collectors/POSTGRESCollector.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,27 @@

import java.sql.*;
import java.util.Map;
import java.util.TreeMap;

class POSTGRESCollector implements DBParameterCollector {
class POSTGRESCollector extends DBCollector {
private static final Logger LOG = Logger.getLogger(POSTGRESCollector.class);
private static final String VERSION = "server_version";

public POSTGRESCollector() {
}

@Override
public Map<String, String> collect(String oriDBUrl, String username, String password) {
Map<String, String> results = new TreeMap<String, String>();
public POSTGRESCollector(String oriDBUrl, String username, String password) {
try {
Connection conn = DriverManager.getConnection(oriDBUrl, username, password);
Catalog.setSeparator(conn);
Statement s = conn.createStatement();
ResultSet out = s.executeQuery("SHOW ALL;");
while(out.next()) {
results.put(out.getString("name"), out.getString("setting"));
dbConf.put(out.getString("name"), out.getString("setting"));
}
} catch (SQLException e) {
LOG.debug("Error while collecting DB parameters: " + e.getMessage());
}
return results;
}

@Override
public String collectVersion() {
return dbConf.get(VERSION);
}
}

0 comments on commit dcca527

Please sign in to comment.