2016-08-29 2 views
0

지도를 임시 컬렉션으로 축소하는 2 개의 컬렉션이 있으며 컬렉션 A 및 컬렉션 B, 컬렉션 _queue라고 부르 자. 지도를 축소하는 동안 사용자가 컬렉션 A에 읽고 쓰려고합니다. 모든 종류의 잠금을 받고 대기열에 쓰고 읽습니다. 더러운 읽기 또는 쓰기가 있으면 상관하지 않습니다. 컬렉션 B를 읽고 쓰고 비 원자로 만드는 방법입니까? 미리 감사드립니다. Mongo에서 데이터베이스 잠금 문제 해결

+0

업데이트 3.2 주소이 잠금을 몽고하기 :

는 WiredTiger의 여기 문서를 참조하십시오. –

답변

0

MongoDB는 잠금 정책과 관련하여 쿼리에서 아무 것도 지정할 수 없습니다. 잠금을 획득 할 수있는 시간이 정말 문제가되는 경우 먼저

, 당신은 확인해야합니다 (이 위해 MongoDB의 내부 프로파일 러를 사용할 수 있습니다 https://docs.mongodb.com/manual/administration/analyzing-mongodb-performance/#database-profiling)

을 그런 다음 (MongoDB를 최신 버전에없는 경우 또는 스토리지 엔진을 변경하지 않고 최신으로 업그레이드 한 경우) 3. WearTigger로 전환하여 컬렉션 별 잠금에서 이동 (3.x 시리즈의 경우 MongoDB는 데이터베이스 별 잠금) 3. 문서 별 잠금 . 따라서 WiredTiger를 사용 중이며 잠금 경합으로 인해 상당한 지연이 발생하더라도 나는 그것에 대해 아무 것도 할 수 있다고 생각하지 않습니다. https://docs.mongodb.com/manual/core/wiredtiger/

+0

고마워, 몽고를 3.0 이상으로 업그레이드하려고합니다. –

+0

Mongo 3.2로 업그레이드하고 WiredTiger 엔진을 사용하면 잠금 문제가 해결됩니다. – loicmathieu