Engineering Case Studies

CASE 1. InnoDB Gap Lock Elimination (TPS +200%)
시간 기반 데이터 대량 적재 트랜잭션 도중 SELECT 조건 조회 쿼리가 경합을 일으키며 잦은 데드락(Deadlock) 병목이 발생하는 문제를 분석했습니다.
- 원인 분석: REPEATABLE READ 격리 수준으로 인한 불필요한 범위 잠금(Gap Lock) 유발.
- 조치 사항: 트랜잭션 격리 수준을 READ COMMITTED로 조정하여 갭 락을 완전히 거세하였으며, 쿼리가 타겟 PK 범위만 참조하도록 인덱스를 튜닝했습니다.
- 최종 성과: 스파이크 상황 시 데드락 발생률 0% 달성 및 트래픽 소화율 200% 향상 (최대 200 TPS 안정 지원).
CASE 2. Custom In-Memory Queue Pipeline
지속적으로 적재되는 IoT 선박 텔레메트리 데이터의 후처리를 위해 Kafka 등 무거운 브로커를 도입할 시의 인프라 오버헤드와 팀 내부의 학습 비용을 저울질했습니다.
- 아키텍처 설계: 외부 종속성 없이 Spring 프레임워크 내부에 100ms 주기 스케줄러 기반의 인메모리 배치 버퍼 파이프라인을 구축했습니다.
- 조치 사항: 큐 임계량 초과 시 Bulk Insert 방식으로 DB 적재 빈도를 압축하고 백그라운드 스레드에서 데이터 유실 없이 순차 파싱 처리하도록 최적화했습니다.
- 최종 성과: 유료 클라우드 인프라 유지 비용 0원 유지 및 트래픽 스파이크 시에도 메모리 누수나 데이터 누락 없는 무중단 수집을 완수했습니다.