This is an automated email from the ASF dual-hosted git repository.
ppa pushed a commit to branch jdbc_over_thin_sql
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/jdbc_over_thin_sql by this
push:
new 2f88bb9d72e IGNITE-26149 Jdbc. Benchmark added (#6921)
2f88bb9d72e is described below
commit 2f88bb9d72e81420b7469b5b55fe5460a75835d8
Author: Pavel Pereslegin <[email protected]>
AuthorDate: Wed Nov 19 15:11:01 2025 +0300
IGNITE-26149 Jdbc. Benchmark added (#6921)
---
.../internal/benchmark/BulkLoadBenchmark.java | 60 ++++++++++++++++++++++
.../ignite/internal/benchmark/InsertBenchmark.java | 2 +-
.../ignite/internal/benchmark/SelectBenchmark.java | 2 +-
3 files changed, 62 insertions(+), 2 deletions(-)
diff --git
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/BulkLoadBenchmark.java
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/BulkLoadBenchmark.java
index a254a58c596..539d374c931 100644
---
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/BulkLoadBenchmark.java
+++
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/BulkLoadBenchmark.java
@@ -21,6 +21,10 @@ import static java.util.stream.Collectors.joining;
import static org.apache.ignite.internal.lang.IgniteStringFormatter.format;
import static org.apache.ignite.internal.util.IgniteUtils.closeAll;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.stream.IntStream;
@@ -72,6 +76,14 @@ public class BulkLoadBenchmark extends
AbstractMultiNodeBenchmark {
@Param("5")
private int batchSize;
+ /**
+ * Benchmark for SQL insert via JDBC client.
+ */
+ @Benchmark
+ public void jdbcInsert(JdbcState state) throws SQLException {
+ state.upload(count, batchSize);
+ }
+
/**
* Benchmark for SQL insert via thin client.
*/
@@ -120,6 +132,54 @@ public class BulkLoadBenchmark extends
AbstractMultiNodeBenchmark {
new Runner(opt).run();
}
+ /**
+ * Benchmark state for {@link #jdbcInsert(JdbcState)}.
+ *
+ * <p>Holds {@link Connection} and {@link PreparedStatement}.
+ */
+ @State(Scope.Benchmark)
+ public static class JdbcState {
+ private Connection connection;
+ private PreparedStatement statement;
+
+ /**
+ * Initializes session and statement.
+ */
+ @Setup
+ public void setUp() throws SQLException {
+ String queryStr = createInsertStatement();
+
+ String clientAddrs = String.join(",",
getServerEndpoints(clusterSize));
+
+ String jdbcUrl = "jdbc:ignite:thin://" + clientAddrs;
+
+ connection = DriverManager.getConnection(jdbcUrl);
+
+ connection.setAutoCommit(false);
+
+ statement = connection.prepareStatement(queryStr);
+ }
+
+ /**
+ * Closes resources.
+ */
+ @TearDown
+ public void tearDown() throws Exception {
+ connection.close();
+ }
+
+ void upload(int count, int batch) throws SQLException {
+ for (int i = 0; i < count; i++) {
+ if (i % batch == 0) {
+ connection.commit();
+ }
+
+ statement.setInt(1, i);
+ statement.executeUpdate();
+ }
+ }
+ }
+
/**
* Benchmark state for {@link #sqlThinInsert(SqlThinState)}.
*
diff --git
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/InsertBenchmark.java
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/InsertBenchmark.java
index b234e05a8f7..80cd5fab316 100644
---
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/InsertBenchmark.java
+++
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/InsertBenchmark.java
@@ -287,7 +287,7 @@ public class InsertBenchmark extends
AbstractMultiNodeBenchmark {
String queryStr = createInsertStatement();
//noinspection CallToDriverManagerGetConnection
- conn =
DriverManager.getConnection("jdbc:ignite:thin://127.0.0.1:10800/");
+ conn = DriverManager.getConnection("jdbc:ignite:thin://" +
String.join(",", getServerEndpoints(clusterSize)));
stmt = conn.prepareStatement(queryStr);
}
diff --git
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/SelectBenchmark.java
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/SelectBenchmark.java
index ff992080c8f..be5dc4afe0b 100644
---
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/SelectBenchmark.java
+++
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/SelectBenchmark.java
@@ -328,7 +328,7 @@ public class SelectBenchmark extends
AbstractMultiNodeBenchmark {
public void setUp() {
try {
//noinspection CallToDriverManagerGetConnection
- conn =
DriverManager.getConnection("jdbc:ignite:thin://127.0.0.1:10800/");
+ conn = DriverManager.getConnection("jdbc:ignite:thin://" +
String.join(",", getServerEndpoints(clusterSize)));
stmt = conn.prepareStatement(SELECT_ALL_FROM_USERTABLE);
} catch (SQLException e) {