diff --git a/src/main/java/collector/H2/H2Client.java b/src/main/java/collector/H2/H2Client.java index f3e4827..55e3a44 100644 --- a/src/main/java/collector/H2/H2Client.java +++ b/src/main/java/collector/H2/H2Client.java @@ -44,6 +44,7 @@ public void execSession(Session session, IsolationLevel isolationLev } } transaction.setSuccess(true); + break; } catch (SQLException e) { connection.rollback(); } diff --git a/src/main/java/collector/mysql/MySQLClient.java b/src/main/java/collector/mysql/MySQLClient.java index 7691221..8531970 100644 --- a/src/main/java/collector/mysql/MySQLClient.java +++ b/src/main/java/collector/mysql/MySQLClient.java @@ -44,6 +44,7 @@ public void execSession(Session session, IsolationLevel isolationLev } } transaction.setSuccess(true); + break; } catch (SQLException e) { connection.rollback(); } diff --git a/src/main/java/collector/postgresql/PostgreSQLClient.java b/src/main/java/collector/postgresql/PostgreSQLClient.java index aa53183..cff2b24 100644 --- a/src/main/java/collector/postgresql/PostgreSQLClient.java +++ b/src/main/java/collector/postgresql/PostgreSQLClient.java @@ -43,6 +43,7 @@ public void execSession(Session session, IsolationLevel isolationLev } } transaction.setSuccess(true); + break; } catch (SQLException e) { connection.rollback(); } diff --git a/src/main/java/generator/general/GeneralGenerator.java b/src/main/java/generator/general/GeneralGenerator.java index 7f6035b..55543f2 100644 --- a/src/main/java/generator/general/GeneralGenerator.java +++ b/src/main/java/generator/general/GeneralGenerator.java @@ -10,9 +10,9 @@ import org.apache.commons.math3.distribution.ZipfDistribution; import java.util.ArrayList; +import java.util.HashMap; import java.util.Properties; import java.util.concurrent.Callable; -import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -49,7 +49,7 @@ public GeneralGenerator(Properties config) { @Override public History generate() { var history = new History(); - var counts = new ConcurrentHashMap(); + var counts = new HashMap(); ExecutorService executor = Executors.newFixedThreadPool((int) this.session); var todo = new ArrayList>(); for (var iSession = 0; iSession < this.session; iSession++) { @@ -71,8 +71,10 @@ public History generate() { long var = keyDistribution.sample(); long val = 0L; if (type == Operation.Type.WRITE) { - val = counts.getOrDefault(var, 1L); - counts.put(var, val + 1); + synchronized (counts) { + val = counts.getOrDefault(var, 1L); + counts.put(var, val + 1); + } } synchronized (history) { history.addOperation(history.getTransaction(txnId), type, var, val);