2017-05-06 2 views
1

複数のdbsを含むmongoサーバーに接続するとき、node-mongodb-nativeドライバを使用した方がより効率的な方法です。MongoDB親子接続で複数のデータベースに接続するときのパフォーマンス

私は8 dbs(db1 ... db8)を同じMongoサーバー上に持っているとしましょう。私のノードアプリケーションは、受け取ったクエリに応じてすべて8に接続する必要があります。各DBとの私のために、ここでより良いオプション

1)8つの別々の接続を作成します(1)

OR

2)テストデシベル上のサーバーへの親の接続を作成し、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. スレッディングモデル:node.jsは非同期ですが、MongoDBは非同期です。 MongoDBはソケットごとに1つのスレッドを使用します。操作が互いにブロックしていると感じる場合は、接続プールを別に保つ必要があります。 http://mongodb.github.io/node-mongodb-native/2.2/reference/faq/

関連する問題