0

サイト内のユーザー ジャーニーを記録するドキュメントがあります。

マウスの動きは、このドキュメントのサブドキュメントとして保存されます。マウスの動きを記録し、定期的に $push を使用してサブドキュメント配列に追加します。Mongo に関する私の最初の読みから、これは賢明で効率的なアプローチであるように思われました。今はよくわかりません。

最近、レプリカ セットでいくつかの問題が発生しています。使用量が急増すると、セカンダリがプライマリと同期しなくなります。私の oplog を見ると、その時点までのユーザーのマウスの動きの全履歴を含む $set コマンドがたくさんあることに気付きました。Mongo はこの拡張を行っているようで、oplog レコードが不等分になるようです。

JIRAのこの問題に関連していると信じています https://jira.mongodb.org/browse/SERVER-9784

この問題を正しく解釈しましたか? もしそうなら、ワイヤーを介して変更を伝播する非常に非効率的な方法のようです。問題を回避する方法はありますか? マウスの動きを個々の小さなドキュメントに分けたほうがよいでしょうか? または、サブドキュメント配列で動的キーを使用して問題を回避できますか (したがって、$push コマンドを回避します)。

4

1 に答える 1

0

提案してくれてありがとう。私は今それの底に達したと思います。

私の問題はバグのようです。

mongoDB で $each を $push と組み合わせて使用​​することは、現在 (v2.4.3) レプリケーションに関して恐ろしく非効率的です。関連する Jira 課題を更新して基準を絞り込みました。

https://jira.mongodb.org/browse/SERVER-9784

于 2013-11-19T08:58:24.803 に答える