2016-06-14 23 views
2

私は4スレッドで1300万レコードのMongoコレクションにアクセスしているスカラアプリケーションを持っています。MongoDBの同時読み込み操作

私は4つのスレッドが同時にMongoにアクセスし、同じレコードを決して読まないようにします。また、パス3でスレッド2によってアクセスされるレコードは、将来他のスレッドによってアクセスされるべきではない。

私はそれをどのように達成することができますか?

+0

あなたが使っているlibを示すことは役に立ちます – cchantep

+0

'number'型フィールドはありますか?もしそうなら、 '$ mod'演算子を使ってデータを4つのスレッドに分割することができます。次のようになります: 'db.collection.find({numField:{$ mod:[4,0]}})' in thread-0 – Shawyeok

答えて

1

ディスパッチャ機能に適しています。

DispatcherはすべてのIDを読み取ってから、roundRobinキュープッシュIDをf1,f2,f3,f4にする必要があります。 SINGLEドキュメントからデータを読み取ることを妨げるロック機構は存在しないので、IDが送出されたときにunderling関数はすべての操作を実行する必要があります。

関連する問題