<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;
    }
< T extends WriterSegmentProcessor > long getLowestUncommittedSequenceNumber ( Iterable < T > processors ) { long result = Long . MAX_VALUE ; for ( WriterSegmentProcessor p : processors ) { long sn = p . getLowestUncommittedSequenceNumber ( ) ; if ( sn >= 0 && sn < result ) { result = sn ; } } return result == Long . MAX_VALUE ? Operation . NO_SEQUENCE_NUMBER : result ; }
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.