Serializability Isolation トランザクション分離レベル トランザクション

  • スナップショット分離とも

  • それぞれのトランザクションが、データベースの一貫性のあるスナップショットから読み取りを行う

    • ここでの一貫性は、因果関係において一貫している、という意味
      • Nonrepeatable readとかは、因果律に違反が生じている状態での読み取りに当たる
  • トランザクションが読み取る値は、すべてそのトランザクションの開始時点でコミット済みだったものだけということを保証

  • Optimistic Concurrency Control

  • 「リーダーはライターをブロックせず、ライターはリーダーをブロックせず」

    • 並行するトランザクション間のread-writeは、お互いにブロックしない
    • Snapshot取ってるので、OK
  • Multiversion Concurrency Controllが使われる

  • Snapshot Isolationでも、Write skewは起きる