@Override
  public long computeBulkLoadSize(FileSystem fs, List<String> paths) throws SpaceLimitingException {
    // Compute the amount of space that could be used to save some arithmetic in the for-loop
    final long sizeAvailableForBulkLoads = quotaSnapshot.getLimit() - quotaSnapshot.getUsage();
    long size = 0L;
    for (String path : paths) {
      try {
        size += getFileSize(fs, path);
      } catch (IOException e) {
        throw new SpaceLimitingException(getPolicyName(),
          "Colud not verify length of file to bulk load: " + path, e);
      }
      if (size > sizeAvailableForBulkLoads) {
        throw new SpaceLimitingException(getPolicyName(), "Bulk load of " + paths
          + " is disallowed because the file(s) exceed the limits of a space quota.");
      }
    }
    return size;
  }
The default implementation for {@link SpaceViolationPolicyEnforcement}. This is done because all
tables, whether or not they're in violation now, should be checking bulk loads to proactively
catch a swell of files that would push the table into violation.
hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/policies/DefaultViolationPolicyEnforcement.java