signal-batch/docs/cache-benchmark-summary.md
htlee 2e9361ee58 refactor: SNP API 전환 및 레거시 코드 전면 정리
- CollectDB 다중 신호 수집 → S&P Global AIS API 단일 수집으로 전환
- sig_src_cd + target_id 이중 식별자 → mmsi(VARCHAR) 단일 식별자
- t_vessel_latest_position → t_ais_position 테이블 전환
- 레거시 배치/유틸 ~30개 클래스 삭제 (VesselAggregationJobConfig, ShipKindCodeConverter 등)
- AisTargetCacheManager 기반 캐시 이중 구조 (최신위치 + 트랙 버퍼)
- CacheBasedVesselTrackDataReader + CacheBasedTrackJobListener 신규 추가
- VesselStaticStepConfig: 정적정보 CDC 변경 검출 + hourly job 편승
- SignalKindCode enum: vesselType/extraInfo 기반 선종 자동 분류
- WebSocket/STOMP 전체 mmsi 전환 (StompTrackStreamingService ~40곳)
- 모니터링/성능 최적화 코드 mmsi 기반 전환
- DataSource 설정 통합 (snpdb 단일 DB)
- AreaBoundaryCache Polygon→Geometry 캐스트 수정 (MULTIPOLYGON 지원)
- ConcurrentHashMap 적용 (VesselTrackStepConfig 동시성 버그 수정)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 09:59:49 +09:00

3.9 KiB

일일 캐시 성능 개선 요약보고서

항목 내용
측정일 2026-02-07
대상 선박 항적 리플레이 서비스 (WebSocket 스트리밍)
개선 내용 일일(Daily) 집계 데이터 7일분 인메모리 캐시 적용
측정 건수 12건 (CACHE 3, DB 2, HYBRID 5, CACHE+Today 2)

1. 핵심 성능 개선 지표

지표 DB 경로 (개선 전) CACHE 경로 (개선 후) 개선율
응답시간 (만 척 이상) 8.2초 1.4초 5.7배 단축
응답시간 (수백 척) 7.2초 0.6초 12.6배 단축
DB 커넥션 (만 척 이상) 19건 2건 89% 감소
DB 커넥션 (수백 척) 8건 3건 63% 감소
DB 쿼리 시간 1.4 ~ 3.5초 0초 100% 절감
포인트 압축률 SQL 처리 앱 레벨 95 ~ 99% 동등 품질 유지

2. 경로별 응답시간 비교

경로              응답시간
CACHE (순수)     ██                      0.6 ~ 1.4초
HYBRID (소규모)  ██                      1.4초
HYBRID (중규모)  █████                   2.9 ~ 3.7초
CACHE+Today      ████████████            6.1 ~ 9.7초
DB (순수)        ████████████████        7.2 ~ 8.2초
  • CACHE: 캐시 범위 내 과거 데이터만 조회 시, 가장 빠른 응답
  • HYBRID: 캐시 + DB 병합 — 캐시 비율이 높을수록 DB 부담 경감
  • CACHE+Today: 오늘 데이터 포함 시, Hourly/5min 테이블 개별 조회로 커넥션 다수 발생

3. DB 커넥션 풀 부담 변화

Query DataSource 커넥션 풀 180 기준:

경로 쿼리당 커넥션 동시 10쿼리 풀 사용률
CACHE 2 ~ 3 ~30 17% (여유)
HYBRID (소규모) 11 ~ 15 ~150 83%
DB 8 ~ 19 ~190 100%+

캐시 적용으로 전체 쿼리 중 CACHE 경로 비율이 높아지면, DB 커넥션 풀 전체 부담이 크게 감소한다.


4. 간소화 파이프라인 효과

캐시 경로에서 원본 데이터 → 3단계 간소화(Douglas-Peucker + 거리/시간 샘플링 + 줌 레벨 샘플링) 적용:

줌 레벨 원본 포인트 간소화 후 압축률 선박당 평균
8 7.6M 153K 98% 15 포인트
9 1.0M 12K 99% 21 포인트
10 13.5M 172K 99% 16 포인트
12 14.4M 260K 98% 37 포인트
  • 간소화 CPU 시간: 24ms ~ 1,258ms (DB 대기 없이 순수 CPU 연산)
  • 전 줌 레벨에서 95 ~ 99% 데이터 압축 달성

5. 운영 시나리오별 예상 성능

사용 패턴 예상 경로 예상 응답시간 DB 커넥션
과거 1~7일만 조회 CACHE 0.6 ~ 1.4초 2~3건
과거 수일 + 오늘 CACHE+Today 6 ~ 10초 ~56건
7일 이전 과거 포함 HYBRID / DB 1 ~ 9초 (규모 의존) 8~45건

6. 향후 확장 권장안

시나리오 캐시 보존 기간 메모리 효과
현재 7일 6GB 1주 이내 CACHE 경로
2주 확장 14일 12GB 주간 비교 분석 지원
1개월 확장 30일 25GB 월간 항적 분석 지원

캐시 보존 기간 확장 시 HYBRID 경로 비율이 줄고 순수 CACHE 비율 증가 → DB 부담 추가 경감


7. 결론

항목 효과
응답 속도 DB 대비 5.7 ~ 12.6배 단축
DB 부하 커넥션 63 ~ 89% 감소, 쿼리 시간 100% 절감
데이터 품질 줌 레벨별 95 ~ 99% 압축, DB 경로와 동등 품질
동시 사용자 수용 DB 커넥션 경합 해소로 동시 처리 가능 수 증가
확장성 캐시 보존 기간 확장으로 추가 개선 가능