Pavel Voronin
Pavel Voronin

Reputation: 13995

Why is snapshot isolation lavel greater than serializable?

Here what decompiler shows:

public enum IsolationLevel
{
  Unspecified = -1,
  Chaos = 16,
  ReadUncommitted = 256,
  ReadCommitted = 4096,
  RepeatableRead = 65536,
  Serializable = 1048576,
  Snapshot = 16777216,
}

But Serializable locks data thus providing more guarantees for concurrency correctness than Snapshot does. So what is the reason for value of Snapshot is greater?

Upvotes: 1

Views: 109

Answers (1)

Marc Gravell
Marc Gravell

Reputation: 1063403

Numerically greater has no particular bearing here on "level of isolation". Each item simply represents a different type of isolation. For what that means you must refer to the documentation. These are actually just bit-wise flags at 4-bit spacings. No particular meaning is intended by the values used, other than internal implementation details.

Upvotes: 2

Related Questions