Pair<Long, NavigableMap<LogSegmentName, Long>> getValidDataSizeByLogSegment(TimeRange timeRange,
      FileSpan fileSpanUnderCompaction) throws StoreException {
    return getValidDataSizeByLogSegment(timeRange, time.milliseconds(), fileSpanUnderCompaction);
  }
Same as the {@link #getValidDataSizeByLogSegment(TimeRange)}, but provides a file span for under compaction log segments.
This file span would impact TTL_UPDATE's validity.
@param timeRange the delete reference {@link TimeRange} at which the data is requested. Defines both the reference time
                 and the acceptable resolution.
@param fileSpanUnderCompaction the {@link FileSpan} of the under compaction log segments. This file span would impact
                               the validity of TTL_UPDATE. The rules can be found below. This file span could be null.
@return a {@link Pair} whose first element is the time at which stats was collected (in ms) and whose second
element is the valid data size for each segment in the form of a {@link NavigableMap} of segment names to
valid data sizes.
@throws StoreException
ambry-store/src/main/java/com/github/ambry/store/BlobStoreStats.java