← Back to team overview

maria-developers team mailing list archive

Re: Obsolete GTID domain delete on master (MDEV-12012, MDEV-11969)


andrei.elkin@xxxxxxxxxx writes:

> If my concern is practical we may consider *optionally* strict
> delete domain FLUSH LOGs. The errored out version would maintain a

In that case, I would compare to SET GLOBAL gtid_binlog_state.

Currently, this is even more restricted, it is only allowed when the binlog
is completely empty.

If the philosophy is "the user knows what she is doing", then an unsafe SET
GLOBAL gtid_binlog_state allows to do everything an unsafe DELETE DOMAIN
would, and more. (Then SET GLOBAL gtid_binlog_state should be changed to not
do implicit RESET MASTER, only implicit FLUSH BINARY LOGS). Then there is no
need to introduce new syntax.

> might be equivalent to RESET MASTER as the 'erroneous' log file is last.
> That's why I was content without p.3 and with p.4 that does not
> necessary error out.

I do not think it is equivant. RESET MASTER requires to stop _all_ servers
and reset the gtid position on all slaves. That is very disruptive. In
contrast, the safe version of DELETE DOMAIN only requires a FLUSH BINARY LOG
and waiting until slaves are up-to-date.

> To dramatize mdev-12012 case with a complication, what if p.2 can't be
> not ensured, say, due to another temporarily stopped slave who (for
> simplicity) does not care for the being deleted domain?

I do not think this is a concern. I think it is reasonable in this case to
require that all slaves be up to date with a FLUSH LOGS before switching the
system to GTID.

One criteria I use for choosing between a strict and a relaxed behaviour is
to consider if the relaxed behaviour can be reasonably documented. In fact,
it is a good idea to sketch a full documentation for a new feature early
during design. If the behaviour in the relaxed case cannot be fully
described in documentation, then it will be hard for the user to "know what
she is doing". And easy to accidentally end up with an incorrect result.

In this case, I find it hard to see how to fully document what happens with
any left-over GTIDs in domains that were deleted. Or even fully understand
myself how they will behave (or misbehave). Hence my recommendation to make
it an error.

 - Kristian.

Follow ups