Details
-
Task
-
Status: Stalled (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Using different gtid_domain_id are a way to allow a multi purpose database server to define a set of different gtids to assist in parallel replication. Unfortunately since gtid_domain_id can only be set by a super user this restricts its use. It would be useful to have an allocation of gtid_domain_id per user to facilitate application assisted parallel replication.
https://mariadb.com/kb/en/mariadb/documentation/replication/standard-replication/global-transaction-id/#gtid_domain_id (doesn't list it as SUPER only)
mysql> set session gtid_domain_id=59;
|
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation
|
If having multiple users set the same gtid_domain_id is risky for some reason consider:
a) an entry in the mysql.user table that defines the default gtid_domain_id for that user; and optionally extra
b) a min/max gtid_domain_id values in the users table to prevent conflicts (min/max available as readonly variable) where a non-super user can only set gtid_domain_id within this range.
b) would be useful if an application support a set of operations (e.g. db cache, batch payments) that it knows are independent.
Attachments
Issue Links
- relates to
-
MDEV-8017 current_user() in definer event/trigger/stored procedure/function/view to return real current user
- Closed
-
MDEV-26706 Enable per table gtid domain_id
- Open