Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Duplicate
-
1.2.1
-
None
Description
There is a major performance degradation between 1.2 and 1.1. Here is the test bed.
MariaDB [test]> desc t1;
|
+-------+--------+------+-----+---------+-------+
|
| Field | Type | Null | Key | Default | Extra |
|
+-------+--------+------+-----+---------+-------+
|
| a | double | YES | | NULL | |
|
| b | double | YES | | NULL | |
|
+-------+--------+------+-----+---------+-------+
|
2 rows in set (0.00 sec)
|
MariaDB [test]> select count(*) from t1;
|
+-----------+
|
| count(*) |
|
+-----------+
|
| 560023752 |
|
+-----------+
|
1 row in set (2.46 sec)
|
Version 1.1 timings for the query
MariaDB [test]> select max(a),max(b) from t1;
|
selec count(*) from t1;
|
+--------+--------+
|
| max(a) | max(b) |
|
+--------+--------+
|
| 1 | 1 |
|
+--------+--------+
|
1 row in set (14.66 sec)
|
1.2 timings for the query with the same hardware, standart lib, boost
MariaDB [test]> select max(a),max(b) from t1;
|
selec count(*) from t1;
|
+--------+--------+
|
| max(a) | max(b) |
|
+--------+--------+
|
| 1 | 1 |
|
+--------+--------+
|
1 row in set (27.53 sec)
|
According with the assembly transcript of the code the problem caused by excesive locking for atomic ref counter increase whilst running shared_pointer copy constructor in rowaggregation.cpp by RowAggregation::updateEntry().
Attachments
Issue Links
- duplicates
-
MCOL-1793 regr_slope() and regr_r2() produce incorrect result when used as window functions
- Closed