Backend/MongoDB
-
WriteConflict 해결 노트Backend/MongoDB 2025. 2. 16. 17:36
원인 발생특정 서비스에서 MongoDB를 사용하고 있고, 테스트중에 WriteConflict가 발견되었다. 원인은 다음과 같다.A 기능에서 k document를 조회 및 업데이트B 기능에서도 k document를 조회 및 업데이트 각 A,B 기능이 독립적으로 또는 순차적으로 흐를것이라고 판단했었는데, 다음과 같은 상황을 고려하지 못했다. Kafka를 통해 타 서비스의 이벤트를 받고 A,B의 기능이 실행되는데, 서버가 재시작 또는 배포로 인해 시작되는 순간 Kafka에 연결되면서 Rebalancing이 된다. 이때 각 Topic의 Partition에 A,B의 기능이 실행되는 Topic A, Topic B가 같이 쌓였다면, Rebalancing이 완료되고, Polling을 해오는 순간 2개가 연달아 서비스에..