• Julien Muchembled's avatar
    master: automatically discard feeding cells that get out-of-date · 3efbbfe3
    Julien Muchembled authored
    This is a follow-up of commit 2ca7c335,
    which changed 'tweak' not to discard readable cells too quickly.
    
    The scenario of a storage being lost whereas it has feeding cells was forgotten.
    These must be discarded immediately, otherwise we end up with more up-to-date
    cells than wanted. Without the change in outdate(), testSafeTweak would end
    with: UU.|U.U|UUU
    
    Once replication is optimized not to always restart checking cells from the
    beginning:
    - Remembering that an out-of-date cell was feeding could be a safer
      option, but it may not be worth the extra complexity.
    - Another possibility may be to replace the FEEDING state by an automatic
      partial tweak that only discards up-to-date cells too many whenever a cell
      becomes up-to-date.
    3efbbfe3
protocol.py 46.3 KB