[MDEV-20008] Galera strict mode Created: 2019-07-10  Updated: 2021-02-23  Resolved: 2021-01-27

Status: Closed
Project: MariaDB Server
Component/s: Galera
Fix Version/s: 10.6.0

Type: Task Priority: Major
Reporter: Jan Lindström (Inactive) Assignee: Jan Lindström (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Relates
relates to MDEV-24843 Remove parameter wsrep_strict_ddl Closed
relates to MDEV-24945 Document new wsrep_mode system variab... Open

 Description   

Add configuration variable wsrep_strict_mode=[ON|OFF] where operations that are harmful or problematic in cluster environment are either refused with an error message or produce a warning.

Jan's suggested ideas:

  • A session has binlog_format set to STATEMENT, and the session writes to an InnoDB table. The associated statement will be logged in statement-based format, which is unsupported by Galera,
  • A session has binlog_format set to MIXED, and the session writes to an InnoDB table. The associated statement could be logged in statement-based format, which is unsupported by Galera.
  • A node has wsrep_replicate_myisam set to OFF, and a session on the node writes to a MyISAM table, so the write will not be replicated.
  • A node has wsrep_replicate_aria set to OFF, and a session on the node writes to an Aria table, so the write will not be replicated.
  • A session writes to any other non-InnoDB storage engine, so the write will not be replicated.
  • A session has wsrep_on set to OFF, and the session writes to an InnoDB table, so the write will not be replicated.

Approach used for the implementation:
wsrep_mode is a server variable that one can use to enable/disable specific Galera features.
To set or unset the various features, use the following syntax:

SET GLOBAL wsrep_mode='cmd[,cmd]...';

Possible values:

  • DEFAULT : Disable all features
  • BINLOG_ROW_FORMAT_ONLY : Galera requires binlog format row
  • REQUIRED_PRIMARY_KEY : Galera will require primary key for tables
  • STRICT_REPLICATION : Warning is issued if changes are done to tables that storage engine is not supported by Galera

Variable wsrep_strict_ddl is deprecated and replaced with wsrep_mode='STRICT_REPLICATION'.



 Comments   
Comment by Jan Lindström (Inactive) [ 2020-11-19 ]

Possible ideas:

  • A session has binlog_format set to STATEMENT, and the session writes to an InnoDB table. The associated statement will be logged in statement-based format, which is unsupported by Galera,
  • A session has binlog_format set to MIXED, and the session writes to an InnoDB table. The associated statement could be logged in statement-based format, which is unsupported by Galera.
  • A node has wsrep_replicate_myisam set to OFF, and a session on the node writes to a MyISAM table, so the write will not be replicated.
  • A node has wsrep_replicate_aria set to OFF, and a session on the node writes to an Aria table, so the write will not be replicated.
  • A session writes to any other non-InnoDB storage engine , so the write will not be replicated.
  • A session has wsrep_on set to OFF, and the session writes to an InnoDB table, so the write will not be replicated.
Generated at Thu Feb 08 08:56:02 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.