컬
컬리
June 13, 20241회
데이터가 있었는데요, 아니 없어요

간단 소개
컬리 기술 블로그: autocommit 설정과 트랜잭션 격리 수준으로 인한 데이터 불일치 문제 해결 과정 및 성능 개선 효과 분석.
AI Summary
문제 상황: Master DB에 INSERT된 데이터가 Slave DB에서는 조회되지만, Master DB의 다른 세션에서는 조회되지 않는 간헐적 데이터 불일치 문제 발생
-
원인 분석
- Replica Lag 가능성 배제: Master DB에서 직접 조회 시에도 문제 발생 확인
- COMMIT 누락:
autocommit=false설정으로 인해 명시적 COMMIT 필요, 트랜잭션 격리 수준REPEATABLE READ에서 Snapshot이 갱신되지 않아 발생 - open-in-view:
true설정 시 API 종료 시점까지 Connection 유지, 하위 메서드의@Transactional(readOnly = true)설정으로 인해 ROLLBACK이 실행되지 않아 Snapshot 갱신 실패
-
해결 및 개선
- 격리 수준 변경 및 잠금 읽기 방식의 단점 존재
@Transactional(readOnly = true)추가: 메서드 종료 시 COMMIT을 통해 Snapshot 갱신hikari.auto-commit=false설정으로 트랜잭션 성능 개선 (API 응답 시간 40% 향상), 단, 명시적 COMMIT 관리 필요
Next Feeds
![[신뢰성 공학 Ep.3] 신뢰성 데이터분석(수명분석)은 어떻게 하는거야?](https://developers.hyundaimotorgroup.com/og-image.png)
[신뢰성 공학 Ep.3] 신뢰성 데이터분석(수명분석)은 어떻게 하는거야?
신뢰성 데이터 분석 방법론(모수/비모수), 핵심 통계 용어, 와이블 분포 및 실제 수명 분석 과정을 소개합니다.
신뢰성수명분석와이블 분포고장률데이터 분석
2024. 6. 12.
현대자동차
상품 설명 영역 개선기 Part.2
올리브영 상품 상세 페이지 HTML 기술서 개선을 통해 성능 향상, 유지보수 효율 증대, 이미지 품질 개선을 이루었습니다.
HTML코루틴상세기술서이미지 처리성능 개선
2024. 6. 12.
올리브영

헤이딜러 QA팀은 어떻게 일하나요?
헤이딜러 QA팀은 짧은 배포 주기 속에서 탐색적 테스트와 자동화 테스트를 활용하여 효율적인 QA 프로세스를 구축하고 지속적인 개선을 추구합니다.
QA탐색적 테스트자동화 테스트A/B 테스트KPT 회고
2024. 6. 12.
PRND

Slow Query 최적화 하기
롯데ON의 Slow Query 최적화 사례 분석: 상품권 점유 인증 조회 Query 개선을 통해 주문서 진입 속도 향상 및 자원 효율성 증대.
Slow Query최적화인덱스SubQueryMySQL
2024. 6. 12.
롯데ON

FMS(Fleet Management System) 주행이벤트 파이프라인 개선기
쏘카 FMS 팀의 주행이벤트 파이프라인 개선 경험 공유: 데이터 순서 보장, 실시간 처리, 효율적인 리소스 관리 및 확장성 확보.
FMS파이프라인KafkaNoSQL데이터 정합성
2024. 6. 11.
쏘카
R2DBC Connection Pool 실종 사건
R2DBC 커넥션 풀 초기화 문제 해결 과정을 통해 리액티브 프로그래밍의 이해와 개발 환경 검증의 중요성을 강조합니다.
R2DBC커넥션 풀reactor-poolwarmupIntelliJ
2024. 6. 11.
카카오페이