private SpanResult order(List<SpanBo> spans, Predicate<SpanBo> filter, boolean isReachedLimit) {
        SpanAligner spanAligner = new SpanAligner(spans, filter, serviceTypeRegistryService);
        final CallTree callTree = spanAligner.align();

        TraceState.State matchType = spanAligner.getMatchType();
        if (matchType == TraceState.State.PROGRESS && isReachedLimit) {
            matchType = TraceState.State.OVERFLOW;
        }

        return new SpanResult(matchType, callTree.iterator());
    }
@author emeroad
@author jaehong.kim
@author minwoo.jung
web/src/main/java/com/navercorp/pinpoint/web/service/SpanServiceImpl.java