4장. Chunk 트랜잭션 경계
Reader가 항목을 읽고 Processor가 변환하고 Writer가 chunk를 한 트랜잭션에 기록한다. 6의 Java 구성은 다음 형태다.
new StepBuilder("settlementStep", repository)
.<OrderRow, Settlement>chunk(100)
.transactionManager(transactionManager)
.reader(reader).processor(processor).writer(writer)
.build();
chunk가 너무 크면 rollback 비용과 lock 시간이 늘고, 너무 작으면 commit 비용이 늘어난다. 처리량만 보고 정하지 말고 DB 부하와 복구 단위를 함께 측정한다.