private void processNewPut(ScanResults results, IndexValue putValue) {
    long expiresAtMs = putValue.getExpiresAtMs();
    if (!isExpired(expiresAtMs, results.containerForecastStartTimeMs)) {
      results.updateContainerBaseBucket(putValue.getAccountId(), putValue.getContainerId(), putValue.getSize());
      if (expiresAtMs != Utils.Infinite_Time) {
        handleContainerBucketUpdate(results, putValue, expiresAtMs, SUBTRACT);
      }
    }
    if (!isExpired(expiresAtMs, results.logSegmentForecastStartTimeMsForExpired)) {
      results.updateLogSegmentBaseBucket(putValue.getOffset().getName(), putValue.getSize());
      if (expiresAtMs != Utils.Infinite_Time) {
        handleLogSegmentExpiredBucketUpdate(results, putValue, expiresAtMs, SUBTRACT);
      }
    }
  }
Helper function to process new PUT entries and make appropriate updates to the given {@link ScanResults}.
@param results the {@link ScanResults} to apply the updates to
@param putValue the {@link IndexValue} of the new PUT
ambry-store/src/main/java/com/github/ambry/store/BlobStoreStats.java