From 17646f8bfe0722e0abf34f834c6071cf84c82d0e Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Wed, 4 Dec 2024 15:36:32 +0530 Subject: [PATCH 01/22] - changes to avoid hikari connection pool --- config/workload_all.xml | 2 ++ src/com/oltpbenchmark/ConfigFileOptions.java | 8 +++++ src/com/oltpbenchmark/DBWorkload.java | 2 ++ .../oltpbenchmark/WorkloadConfiguration.java | 12 +++++++ .../oltpbenchmark/api/BenchmarkModule.java | 6 +++- src/com/oltpbenchmark/api/Worker.java | 33 +++++++++++++++---- 6 files changed, 55 insertions(+), 8 deletions(-) diff --git a/config/workload_all.xml b/config/workload_all.xml index 6663116..d767f01 100644 --- a/config/workload_all.xml +++ b/config/workload_all.xml @@ -11,6 +11,8 @@ + true + false 128 true diff --git a/src/com/oltpbenchmark/ConfigFileOptions.java b/src/com/oltpbenchmark/ConfigFileOptions.java index 934c1f6..c8dd70e 100644 --- a/src/com/oltpbenchmark/ConfigFileOptions.java +++ b/src/com/oltpbenchmark/ConfigFileOptions.java @@ -53,6 +53,14 @@ public Optional getUseThinkTime() { return getBoolOpt("useThinkTime"); } + public Optional getUseConnMngr() { + return getBoolOpt("useConnMngr"); + } + + public Optional getUseShortLivedConn() { + return getBoolOpt("useShortLivedConn"); + } + public Optional getEnableForeignKeysAfterLoad() { return getBoolOpt("enableForeignKeysAfterLoad"); } diff --git a/src/com/oltpbenchmark/DBWorkload.java b/src/com/oltpbenchmark/DBWorkload.java index e5005d3..9f87eda 100644 --- a/src/com/oltpbenchmark/DBWorkload.java +++ b/src/com/oltpbenchmark/DBWorkload.java @@ -188,6 +188,8 @@ public static void main(String[] args) throws Exception { wrkld.setShouldEnableForeignKeys(false); } + configOptions.getUseConnMngr().ifPresent(wrkld::setUseConnMngr); + configOptions.getUseShortLivedConn().ifPresent(wrkld::setUseShortLivedConn); configOptions.getBatchSize().ifPresent(wrkld::setBatchSize); configOptions.getMaxRetriesPerTransaction().ifPresent(wrkld::setMaxRetriesPerTransaction); configOptions.getMaxLoaderRetries().ifPresent(wrkld::setMaxLoaderRetries); diff --git a/src/com/oltpbenchmark/WorkloadConfiguration.java b/src/com/oltpbenchmark/WorkloadConfiguration.java index 1556118..d83e57e 100644 --- a/src/com/oltpbenchmark/WorkloadConfiguration.java +++ b/src/com/oltpbenchmark/WorkloadConfiguration.java @@ -68,6 +68,8 @@ public void setBenchmarkName(String benchmarkName) { private boolean useStoredProcedures = true; private int maxRetriesPerTransaction = 0; private int maxLoaderRetries = 0; + private boolean useConnMngr; + private boolean useShortLivedConn; public TraceReader getTraceReader() { return traceReader; @@ -361,6 +363,16 @@ public void setMaxRetriesPerTransaction(int maxRetriesPerTransaction) { this.maxRetriesPerTransaction = maxRetriesPerTransaction; } + public void setUseConnMngr(boolean useConnMngr) { + this.useConnMngr = useConnMngr; + } + public boolean getUseConnMngr() { return this.useConnMngr; } + + public void setUseShortLivedConn(boolean useShortLivedConn) { + this.useShortLivedConn = useShortLivedConn; + } + public boolean getUseShortLivedConn() { return this.useShortLivedConn; } + public int getMaxRetriesPerTransaction() { return maxRetriesPerTransaction; } diff --git a/src/com/oltpbenchmark/api/BenchmarkModule.java b/src/com/oltpbenchmark/api/BenchmarkModule.java index d5d3a44..0733acf 100644 --- a/src/com/oltpbenchmark/api/BenchmarkModule.java +++ b/src/com/oltpbenchmark/api/BenchmarkModule.java @@ -71,7 +71,11 @@ public BenchmarkModule(WorkloadConfiguration workConf) { this.workConf = workConf; if (workConf.getNeedsExecution()) { try { - createDataSource(); + if(!workConf.getUseConnMngr()) + createDataSource(); + else { + System.out.println("Using connection manager without HikariPool"); + } } catch (Exception e) { LOG.error("Failed to create Data source", e); throw e; diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index c2d50a3..00e6ffc 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -17,6 +17,7 @@ package com.oltpbenchmark.api; import java.sql.Connection; +import java.sql.DriverManager; import java.sql.Statement; import java.sql.SQLException; import java.util.*; @@ -51,12 +52,11 @@ public class Worker implements Runnable { private TransactionLatencyRecord latencies; private TransactionLatencyRecord failureLatencies; private WorkerTaskLatencyRecord workerTaskLatencyRecord; - private final Statement currStatement; // Interval requests used by the monitor private final AtomicInteger intervalRequests = new AtomicInteger(0); - + private Connection ll_conn; private final int id; private final BenchmarkModule benchmarkModule; protected final HikariDataSource dataSource; @@ -81,7 +81,14 @@ public Worker( assert (this.transactionTypes != null) : "The TransactionTypes from the WorkloadConfiguration is null!"; try { - this.dataSource = this.benchmarkModule.getDataSource(); + if(wrkld.getUseConnMngr() && !wrkld.getUseShortLivedConn()) { + this.dataSource = null; + ll_conn = benchmarkModule.makeConnection(); + System.out.println("Using connection manager without HikariPool"); + } + else { + this.dataSource = this.benchmarkModule.getDataSource(); + } } catch (Exception ex) { throw new RuntimeException("Failed to connect to database", ex); } @@ -479,8 +486,14 @@ protected final ArrayList> do next = transactionTypes.getType(pieceOfWork.getType()); } startConnection = System.nanoTime(); - - conn = dataSource.getConnection(); + if(wrkld.getUseConnMngr()){ + if(wrkld.getUseShortLivedConn()) + conn = benchmarkModule.makeConnection(); + else + System.out.println("Using Long live connections..."); + } else { + conn = dataSource.getConnection(); + } try { if(wrkld.getDBType().equals("yugabyte")) conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); @@ -490,7 +503,7 @@ protected final ArrayList> do conn.setAutoCommit(false); } } catch (Throwable e) { - + System.out.println("Error in enabling expression_pushdown or setting auto_commit to false "); } endConnection = System.nanoTime(); @@ -592,7 +605,13 @@ protected final ArrayList> do break; } } // WHILE - conn.close(); + if(wrkld.getUseConnMngr()) { + if (wrkld.getUseShortLivedConn()) + conn.close(); + else + System.out.println("Using Long live connections..."); + } else + conn.close(); } catch (SQLException ex) { String msg = String.format("Unexpected fatal, error in '%s' when executing '%s'", this, next); From d79fe27fa54a4ac34208f096844b2e692d5e3dce Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Wed, 4 Dec 2024 17:07:37 +0530 Subject: [PATCH 02/22] - fix in connection variable --- src/com/oltpbenchmark/api/Worker.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index 00e6ffc..754cfb1 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -480,7 +480,7 @@ protected final ArrayList> do TransactionStatus status = TransactionStatus.RETRY; - Connection conn; + Connection conn = ll_conn; try { if (next == null) { next = transactionTypes.getType(pieceOfWork.getType()); From 4c05101d1a5a47650536b2ec79cefdf8ba05f529 Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Thu, 5 Dec 2024 14:11:15 +0530 Subject: [PATCH 03/22] - minor change in comment --- src/com/oltpbenchmark/api/Worker.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index 754cfb1..5f0f4ad 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -609,7 +609,7 @@ protected final ArrayList> do if (wrkld.getUseShortLivedConn()) conn.close(); else - System.out.println("Using Long live connections..."); + System.out.println("Not closing long live connections..."); } else conn.close(); } catch (SQLException ex) { From 7635af8858418cd70181b581f62c48fb3790b73d Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Wed, 11 Dec 2024 17:47:14 +0530 Subject: [PATCH 04/22] - changes to log statements and workload xml --- config/workload_all.xml | 2 +- config/workload_all_conn_mngr.xml | 58 +++++++++++++++++++ ...orkload_all_conn_mngr_short_lived_conn.xml | 58 +++++++++++++++++++ src/com/oltpbenchmark/api/Worker.java | 17 +++--- 4 files changed, 124 insertions(+), 11 deletions(-) create mode 100644 config/workload_all_conn_mngr.xml create mode 100644 config/workload_all_conn_mngr_short_lived_conn.xml diff --git a/config/workload_all.xml b/config/workload_all.xml index d767f01..e2db1cc 100644 --- a/config/workload_all.xml +++ b/config/workload_all.xml @@ -11,7 +11,7 @@ - true + false false 128 diff --git a/config/workload_all_conn_mngr.xml b/config/workload_all_conn_mngr.xml new file mode 100644 index 0000000..d767f01 --- /dev/null +++ b/config/workload_all_conn_mngr.xml @@ -0,0 +1,58 @@ + + + yugabyte + com.yugabyte.Driver + 5433 + yugabyte + yugabyte + + TRANSACTION_REPEATABLE_READ + + + + + true + false + + 128 + true + true + true + 180000 + true + false + false + + + + NewOrder + 45 + + + Payment + 43 + + + OrderStatus + 4 + + + Delivery + 4 + + + StockLevel + 4 + + + + 1800 + 10000 + + 2 + 2 + + diff --git a/config/workload_all_conn_mngr_short_lived_conn.xml b/config/workload_all_conn_mngr_short_lived_conn.xml new file mode 100644 index 0000000..6912f99 --- /dev/null +++ b/config/workload_all_conn_mngr_short_lived_conn.xml @@ -0,0 +1,58 @@ + + + yugabyte + com.yugabyte.Driver + 5433 + yugabyte + yugabyte + + TRANSACTION_REPEATABLE_READ + + + + + true + true + + 128 + true + true + true + 180000 + true + false + false + + + + NewOrder + 45 + + + Payment + 43 + + + OrderStatus + 4 + + + Delivery + 4 + + + StockLevel + 4 + + + + 1800 + 10000 + + 2 + 2 + + diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index 5f0f4ad..5c20646 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -81,12 +81,13 @@ public Worker( assert (this.transactionTypes != null) : "The TransactionTypes from the WorkloadConfiguration is null!"; try { - if(wrkld.getUseConnMngr() && !wrkld.getUseShortLivedConn()) { - this.dataSource = null; - ll_conn = benchmarkModule.makeConnection(); - System.out.println("Using connection manager without HikariPool"); - } - else { + if(wrkld.getUseConnMngr()) { + if(!wrkld.getUseShortLivedConn()) { + this.dataSource = null; + ll_conn = benchmarkModule.makeConnection(); + System.out.println("Using connection manager for long lived connection without HikariPool"); + } + } else { this.dataSource = this.benchmarkModule.getDataSource(); } } catch (Exception ex) { @@ -489,8 +490,6 @@ protected final ArrayList> do if(wrkld.getUseConnMngr()){ if(wrkld.getUseShortLivedConn()) conn = benchmarkModule.makeConnection(); - else - System.out.println("Using Long live connections..."); } else { conn = dataSource.getConnection(); } @@ -608,8 +607,6 @@ protected final ArrayList> do if(wrkld.getUseConnMngr()) { if (wrkld.getUseShortLivedConn()) conn.close(); - else - System.out.println("Not closing long live connections..."); } else conn.close(); } catch (SQLException ex) { From 95f00d242ef0a6b979e20aa29ce51cb3898e1c52 Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Wed, 11 Dec 2024 21:32:11 +0530 Subject: [PATCH 05/22] - minor fix --- src/com/oltpbenchmark/api/Worker.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index 5c20646..90c1878 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -82,8 +82,8 @@ public Worker( assert (this.transactionTypes != null) : "The TransactionTypes from the WorkloadConfiguration is null!"; try { if(wrkld.getUseConnMngr()) { + this.dataSource = null; if(!wrkld.getUseShortLivedConn()) { - this.dataSource = null; ll_conn = benchmarkModule.makeConnection(); System.out.println("Using connection manager for long lived connection without HikariPool"); } From a59450a1ce9fee63e8cea69bd87eb985686b520e Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Thu, 12 Dec 2024 11:54:37 +0530 Subject: [PATCH 06/22] - code refactoring --- config/workload_all.xml | 4 +-- config/workload_all_conn_mngr.xml | 4 +-- ...=> workload_all_conn_newConn_everyTxn.xml} | 4 +-- src/com/oltpbenchmark/ConfigFileOptions.java | 8 +++--- src/com/oltpbenchmark/DBWorkload.java | 4 +-- .../oltpbenchmark/WorkloadConfiguration.java | 16 +++++------ .../oltpbenchmark/api/BenchmarkModule.java | 7 +++-- src/com/oltpbenchmark/api/Worker.java | 27 ++++++++----------- 8 files changed, 34 insertions(+), 40 deletions(-) rename config/{workload_all_conn_mngr_short_lived_conn.xml => workload_all_conn_newConn_everyTxn.xml} (91%) diff --git a/config/workload_all.xml b/config/workload_all.xml index e2db1cc..ade09cd 100644 --- a/config/workload_all.xml +++ b/config/workload_all.xml @@ -11,8 +11,8 @@ - false - false + false + false 128 true diff --git a/config/workload_all_conn_mngr.xml b/config/workload_all_conn_mngr.xml index d767f01..2c08c15 100644 --- a/config/workload_all_conn_mngr.xml +++ b/config/workload_all_conn_mngr.xml @@ -11,8 +11,8 @@ - true - false + true + false 128 true diff --git a/config/workload_all_conn_mngr_short_lived_conn.xml b/config/workload_all_conn_newConn_everyTxn.xml similarity index 91% rename from config/workload_all_conn_mngr_short_lived_conn.xml rename to config/workload_all_conn_newConn_everyTxn.xml index 6912f99..87626a1 100644 --- a/config/workload_all_conn_mngr_short_lived_conn.xml +++ b/config/workload_all_conn_newConn_everyTxn.xml @@ -11,8 +11,8 @@ - true - true + true + true 128 true diff --git a/src/com/oltpbenchmark/ConfigFileOptions.java b/src/com/oltpbenchmark/ConfigFileOptions.java index c8dd70e..e0e9bef 100644 --- a/src/com/oltpbenchmark/ConfigFileOptions.java +++ b/src/com/oltpbenchmark/ConfigFileOptions.java @@ -53,12 +53,12 @@ public Optional getUseThinkTime() { return getBoolOpt("useThinkTime"); } - public Optional getUseConnMngr() { - return getBoolOpt("useConnMngr"); + public Optional getUseHikariPool() { + return getBoolOpt("useHikariPool"); } - public Optional getUseShortLivedConn() { - return getBoolOpt("useShortLivedConn"); + public Optional getCreateConnForEveryTx() { + return getBoolOpt("createConnForEveryTx"); } public Optional getEnableForeignKeysAfterLoad() { diff --git a/src/com/oltpbenchmark/DBWorkload.java b/src/com/oltpbenchmark/DBWorkload.java index 9f87eda..7dea1d9 100644 --- a/src/com/oltpbenchmark/DBWorkload.java +++ b/src/com/oltpbenchmark/DBWorkload.java @@ -188,8 +188,8 @@ public static void main(String[] args) throws Exception { wrkld.setShouldEnableForeignKeys(false); } - configOptions.getUseConnMngr().ifPresent(wrkld::setUseConnMngr); - configOptions.getUseShortLivedConn().ifPresent(wrkld::setUseShortLivedConn); + configOptions.getUseHikariPool().ifPresent(wrkld::setUseHikariPool); + configOptions.getCreateConnForEveryTx().ifPresent(wrkld::setUseCreateConnForEveryTx); configOptions.getBatchSize().ifPresent(wrkld::setBatchSize); configOptions.getMaxRetriesPerTransaction().ifPresent(wrkld::setMaxRetriesPerTransaction); configOptions.getMaxLoaderRetries().ifPresent(wrkld::setMaxLoaderRetries); diff --git a/src/com/oltpbenchmark/WorkloadConfiguration.java b/src/com/oltpbenchmark/WorkloadConfiguration.java index d83e57e..6f5a378 100644 --- a/src/com/oltpbenchmark/WorkloadConfiguration.java +++ b/src/com/oltpbenchmark/WorkloadConfiguration.java @@ -68,8 +68,8 @@ public void setBenchmarkName(String benchmarkName) { private boolean useStoredProcedures = true; private int maxRetriesPerTransaction = 0; private int maxLoaderRetries = 0; - private boolean useConnMngr; - private boolean useShortLivedConn; + private boolean useHikariPool; + private boolean useCreateConnForEveryTx; public TraceReader getTraceReader() { return traceReader; @@ -363,15 +363,15 @@ public void setMaxRetriesPerTransaction(int maxRetriesPerTransaction) { this.maxRetriesPerTransaction = maxRetriesPerTransaction; } - public void setUseConnMngr(boolean useConnMngr) { - this.useConnMngr = useConnMngr; + public void setUseHikariPool(boolean useHikariPool) { + this.useHikariPool = useHikariPool; } - public boolean getUseConnMngr() { return this.useConnMngr; } + public boolean getUseHikariPool() { return this.useHikariPool; } - public void setUseShortLivedConn(boolean useShortLivedConn) { - this.useShortLivedConn = useShortLivedConn; + public void setUseCreateConnForEveryTx(boolean useCreateConnForEveryTx) { + this.useCreateConnForEveryTx = useCreateConnForEveryTx; } - public boolean getUseShortLivedConn() { return this.useShortLivedConn; } + public boolean getUseCreateConnForEveryTx() { return this.useCreateConnForEveryTx; } public int getMaxRetriesPerTransaction() { return maxRetriesPerTransaction; diff --git a/src/com/oltpbenchmark/api/BenchmarkModule.java b/src/com/oltpbenchmark/api/BenchmarkModule.java index 0733acf..d7c5514 100644 --- a/src/com/oltpbenchmark/api/BenchmarkModule.java +++ b/src/com/oltpbenchmark/api/BenchmarkModule.java @@ -71,11 +71,10 @@ public BenchmarkModule(WorkloadConfiguration workConf) { this.workConf = workConf; if (workConf.getNeedsExecution()) { try { - if(!workConf.getUseConnMngr()) + if(workConf.getUseHikariPool()) createDataSource(); - else { - System.out.println("Using connection manager without HikariPool"); - } + else + LOG.info("Hikari Connection Pool is disabled"); } catch (Exception e) { LOG.error("Failed to create Data source", e); throw e; diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index 90c1878..54d099e 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -17,7 +17,6 @@ package com.oltpbenchmark.api; import java.sql.Connection; -import java.sql.DriverManager; import java.sql.Statement; import java.sql.SQLException; import java.util.*; @@ -56,7 +55,7 @@ public class Worker implements Runnable { // Interval requests used by the monitor private final AtomicInteger intervalRequests = new AtomicInteger(0); - private Connection ll_conn; + private final Connection ll_conn; private final int id; private final BenchmarkModule benchmarkModule; protected final HikariDataSource dataSource; @@ -81,13 +80,11 @@ public Worker( assert (this.transactionTypes != null) : "The TransactionTypes from the WorkloadConfiguration is null!"; try { - if(wrkld.getUseConnMngr()) { + if(!wrkld.getUseHikariPool()) { this.dataSource = null; - if(!wrkld.getUseShortLivedConn()) { - ll_conn = benchmarkModule.makeConnection(); - System.out.println("Using connection manager for long lived connection without HikariPool"); - } - } else { + ll_conn = wrkld.getUseCreateConnForEveryTx() ? null : benchmarkModule.makeConnection(); + } else { //use Hikari Pool + ll_conn = null; this.dataSource = this.benchmarkModule.getDataSource(); } } catch (Exception ex) { @@ -481,18 +478,16 @@ protected final ArrayList> do TransactionStatus status = TransactionStatus.RETRY; - Connection conn = ll_conn; + Connection conn; try { if (next == null) { next = transactionTypes.getType(pieceOfWork.getType()); } startConnection = System.nanoTime(); - if(wrkld.getUseConnMngr()){ - if(wrkld.getUseShortLivedConn()) - conn = benchmarkModule.makeConnection(); - } else { + if( !wrkld.getUseHikariPool()) { + conn = wrkld.getUseCreateConnForEveryTx() ? benchmarkModule.makeConnection() : ll_conn; + } else //use Hikari connection Pool conn = dataSource.getConnection(); - } try { if(wrkld.getDBType().equals("yugabyte")) conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); @@ -604,8 +599,8 @@ protected final ArrayList> do break; } } // WHILE - if(wrkld.getUseConnMngr()) { - if (wrkld.getUseShortLivedConn()) + if(wrkld.getUseHikariPool()) { + if (wrkld.getUseCreateConnForEveryTx()) conn.close(); } else conn.close(); From 620c938c32d9fdd8400b67e24ebca9eb4ce5cfbc Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Thu, 12 Dec 2024 12:05:52 +0530 Subject: [PATCH 07/22] - minor logging changes --- src/com/oltpbenchmark/api/Worker.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index 54d099e..486a569 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -497,7 +497,7 @@ protected final ArrayList> do conn.setAutoCommit(false); } } catch (Throwable e) { - System.out.println("Error in enabling expression_pushdown or setting auto_commit to false "); + LOG.info("Error in enabling expression_pushdown or setting auto_commit to false "); } endConnection = System.nanoTime(); From f23bda1f417b0caee4441dffecedead4632a9399 Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Thu, 12 Dec 2024 12:21:28 +0530 Subject: [PATCH 08/22] - changes to the yaml --- config/workload_all.xml | 2 +- config/workload_all_conn_mngr.xml | 2 +- config/workload_all_conn_newConn_everyTxn.xml | 2 +- config/workload_all_pg.xml | 3 +++ 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/config/workload_all.xml b/config/workload_all.xml index ade09cd..2c08c15 100644 --- a/config/workload_all.xml +++ b/config/workload_all.xml @@ -11,7 +11,7 @@ - false + true false 128 diff --git a/config/workload_all_conn_mngr.xml b/config/workload_all_conn_mngr.xml index 2c08c15..ade09cd 100644 --- a/config/workload_all_conn_mngr.xml +++ b/config/workload_all_conn_mngr.xml @@ -11,7 +11,7 @@ - true + false false 128 diff --git a/config/workload_all_conn_newConn_everyTxn.xml b/config/workload_all_conn_newConn_everyTxn.xml index 87626a1..35d587f 100644 --- a/config/workload_all_conn_newConn_everyTxn.xml +++ b/config/workload_all_conn_newConn_everyTxn.xml @@ -11,7 +11,7 @@ - true + false true 128 diff --git a/config/workload_all_pg.xml b/config/workload_all_pg.xml index 6d77682..d0410cb 100644 --- a/config/workload_all_pg.xml +++ b/config/workload_all_pg.xml @@ -8,6 +8,9 @@ Password321 TRANSACTION_REPEATABLE_READ + true + false + From f53a8bda1a3193ff3ecd78fc912e1ed644ff65b3 Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Thu, 12 Dec 2024 16:25:05 +0530 Subject: [PATCH 09/22] - minor changes --- config/workload_all.xml | 2 -- config/workload_all_conn_mngr.xml | 1 + config/workload_all_conn_newConn_everyTxn.xml | 1 + src/com/oltpbenchmark/WorkloadConfiguration.java | 4 ++-- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/workload_all.xml b/config/workload_all.xml index 2c08c15..6663116 100644 --- a/config/workload_all.xml +++ b/config/workload_all.xml @@ -11,8 +11,6 @@ - true - false 128 true diff --git a/config/workload_all_conn_mngr.xml b/config/workload_all_conn_mngr.xml index ade09cd..142e0ce 100644 --- a/config/workload_all_conn_mngr.xml +++ b/config/workload_all_conn_mngr.xml @@ -11,6 +11,7 @@ + false false diff --git a/config/workload_all_conn_newConn_everyTxn.xml b/config/workload_all_conn_newConn_everyTxn.xml index 35d587f..ed5ffa3 100644 --- a/config/workload_all_conn_newConn_everyTxn.xml +++ b/config/workload_all_conn_newConn_everyTxn.xml @@ -11,6 +11,7 @@ + false true diff --git a/src/com/oltpbenchmark/WorkloadConfiguration.java b/src/com/oltpbenchmark/WorkloadConfiguration.java index 6f5a378..0eb2be3 100644 --- a/src/com/oltpbenchmark/WorkloadConfiguration.java +++ b/src/com/oltpbenchmark/WorkloadConfiguration.java @@ -68,8 +68,8 @@ public void setBenchmarkName(String benchmarkName) { private boolean useStoredProcedures = true; private int maxRetriesPerTransaction = 0; private int maxLoaderRetries = 0; - private boolean useHikariPool; - private boolean useCreateConnForEveryTx; + private boolean useHikariPool = true; + private boolean useCreateConnForEveryTx = false; public TraceReader getTraceReader() { return traceReader; From 3a01a88b415188d84fb1388f2723ad2d38ad5117 Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Mon, 16 Dec 2024 02:59:05 +0530 Subject: [PATCH 10/22] - minor fix --- config/workload_all_pg.xml | 3 --- src/com/oltpbenchmark/api/Worker.java | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/config/workload_all_pg.xml b/config/workload_all_pg.xml index d0410cb..6d77682 100644 --- a/config/workload_all_pg.xml +++ b/config/workload_all_pg.xml @@ -8,9 +8,6 @@ Password321 TRANSACTION_REPEATABLE_READ - true - false - diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index 486a569..4339ba9 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -599,7 +599,7 @@ protected final ArrayList> do break; } } // WHILE - if(wrkld.getUseHikariPool()) { + if(!wrkld.getUseHikariPool()) { if (wrkld.getUseCreateConnForEveryTx()) conn.close(); } else From 22dc8dd2f70ebeaaf0c3cc69d7a1509eb83a5045 Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Thu, 19 Dec 2024 14:47:27 +0530 Subject: [PATCH 11/22] Close persistent connections (#158) * - closing the persistent connections --------- Co-authored-by: Sonal Agarwal --- src/com/oltpbenchmark/ThreadBench.java | 1 + src/com/oltpbenchmark/api/Worker.java | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/src/com/oltpbenchmark/ThreadBench.java b/src/com/oltpbenchmark/ThreadBench.java index fa8b87c..393df36 100644 --- a/src/com/oltpbenchmark/ThreadBench.java +++ b/src/com/oltpbenchmark/ThreadBench.java @@ -208,6 +208,7 @@ private int finalizeWorkers(ArrayList workerThreads) throws InterruptedE */ requests += w.getRequests(); + w.closeConnection(); } testState = null; return requests; diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index 4339ba9..64bda63 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -220,6 +220,15 @@ synchronized public void cancelStatement() { } } + public void closeConnection() { + try { + if(ll_conn != null) + ll_conn.close(); + } catch (SQLException e) { + LOG.error("Failed to close connection: " + e.getMessage()); + } + } + public void test(Connection conn) throws Exception { Procedure proc = this.getProcedure( this.transactionTypes.getType("NewOrder").getProcedureClass()); From 69adb7a25308694cdbe9c83715b1c40b0b6f6836 Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Thu, 19 Dec 2024 15:36:42 +0530 Subject: [PATCH 12/22] - ading debug statements --- src/com/oltpbenchmark/BenchmarkState.java | 3 ++- src/com/oltpbenchmark/ThreadBench.java | 3 +++ src/com/oltpbenchmark/api/Worker.java | 15 +++++++++++---- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/com/oltpbenchmark/BenchmarkState.java b/src/com/oltpbenchmark/BenchmarkState.java index 6cfddfe..cb6e391 100644 --- a/src/com/oltpbenchmark/BenchmarkState.java +++ b/src/com/oltpbenchmark/BenchmarkState.java @@ -102,7 +102,7 @@ public void ackLatencyComplete() { public void startCoolDown() { assert state == State.MEASURE; state = State.DONE; - + LOG.info("In startCoolDown..."); // The master thread must also signal that it is done signalDone(); } @@ -118,6 +118,7 @@ public int signalDone() { // We are the last thread to notice that we are done: wake any // blocked workers this.state = State.EXIT; + LOG.info("Thread state is set to EXIT"); } return current; } diff --git a/src/com/oltpbenchmark/ThreadBench.java b/src/com/oltpbenchmark/ThreadBench.java index 393df36..0687d28 100644 --- a/src/com/oltpbenchmark/ThreadBench.java +++ b/src/com/oltpbenchmark/ThreadBench.java @@ -33,6 +33,7 @@ import com.oltpbenchmark.api.Worker; import com.oltpbenchmark.types.State; import com.oltpbenchmark.util.StringUtil; +import org.hsqldb.persist.Log; public class ThreadBench implements Thread.UncaughtExceptionHandler { private static final Logger LOG = Logger.getLogger(ThreadBench.class); @@ -411,6 +412,7 @@ else if (phase.isLatencyRun()) // Last phase lastEntry = true; testState.startCoolDown(); + LOG.info("Threads cooled down..."); measureEnd = now; LOG.info(StringUtil.bold("TERMINATE") + " :: Waiting for all terminals to finish .."); } else if (phase != null) { @@ -468,6 +470,7 @@ else if (phase.isLatencyRun()) // All threads have noticed the done, meaning all measured // requests have definitely finished. // Time to quit. + LOG.info("Thread state found EXIT..."); break; } } // WHILE (main loop) diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index 64bda63..e478347 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -82,7 +82,12 @@ public Worker( try { if(!wrkld.getUseHikariPool()) { this.dataSource = null; - ll_conn = wrkld.getUseCreateConnForEveryTx() ? null : benchmarkModule.makeConnection(); + if(wrkld.getUseCreateConnForEveryTx()) + ll_conn = null; + else { + ll_conn = benchmarkModule.makeConnection(); + ll_conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); + } } else { //use Hikari Pool ll_conn = null; this.dataSource = this.benchmarkModule.getDataSource(); @@ -498,15 +503,17 @@ protected final ArrayList> do } else //use Hikari connection Pool conn = dataSource.getConnection(); try { - if(wrkld.getDBType().equals("yugabyte")) - conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); + if(wrkld.getDBType().equals("yugabyte")) { + if(ll_conn == null) + conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); + } if (next.getProcedureClass() != StockLevel.class) { // In accordance with 2.8.2.3 of the TPCC spec, StockLevel should execute each query in its own Snapshot // Isolation. conn.setAutoCommit(false); } } catch (Throwable e) { - LOG.info("Error in enabling expression_pushdown or setting auto_commit to false "); + LOG.info("Error in enabling expression_pushdown or setting auto_commit to false"); } endConnection = System.nanoTime(); From eab9b086abd236e769d2687b22380d3469abb0a7 Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Thu, 19 Dec 2024 15:39:25 +0530 Subject: [PATCH 13/22] - removing unnecessary code --- src/com/oltpbenchmark/ThreadBench.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/com/oltpbenchmark/ThreadBench.java b/src/com/oltpbenchmark/ThreadBench.java index 0687d28..acbc85a 100644 --- a/src/com/oltpbenchmark/ThreadBench.java +++ b/src/com/oltpbenchmark/ThreadBench.java @@ -33,7 +33,6 @@ import com.oltpbenchmark.api.Worker; import com.oltpbenchmark.types.State; import com.oltpbenchmark.util.StringUtil; -import org.hsqldb.persist.Log; public class ThreadBench implements Thread.UncaughtExceptionHandler { private static final Logger LOG = Logger.getLogger(ThreadBench.class); From 88ce709f14a559af44dbea4e082bc471eb81bc6f Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Fri, 20 Dec 2024 15:36:04 +0530 Subject: [PATCH 14/22] - reverting previous commit --- src/com/oltpbenchmark/BenchmarkState.java | 2 -- src/com/oltpbenchmark/ThreadBench.java | 2 -- src/com/oltpbenchmark/api/Worker.java | 13 +++---------- 3 files changed, 3 insertions(+), 14 deletions(-) diff --git a/src/com/oltpbenchmark/BenchmarkState.java b/src/com/oltpbenchmark/BenchmarkState.java index cb6e391..29bb89f 100644 --- a/src/com/oltpbenchmark/BenchmarkState.java +++ b/src/com/oltpbenchmark/BenchmarkState.java @@ -102,7 +102,6 @@ public void ackLatencyComplete() { public void startCoolDown() { assert state == State.MEASURE; state = State.DONE; - LOG.info("In startCoolDown..."); // The master thread must also signal that it is done signalDone(); } @@ -118,7 +117,6 @@ public int signalDone() { // We are the last thread to notice that we are done: wake any // blocked workers this.state = State.EXIT; - LOG.info("Thread state is set to EXIT"); } return current; } diff --git a/src/com/oltpbenchmark/ThreadBench.java b/src/com/oltpbenchmark/ThreadBench.java index acbc85a..393df36 100644 --- a/src/com/oltpbenchmark/ThreadBench.java +++ b/src/com/oltpbenchmark/ThreadBench.java @@ -411,7 +411,6 @@ else if (phase.isLatencyRun()) // Last phase lastEntry = true; testState.startCoolDown(); - LOG.info("Threads cooled down..."); measureEnd = now; LOG.info(StringUtil.bold("TERMINATE") + " :: Waiting for all terminals to finish .."); } else if (phase != null) { @@ -469,7 +468,6 @@ else if (phase.isLatencyRun()) // All threads have noticed the done, meaning all measured // requests have definitely finished. // Time to quit. - LOG.info("Thread state found EXIT..."); break; } } // WHILE (main loop) diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index e478347..5d9eea9 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -82,12 +82,7 @@ public Worker( try { if(!wrkld.getUseHikariPool()) { this.dataSource = null; - if(wrkld.getUseCreateConnForEveryTx()) - ll_conn = null; - else { - ll_conn = benchmarkModule.makeConnection(); - ll_conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); - } + ll_conn = wrkld.getUseCreateConnForEveryTx() ? null : benchmarkModule.makeConnection(); } else { //use Hikari Pool ll_conn = null; this.dataSource = this.benchmarkModule.getDataSource(); @@ -503,10 +498,8 @@ protected final ArrayList> do } else //use Hikari connection Pool conn = dataSource.getConnection(); try { - if(wrkld.getDBType().equals("yugabyte")) { - if(ll_conn == null) - conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); - } + if(wrkld.getDBType().equals("yugabyte")) + conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); if (next.getProcedureClass() != StockLevel.class) { // In accordance with 2.8.2.3 of the TPCC spec, StockLevel should execute each query in its own Snapshot // Isolation. From f03d150a7faecfb2050721e010a40d336169a8bc Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Wed, 24 Dec 2025 09:51:06 +0530 Subject: [PATCH 15/22] - adding some debug statements --- src/com/oltpbenchmark/BenchmarkState.java | 2 ++ src/com/oltpbenchmark/ThreadBench.java | 1 + src/com/oltpbenchmark/api/Worker.java | 14 +++++++++++--- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/com/oltpbenchmark/BenchmarkState.java b/src/com/oltpbenchmark/BenchmarkState.java index 29bb89f..2baac1e 100644 --- a/src/com/oltpbenchmark/BenchmarkState.java +++ b/src/com/oltpbenchmark/BenchmarkState.java @@ -101,6 +101,7 @@ public void ackLatencyComplete() { public void startCoolDown() { assert state == State.MEASURE; + LOG.info("In startCoolDown..."); state = State.DONE; // The master thread must also signal that it is done signalDone(); @@ -117,6 +118,7 @@ public int signalDone() { // We are the last thread to notice that we are done: wake any // blocked workers this.state = State.EXIT; + LOG.info("Thread state is set to EXIT"); } return current; } diff --git a/src/com/oltpbenchmark/ThreadBench.java b/src/com/oltpbenchmark/ThreadBench.java index 393df36..bb56c50 100644 --- a/src/com/oltpbenchmark/ThreadBench.java +++ b/src/com/oltpbenchmark/ThreadBench.java @@ -208,6 +208,7 @@ private int finalizeWorkers(ArrayList workerThreads) throws InterruptedE */ requests += w.getRequests(); + LOG.info("Closing the persistent connection.."); w.closeConnection(); } testState = null; diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index 5d9eea9..924ff47 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -82,7 +82,13 @@ public Worker( try { if(!wrkld.getUseHikariPool()) { this.dataSource = null; - ll_conn = wrkld.getUseCreateConnForEveryTx() ? null : benchmarkModule.makeConnection(); + if(wrkld.getUseCreateConnForEveryTx()) + ll_conn = null; + else { + LOG.info("Creating a persistent connection"); + ll_conn = benchmarkModule.makeConnection(); + ll_conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); + } } else { //use Hikari Pool ll_conn = null; this.dataSource = this.benchmarkModule.getDataSource(); @@ -498,8 +504,10 @@ protected final ArrayList> do } else //use Hikari connection Pool conn = dataSource.getConnection(); try { - if(wrkld.getDBType().equals("yugabyte")) - conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); + if(wrkld.getDBType().equals("yugabyte")) { + if(ll_conn == null) + conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); + } if (next.getProcedureClass() != StockLevel.class) { // In accordance with 2.8.2.3 of the TPCC spec, StockLevel should execute each query in its own Snapshot // Isolation. From 76f0b0aec5beb3a60d359185d344cff70b7c55e3 Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Wed, 24 Dec 2025 16:40:47 +0530 Subject: [PATCH 16/22] - revert previous commit --- src/com/oltpbenchmark/BenchmarkState.java | 2 -- src/com/oltpbenchmark/ThreadBench.java | 1 - src/com/oltpbenchmark/api/Worker.java | 11 ++--------- 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/src/com/oltpbenchmark/BenchmarkState.java b/src/com/oltpbenchmark/BenchmarkState.java index 2baac1e..29bb89f 100644 --- a/src/com/oltpbenchmark/BenchmarkState.java +++ b/src/com/oltpbenchmark/BenchmarkState.java @@ -101,7 +101,6 @@ public void ackLatencyComplete() { public void startCoolDown() { assert state == State.MEASURE; - LOG.info("In startCoolDown..."); state = State.DONE; // The master thread must also signal that it is done signalDone(); @@ -118,7 +117,6 @@ public int signalDone() { // We are the last thread to notice that we are done: wake any // blocked workers this.state = State.EXIT; - LOG.info("Thread state is set to EXIT"); } return current; } diff --git a/src/com/oltpbenchmark/ThreadBench.java b/src/com/oltpbenchmark/ThreadBench.java index bb56c50..393df36 100644 --- a/src/com/oltpbenchmark/ThreadBench.java +++ b/src/com/oltpbenchmark/ThreadBench.java @@ -208,7 +208,6 @@ private int finalizeWorkers(ArrayList workerThreads) throws InterruptedE */ requests += w.getRequests(); - LOG.info("Closing the persistent connection.."); w.closeConnection(); } testState = null; diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index 924ff47..e015de6 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -82,13 +82,7 @@ public Worker( try { if(!wrkld.getUseHikariPool()) { this.dataSource = null; - if(wrkld.getUseCreateConnForEveryTx()) - ll_conn = null; - else { - LOG.info("Creating a persistent connection"); - ll_conn = benchmarkModule.makeConnection(); - ll_conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); - } + ll_conn = wrkld.getUseCreateConnForEveryTx() ? null : benchmarkModule.makeConnection(); } else { //use Hikari Pool ll_conn = null; this.dataSource = this.benchmarkModule.getDataSource(); @@ -505,8 +499,7 @@ protected final ArrayList> do conn = dataSource.getConnection(); try { if(wrkld.getDBType().equals("yugabyte")) { - if(ll_conn == null) - conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); + conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); } if (next.getProcedureClass() != StockLevel.class) { // In accordance with 2.8.2.3 of the TPCC spec, StockLevel should execute each query in its own Snapshot From 527eb1e6703b2e8195990ef31b2635ec78d4e70f Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Wed, 24 Dec 2025 16:53:03 +0530 Subject: [PATCH 17/22] - minor changes --- src/com/oltpbenchmark/BenchmarkState.java | 1 + src/com/oltpbenchmark/api/Worker.java | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/com/oltpbenchmark/BenchmarkState.java b/src/com/oltpbenchmark/BenchmarkState.java index 29bb89f..6cfddfe 100644 --- a/src/com/oltpbenchmark/BenchmarkState.java +++ b/src/com/oltpbenchmark/BenchmarkState.java @@ -102,6 +102,7 @@ public void ackLatencyComplete() { public void startCoolDown() { assert state == State.MEASURE; state = State.DONE; + // The master thread must also signal that it is done signalDone(); } diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index e015de6..6899ce5 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -51,10 +51,12 @@ public class Worker implements Runnable { private TransactionLatencyRecord latencies; private TransactionLatencyRecord failureLatencies; private WorkerTaskLatencyRecord workerTaskLatencyRecord; + private final Statement currStatement; // Interval requests used by the monitor private final AtomicInteger intervalRequests = new AtomicInteger(0); + private final Connection ll_conn; private final int id; private final BenchmarkModule benchmarkModule; @@ -493,6 +495,7 @@ protected final ArrayList> do next = transactionTypes.getType(pieceOfWork.getType()); } startConnection = System.nanoTime(); + if( !wrkld.getUseHikariPool()) { conn = wrkld.getUseCreateConnForEveryTx() ? benchmarkModule.makeConnection() : ll_conn; } else //use Hikari connection Pool @@ -507,7 +510,7 @@ protected final ArrayList> do conn.setAutoCommit(false); } } catch (Throwable e) { - LOG.info("Error in enabling expression_pushdown or setting auto_commit to false"); + LOG.info("Error in enabling expression_pushdown or setting auto_commit to false" + e.getMessage()); } endConnection = System.nanoTime(); From c4094e74d3db3aa3ca9b357016657568bbac4efc Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Tue, 30 Dec 2025 22:00:38 +0530 Subject: [PATCH 18/22] - autoCommit change --- src/com/oltpbenchmark/api/Worker.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index 6899ce5..9825508 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -495,7 +495,7 @@ protected final ArrayList> do next = transactionTypes.getType(pieceOfWork.getType()); } startConnection = System.nanoTime(); - + if( !wrkld.getUseHikariPool()) { conn = wrkld.getUseCreateConnForEveryTx() ? benchmarkModule.makeConnection() : ll_conn; } else //use Hikari connection Pool @@ -508,7 +508,7 @@ protected final ArrayList> do // In accordance with 2.8.2.3 of the TPCC spec, StockLevel should execute each query in its own Snapshot // Isolation. conn.setAutoCommit(false); - } + } else conn.setAutoCommit(true); } catch (Throwable e) { LOG.info("Error in enabling expression_pushdown or setting auto_commit to false" + e.getMessage()); } From 75b495ebbab1f52d4bc565911a7ef869bccea554 Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Mon, 5 Jan 2026 15:00:45 +0530 Subject: [PATCH 19/22] - minor change --- src/com/oltpbenchmark/api/Worker.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index 9825508..da497cf 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -504,11 +504,9 @@ protected final ArrayList> do if(wrkld.getDBType().equals("yugabyte")) { conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); } - if (next.getProcedureClass() != StockLevel.class) { - // In accordance with 2.8.2.3 of the TPCC spec, StockLevel should execute each query in its own Snapshot - // Isolation. - conn.setAutoCommit(false); - } else conn.setAutoCommit(true); + // In accordance with 2.8.2.3 of the TPCC spec, StockLevel should execute each query in its own Snapshot + // Isolation. + conn.setAutoCommit(next.getProcedureClass() == StockLevel.class); } catch (Throwable e) { LOG.info("Error in enabling expression_pushdown or setting auto_commit to false" + e.getMessage()); } From b88912818f37eaf4be8b291e5a1bdb37558c28bd Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Mon, 5 Jan 2026 15:21:32 +0530 Subject: [PATCH 20/22] - minor change --- src/com/oltpbenchmark/api/Worker.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index da497cf..c574324 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -501,12 +501,12 @@ protected final ArrayList> do } else //use Hikari connection Pool conn = dataSource.getConnection(); try { - if(wrkld.getDBType().equals("yugabyte")) { - conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); - } // In accordance with 2.8.2.3 of the TPCC spec, StockLevel should execute each query in its own Snapshot // Isolation. conn.setAutoCommit(next.getProcedureClass() == StockLevel.class); + if(wrkld.getDBType().equals("yugabyte")) { + conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); + } } catch (Throwable e) { LOG.info("Error in enabling expression_pushdown or setting auto_commit to false" + e.getMessage()); } From ea0752d05d84dd6b4b87b7d228cf469ff0178fd1 Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Mon, 5 Jan 2026 17:04:39 +0530 Subject: [PATCH 21/22] - minor change --- src/com/oltpbenchmark/api/Worker.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index c574324..f4490ca 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -501,12 +501,14 @@ protected final ArrayList> do } else //use Hikari connection Pool conn = dataSource.getConnection(); try { - // In accordance with 2.8.2.3 of the TPCC spec, StockLevel should execute each query in its own Snapshot - // Isolation. - conn.setAutoCommit(next.getProcedureClass() == StockLevel.class); + conn.setAutoCommit(true); if(wrkld.getDBType().equals("yugabyte")) { conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); } + // In accordance with 2.8.2.3 of the TPCC spec, StockLevel should execute each query in its own Snapshot + // Isolation. + conn.setAutoCommit(next.getProcedureClass() == StockLevel.class); + } catch (Throwable e) { LOG.info("Error in enabling expression_pushdown or setting auto_commit to false" + e.getMessage()); } From 05f30d39700dfefd9580701477c2558ada35c135 Mon Sep 17 00:00:00 2001 From: Sonal Agarwal Date: Thu, 8 Jan 2026 15:59:37 +0530 Subject: [PATCH 22/22] - minor change --- src/com/oltpbenchmark/api/Worker.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/com/oltpbenchmark/api/Worker.java b/src/com/oltpbenchmark/api/Worker.java index f4490ca..58451a0 100644 --- a/src/com/oltpbenchmark/api/Worker.java +++ b/src/com/oltpbenchmark/api/Worker.java @@ -501,18 +501,16 @@ protected final ArrayList> do } else //use Hikari connection Pool conn = dataSource.getConnection(); try { - conn.setAutoCommit(true); if(wrkld.getDBType().equals("yugabyte")) { + conn.setAutoCommit(true); conn.createStatement().execute("SET yb_enable_expression_pushdown to on"); } // In accordance with 2.8.2.3 of the TPCC spec, StockLevel should execute each query in its own Snapshot // Isolation. conn.setAutoCommit(next.getProcedureClass() == StockLevel.class); - } catch (Throwable e) { LOG.info("Error in enabling expression_pushdown or setting auto_commit to false" + e.getMessage()); } - endConnection = System.nanoTime(); int attempt = 0;