-
Joao Gramacho authored
This patch introduces a small optimization on the automatic GNO assignment for automatic GTIDs. The previous approach was to get the first non-committed GNO as a starting point, and then to find the first GNO not owned by other transactions that reached the flush stage. The above described approach would result in the thread spending more time than needed while holding the sidno_lock for the server UUID. The optimization memorizes the last GNO assigned automatically and starts looking for available GNOs from that point. This patch also made Gtid_state::init to require global_sid_lock.wrlock instead of global_sid_lock.rdlock.
Joao Gramacho authoredThis patch introduces a small optimization on the automatic GNO assignment for automatic GTIDs. The previous approach was to get the first non-committed GNO as a starting point, and then to find the first GNO not owned by other transactions that reached the flush stage. The above described approach would result in the thread spending more time than needed while holding the sidno_lock for the server UUID. The optimization memorizes the last GNO assigned automatically and starts looking for available GNOs from that point. This patch also made Gtid_state::init to require global_sid_lock.wrlock instead of global_sid_lock.rdlock.
Loading