Bug #110673 Optimize the garbage_collect of group_replication
| Submitted: | 13 Apr 2023 0:42 | Modified: | 1 Oct 2024 20:40 |
|---|---|---|---|
| Reporter: | Fangxin Flou (OCA) | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Group Replication | Severity: | S3 (Non-critical) |
| Version: | all, 8.0 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | garbage collection, group replicaiton | ||
[13 Apr 2023 0:43]
Fangxin Flou
Patch of LOCK_status optimization for global statistics summary
Attachment: temp.log (application/octet-stream, text), 2.55 KiB.
[13 Apr 2023 0:45]
Fangxin Flou
Patch of Optimize the garbage_collect of group_replication
Attachment: temp.log (application/octet-stream, text), 2.55 KiB.
[13 Apr 2023 6:59]
MySQL Verification Team
Hello Fangxin Flou, Thank you for the report and feedback. Thanks, Umesh
[1 Oct 2024 20:40]
Jon Stephens
Documented fix as follows in the MySQL 8.0.41, 8.4.4, and 9.2.0 changelogs:
Improved garbage collection in Group Replication by eliminating
non-essential calls to is_subset_not_equals().
Closed.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.054 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: In the current garbage_collect logic, for each key "is_subset_not_equals" will be called, this is not required as a Gtid_set_ref value may contains many keys, just once is required. Certification_info::iterator it = certification_info.begin(); stable_gtid_set_lock->wrlock(); while (it != certification_info.end()) { if (it->second->is_subset_not_equals(stable_gtid_set)) { /* very hot here */ if (it->second->unlink() == 0) delete it->second; certification_info.erase(it++); } else ++it; } How to repeat: N/A Suggested fix: We could add a gc_version flag to Gtid_set_ref to avoid extra calls of "is_subset_not_equals".