read isolation
Based on the database local transaction isolation level of Read Committed (Read Committed) or above, the default global isolation level of Seata (AT mode) is Read Uncommitted (Read Uncommitted). If the application is in a specific scenario, it is necessary to require that the global read has been submitted. The current Seata method is through the proxy of the SELECTFORUPDATE statement.

The execution of the SELECT FOR UPDATE statement will apply for a global lock. If the global lock is held by another transaction, release the local lock (roll back the local execution of the SELECT FOR UPDATE statement) and try again. During this process, the query is blocked until the global lock is acquired, that is, the read related data has been submitted before returning.
For overall performance considerations, Seata's current solution does not proxy all SELECT statements, but only SELECT statements for FOR UPDATE.
Last updated