카카오뱅크 알림, 귀신처럼 사라지는 문제 해결!
by DD
10개월 전
조회수 6
ShardingSphere 라이브러리에서 발생한 동시성 문제로 알림 메시지 누락 현상 발생
SQL문 대체 및 임계영역 진입 순서 보장을 통해 경쟁 상태 해결
핵심 라이브러리 관리 프로세스 도입으로 시스템 안정성 확보
ShardingSphere와 동시성 문제의 만남
ShardingSphere는 데이터베이스 샤딩을 위한 강력한 도구이지만, 멀티스레딩 환경에서 경쟁 상태를 유발할 수 있다. 구체적으로, SQL 파싱 과정에서 싱글톤 객체의 부적절한 사용으로 인해 예상치 못한 결과가 발생했다. 따라서, 데이터 무결성을 위해 세심한 주의가 필요하다.
SQL문 대체와 임계영역 관리
문제 해결을 위해 SQL문 대체를 통해 경쟁 상태를 제거하고, ParsingRuleRegistry 초기화를 보장했다. 따라서, SQL 파싱 과정에서 발생하는 동시성 문제를 효과적으로 해결했다. 반면, 라이브러리 코드 직접 수정은 안정성을 저해할 수 있으므로, 우회적인 방법을 선택했다.
핵심 라이브러리 관리의 중요성
핵심 라이브러리의 메이저 버전 업데이트는 부담스럽지만, 지속적인 모니터링은 필수적이다. Github RSS 구독을 통해 릴리즈 정보를 빠르게 파악하고, 팀 내 담당자 지정을 통해 변경 사항을 검토한다. 결과적으로, 시스템 안정성을 유지하고, 잠재적인 문제 발생 가능성을 최소화한다.