@Override
  public boolean equals(Object obj) {
    if (this == obj) {
      return true;
    }
    if (obj == null) {
      return false;
    }
    if (getClass() != obj.getClass()) {
      return false;
    }
    CompactionRequestImpl other = (CompactionRequestImpl) obj;
    if (filesToCompact == null) {
      if (other.filesToCompact != null) {
        return false;
      }
    } else if (!filesToCompact.equals(other.filesToCompact)) {
      return false;
    }
    if (isMajor != other.isMajor) {
      return false;
    }
    if (isOffPeak != other.isOffPeak) {
      return false;
    }
    if (priority != other.priority) {
      return false;
    }
    if (regionName == null) {
      if (other.regionName != null) {
        return false;
      }
    } else if (!regionName.equals(other.regionName)) {
      return false;
    }
    if (selectionTime != other.selectionTime) {
      return false;
    }
    if (storeName == null) {
      if (other.storeName != null) {
        return false;
      }
    } else if (!storeName.equals(other.storeName)) {
      return false;
    }
    if (totalSize != other.totalSize) {
      return false;
    }
    if (isAfterSplit != other.isAfterSplit) {
      return false;
    }
    if (tracker == null) {
      if (other.tracker != null) {
        return false;
      }
    } else if (!tracker.equals(other.tracker)) {
      return false;
    }
    return true;
  }
Specify if this compaction should be a major compaction based on the state of the store
@param isMajor <tt>true</tt> if the system determines that this compaction should be a major
               compaction
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.java