-
Type:
Question
-
Resolution: Done
-
Priority:
Major - P3
-
None
-
Affects Version/s: 2.2.2
-
Component/s: Replication
-
None
-
Environment:version: 2.2.2-rc1
git version: nogitversion
I have next configuration:
server1 - (mongos, mongod cfg, mongod --replSet first, application server[write] )
server2 - (mongod arbiter, mongod --replSet first)
server3 - (mongod cfg, mongod arbiter, mongod --replSet second)
server4 - (mongos, mongod cfg, mongod --replSet second, application server[read] )
All requests for insert/update going to server1/application server.
All requetss for find going to server4/application server.
There was about 20 concurrent updates. (collection that handle updates have 819 366 177 documents, and it is capped. I don't change object size in update.)
Update was handled using indexes for where condition.
But there is next interesting behavior:
- If I set master for replset first, to server2 - it handle updates normally, but server1 has replication lag, and it grow up to 1 hour.
- Then I reject updates for some time, and when replication lag equal to zero, I set master to server1.
- And server1 also handle updates normally, but server2 now has replication lag, and it grows.
Why SECONDARY can't handle operations like PRIMARY in this case?