Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-15254

replica set members should be able to replicate off members that don't build indexes

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Replication
    • None
    • Replication

      Currently, if member 'A' does not build indexes, then other members that do build indexes cannot replicate oplog data off of A. Here is why this is problematic.

      Suppose member 'A' finds itself to be further ahead than all other members, because it was the only member to replicate data some data off the primary before the primary disappeared. Because other members cannot sync from A, other members cannot catch up to A. Also, because A is ahead of everyone else, A will veto every possible election of a new primary. You are stuck with a situation where no primary can be elected.

      Perhaps Member::syncable() should distinguish cases where we wish to replicate oplog data or do an initial sync. It makes sense for members that don't build indexes to be ineligible for being the source of an initial sync. However, for the reasons above, they should be allowed to be the source of oplog data during normal replication

            Assignee:
            backlog-server-repl [DO NOT USE] Backlog - Replication Team
            Reporter:
            zardosht Zardosht Kasheff
            Votes:
            1 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated: