1. Commit 실행순서

1) Transaction Table에 해당 Transaction에 대한 Commit 적용
2) Commit 메세지를 Redo Log Buffer에 기록
3) Redo Log Buffer의 내용을 Disk에 기록
4) LOCK 정보 해제(TX 락, Lock BYTE등...)

2. Commit Operation

1) Redo Buffer의 내용이 모두 Redo Log에 쓰여진 후에 Commit이 완료
  • User가 Commit명령을 수행하게 되면 Transaction Table에 해당 Transaction에 대한 Commit을 적용하고 나서 Commit 메시지를 Redo Buffer에 기록함
  • 그 후에 Redo Buffer의 내용을 Disk에 기록하고 나서야 모든 관련된 Lock의 정보를 해제 하게 되는데, 이때 주의할 것은 Redo Buffer의 모든 내용이 Redo Log File에 기록된다는 점
2) 사례
  • 만약 Session 1과 Session 2가 각기 다른 대상에 대해 DML을 수행한다고 가정할 경우, Session 1이 Row 1의 값을 2로 변경하는 작업을 하게 되면 Redo Buffer에는 Before 1, After 2라고 기록이 됨
  • 그리고 Session 2가 Row 5의 값을 6으로 변경하는 작업을 수행하면 Redo Buffer에는 Session 1의 작업 내용 바로 뒤에 Before 5, After 6이라고 기록이 됨
  • 그 이후 Session 1이 Commit을 수행하면 Commit 메시지가 Redo Buffer에 기록되고 Before 1, After 2라는 기록하는 것뿐만 아니라 Before 5, After 6, Commit이라는 기록 모두가 Redo Log File에 기록이 되고 나서 Lock을 해제하고 Commit이 완료됨

3. Commit Mechanism

  • 그림 보고 이해가 안되어 차후 올릴 예정

문서에 대하여