작성
·
14
0
4-5 수강중
트랜잭션 내 isolation level에 따른 데이터 consistency 보장을 위해, WAL(Write-Ahead Logging)시 내부적으로 사용하는 UNDO LOG와 REDO LOG를 활용한다.
그러면 트랜잭션 내에서 rollback을 수행하면, UNDO LOG를 기반으로 디스크 내용을 트랜잭션 수행 이전 상태로 되돌린다고 이해했습니다. 맞게 이해한걸까요?
만약 이게 맞다면,
WAL로 인해 트랜잭션 내 작업들은 커밋되기 전에 디스크에 반영되지 않으므로, rollback된다면 UNDO LOG를 활용하지 않더라도 디스크 내 데이터가 이전 내용임이 보장되지 않나요?
롤백 시 UNDO LOG가 어떤 부분에서 활용되어야 하는지 이해하지 못했습니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. brianyhs님.
UNDO LOG와 트랜잭션 롤백에 대해 질문을 주셨군요. 먼저, 트랜잭션의 롤백 과정에서 UNDO LOG가 어떤 역할을 하는지를 명확히 설명드리겠습니다.
트랜잭션과 WAL:
UNDO LOG의 역할:
롤백 시 UNDO LOG의 필요성:
ROLLBACK이 되면 트랜잭션 전에 데이터 상태로 복원하는 것이 목표인데, 데이터베이스 내에서 이미 변경된 사항은 UNDO LOG를 통해 다시 원상태로 복구되는 것이며, 그 반면 실재로 디스크 외부에 완전히 커밋되지 않은 상태의 데이터들은 REDO LOG를 통해 적용이 무효화됩니다.
유사한 질문이 UNDO LOG와 트랜잭션 롤백에 관한 설명에 답변되어 있습니다.
저는 질문자님의 이해를 돕고자, 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드립니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.