diff options
author | Andrei Elkin <andrei.elkin@mariadb.com> | 2018-06-19 18:14:47 +0300 |
---|---|---|
committer | Andrei Elkin <andrei.elkin@mariadb.com> | 2018-06-25 16:45:00 +0300 |
commit | 28e1f1453f12b8b748c31a86a22b336f62002654 (patch) | |
tree | 5f985c1e86323bbdef4ad3485bc8f55119f4876a /sql/ha_partition.cc | |
parent | 364a20fe0b072fb1d2a9b54a8c4e47a5012f3e97 (diff) | |
download | mariadb-git-28e1f1453f12b8b748c31a86a22b336f62002654.tar.gz |
MDEV-15242 Poor RBR update performance with partitioned tables
Observed and described
partitioned engine execution time difference
between master and slave was caused by excessive invocation
of base_engine::rnd_init which was done also for partitions
uninvolved into Rows-event operation.
The bug's slave slowdown therefore scales with the number of partitions.
Fixed with applying an upstream patch.
References:
----------
https://bugs.mysql.com/bug.php?id=73648
Bug#25687813 REPLICATION REGRESSION WITH RBR AND PARTITIONED TABLES
Diffstat (limited to 'sql/ha_partition.cc')
-rw-r--r-- | sql/ha_partition.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc index 6a6627f9276..0488ebfb60f 100644 --- a/sql/ha_partition.cc +++ b/sql/ha_partition.cc @@ -5090,7 +5090,8 @@ int ha_partition::rnd_pos_by_record(uchar *record) if (unlikely(get_part_for_delete(record, m_rec0, m_part_info, &m_last_part))) DBUG_RETURN(1); - DBUG_RETURN(handler::rnd_pos_by_record(record)); + int err= m_file[m_last_part]->rnd_pos_by_record(record); + DBUG_RETURN(err); } |