devdocs
devdocs copied to clipboard
Clarify minimal transaction isolation level
Topic clarification/correction request
Topic Link
https://devdocs.magento.com/guides/v2.3/install-gde/system-requirements-tech.html#database
Description
In https://github.com/magento/magento2/issues/8933#issuecomment-551520758 the option to set Isolation Level to READ-COMITTED was discussed as a workaround to a bug.
While #9756 was closed as workarounds should not be put in the Docs (I agree on this), the questions stays open, which Isolation Levels are actually supported by magento, as Isolation Level with lesser consistent, can always perform better in some situations.
Possible solutions
I would like to know which of the Isolation Levels ( https://dev.mysql.com/doc/refman/5.7/en/innodb-transaction-isolation-levels.html#isolevel_read-committed ) can safely be used with (stock) magento.
Additional information
See also:
- https://mydbops.wordpress.com/2018/06/22/back-to-basics-isolation-levels-in-mysql/
- https://en.wikipedia.org/wiki/Isolation_(database_systems)
@dobooth - Is this still a relevant issue?
+1
An official recommendation from Magento team about which isolation level should be used is quite useful, especially because most of the users are using the default value from MySQL which is REPEATABLE READ
, but at the same time, Magento Cloud uses READ COMMITTED
.
@dobooth - Is this still a relevant issue?
Yes it is still relevant issue
A global transaction isolation level of READ COMMITTED
would yield a massive boost in the scalability of the magento application, and would be preferred if the application supported it. This is because using REPEATABLE READ
can yield a lot of obscure table deadlocks and lock waits that could otherwise be avoided. by use of READ COMMITTED
.
If read committed is supported, adobe SHOULD take a stance and provide that recommendation.
If magento cloud uses READ COMMITTED
(as @marius-balteanu claims), then it seems like that would be the optimal adobe "preferred" solution.