
백엔드
ParallelStream을 활용한 병렬 처리로 배치 성능 개선하기
두줄요약
대용량 데이터를 레디스에 적재하는 배치에서 parallelStream과 파이프라인을 적용해 성능을 개선했습니다. 실행 시간은 6~7분에서 30초 수준으로 줄었습니다.
문제 상황
- 대용량 테이블 데이터를 레디스에 적재하는 배치에서 처리 시간이 길었던 상황
- reader, processor, writer 구조의 기본 배치였고 병렬화 여지가 있는 구간 탐색 필요
해결 방법
parallelStream으로 항목별 Map 구성과 Redis 삽입 처리 병렬화ForkJoinPool을 별도로 생성해 병렬 실행 스레드 수 제어- Redis는
executePipelined로 묶어 네트워크 왕복 감소
성능/운영 포인트
- 병렬 처리와 파이프라인 적용 후 실행 시간이 6~7분에서 30초 수준으로 단축
parallelStream의 공통 풀 사용, 작업 특성, 스레드 수 제한 영향 고려 필요- 배치 병렬화와 Redis 파이프라인 조합의 효과 확인
