文書の過去の版を表示しています。
Isolation and Lock
Transaction의 Isolation Level(隔離レベル)과 Lock에 대해서 살펴본다.
Isolation
Isolation level에 대해서 얘기할 때 다음의 3가지를 고려해야 한다. 기차표 좌석의 예매, 조회 등 동시에 Transaction이 발생할 경우를 예를 들어 설명한다.
| 구분 | 특징 |
|---|---|
| dirty reads | ① Time 10:00:00 : tranaction1이 cabin99좌석을 예매 ② Time 10:00:02 : transaction2가 좌석수를 조회. 예매 가능좌석이 2자리 ③ Time 10:00:03 : transaction1이 좌석예매를 취소 ④ Time 10:00:04 : transaction2가 종료후에는 이미 잘못된 데이타를 갖고있게 됨 |
| repeatable reads | ① Time 10:00:00 : transaction1이 명시적으로 transaction.begin() ② Time 10:00:01 : transactin1이 좌석수 조회. 결과 잔여석 2 ③ Time 10:00:03 : transaction2가 좌석수를 2에서 3으로 변경 ④ Time 10:00:04 : transactin1이 좌석수 조회. 결과 잔여석 2 |