Transaction

정태규·2023년 2월 7일
0

Transaction 이란?

  • 더 이상 나눌 수 없는 작업의 단위
  • 계좌 이체의 경우, 출금과 입금이 하나의 Tx로 묶여야 됨.
  • '모' 아니면 '도' 출금과 입금이 모두 성공하지 않으면 실패

Transaction의 속성 - ACID

  1. 원자성(Atomicity) - 나눌 수 없는 하나의 작업으로 다뤄져야 한다.
  2. 일관성(Consistency) - Tx 수행 전과 후가 일관된 상태를 유지해야 한다.
  3. 고립성(Isolation) - 각 Tx는 독립적으로 수행되어야 한다.
  4. 영속성(Durability) - 성공한 Tx의 결과는 유지되어야 한다.

commit & rollback

commit - 작업 내용을 영구적으로 DB에 저장
rollback - 최근 변경사항을 취소(마지막 커밋으로 복귀)

commit을 하고 나면 rollback했을때 commit 시점으로만 되돌아간다.
commit전 시점으로는 되돌아 갈 수 없다.

Tx의 isolation level

READ UNCOMMITED(dirty read) - 커밋되지 않은 데이터도 읽기 가능
READ COMMITED(Phantom read) - 커밋된 데이터만 읽기 가능
REPEATABLE READ(default) - Tx이 시작된 이후 변경은 무시됨
SERIALIZABLE - 한번에 하나의 Tx만 독립적으로 수행

0개의 댓글