-1
사이의 요소를 교환
은의 객체를 보자MongoDB를 C# 문서
Document1.Value -= X;
Document2.Value += X;
내가 한 번에 두 개의 문서를 선택할 수 있기 때문에 , 나는 두 개의 트랜잭션 (Document1에서 X를 가져와 X를 Document2에 넣는다)로 만들어야한다.
전송 중 위험 (충돌, 전원 차단, 오류 등)을 최소화하는 가장 좋은 전략은 무엇입니까?
나는이 문서와 비슷한 위치에 '보류'시스템을 가지고 있습니다. Document1의 특정 부분을 Document1의 필드에 넣은 다음 Document2를 업데이트하고 어떻게 진행되었는지에 따라 Document1의 보류를 해제하거나 확인합니다. 하지만 실제로 이상적이 아닙니다. – Thomas
어떤 솔루션을 사용해도 시스템 내에서 복구 가능한 상태를 얻으려고합니다. 전에 슬립 라우팅이나 무용담으로 대기열을 사용했습니다. 귀하의 솔루션이 이상적이지 않은 이유는 무엇입니까? –
즉, 스캔을 수행하고 미완성 상태 인 트랜잭션을 찾을 수있는 도구를 사용해야한다는 것을 의미합니다. 재부팅이 필요한 경우 등에 대비하여 사용할 수 있습니다. 그렇지만 완벽한 솔루션이 없습니다. – Thomas