2

シャーディングされたコレクションとシャーディングされていないコレクションを含むデータベースがある場合。プライマリシャードに直接接続して、アンシャードコレクションに問題なくアクセス(読み取りと書き込みを含む)できますか?これを実行したいのは、接続mongosによってアンシャードコレクションにアクセスするためのパフォーマンスが低下するだけだと思う​​からです。

私はこれを試しましたが、動作します。しかし、私はここで私が知らないいくつかの問題があるのではないかと思います。

4

1 に答える 1

4

シャーディングされたコレクションとシャーディングされていないコレクションを含むデータベースがある場合。プライマリシャードに直接接続して、アンシャードコレクションに問題なくアクセス(読み取りと書き込みを含む)できますか?mongosに接続すると、アンシャードコレクションにアクセスするためのパフォーマンスが低下するだけだと思う​​ので、これを実行したいと思います。

一般に、を介して接続することmongosで、シャーディングされていないコレクションのパフォーマンスに大きなオーバーヘッドが発生することはありません。

また、他のコレクションがシャーディングされている場合、アプリケーションはシャーディングされたコレクションとシャーディングされていないコレクションの両方で単一の接続プールを利用できないため、アプリケーションロジックでこれを管理する必要があることにも注意してください。

私はこれを試しましたが、動作します。しかし、私はここで私が知らないいくつかの問題があるのではないかと思います。

現時点では、シャーディングされていないコレクションは常にデータベースのプライマリシャードに存在するため、このアプローチは機能します。

ただし、シャードされていないコレクションをシャード全体に配布する作業が進行中であることに注意してください( MongoDB Jira課題追跡システムのSERVER-939を参照)。その変更が発生すると、シャーディングされていないコレクションがプライマリシャードに存在すると想定できなくなり、mongos正しくルーティングするためにに依存する方が安全になります。

于 2012-11-19T03:46:49.207 に答える