code: @Override
      public boolean mustFlush() {
          if (this.metadata.isDeletedInStorage()) {
              // Already deleted in Storage. There isn't more that we can do.
              return false;
          }
  
          return exceedsThresholds()
                  || this.hasDeletePending.get()
                  || this.hasSealPending.get()
                  || this.mergeTransactionCount.get() > 0
                  || this.truncateCount.get() > 0
                  || (this.operations.size() > 0 && isReconciling());
      }
docs: Gets a value indicating whether a call to flush() is required given the current state of this SegmentAggregator.
  <p>
  Any of the following conditions can trigger a flush:
  <ul>
  <li> There is more data in the SegmentAggregator than the configuration allows (getOutstandingLength >= FlushThresholdBytes)
  <li> Too much time has passed since the last call to flush() (getElapsedSinceLastFlush >= FlushThresholdTime)
  <li> The SegmentAggregator contains a StreamSegmentSealOperation or MergeSegmentOperation (hasSealPending == true)
  <li> The SegmentAggregator is currently in a Reconciliation State (recovering from an inconsistency in Storage).
  </ul>