When GenRocket sends test data to your database side via JDBC, it will send it as fast as it possibly can at a typical speed of 10,000 rows per second and in some cases as much as 15,000 rows per second. It then waits for a response to come back from your JDBC.
Slow loading of test data is not an uncommon issue for anyone who is just beginning to use GenRocket because the opportunity to directly flood the database has not presented itself until now. The behavior is different when talking directly to the database via JDBC.
When you are experiencing slow load times, it is often because steps need to be taken to optimise your database. Please review the troubleshooting recommendations below for more information.
Recommendation 1: Check to See if the Correct JDBC Drivers Have Been Optimised
Sometimes the response takes an extended time to come back to GenRocket. This is typically caused by slow communication through your JDBC, GenRocket will continue to wait until the response is received. GenRocket has no control over the response time from your JDBC. It is important to check your JDBC drivers to ensure that they have been optimised correctly.
Recommendation 2: Check the Table Data is Being Inserted Into to Ensure It Is Optimised Correctly
If the database table is performing a sequential search on any column that generated test data is being inserted into, this also slows down the process of data insertion. The table must be optimised correctly to take fast insertion.
Recommendation 3: Check Database Specific Parameters
MySQL and other databases sometimes have additional parameters that need to be specified in JDBC to tell it to use batch mode, caching mode, or something similar when performing large insertions. JDBC is a general standard; however, sometimes special flags must be set on particular databases so that the database is used in a particular instance.
For example, a transactional database says I am only taking in one row of data at a particular time in a particular transaction. However, if I am using batch mode transactions than I need a particular flag set so that it knows I am in that specific mode.
In this case, you will want to check the documentation on the JDBC driver to find out if there are flags that need to be set when you are importing large amounts of data into the table. Technically, 30,000 rows of data should be inserted within 3 to 5 seconds.
Note: For more information about optimising MySQL database insertion and updating when running Scenarios, please see: Running Scenarios: Optimise MySQL Database Insertion and Updating.