Details
-
Task
-
Status: Closed (View Workflow)
-
Blocker
-
Resolution: Fixed
Description
From the very beginning, the default InnoDB transaction isolation level REPEATABLE READ does not correspond to any established definition. The main issue is the lack of write/write conflict detection. To fix that and to make REPEATABLE READ correspond to Snapshot Isolation, we introduced the Boolean session variable innodb_snapshot_isolation in MariaDB Server 10.6.18, 10.11.8, 11.4.2. It is disabled by default in order not to break any user applications.
In a new major version of MariaDB Server, we had better enable this parameter by default, so that bugs like MDEV-26642, MDEV-26643, MDEV-32898 will be avoided by default.
Attachments
Issue Links
- causes
-
MDEV-35488 innodb_snapshot_isolation is ON by default in 11.6+
-
- Closed
-
- relates to
-
MDEV-35647 Possible hang during CREATE TABLE…SELECT error handling
-
- Closed
-
-
MDEV-26642 Weird SELECT view when a record is modified to the same value by two transactions
-
- Closed
-
-
MDEV-26643 Inconsistent behaviors of UPDATE under RU & RC isolation level
-
- Closed
-
-
MDEV-32898 Phantom rows caused by UPDATE of PRIMARY KEY
-
- Closed
-
-
MDEV-35140 Support innodb-snapshot-isolation in Galera cluster
-
- Stalled
-
-
MDEV-36308 Unreasonable block in repeatable read
-
- Open
-
I believe both settings are valid and both pass the consistency test. As would be expected, If I set the Virtual Users to use the same data with innodb_snapshot_isolation set to 1 I see more of the messages from the district table, if I set them to all use different data then I still see them but not as frequently for the other tables. By default the data is selected at random so 2 virtual users can land on the same warehouse and in this scenario there are more messages. The workload will need to be changed in case of seeing these errors to retry the transaction as per the HammerDB issue.