* Filter out GTIDs with a domain that is not the one binlog
events would be written to if the Database handle was given
write queries. Likewise for the MariaDB server_id component.
* Also improve MySQL GTID support to better match that of MariaDB.
This covers position retrieval, replication waiting, and ranges
in GTIDs (which are almost always present).
* Make some MySQLMasterPos variables private by making use of
accesors instead.
* Store the gtids array keyed by domain ID for convenience.
* Clean up dynamic call to static method.
Change-Id: Ic6ab517bc8f200c968ff892ade69ad1b9394ab21
ChronologyProtector uses these classes to briefly store positions
and everytime the fields change then errors can happen when old
values are unserialized and used. Use a simple two-element map
format for serialized positions. The fields are recomputed back
from the data map.
Values from before this change will issue the warning
"Erroneous data format for unserializing". To avoid that, bump
the ChronologyProtector key version. Future field changes will
not require this.
This change should be deployed on all wikis at once.
Bug: T187942
Change-Id: I71bbbc9b9d4c7e02ac02f1d8750b70bda08d4db1
The binlog file/pos where only being used in __toString() for the GTID
case. Make that method use the GTID set instead and avoid querying the
old-fashioned binlog fields all together in that case. The STATUS
queries involve some global lock contention.
Bug: T180918
Change-Id: I18123a702e4f554b87bf5f90017b248062e73049
Use HTTPS instead of HTTP where the HTTP link is a redirect to the HTTPS link.
Also update some defect links.
Change-Id: Ic3a5eac910d098ed5c2a21e9f47c9b6ee06b2643