Batch Transaction

배치는 전체가 아니라 chunk 단위로 커밋해 실패 범위를 제한한다

chunk 크기는 메모리, 로그량, 락 시간, 재시작 비용의 타협이다. 이미 커밋된 chunk는 자동 rollback되지 않는다.

read 1000
process
write
commit chunk
chunk #1 committed

1,000건이 이미 확정되어 재시작 시 건너뛴다.

chunk #2 rollback

실패한 chunk만 되돌리고 retry, skip, stop 정책을 적용한다.

restart point

처리 이력과 멱등 키로 중복 쓰기를 막는다.

크게 잡으면

락과 로그가 커지고 실패 후 재작업량이 늘어난다.

작게 잡으면

커밋 횟수가 늘어 처리량이 떨어질 수 있다.

운영 기준

skip/retry 한도와 보정 작업을 함께 설계한다.