Details
-
Bug
-
Status: Closed (View Workflow)
-
Blocker
-
Resolution: Fixed
-
10.1(EOL)
Description
MariaDB [test]> show status like 'uptime';
|
+---------------+-------+
|
| Variable_name | Value |
|
+---------------+-------+
|
| Uptime | 119 |
|
+---------------+-------+
|
1 row in set (0.00 sec)
|
|
MariaDB [test]> show processlist ;
|
+----+------+-----------------+------+---------+----------+-------+------------------+----------+
|
| Id | User | Host | db | Command | Time | State | Info | Progress |
|
+----+------+-----------------+------+---------+----------+-------+------------------+----------+
|
| 3 | root | localhost:47560 | test | Sleep | 36680651 | | NULL | 0.000 |
|
| 4 | root | localhost:47561 | test | Query | 94 | init | show processlist | 0.000 |
|
+----+------+-----------------+------+---------+----------+-------+------------------+----------+
|
2 rows in set (0.00 sec)
|
|
MariaDB [test]> show processlist ;
|
+----+------+-----------------+------+---------+----------+-------+------------------+----------+
|
| Id | User | Host | db | Command | Time | State | Info | Progress |
|
+----+------+-----------------+------+---------+----------+-------+------------------+----------+
|
| 3 | root | localhost:47560 | test | Sleep | 44551816 | | NULL | 0.000 |
|
| 4 | root | localhost:47561 | test | Query | 78 | init | show processlist | 0.000 |
|
+----+------+-----------------+------+---------+----------+-------+------------------+----------+
|
2 rows in set (0.00 sec)
|
No need to do anything special, just start the server, open a couple of connections and run show processlist a few times.
The regression was introduced by the following commit:
commit 8f603bcbcac4a9091b6adbca3fd3655a947e759a 2bc6e29afeea374aa0ef4bc36c7a7b649c20d959
|
Author: Sergey Vojtovich <svoj@mariadb.org>
|
Date: Wed Jun 17 18:55:38 2015 +0400
|
|
MDEV-7952 - clock_gettime() takes 0.24% in OLTP RO
|
|
Initialize abs_timeout when it is about to be used. This saves one my_hrtime()
|
call on hot path (when we acquire MDL lock without waiting).
|
|
When filling I_S.PROCESSLIST use THD::start_utime/THD::utime_after_query instead
|
of THD::start_time. This allows us to save 2 clock_gettime() calls.
|
|
Overhead change:
|
__clock_gettime 0.13% -> 0.11% (122 -> 76 calls per OLTP RO transaction)
|
my_interval_timer 0.07% -> 0.06%
|
my_hrtime 0.04% -> 0.01%
|
Attachments
Issue Links
- links to
Activity
Field | Original Value | New Value |
---|---|---|
Description |
{noformat} MariaDB [test]> show status like 'uptime'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Uptime | 119 | +---------------+-------+ 1 row in set (0.00 sec) MariaDB [test]> show processlist ; +----+------+-----------------+------+---------+----------+-------+------------------+----------+ | Id | User | Host | db | Command | Time | State | Info | Progress | +----+------+-----------------+------+---------+----------+-------+------------------+----------+ | 3 | root | localhost:47560 | test | Sleep | 36680651 | | NULL | 0.000 | | 4 | root | localhost:47561 | test | Query | 94 | init | show processlist | 0.000 | +----+------+-----------------+------+---------+----------+-------+------------------+----------+ 2 rows in set (0.00 sec) MariaDB [test]> show processlist ; +----+------+-----------------+------+---------+----------+-------+------------------+----------+ | Id | User | Host | db | Command | Time | State | Info | Progress | +----+------+-----------------+------+---------+----------+-------+------------------+----------+ | 3 | root | localhost:47560 | test | Sleep | 44551816 | | NULL | 0.000 | | 4 | root | localhost:47561 | test | Query | 78 | init | show processlist | 0.000 | +----+------+-----------------+------+---------+----------+-------+------------------+----------+ 2 rows in set (0.00 sec) {noformat} No need to do anything special, just start the server, open a couple of connections and run {{show processlist}} a few times. 10.1 commit 9111ab7127f4e87220ca46a5f845b566c3633d69 (probably earlier). |
{noformat} MariaDB [test]> show status like 'uptime'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Uptime | 119 | +---------------+-------+ 1 row in set (0.00 sec) MariaDB [test]> show processlist ; +----+------+-----------------+------+---------+----------+-------+------------------+----------+ | Id | User | Host | db | Command | Time | State | Info | Progress | +----+------+-----------------+------+---------+----------+-------+------------------+----------+ | 3 | root | localhost:47560 | test | Sleep | 36680651 | | NULL | 0.000 | | 4 | root | localhost:47561 | test | Query | 94 | init | show processlist | 0.000 | +----+------+-----------------+------+---------+----------+-------+------------------+----------+ 2 rows in set (0.00 sec) MariaDB [test]> show processlist ; +----+------+-----------------+------+---------+----------+-------+------------------+----------+ | Id | User | Host | db | Command | Time | State | Info | Progress | +----+------+-----------------+------+---------+----------+-------+------------------+----------+ | 3 | root | localhost:47560 | test | Sleep | 44551816 | | NULL | 0.000 | | 4 | root | localhost:47561 | test | Query | 78 | init | show processlist | 0.000 | +----+------+-----------------+------+---------+----------+-------+------------------+----------+ 2 rows in set (0.00 sec) {noformat} No need to do anything special, just start the server, open a couple of connections and run {{show processlist}} a few times. The regression was introduced by the following commit: {noformat} commit 8f603bcbcac4a9091b6adbca3fd3655a947e759a 2bc6e29afeea374aa0ef4bc36c7a7b649c20d959 Author: Sergey Vojtovich <svoj@mariadb.org> Date: Wed Jun 17 18:55:38 2015 +0400 Initialize abs_timeout when it is about to be used. This saves one my_hrtime() call on hot path (when we acquire MDL lock without waiting). When filling I_S.PROCESSLIST use THD::start_utime/THD::utime_after_query instead of THD::start_time. This allows us to save 2 clock_gettime() calls. Overhead change: __clock_gettime 0.13% -> 0.11% (122 -> 76 calls per OLTP RO transaction) my_interval_timer 0.07% -> 0.06% my_hrtime 0.04% -> 0.01% {noformat} |
Labels | regression |
Remote Link | This issue links to "Github revision (Web Link)" [ 23901 ] |
Fix Version/s | 10.1.6 [ 19401 ] | |
Fix Version/s | 10.1 [ 16100 ] | |
Resolution | Fixed [ 1 ] | |
Status | Open [ 1 ] | Closed [ 6 ] |
Workflow | MariaDB v3 [ 70333 ] | MariaDB v4 [ 149308 ] |