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

choosing syncsource should compare against last fetched optime rather than last applied

    • Type: Icon: Improvement Improvement
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 3.0.5, 3.1.6
    • Affects Version/s: 3.0.4, 3.1.5
    • Component/s: Replication
    • Labels:
    • Fully Compatible
    • RPL 6 07/17/15
    • 0

      This was not a problem until recently, as the producer thread would wait for all ops to be applied before looking for a new sync source (last fetched == last applied). However, to resolve a potential deadlock between the producer thread and applier thread, that wait was removed.

      As a result, a node could have ops in its buffer when it choose a new sync source, apply those ops, and then receive those recently applied ops from its sync source which would cause the node to rollback and fassert.

            matt.dannenberg Matt Dannenberg
            matt.dannenberg Matt Dannenberg
            0 Vote for this issue
            5 Start watching this issue