code: public List<DeepTokenRange> getSplits(DeepTokenRange deepTokenRange) {
  
          String start = tokenAsString((Comparable) deepTokenRange.getStartToken());
          String end = tokenAsString((Comparable) deepTokenRange.getEndToken());
          List<String> endpoints = deepTokenRange.getReplicas();
  
          for (String endpoint : endpoints) {
              try {
                  ThriftClient client = ThriftClient.build(endpoint, rpcPort, keyspace);
                  List<CfSplit> splits = client.describe_splits_ex(columnFamily, start, end, splitSize);
                  client.close();
                  return deepTokenRanges(splits, endpoints);
              } catch (TException e) {
                  LOG.warn("Endpoint %s failed while splitting range %s", endpoint, deepTokenRange);
              }
          }
          throw new DeepGenericException("No available replicas for splitting range " + deepTokenRange);
      }
docs: Returns the computed token range splits of the specified token range.
  
  @param deepTokenRange the token range to be splitted.
  @return the list of token range splits, which are also token ranges.