목록 보기
대용량 데이터 등록
백엔드

대용량 데이터 등록

넥스트리
넥스트리
2023년 7월 13일

두줄요약

대용량 메타데이터 등록 시간을 줄이기 위해 saveAll, 배치 인서트, 비동기 병렬 처리를 단계적으로 적용했습니다. 그 결과 등록 시간을 2분 내외로 단축했습니다.

문제 상황

  • monolithic + SQL mapping 구조에서 XML SQL을 파싱해 메타데이터로 저장할 필요
  • 프로젝트당 5만 건 이상, 클라우드 등록 10분 소요, 프로젝트 수 증가 시 시간 예측 어려움
  • 기존 save 기반 중첩 등록으로 커넥션, 인덱싱, 커밋 비용 증가

해결 방법

  • saveAll 적용으로 여러 save 호출을 하나의 트랜잭션으로 묶어 등록 비용 절감
  • 연관 ID를 미리 발행하는 채번 방식과 Cdo의 genId 도입으로 선등록 구조 전환
  • Persistable와 creation 플래그로 isNew 검사 생략, 배치 인서트와 배치 사이즈 설정으로 추가 개선
  • @Async와 CompletableFuture, ExecutorService를 활용한 병렬 배치 등록으로 최종 속도 개선

댓글 0

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

댓글을 불러오는 중...