본문으로 이동

스냅샷 격리

위키백과, 우리 모두의 백과사전.

스냅샷 격리(Snapshot isolation)는 데이터베이스트랜잭션 처리(트랜잭션 관리)에서 트랜잭션에서 수행된 모든 읽기가 데이터베이스의 일관된 스냅샷을 볼 수 있도록 보장한다(실제로는 시작 당시 존재했던 마지막 커밋된 값을 읽습니다). 트랜잭션 자체는 해당 스냅샷 이후 발생한 동시 업데이트와 충돌하는 업데이트가 없는 경우에만 성공적으로 커밋된다.

스냅샷 격리는 인터베이스(InterBase), 파이어버드, 오라클 데이터베이스, MySQL[1], PostgreSQL, SQL 애니웨어, MongoDB[2]마이크로소프트 SQL 서버(2005 이상)와 같은 여러 주요 데이터베이스 관리 시스템에서 채택되었다. 이를 채택한 주된 이유는 직렬화 가능성보다 더 나은 성능을 허용하면서도 직렬화 가능성이 방지하는 대부분의 동시성 이상 현상을 방지하기 때문이다(전부는 아님). 실제로 스냅샷 격리는 각 데이터 항목(버전)의 세대 값이 유지되는 MVCC(다중 버전 동시성 제어) 내에서 구현된다. MVCC는 객체가 생성될 때마다 데이터베이스 객체의 새 버전을 생성하여 동시성과 성능을 높이는 일반적인 방법이다. 기록되고 (각 개체의) 여러 마지막 관련 버전에 대한 트랜잭션 읽기 작업을 허용한다.[3] 스냅샷 격리는 ANSI SQL-92 표준의 격리 수준 정의를 비판하는 데 사용되었다. 이는 SQL 표준에서 금지하는 "변칙"을 전혀 나타내지 않지만 직렬화할 수는 없기 때문이다(ANSI에서 정의한 변칙 없는 격리 수준).

직렬화 가능성과의 차이에도 불구하고 오라클에서는 스냅샷 격리를 직렬화 가능(serializable)이라고도 한다.

각주

[편집]
  1. “MySQL :: MySQL 8.0 Reference Manual :: 15.5.2.3 Consistent Nonlocking Reads”. 《dev.mysql.com》 (영어). 2018년 8월 27일에 확인함. 
  2. Multiversion concurrency control in MongoDB, MongoDB CTO: How our new WiredTiger storage engine will earn its stripes
  3. Berenson, Hal; Bernstein, Phil; Gray, Jim; Melton, Jim; O'Neil, Elizabeth; O'Neil, Patrick (1995), 〈A Critique of ANSI SQL Isolation Levels〉, 《Proceedings of the 1995 ACM SIGMOD international Conference on Management of Data》, 1–10쪽, arXiv:cs/0701157, doi:10.1145/223784.223785, ISBN 978-0897917315, S2CID 2316540 

참고 문헌

[편집]
  • Bettina Kemme, Gustavo Alonso, A new approach to developing and implementing eager database replication protocols, ACM Transactions on Database Systems (TODS), v.25 n.3, p. 333-379, Sept. 2000.
  • Gerhard Weikum, Gottfried Vossen, Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery, Morgan Kaufmann, 2002, ISBN 1-55860-508-8
  • Yi Lin, Bettina Kemme, Marta Patiño-Martínez, Ricardo Jiménez-Peris. Middleware based data replication providing snapshot isolation. Proceedings of the 2005 ACM SIGMOD international Conf., 2005.
  • Marta Patiño-Martinez, Ricardo Jiménez-Peris, Bettina Kemme, Gustavo Alonso. MIDDLE-R: Consistent database replication at the middleware level. ACM Transactions on Computer Systems (TOCS). Volume 23 Issue 4. Pages 375-423.
  • Khuzaima Daudjee, Kenneth Salem, Lazy Database Replication with Snapshot Isolation, VLDB 2006: pages 715-726