데이터베이스
[DB] Recoverable
KyooDong
2021. 4. 24. 16:35
728x90
Recoverable schedules
트랜잭션 중 하나가 failure 발생 시 회복 가능한가?
-> 값을 write 하는 트랜잭션은 반드시 값을 Read하는 트랜잭션보다 먼저 commit 되어야 함
위 조건을 만족한다면 해당 스케쥴은 recoverable 하다 라고 표현함
Cascading rollback
undo 작업 : 트랜잭션이 시작되기 전 상태로 데이터 아이템을 돌려놓음 : 시스템 부하가 큼
모든 트랜잭션이 commit 되지 않은 상태임
T10 으로 인해 T11이, T11로 인해 T12까지 rollback 되는 현상 : Cascading rollback(연쇄 롤백)
Cascadeless schedule (ACA, Avoid Cascading, Aborts)
write 이후에 read만 하면 되는 것이므로 write 직후에 무조건 commit 을 함 -> commit 된 값만을 읽겠다.
모든 cascadeless schedule 은 recoverable 함
ST = ACA 보다 더 엄격한(Strict) 스케쥴링
write 연산 A 이후에 read 또는 write 연산 B가 수행된다면 A와 B 사이에 반드시 commit or abort instruction이 있어야함
ACA 이지만 ST가 아닌 경우