[SERVER-5148] w='online' should allow syncing to all online replicas Created: 29/Feb/12  Updated: 06/Dec/22  Resolved: 12/Oct/16

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

Type: New Feature Priority: Minor - P4
Reporter: Glenn Maynard Assignee: Backlog - Replication Team
Resolution: Incomplete Votes: 4
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
Assigned Teams:
Replication
Backwards Compatibility: Fully Compatible
Participants:

 Description   

When serializing operations (eg. for two-phase commit systems), it's useful to be able to wait until data has been sent to all replicas. Currently, this requires knowing the correct, maximum value of "w" to pass to getLastError (or setting up replica tags), and even that won't be correct if some replicas are offline.

I'd recommend allowing

{w: 'online'}

, akin to 'majority', to allow waiting for all online replicas. ('$online' may be better than "online", so it can't clash with replica tags in existing deployments.)



 Comments   
Comment by Eliot Horowitz (Inactive) [ 05/Jan/13 ]

The problem with "online" or "all" is that the definition of online is tough.

What if a node goes down in the middle? How long do you wait? When is it offline?

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