DBAtlas · 데이터베이스 운영 아틀라스

112: WriteConflict (오류 코드 112)

MongoDB

의미

두 개의 동시 작업이 같은 문서를 수정하려 할 때 발생하는 쓰기 충돌이다. 낙관적 동시성 제어로 인해 WiredTiger가 작업 중 하나를 롤백한다.

원인

같은 문서에 대한 높은 동시 쓰기, 장시간 트랜잭션 중 충돌하는 갱신, hot 문서에 대한 심한 경합.

해결 방법

작업을 재시도한다. WriteConflict는 대개 일시적이며 재시도로 해결된다(TransientTransactionError 레이블이 붙는다). 트랜잭션을 짧게 유지하고 다루는 문서 수를 줄인다. 같은 문서에 대한 경합을 줄이도록 데이터 모델을 검토한다. 애플리케이션에서 exponential backoff로 재시도를 구현한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목