Details
-
Bug
-
Status: Open (View Workflow)
-
Critical
-
Resolution: Unresolved
-
11.8
-
None
-
Related to performance
Description
The regression test suite found a regression in test t_connect. This test is simple:
connect;
|
SELECT 1 FROM dual;
|
disconnect;
|
10.6.23-19 numbers:
thds tps min avg max 95th 25th median 75th
|
1 4121.35 0.189 0.242 2.834 0.256 0.235 0.239 0.245
|
2 8056.20 0.184 0.247 1.029 0.275 0.234 0.243 0.254
|
4 16338.05 0.177 0.244 1.025 0.290 0.222 0.236 0.257
|
8 27496.22 0.197 0.290 1.547 0.319 0.275 0.287 0.300
|
16 48598.15 0.197 0.328 2.693 0.381 0.303 0.323 0.344
|
32 66406.02 0.232 0.480 6.929 0.639 0.413 0.459 0.518
|
64 69616.80 0.243 0.917 20.697 1.417 0.712 0.844 1.012
|
128 68705.20 0.248 1.861 44.318 3.386 1.330 1.672 2.125
|
11.8.3-1 numbers:
thds tps min avg max 95th 25th median 75th
|
1 3909.42 0.190 0.255 2.648 0.276 0.246 0.253 0.259
|
2 7449.21 0.196 0.267 1.433 0.294 0.253 0.265 0.276
|
4 15387.43 0.187 0.259 1.201 0.308 0.234 0.252 0.275
|
8 25782.14 0.213 0.309 1.976 0.341 0.293 0.306 0.319
|
16 44968.59 0.221 0.354 3.236 0.415 0.327 0.348 0.372
|
32 58234.99 0.267 0.548 6.430 0.740 0.463 0.526 0.604
|
64 57565.59 0.274 1.110 17.304 1.762 0.823 1.037 1.300
|
128 54696.05 0.260 2.338 29.131 4.334 1.530 2.146 2.904
|
It should be investigated if this regression is avoidable or not. The regression does not depend on the new SSL capabilities of the server. Nor on the changed default character set. This has been tested already
With this patch
--- a/sql/sql_connect.cc
|
+++ b/sql/sql_connect.cc
|
@@ -1239,7 +1239,7 @@ static bool login_connection(THD *thd)
|
my_net_set_write_timeout(net, connect_timeout);
|
|
error= check_connection(thd);
|
- thd->session_tracker.sysvars.mark_all_as_changed(thd);
|
+ //thd->session_tracker.sysvars.mark_all_as_changed(thd);
|
thd->protocol->end_statement();
|
|
if (unlikely(error))
|
the performance of 11.8 is back to 11.4 level but not to 10.6.
Additionally with this patch
--- a/sql/protocol.cc
|
+++ b/sql/protocol.cc
|
@@ -269,12 +269,14 @@ Protocol::net_send_ok(THD *thd,
|
store.q_net_store_data((uchar*) safe_str(message), safe_strlen(message));
|
}
|
|
+ /*
|
if (unlikely(server_status & SERVER_SESSION_STATE_CHANGED))
|
{
|
store.set_charset(thd->variables.collation_database);
|
thd->session_tracker.store(thd, &store);
|
thd->server_status&= ~SERVER_SESSION_STATE_CHANGED;
|
}
|
+ */
|
|
DBUG_ASSERT(store.length() <= MAX_PACKET_LENGTH);
|
then 11.8 is even better than 10.5