네 개의 트랜잭션 T1, T2, T3, T4가 있다. 각 트랜잭션에서 수행하는 연산은 다음의 그림 (a)와 같고, 네 개의 트랜잭션이 동시에 실행되면서 그림 (b)와 같은 로그 파일(log file)을 생성하였다. 또한 그림 (b)는 지금까지 네 개의 트랜잭션 T1, T2, T3, T4를 수행하면서 시스템 파손(system crash)이 발생될 때까지 생성된 로그 파일 상태이며, 로그 파일의 마지막 로그 레코드를 생성하고 수행하는 중에 시스템 파손이 발생하였다. 이 경우 지연 갱신 기법을 이용하는 시스템에서 회복 조치를 시도할 때, 각 트랜잭션에 취해야 할 회복 조치로 옳지 않은 것은?
(단, 트랜잭션 정의 시 read(), write()는 각각 어떤 항목의 읽기와 쓰기 연산을 의미한다)
(a)
T1 | T2 | T3 | T4 |
read(A);
read(D);
write(D); | read(B);
write(B);
read(D);
write(D); | read(A);
write(A);
read(C);
write(C); | read(B);
write(B);
read(A);
write(A); |
(b)
[start_transaction, T1][write, T1, D, 20][commit, T1][checkpoint][start_transaction, T4][write, T4, B, 15][write, T4, A, 20][commit, T4][start_transaction, T2][write, T2, B, 12][start_transaction, T3][write, T3, A, 30][write, T2, D, 25]------------------- ◀ 시스템 파손 발생
- ①트랜잭션 T1은 재실행(redo)되어야 한다.
- ②트랜잭션 T2는 완료시점에 도달하지 않았으므로 무시된다.
- ③트랜잭션 T3는 완료시점에 도달하지 않았으므로 무시된다.
- ④트랜잭션 T4는 재실행되어야 한다.
선지를 골라 바로 채점해 보세요.
정답 ①
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)