文書の過去の版を表示しています。


Isolation and Lock

Transaction의 Isolation Level(隔離レベル)과 Lock에 대해서 살펴본다.

Isolation

Isolation level에 대해서 얘기할 때 다음의 3가지를 고려해야 한다. 기차표 좌석의 예매, 조회 등 동시에 Transaction이 발생할 경우를 예를 들어 설명한다.

구분 특징 설명
① Time 10:00:00 : tranaction1이 cabin99좌석을 예매
② Time 10:00:02 : transaction2가 좌석수를 조회. 예매 가능좌석이 2자리
③ Time 10:00:03 : transaction1이 좌석예매를 취소
④ Time 10:00:04 : transaction2가 종료후에는 이미 잘못된 데이타를 갖고있게 됨
repeatable reads
(read consistency)
① Time 10:00:00 : transaction1이 명시적으로 transaction.begin()
② Time 10:00:01 : transactin1이 좌석수 조회. 결과 잔여석 2
③ Time 10:00:02 : transaction2가 좌석수를 2에서 으로 변경
④ Time 10:00:03 : transactin1이 좌석수 조회. 결과 잔여석 2
같은 transaction내에서 읽기 일관성이 유지되는 것을 말한다
phantom reads① Time 10:00:00 : transaction1이 명시적으로 transaction.begin()
② Time 10:00:01 : transactin1이 좌석수 조회. 결과 잔여석 2. cabin99 좌석예매가능
③ Time 10:00:02 : transaction2가 cabin99좌석 예매. Reservation table에 추가
④ Time 10:00:03 : transactin1이 좌석수 조회. 결과 잔여석 2. 하지만 cabin99 예매 불가
transaction1의 첫번째 조회에는 보이지 않았지만, 두번째 조회에는 보였으므로 Reservation table에 추가된 cabin99예매 데이타는 phantom data

QR Code
QR Code study:database:lock (generated for current page)