WL#4644: Online Backup: Fix the DDL blocker

Affects: Server-6.0   —   Status: Complete

RATIONALE
---------
To fix BUG#32702.

DETAILS
-------
DDL blocker is used inside backup system to prevent any metadata changes during
backup/restore process. It blocks DDL statements which could change the
metadata. DDL blocker is implemented but it is incomplete - it does not block
changes for all types of objects being backed-up (for example it does not block
DROP VIEW and many others). BUG#32702 contains a list of what is and what is not
blocked by the current implementation.

ALTERNATIVES
------------
There are 2 alternative understandings of what a DDL blocker should do:

A) Block all known DDL statements.
B) Block these (and only these) SQL statements which need to be blocked to
ensure BACKUP/RESTORE consistency.

Ad A) Note that it is not completely clear what a DDL statement is. There are
some statements which could be objected as being DDLs, such as TRUNCATE TABLE,
OPTIMIZE/REPAIR TABLE, DROP/CREATE INDEX. Nevertheless, they must be blocked for
BACKUP to work correctly. If DDL blocker does not block them, it becomes useless
for the backup subsystem.

Ad B) For the analysis what needs to be blocked, see HLS. If this semantics is
implemented then a better name for the service could be picked. For example
"Backup Metadata Lock", or BML for short.

This worklog will implement alternative B.

NOTE: The "DDL blocker" service is considered a temporary solution. In future
versions it is planned to replace it by more appropriate server mechanisms such
as fine-grained metadata locks.