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

Replication topology configuration

    • Type: Icon: Improvement Improvement
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 2.2.3
    • Component/s: Replication
    • None
    • Environment:
      Irrelevant
    • Fully Compatible

      When building a replica set of 3 nodes (db1, db2, db3), when db1 is primary, internal replication logic usually builds a chain db1 -> db2 -> db3 instead of db1 -> db2 + db1 -> db3. This leads to greatly increased latencies if w:all (or w:majority with sets of 4+ members) is used. I know about replSetSyncFrom command, but it's only a temporary measure. I understand that this chaining is done to reduce load on master and (probably) reduce amount of reconnections whem primary goes down. I would strongly suggest a method (RS configuration item, command-line/configuration option, etc.) to either specify a node that can handle all replication needs or just globally override the algorithm so it always preferse primary as a sync source.
      Since building robust applications involves writes being done with w:majority (to minimize general data loss and rollbacks), a method to reduce "visible" replication latency is certainly a must.

            Assignee:
            Unassigned Unassigned
            Reporter:
            onyxmaster Aristarkh Zagorodnikov
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: