백엔드
트랜잭션리스, 완벽한 CDC(Change Data Capture) 시스템 구축법
두줄요약
트랜잭션 롤백에 의존하던 CDC의 성능 저하와 DBMS 종속성 문제를 다뤘습니다. QSI 기반 쿼리 시뮬레이션으로 변경 전후 데이터를 생성해 부하를 줄인 방식을 소개했습니다.
문제 상황
- 트랜잭션 기반 CDC의 롤백 부하와 중복 조회로 인한 성능 저하
- 트리거, binlog, 변경 시각 기록 방식의 DBMS 종속성
- NoSQL 환경에서의 트랜잭션 기반 CDC 구현 한계
원인 분석
- 변경 전후 데이터를 얻기 위해 트랜잭션 롤백에 의존하는 구조
- CDC 동작을 위해 DBMS 내부 설정이나 상태 변경이 필요한 방식
- 대용량 테이블일수록 조회·업데이트·롤백 비용 증가
해결 방법
- DBMS 직접 조회 대신 QSI로 쿼리 결과를 시뮬레이션해 변경 후 데이터 생성
- 사용자 쿼리 분석으로 대상 테이블과 변경 전 데이터를 확보
- 시뮬레이션 결과를 CDC 데이터로 변환해 내부 저장
성능/운영 포인트
- 트랜잭션 롤백과 추가 테이블 업데이트 제거로 DBMS 부하 완화
- DBMS 수정 없이 설치 후 바로 적용 가능한 구조
- 새로운 DBMS 지원 시 추가 설정 부담 감소
