홈 › 실무 배치 › 04 / 6

트랜잭션: 커밋과 롤백 시뮬레이션

섹션 7진행 0 / 6

7. 정리

  • 배치 트랜잭션의 원자성 단위는 청크다. 전체 하나는 undo·락·재시작 비용이, 건별은 fsync 비용이 감당되지 않는다.
  • 커밋 포인트 = 재시작 지점. 마지막 커밋 청크의 위치(줄 번호·키)를 체크포인트에 기록하되, 데이터 커밋 직후에, 가능하면 같은 트랜잭션에.
  • 체크포인트는 성능, 멱등성은 정확성. 완료 마킹·upsert·절대값 갱신·멱등 키로 두 번 실행해도 결과가 같게 만든다. 마킹은 데이터와 같은 트랜잭션에서.
  • 청크 중간 실패 시 그 청크만 롤백되고 이전 청크는 유지된다. 로그에 "청크 N 커밋 / 청크 M 롤백"이 명확히 보여야 한다.
  • 파일·외부 API 는 rollback 이 없다. 임시 파일 + 원자적 이동, truncate 재시작, 보상 트랜잭션, 멱등 키로 대응하고, 되돌릴 수 없는 작업은 마지막에 한다.

다음 레슨 05. 스킵과 재시도 에서는 청크 전체를 롤백하는 대신, 실패 유형에 따라 일시적 오류는 재시도하고 영구 오류는 그 건만 건너뛰어 나머지를 커밋하는 흐름을 구현하고, 스킵 한도·데드 레터·최종 리포트까지 완성합니다.