spec = new MergeSpecification(); spec.add(new OneMerge(newInfos));
private MergeSpecification wrapSpec(MergeSpecification spec) { MergeSpecification wrapped = spec == null ? null : new MergeSpecification(); if (wrapped != null) { for (OneMerge merge : spec.merges) { wrapped.add(wrapOneMerge.apply(merge)); } } return wrapped; }
allOfThem.add(segSizeDocs.segInfo); spec.add(new OneMerge(allOfThem)); return spec;
/** * Finds merges necessary to expunge all deletes from the * index. The number of large segments will stay the same. */ @Override public MergeSpecification findForcedDeletesMerges(SegmentInfos infos) throws CorruptIndexException, IOException { final int numSegs = infos.size(); final int numLargeSegs = (numSegs < _numLargeSegments ? numSegs : _numLargeSegments); MergeSpecification spec = null; if(numLargeSegs < numSegs) { List<SegmentInfo> smallSegmentList = infos.asList().subList(numLargeSegs, numSegs); SegmentInfos smallSegments = new SegmentInfos(); smallSegments.addAll(smallSegmentList); spec = super.findForcedDeletesMerges(smallSegments); } if(spec == null) spec = new MergeSpecification(); for(int i = 0; i < numLargeSegs; i++) { SegmentInfo info = infos.info(i); if(info.hasDeletions()) { spec.add(new OneMerge(infos.asList().subList(i, i + 1))); } } return spec; }
/** * Finds merges necessary to expunge all deletes from the * index. The number of large segments will stay the same. */ @Override public MergeSpecification findForcedDeletesMerges(SegmentInfos infos) throws CorruptIndexException, IOException { final int numSegs = infos.size(); final int numLargeSegs = (numSegs < _numLargeSegments ? numSegs : _numLargeSegments); MergeSpecification spec = null; if (numLargeSegs < numSegs) { List<SegmentInfoPerCommit> smallSegmentList = infos.asList().subList(numLargeSegs, numSegs); SegmentInfos smallSegments = new SegmentInfos(); smallSegments.addAll(smallSegmentList); spec = super.findForcedDeletesMerges(smallSegments); } if (spec == null) spec = new MergeSpecification(); for (int i = 0; i < numLargeSegs; i++) { SegmentInfoPerCommit info = infos.info(i); if (info.hasDeletions()) { spec.add(new OneMerge(infos.asList().subList(i, i + 1))); } } return spec; }
/** * Finds merges necessary to expunge all deletes from the * index. The number of large segments will stay the same. */ @Override public MergeSpecification findForcedDeletesMerges(SegmentInfos infos) throws CorruptIndexException, IOException { final int numSegs = infos.size(); final int numLargeSegs = (numSegs < _numLargeSegments ? numSegs : _numLargeSegments); MergeSpecification spec = null; if (numLargeSegs < numSegs) { List<SegmentInfoPerCommit> smallSegmentList = infos.asList().subList(numLargeSegs, numSegs); SegmentInfos smallSegments = new SegmentInfos(); smallSegments.addAll(smallSegmentList); spec = super.findForcedDeletesMerges(smallSegments); } if (spec == null) spec = new MergeSpecification(); for (int i = 0; i < numLargeSegs; i++) { SegmentInfoPerCommit info = infos.info(i); if (info.hasDeletions()) { spec.add(new OneMerge(infos.asList().subList(i, i + 1))); } } return spec; }
@Override public MergeSpecification findForcedDeletesMerges(SegmentInfos infos) throws CorruptIndexException, IOException { final int numSegs = infos.size(); final int numLargeSegs = (numSegs < _numLargeSegments ? numSegs : _numLargeSegments); MergeSpecification spec = null; if(numLargeSegs < numSegs) { // hack to create a shallow sub-range as SegmentInfos instance, // it does not clone all metadata, but LogMerge does not need it final SegmentInfos smallSegments = new SegmentInfos(); smallSegments.rollbackSegmentInfos(infos.asList().subList(numLargeSegs, numSegs)); spec = super.findForcedDeletesMerges(smallSegments); } if(spec == null) spec = new MergeSpecification(); for(int i = 0; i < numLargeSegs; i++) { SegmentInfo info = infos.info(i); if(info.hasDeletions()) { spec.add(new OneMerge(Collections.singletonList(infos.info(i)))); } } return spec; }
@Override public void add(OneMerge merge) { super.add(new IndexUpgraderOneMerge(merge.segments)); }
@Override public void add(OneMerge merge) { super.add(new SortingOneMerge(merge.segments, infoStream)); }
@Override public void add(OneMerge merge) { super.add(new SortingOneMerge(merge.segments, infoStream)); }
private MergeSpecification sortedMergeSpecification(MergeSpecification specification, InfoStream infoStream) { if (specification == null) { return null; } MergeSpecification sortingSpec = new SortingMergeSpecification(infoStream); for (OneMerge merge : specification.merges) { sortingSpec.add(merge); } return sortingSpec; }
static MergeSpecification upgradedMergeSpecification(MergeSpecification spec) { if (spec == null) { return null; } MergeSpecification upgradedSpec = new IndexUpgraderMergeSpecification(); for (OneMerge merge : spec.merges) { upgradedSpec.add(merge); } return upgradedSpec; }
private MergeSpecification sortedMergeSpecification(MergeSpecification specification, InfoStream infoStream) { if (specification == null) { return null; } MergeSpecification sortingSpec = new SortingMergeSpecification(infoStream); for (OneMerge merge : specification.merges) { sortingSpec.add(merge); } return sortingSpec; }
private MergeSpecification wrapSpec(MergeSpecification spec) { MergeSpecification wrapped = spec == null ? null : new MergeSpecification(); if (wrapped != null) { for (OneMerge merge : spec.merges) { wrapped.add(wrapOneMerge.apply(merge)); } } return wrapped; }
spec.add(new OneMerge(Collections.singletonList(info)));
spec.add(merge);
message(" add merge=" + segString(mergeContext, mergeInfos) + " start=" + start + " end=" + end, mergeContext); spec.add(new OneMerge(mergeInfos)); } else if (verbose(mergeContext)) { message(" " + start + " to " + end + ": contains segment over maxMergeSize or maxMergeDocs; skipping", mergeContext);
message(" add merge " + firstSegmentWithDeletions + " to " + (i-1) + " inclusive", mergeContext); spec.add(new OneMerge(segments.subList(firstSegmentWithDeletions, i))); firstSegmentWithDeletions = i; message(" add merge " + firstSegmentWithDeletions + " to " + (i-1) + " inclusive", mergeContext); spec.add(new OneMerge(segments.subList(firstSegmentWithDeletions, i))); firstSegmentWithDeletions = -1; message(" add merge " + firstSegmentWithDeletions + " to " + (numSegments-1) + " inclusive", mergeContext); spec.add(new OneMerge(segments.subList(firstSegmentWithDeletions, numSegments)));