When setting the isolation level over multiple transactions, what can be the cause for aborting a transaction?
i assume that the isolation level defines which anomalies are allowed/not allowed to happen by appropriate locking, and not by aborting the transaction – is this a correct assumption?
So far the only reason I can think of is when the execution deadlocks and one of the transactions must be aborted.
If one transaction T1 is requesting some resource R1 that is locked by another transaction T2, then T1 could time out and abort.
This is not yet a deadlock situation. Deadlock is when both T1 and T2 get stalled, each waiting for the other to release a lock the other has on some resource.