목록 보기
ParallelStream을 활용한 병렬 처리로 배치 성능 개선하기
백엔드

ParallelStream을 활용한 병렬 처리로 배치 성능 개선하기

TechKi Blog
TechKi Blog
2024년 8월 22일

두줄요약

대용량 데이터를 레디스에 적재하는 배치에서 parallelStream과 파이프라인을 적용해 성능을 개선했습니다. 실행 시간은 6~7분에서 30초 수준으로 줄었습니다.

문제 상황

  • 대용량 테이블 데이터를 레디스에 적재하는 배치에서 처리 시간이 길었던 상황
  • reader, processor, writer 구조의 기본 배치였고 병렬화 여지가 있는 구간 탐색 필요

해결 방법

  • parallelStream으로 항목별 Map 구성과 Redis 삽입 처리 병렬화
  • ForkJoinPool을 별도로 생성해 병렬 실행 스레드 수 제어
  • Redis는 executePipelined로 묶어 네트워크 왕복 감소

성능/운영 포인트

  • 병렬 처리와 파이프라인 적용 후 실행 시간이 6~7분에서 30초 수준으로 단축
  • parallelStream의 공통 풀 사용, 작업 특성, 스레드 수 제한 영향 고려 필요
  • 배치 병렬화와 Redis 파이프라인 조합의 효과 확인

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...