Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix support for Percona XtraDB Cluster (#2605)
We recently transitioned our read-modify-write operations to use the SERIALIZABLE isolation level for MySQL due to MySQL's weaker guarantees (relative to PostgreSQL and SQLite3) for the REPEATABLE READ isolation level, which was causing data loss. However, doing so broke Percona XtraDB Cluster which does not support explicit row-locking (including the SERIALIZABLE isolation level) except experimentally (have to turn of "strict" mode). This change restores the isolation level for read-modify-write operations to use REPEATABLE READ but changes the "read"'s to do a SELECT..FOR UPDATE, which provides the implicit row-level locking we require for to protect read-modify-write transactions from data loss. This is only done for MySQL even though PostreSQL supports it since the isolation level is sufficient. Fixes: #2587 Signed-off-by: Andrew Harding <aharding@vmware.com>
- Loading branch information