[SERVER-3970] config option for replica set to block writes if no secondary can keep up Created: 28/Sep/11  Updated: 07/Mar/14  Resolved: 07/Mar/14

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: 1.8.2, 2.0.0
Fix Version/s: None

Type: New Feature Priority: Major - P3
Reporter: nicolas.bourbaki Assignee: Unassigned
Resolution: Won't Fix Votes: 1
Labels: replication
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Linux Debian 6.0 64bits, bi-Xeon quad-core, 32GB


Participants:

 Description   

While evaluating MongoDB, I tried to insert into a single replica set (one master, two slaves) many small documents (around 100 GB of data) with eight Python clients.
I kept the default oplog size, which is between 5 and 10% of the whole disk. It doesn't really matter, since it can only delay the problem without really avoiding it (in case of permanent insertions).

Before the end of the import, I got the evil RS 102 error, too stale to catch up. I can understand this, since the master has to spread all the data it got to two (or more) slaves, so slaves are slower than it.
However, can I expect a new configuration option to force the master to wait its slaves before reaching the non-return point?

Thus we could ensure that this RS 102 error will not happen anymore.



 Comments   
Comment by Eric Milkie [ 07/Mar/14 ]

We can't do this as replication is currently designed, as the primary's knowledge of each secondary's current oplog read point is not synchronous.

Generated at Thu Feb 08 03:04:35 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.