@Override public int compare(PhysicalTable left,PhysicalTable right){
  long leftVolatileDataDuration=getAvailableVolatileDataDuration(left);
  long rightVolatileDataDuration=getAvailableVolatileDataDuration(right);
  long mostCompleteVolatile=rightVolatileDataDuration - leftVolatileDataDuration;
  return (int)Math.max(Math.min(Integer.MAX_VALUE,mostCompleteVolatile),Integer.MIN_VALUE);
}

@ Override public int compare ( PhysicalTable left , PhysicalTable right ) { long leftVolatileDataDuration = getAvailableVolatileDataDuration ( left ) ; long rightVolatileDataDuration = getAvailableVolatileDataDuration ( right ) ; long mostCompleteVolatile = rightVolatileDataDuration - leftVolatileDataDuration ; return ( int ) Math . max ( Math . min ( Integer . MAX_VALUE , mostCompleteVolatile ) , Integer . MIN_VALUE ) ; }
performs a comparison based on how much data each table has within their volatile intervals .
