데이터베이스

[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가 아닌 경우