DeadLock & Transaction Isolation level

세미·2022년 12월 11일
0

데이터베이스

목록 보기
9/9

데드락 해결

  • DBMS는 데드락이 걸린 트렌잭션 중 하나를 강제로 중지 시킨디.

  • 나머지 트랜잭션은 정상적으로 실행된다. 이때 중지시키는 트랜잭션에서 변경한 데이터는 원래상태로 돌려 놓는다. (Rollback)

  • Wait-for graph(대기 그래프)로 발생여부를 판단할 수 있음.

    • cycle이 존재 = 데드락 발생.
  • 노드: 트랜잭션, 화살표: 락 요청으로 표현. 락이 걸려있는 트랜잭션 쪽으로 요청?

  • 읽기-쓰기 conflict
    • 락으로 해결하면 두 트랜잭션의 동시 진행 정도를 과도하게 막는다.
    • 동시성을 높이기 위해 좀더 완화된 방법을 사용.

읽기만 하는 트랜잭션이 쓰기 트랜잭션에서 작업한 중간 데이트를 읽기 때문에 발생하는 문제

  1. 오손 읽기 (dirty read)
  2. 반복불가능 읽기
  3. 유령 데이터 읽기

0개의 댓글