Details
-
Bug
-
Status: In Review (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.4(EOL), 10.5, 10.6, 10.7(EOL), 10.8(EOL), 10.9(EOL), 10.10(EOL)
Description
In 7a9dfdd GLOBAL and COMMIT namespaces were combined into BACKUP, which doubled load on BACKUP lock mutex.
Can be fixed by implementing something similar to MySQL WL#7306 "Improve MDL performance and scalability by implementing lock-free lock acquisition for DML".
Attachments
Issue Links
- is caused by
-
MDEV-5336 Implement BACKUP STAGE for safe external backups
-
- Closed
-
- relates to
-
MDEV-14992 BACKUP: in-server backup
-
- Open
-
Activity
Field | Original Value | New Value |
---|---|---|
Summary | Scalability regression after backup locks | MDL scalability regression after backup locks |
Fix Version/s | 10.3 [ 22126 ] | |
Fix Version/s | 10.4 [ 22408 ] |
Fix Version/s | 10.6 [ 24028 ] | |
Fix Version/s | 10.3 [ 22126 ] | |
Fix Version/s | 10.4 [ 22408 ] | |
Fix Version/s | 10.5 [ 23123 ] |
Assignee | Sergey Vojtovich [ svoj ] |
Workflow | MariaDB v3 [ 97498 ] | MariaDB v4 [ 141332 ] |
Affects Version/s | 10.5 [ 23123 ] | |
Affects Version/s | 10.6 [ 24028 ] | |
Affects Version/s | 10.7 [ 24805 ] | |
Affects Version/s | 10.8 [ 26121 ] | |
Affects Version/s | 10.9 [ 26905 ] | |
Affects Version/s | 10.10 [ 27530 ] | |
Labels | performance regression-10.4 |
Link | This issue relates to MDEV-14992 [ MDEV-14992 ] |
Sprint | Server 12.1 dev sprint [ 793 ] | |
Assignee | Marko Mäkelä [ marko ] |
Assignee | Marko Mäkelä [ marko ] | Michael Widenius [ monty ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
Fix Version/s | 10.11 [ 27614 ] | |
Fix Version/s | 10.6 [ 24028 ] |
Sprint | Server 12.1 dev sprint [ 793 ] |
Status | In Progress [ 3 ] | In Testing [ 10301 ] |
Assignee | Michael Widenius [ monty ] | Marko Mäkelä [ marko ] |
Status | In Testing [ 10301 ] | Stalled [ 10000 ] |
Status | Stalled [ 10000 ] | In Progress [ 3 ] |
Assignee | Marko Mäkelä [ marko ] | Michael Widenius [ monty ] |
Status | In Progress [ 3 ] | In Review [ 10002 ] |
The following patch has been used during some performance testing to remove the scalability bottleneck due to backup locks, so that we can better highlight scalability bottlenecks inside storage engines.
diff --git a/sql/handler.cc b/sql/handler.cc
index eb7b5b8..012ef20 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -1567,7 +1567,7 @@ int ha_commit_trans(THD *thd, bool all)
DBUG_PRINT("info", ("is_real_trans: %d rw_trans: %d rw_ha_count: %d",
is_real_trans, rw_trans, rw_ha_count));
- if (rw_trans)
+ if (0 && rw_trans)
{
/*
Acquire a metadata lock which will ensure that COMMIT is blocked
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index c41e08e..f9e3f34 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -2100,7 +2100,7 @@ bool open_table(THD *thd, TABLE_LIST *table_list, Open_table_context *ot_ctx)
}
if (!(flags & MYSQL_OPEN_HAS_MDL_LOCK) &&
- table->s->table_category < TABLE_CATEGORY_INFORMATION)
+ table->s->table_category < TABLE_CATEGORY_INFORMATION && 0)
{
/*
We are not under LOCK TABLES and going to acquire write-lock/