Snapshot isolation: Difference between revisions

Content deleted Content added
New page: "snapshot isolation" (common database isolation level)
 
Blowdart (talk | contribs)
m added MS SQL server to the list of RDBMs that implement it
Line 1:
In [[Database|databases]], '''snapshot isolation''' is a guarantee that all reads made in a [[transaction]] will see a consistent snapshot of the database, and the transaction itself will successfully commit only if no updates it has made conflict with any concurrent updates made since that snapshot.
 
Snapshot isolation was first introduced in 1995 {{an|snapshotisolation}} as part of a critique of the [[ANSI]] [[SQL]]-92 standard's definition of [[Isolation|isolation]] levels, as it exhibits none of the "anomalies" that the SQL standard prohibited, yet is not [[Serializability|serializable]] (the anomaly-free isolation level defined by ANSI). It has since been adopted by several major [[Database_management_system|DBM systems]], such as [[Oracle_database|Oracle]], [[PostgreSQL]] and [[PostgreSQLMicrosoft SQL Server]].
 
The main reason for its adoption is that it allows better performance than serializability, yet still avoids the kind of concurrency anomalies that cannot easily be worked around.