Details
-
New Feature
-
Status: Open (View Workflow)
-
Minor
-
Resolution: Unresolved
-
None
-
None
Description
CHANGE MASTER options have diversified enough that making them a System Table - or at least implemented with SQL table infrastructures - can unify ecosystems and improve flexibility, both user-side and in code.
Here are some features that could be valuable for the CHANGE MASTER command, and SQL tables already have their infrastructures:
Null/default values→MDEV-28302- Support for auto-conversion and SQL expressions as values
- Distinct error for unrecognized options (compared to "SQL syntax error")
- Batch configuration of multiple connections (tables use DML such as UPDATE)
- The current finest precision is
MDEV-28302's global defaults' batching of every connection with no per-connection override.
- The current finest precision is
- EXPLAIN integration for listing expected data types in detail (including precision and NULLability), no documentation required
- Reading (tables use DQL, i.e., SELECT)
- The current method, information_schem.slave_status
- Has some columns using different names than their CHANGE MASTER counterparts
- Shows the effective value (e.g., resolved
MDEV-28302DEFAULT) by design, but not whether an option was left unset. - Includes statistics in addition to CHANGE MASTER configurations
- The current method, information_schem.slave_status
A note on the storage engine choice:
While Aria is the System Tables' go-to default, a pseudo-engine (as in a writable view) based on MDEV-36285 or MDEV-31342/MDEV-31535 may fit CHANGE MASTER better.
- If the configurations are stored in Aria's datafiles rather than @@master_info_file & relay_log_info_file, then those files become a second-class feature kept only for upgrade/downgrade compatibility.
- Having the data in storage engines' binary format also hinders access in code.
(In practice, Replication itself should be a bigger user of this table than DBAs.) - It was already a long-time known limitation that @@master_/relay_log_info_file are not ACID-level crash safe. (MDEV-8946)
- do_domain_id and ignore_domain_id are always mutually exclusive, and master_log_file/pos only apply when master_use_gtid=NO.
Attachments
Issue Links
- split from
-
MDEV-37530 Refactor Master & Relay Log info to iterable tuples
-
- Closed
-
-
MDEV-38972 Refactor MDEV-37530 and MDEV-28302 to Use Internal Data Structures
-
- In Progress
-