[MONGODB] 어떤 수준에 쓰기에 MongoDB를 잠금을합니까? (나 : 그것은 "연결 당"에 의해 무엇을 의미 하는가
MONGODB어떤 수준에 쓰기에 MongoDB를 잠금을합니까? (나 : 그것은 "연결 당"에 의해 무엇을 의미 하는가
MongoDB를 문서에서는 말한다 :
- 단 한 번에 작성 될 수있는 다른 응용 프로그램에서 // localhost를 / 테스트 네트워크에서 실행 :이 MongoDB를 3 개 연결, 상황에 I 유무가 말하는 것을 의미합니까? 아니면 그냥 연결 당입니까?
IOW : 그것은 연결 당인가, 아니면 기록하면서 잠 전체 / 테스트 데이터베이스은?
해결법
-
==============================
1.그것은 mongod 당이다, 연결 당이 아니다. 즉 잠금은 해당 서버에서 테스트 데이터베이스에 대한 모든 연결을 통해 존재합니다.
그것은 mongod 당이다, 연결 당이 아니다. 즉 잠금은 해당 서버에서 테스트 데이터베이스에 대한 모든 연결을 통해 존재합니다.
쓰기 후 읽기 기다려야 발생하는 경우, 그래서 그렇지 않으면 어떻게 MongoDB를은 일관된 읽기 알고 있습니다, 또한 읽기 / 쓰기 잠금입니까?
그러나 나는 MongoDB를 잠금 / 일반 트랜잭션 당신이 얻을 잠금 및 일반적으로 잠금이 평균 업데이트 사이에 마이크로에 대해 개최됩니다 SQL 매우 다르다는 것을 언급해야한다.
-
==============================
2.MongoDB의에서 잠그면 약간의 설명이 순서 그래서, RDBMS와에 잠금처럼 작동하지 않습니다. MongoDB를 이전 버전의 단일 글로벌 리더 / 라이터 래치가 있었다. MongoDB를 2.2을 시작으로, 각 데이터베이스에 대한 리더 / 라이터 래치가있다.
MongoDB의에서 잠그면 약간의 설명이 순서 그래서, RDBMS와에 잠금처럼 작동하지 않습니다. MongoDB를 이전 버전의 단일 글로벌 리더 / 라이터 래치가 있었다. MongoDB를 2.2을 시작으로, 각 데이터베이스에 대한 리더 / 라이터 래치가있다.
래치는 여러 리더 라이터 하나이고, 욕심 라이터이다. 이 의미 :
참고 나는 이것을 "래치"보다는 "자물쇠"를 부르는. 그것은 경량, 그리고 적절하게 설계된 스키마에 쓰기 잠금이 다스의 또는 마이크로 그래서 순서에 개최되기 때문입니다. 독자 작가 잠금에 대한 자세한 내용은 여기를 참조하십시오.
관련 데이터가 RAM에있는 한 그들은 모든 충돌을 잠그지 않고 만족한다 : MongoDB를 당신이처럼 많은 동시 쿼리로 실행할 수 있습니다.
MongoDB의에서 트랜잭션의 수준이 하나의 문서임을 기억하자. 하나의 문서에 대한 모든 업데이트는 원자이다. MongoDB를 동안 만은 RAM에서 하나의 문서를 업데이트하는 데 걸리는로의 쓰기 래치를 잡고이를 달성 할 수있다. 어떤 느린 실행 작업이있는 경우 (문서 또는 색인 항목의 요구가 디스크에 페이징 할 경우 특히), 다음 작업은 래치 쓰기를 얻을 것입니다. 작업이 래치를 산출 할 때, 그 다음 대기 작업을 진행할 수 있습니다.
이것은 하나의 데이터베이스 내의 모든 문서에 쓰기가 직렬화 얻을 것을 의미한다. 당신이 가난한 스키마 설계를하고 쓰기는 시간이 오래 걸릴 수 있지만, 제대로 설계된 스키마에서, 잠금이없는 문제가있는 경우이 문제가 될 수 있습니다.
작가-욕심에 몇 단어 :
하나 명의 작가는 한 번에 래치를 보유 할 수; 여러 독자는 한 번에 래치를 보유 할 수 있습니다. 작업에서 하나의 독자가 있다면 순진 구현에서, 작가는 무기한 굶어 수 있습니다. 단일 스레드가 특정 래치에 대한 쓰기 요청을하면, MongoDB를 구현에서,이 문제를 방지하려면
실제 동작은 비 명백 할 수있는 방법으로 산출이 작가 욕심 행동의 상호 작용 때문에 복잡하다. 릴리스 2.2에서 시작하여, 각 데이터베이스에 대한 별개의 래치가, 리콜 때문에 데이터베이스 'B'의 모든 컬렉션 쓰기보다는 별도의 래치를 획득한다 데이터베이스 'A'에서 어떤 모음 쓴다.
특정 질문에 대해서는 :
이 같은이 소리는 큰 성능 문제가 될 것이지만, 실제로는 느린 것을 아래로하지 않습니다. 적절하게 설계된 스키마와 일반적인 작업으로, MongoDB를이 디스크 I / O 용량을 포화 것 - 심지어 SSD에 대한 - 데이터베이스의 잠금 비율이 50 % 이상되기 전에.
나는 현재 초당 200 만 개 쓰기를 수행하는 중 알고 있다는 가장 높은 용량 MongoDB를 클러스터.
-
==============================
3.몽고 3.0 지금 모음 수준 잠금을 지원합니다.
몽고 3.0 지금 모음 수준 잠금을 지원합니다.
이 외에도, 지금 몽고는 스토리지 엔진을 만들 수있는 API를 만들었습니다. 몽고 3.0이 스토리지 엔진과 함께 제공 :
MongoDB를 3.0 릴리스 노트
WiredTiger
-
==============================
4.나는 질문은 꽤 오래된하지만 여전히 어떤 사람들은 혼동 알고 ....
나는 질문은 꽤 오래된하지만 여전히 어떤 사람들은 혼동 알고 ....
문서 수준 동시성
from https://stackoverflow.com/questions/17456671/to-what-level-does-mongodb-lock-on-writes-or-what-does-it-mean-by-per-connec by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] JSON 파일의 Mongoimport (0) | 2019.12.05 |
---|---|
[MONGODB] MongoDB를 로컬 서버를 시작할 수 없습니다 (0) | 2019.12.05 |
[MONGODB] MongoDB의 데이터 저장소 디렉토리를 변경 (0) | 2019.12.05 |
[MONGODB] 배열 필드가 비어 있지 않은 경우 MongoDB를 기록 찾기 (0) | 2019.12.05 |
[MONGODB] 어떻게 MongoDB를 함께 Elasticsearch를 사용 하는가? (0) | 2019.12.05 |