[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: |
|
||||
| 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? |