private void rollbackDestination ( ) { int partitionId = getPartitionId ( ) ; InternalPartitionServiceImpl partitionService = getService ( ) ; PartitionReplicaManager replicaManager = partitionService . getReplicaManager ( ) ; ILogger logger = getLogger ( ) ; int destinationCurrentReplicaIndex = migrationInfo . getDestinationCurrentReplicaIndex ( ) ; if ( destinationCurrentReplicaIndex == - 1 ) { clearPartitionReplicaVersions ( partitionId ) ; if ( logger . isFinestEnabled ( ) ) { logger . finest ( "Replica versions are cleared in destination after failed migration. partitionId=" + partitionId ) ; } } else { int replicaOffset = migrationInfo . getDestinationCurrentReplicaIndex ( ) <= 1 ? 1 : migrationInfo . getDestinationCurrentReplicaIndex ( ) ; for ( ServiceNamespace namespace : replicaManager . getNamespaces ( partitionId ) ) { long [ ] versions = updatePartitionReplicaVersions ( replicaManager , partitionId , namespace , replicaOffset - 1 ) ; if ( logger . isFinestEnabled ( ) ) { logger . finest ( "Replica versions are rolled back in destination after failed migration. partitionId=" + partitionId + " namespace: " + namespace + " replica versions=" + Arrays . toString ( versions ) ) ; } } } }
Updates the replica versions on the migration destination .