IGNITE-26149 Jdbc. Benchmark added (#6921)
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 a254a58..539d374 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 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; @@ -73,6 +77,14 @@ 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. */ @Benchmark @@ -121,6 +133,54 @@ } /** + * 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)}. * * <p>Holds {@link IgniteClient} and {@link Statement}.
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 b234e05..80cd5fa 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 @@ 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 ff99208..be5dc4a 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 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) {