code: <T extends WriterSegmentProcessor> long getLowestUncommittedSequenceNumber(Iterable<T> processors) {
          // We need to find the lowest value across all processors that have uncommitted data.
          long result = Long.MAX_VALUE;
          for (WriterSegmentProcessor p : processors) {
              // If a processor has uncommitted data, its LUSN will be a positive number. Otherwise it means it is up-to-date.
              long sn = p.getLowestUncommittedSequenceNumber();
              if (sn >= 0 && sn < result) {
                  result = sn;
              }
          }
  
          // If at least one processor has uncommitted data, return the smallest LUSN among them. Otherwise report that
          // everything is up-to date.
          return result == Long.MAX_VALUE ? Operation.NO_SEQUENCE_NUMBER : result;
      }
docs: Determines the lowest Sequence Number across the given {@link WriterSegmentProcessor} instances that has not
  yet been committed to Storage.
  <p>
  As opposed from {@link #getHighestCommittedSequenceNumber}, this method should be called for
  {@link WriterSegmentProcessor} instances that deal with the same Segment.
  
  @param processors The {@link WriterSegmentProcessor} to inspect.
  @param <T>        {@link WriterSegmentProcessor} type.
  @return The Lowest Uncommited Sequence Number.