{
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-12",
  "slug": "snapshot-isolation",
  "term": "Snapshot isolation",
  "aliases": [
    "SI"
  ],
  "definition": "Snapshot isolation gives a transaction a stable committed snapshot plus its own writes and prevents concurrent transactions that write the same data from both committing.",
  "note": "It can permit write skew across different rows. PostgreSQL 18 uses this model for Repeatable Read, not its stronger Serializable level. A transaction snapshot is an isolation mechanism, not a storage backup.",
  "related": [
    "serializability",
    "write-skew"
  ],
  "citations": [
    {
      "id": "berenson-isolation",
      "title": "Hal Berenson et al. A Critique of ANSI SQL Isolation Levels. ACM SIGMOD 1995; MSR-TR-95-51, section 4.2.",
      "url": "https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr-95-51.pdf",
      "accessed": "2026-10-12"
    },
    {
      "id": "postgres-isolation",
      "title": "PostgreSQL 18 documentation, section 13.2: Transaction Isolation.",
      "url": "https://www.postgresql.org/docs/18/transaction-iso.html",
      "accessed": "2026-10-12"
    },
    {
      "id": "hesela-consistency",
      "title": "Storage consistency: ordering is not a transaction or a durability promise",
      "url": "https://hesela.com/analyses/storage-consistency-ordering/",
      "accessed": "2026-10-12"
    }
  ]
}
