Remove experimental label of innodb_locking_fake_changes
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Percona Server moved to https://jira.percona.com/projects/PS | Status tracked in 5.7 | |||||
5.1 |
Won't Fix
|
Undecided
|
Unassigned | |||
5.5 |
Won't Fix
|
Low
|
Unassigned | |||
5.6 |
Won't Fix
|
Low
|
Unassigned | |||
5.7 |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Introduced in 5.5.28-29.2, this option to fake changes makes the fake transactions take no locks.
When this variable is set to ``FALSE``, it makes fake transactions not to take any row locks. This feature was implemented because, although fake change transactions downgrade the requested exclusive (X) row locks to shared (S) locks, these S locks prevent X locks from being taken and block the real changes. However, this option is not safe to set to FALSE by default, because the fake changes implementation is not ready for lock-less operation for all workloads. Namely, if a real transaction will remove a row that a fake transaction is doing a secondary index maintenance for, the latter will fail. This option is considered experimental and might be removed in the future if lockless operation mode fixes are implemented.
This bug is to track removing the experimental label, calling the feature fully baked, or to remove the feature.
I think we should keep the experimental label. Fake changes should work with the least required locking automatically, and once this is implemented we should remove the option, which is a band-aid until then.