private void removeDeleteTombStonesFromValidSize(Collection<IndexFinalState> indexFinalStates,
      NavigableMap<LogSegmentName, Long> validSizePerLogSegment, long expiryReferenceTimeInMs) {
    for (IndexFinalState finalState : indexFinalStates) {
      if (finalState.isDelete()) {
        if (finalState.getExpirationTime() != Utils.Infinite_Time && isExpired(finalState.getExpirationTime(),
            expiryReferenceTimeInMs)) {
          // expired delete tombstone should be considered invalid
          LogSegmentName logSegmentName = finalState.getOffset().getName();
          validSizePerLogSegment.computeIfPresent(logSegmentName, (k, v) -> {
            v -= finalState.getRecordSize();
            return v;
          });
        }
      }
    }
  }
Remove expired delete tombstones from valid data size per log segment.
@param indexFinalStates the {@link IndexFinalState} that contains delete tombstones.
@param validSizePerLogSegment a {@link NavigableMap} of log segment name to valid data size.
@param expiryReferenceTimeInMs the reference time in ms until which expiration are relevant
ambry-store/src/main/java/com/github/ambry/store/BlobStoreStats.java