• Oran Agra's avatar
    Set repl-diskless-sync to yes by default, add repl-diskless-sync-max-replicas (#10092) · ae899589
    Oran Agra authored
    1. enable diskless replication by default
    2. add a new config named repl-diskless-sync-max-replicas that enables
       replication to start before the full repl-diskless-sync-delay was
       reached.
    3. put replica online sooner on the master (see below)
    4. test suite uses repl-diskless-sync-delay of 0 to be faster
    5. a few tests that use multiple replica on a pre-populated master, are
       now using the new repl-diskless-sync-max-replicas
    6. fix possible timing issues in a few cluster tests (see below)
    
    put replica online sooner on the master 
    ----------------------------------------------------
    there were two tests that failed because they needed for the master to
    realize that the replica is online, but the test code was actually only
    waiting for the replica to realize it's online, and in diskless it could
    have been before the master realized it.
    
    changes include two things:
    1. the tests wait on the right thing
    2. issues in the master, putting the replica online in two steps.
    
    the master used to put the replica as online in 2 steps. the first
    step was to mark it as online, and the second step was to enable the
    write event (only after getting ACK), but in fact the first step didn't
    contains some of the tasks to put it online (like updating good slave
    count, and sending the module event). this meant that if a test was
    waiting to see that the replica is online form the point of view of the
    master, and then confirm that the module got an event, or that the
    master has enough good replicas, it could fail due to timing issues.
    
    so now the full effect of putting the replica online, happens at once,
    and only the part about enabling the writes is delayed till the ACK.
    
    fix cluster tests 
    --------------------
    I added some code to wait for the replica to sync and avoid race
    conditions.
    later realized the sentinel and cluster tests where using the original 5
    seconds delay, so changed it to 0.
    
    this means the other changes are probably not needed, but i suppose
    they're still better (avoid race conditions)
    ae899589
redis.conf 100 KB