Serializable Snapshot Isolation
Serializable Snapshot Isolation (SSI) is based on the idea of Snapshot Isolation, but adds an algorithm to detect serialization conflicts among writes and to determine which transactions to abort. SSI promises full serializability, with only a small performance penalty compared to serializable isolation.
Though young compared to other types of concurrency controls, SSI holds more promise than both weak isolation levels as well as serializability mechanisms because of its improved performance with reduced need for locks.
SSI takes the approach of Optimistic Concurrency Control. Transactions are allowed to continue anyway in the hope that everything will turn out all right. When the time comes for the transaction to commit, the database checks whether the isolation was violated, and aborts the transaction if yes.