# Overview An approach to [[Strong (or Serializable) Isolation]] where exclusive access to data is given to a read or write while the transaction is running: - If transaction A has read an object and transaction B wants to write to that object, B must wait until A commits or aborts before it can continue. (This ensures that B can’t change the object unexpectedly behind A’s back.) - If transaction A has written an object and transaction B wants to read that object, B must wait until A commits or aborts before it can continue. # Key Considerations Requires a [[predicate lock]] to enable full strong isolation. Many databases implement an alternative to a predicate lock, called an [[Index-Range Lock]]. # Pros - Protects against all [[Race Conditions]] # Cons - Negative impact on performance - Introduces [[deadlocks]] # Use Cases - [[mySQL]] - [[MS SQL Server]] # Related Topics - 2PL is a type of [["pessimistic" concurrency control strategy]]