• Julien Muchembled's avatar
    master: fix possible failure when reading data in a backup cluster with replicas · ca2f7061
    Julien Muchembled authored
    Given that:
    - read locks are only taken by transactions (not replication)
    - in backup mode, storage nodes stay in UP_TO_DATE state, even if partitions
      are synchronized up to different tids
    
    there was a race condition with the master node replying to LastTransaction
    with a TID that may not be replicated yet by all replicas, potentially causing
    such replicas to reply OidDoesNotExist or OidNotFound if a client asks it data
    too early.
    
    IOW, even if the cluster does contain the data up to `getBackupTid(max)`,
    it is only readable by NEO clients up to `getBackupTid(min)` as long as the
    cluster is in BACKINGUP state.
    ca2f7061
client.py 6.02 KB