1

アプリケーションから書き込み懸念を設定できることがわかったので、MongoDB は次のようなシナリオをどのように処理するのだろうかと考えていました。

2 つのタスク/プロセス (P1 と P2) が同じデータベースで実行されているとします (データベースには、1 つのプライマリ ノードと 2 つのセカンダリ ノードの 3 つのノードのレプリカ セットがあります)。P1 では、ジャーナル レベルで有効な書き込み懸念があります。P2 では、レプリカ レベル (セカンダリ レベル) で有効な書き込み懸念があります。

P1 と P2 の両方がデータベースに書き込むとどうなるでしょうか?

P2 は、P1 によって書き込まれたデータがセカンダリにコピーされるのを待ってから、そのデータをセカンダリに書き込みますか?

またはそれをどのように処理しますか?

4

2 に答える 2

0

Mongo が WiredTiger (2015) バージョン 3.0 に移行した頃の質問です。それ以来、エンジンの同時実行性は劇的に向上し、ほとんどの読み取り/書き込み操作のロック レベルはドキュメント レベルそのものになりました。

参照: https://docs.mongodb.com/manual/faq/concurrency/

したがって、マルチスレッド (同じプロセスまたは複数のプロセス) は、最も厳密な書き込みの懸念に対してもパフォーマンスを向上させます。

于 2018-11-18T14:59:08.677 に答える