code: private void sendSyncReplicaRequest(int partitionId, Collection<ServiceNamespace> requestedNamespaces,
              int replicaIndex, PartitionReplica target) {
          if (node.clusterService.isMissingMember(target.address(), target.uuid())) {
              return;
          }
  
          int permits = tryAcquireReplicaSyncPermits(requestedNamespaces.size());
          if (permits == 0) {
              if (logger.isFinestEnabled()) {
                  logger.finest("Cannot send sync replica request for partitionId=" + partitionId
                          + ", replicaIndex=" + replicaIndex + ", namespaces=" + requestedNamespaces
                          + ". No permits available!");
              }
              return;
          }
  
          // Select only permitted number of namespaces
          List<ServiceNamespace> namespaces =
                  registerSyncInfoForNamespaces(partitionId, requestedNamespaces, replicaIndex, target, permits);
  
          // release unused permits
          if (namespaces.size() != permits) {
              releaseReplicaSyncPermits(permits - namespaces.size());
          }
  
          if (namespaces.isEmpty()) {
              return;
          }
  
          if (logger.isFinestEnabled()) {
              logger.finest("Sending sync replica request for partitionId=" + partitionId + ", replicaIndex=" + replicaIndex
                      + ", namespaces=" + namespaces);
          }
          replicaSyncRequestsCounter.inc();
  
          PartitionReplicaSyncRequest syncRequest = new PartitionReplicaSyncRequest(partitionId, namespaces, replicaIndex);
          nodeEngine.getOperationService().send(syncRequest, target.address());
      }
docs: Send the sync request to {@code target} if the max number of parallel sync requests has not been made and the target
  was not removed while the cluster was not active. Also cancel any currently scheduled sync requests for the given
  partition and schedule a new sync request that is to be run in the case of timeout