@Override
  public MergeTableRegionsResponse mergeTableRegions(RpcController c,
    MergeTableRegionsRequest request) throws ServiceException {
    try {
      server.checkInitialized();
    } catch (IOException ioe) {
      throw new ServiceException(ioe);
    }

    RegionStates regionStates = server.getAssignmentManager().getRegionStates();

    RegionInfo[] regionsToMerge = new RegionInfo[request.getRegionCount()];
    for (int i = 0; i < request.getRegionCount(); i++) {
      final byte[] encodedNameOfRegion = request.getRegion(i).getValue().toByteArray();
      if (request.getRegion(i).getType() != RegionSpecifierType.ENCODED_REGION_NAME) {
        LOG.warn("MergeRegions specifier type: expected: " + RegionSpecifierType.ENCODED_REGION_NAME
          + " actual: region " + i + " =" + request.getRegion(i).getType());
      }
      RegionState regionState = regionStates.getRegionState(Bytes.toString(encodedNameOfRegion));
      if (regionState == null) {
        throw new ServiceException(
          new UnknownRegionException(Bytes.toStringBinary(encodedNameOfRegion)));
      }
      regionsToMerge[i] = regionState.getRegion();
    }

    try {
      long procId = server.mergeRegions(regionsToMerge, request.getForcible(),
        request.getNonceGroup(), request.getNonce());
      return MergeTableRegionsResponse.newBuilder().setProcId(procId).build();
    } catch (IOException ioe) {
      throw new ServiceException(ioe);
    }
  }
Execute Delete Snapshot operation.
@return DeleteSnapshotResponse (a protobuf wrapped void) if the snapshot existed and was
        deleted properly.
@throws ServiceException wrapping SnapshotDoesNotExistException if specified snapshot did not
                         exist.
hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java