2017-05-06 9 views
1

다중 dbs를 포함하는 mongo 서버에 연결할 때 node-mongodb-native 드라이버를 사용하는 것이 더 효과적인 접근 방법입니다.MongoDB 부모 - 자식 연결을 통해 여러 데이터베이스에 연결할 때의 성능

같은 몽고 서버에 8 dbs (db1 ... db8)가 있다고 가정 해 봅시다. 내 노드 앱은 수신 된 쿼리에 따라 모두 8에 연결해야합니다. 각 DB와 나를 위해 여기에 더 나은 옵션

1) 8 개 별도의 연결을 만들기 (1)

또는

2) 테스트 DB의 서버에 하나의 상위 연결을 생성 한 후 DB를 호출은 무엇입니까. db 8 번을 눌러 해당 부모 아래에 8 개의 하위 연결을 만듭니다. 의사 (http://mongodb.github.io/node-mongodb-native/2.0/api/Db.html#db)에서 읽은 것처럼, 8 개의 자식 연결은 모두 동일한 소켓에서 실행됩니다.

이에 대해 조사하거나 적절한 동작 과정을 결정하는 데 도움이되는 배경이나 생각이있는 사람이 있습니까?

답변

1
  1. MongoDB의 동시성은 얼마나 세분합니까? : 버전에 따라 다릅니다. MongoDB 3 이후 많은 작업이 문서를 잠근다. 이전 버전은 전체 컬렉션에 잠금을 적용합니다. 일부 작업에서는 여전히 인스턴스 (일명 서버)을 잠급니다. 즉, 때로는 작업 (여러 데이터베이스와 관련된 작업)이 전체 인스턴스를 차단하여 그 안에있는 모든 데이터베이스에 영향을 미칠 수 있음을 의미합니다. https://docs.mongodb.com/manual/faq/concurrency/#how-granular-are-locks-in-mongodb

  2. 스레딩 모델 : MongoDB가 아닌 동안 node.js는 비동기입니다. MongoDB는 소켓 당 하나의 스레드를 사용합니다. 작업이 서로를 차단하고 있다고 생각되면 별도의 연결 풀을 유지해야합니다. http://mongodb.github.io/node-mongodb-native/2.2/reference/faq/