Draft: ZSQLCatalog: force using READ COMMITTED isolation for indexation.
This merge request supersedes !1997 (closed).
For the same reason that we are safe to use innodb_locks_unsafe_for_binlog
, i.e. we don't use INSERT ... SELECT
pattern, it should be safe to use READ COMMITTED isolation level in indexation.
With software/erp5/test/test/benchmarks.py
in SlapOS repository, here is the difference of the number of deadlocks.
- !2151 only
51 INSERT INTO stock
117 INSERT INTO `quantity_unit_conversion`
210 DELETE FROM category
230 REPLACE INTO delivery
86074 INSERT INTO category
11541 SELECT FOR UPDATE query in CMFActivity
8393 UPDATE query in CMFActivity
9 REPLACE INTO delivery
108 INSERT INTO category
4 SELECT query in CMFActivity
10792 SELECT FOR UPDATE query in CMFActivity
504 UPDATE query in CMFActivity
And here is the comparison of the performance, that is even faster than 10.4 with innodb_locks_unsafe_for_binlog
.