mirror of
https://github.com/MariaDB/server.git
synced 2025-12-17 17:55:44 +01:00
Every Wsrep system thread should run with READ_COMMITTED transaction isolation level to prevent issues caused by InnoDB gap locks. The exception is statement-based replication for appliers, where REPEATABLE_READ is required by the server code. To account for that, set the isolation level before every applied event. It won't affect an already running transaction, but allows to handle both statement- and row-based replications accordingly. However, the problem might arise with the mixed replication format. Apart from that, there was a separate issue with applier thread vars: wsrep_plugins_post_init() would overwrite thd->variables for every applier thread and forget to restore proper default isolation level. Then, upon every server transaction termination, trans_reset_one_shot_statistics() would set thread's isolation level to the one stored in thd->variables, thus spoiling the isolation level value for appliers. |
||
|---|---|---|
| .. | ||
| include | ||
| r | ||
| t | ||
| disabled.def | ||
| galera_2nodes.cnf | ||
| galera_2nodes_as_master.cnf | ||
| galera_2nodes_as_replica_2primary.cnf | ||
| galera_2nodes_as_slave.cnf | ||
| galera_2x2nodes.cnf | ||
| galera_3nodes_as_slave.cnf | ||
| galera_4nodes.cnf | ||
| my.cnf | ||
| suite.pm | ||