You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by to...@apache.org on 2017/08/01 13:01:38 UTC

lucene-solr:master: LUCENE-7915 - avoid looping over merges on best merge selection

Repository: lucene-solr
Updated Branches:
  refs/heads/master 9422da26e -> 59997091c


LUCENE-7915 - avoid looping over merges on best merge selection


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/59997091
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/59997091
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/59997091

Branch: refs/heads/master
Commit: 59997091c8f991b55899d6feb5d5c05e720f78a7
Parents: 9422da2
Author: Tommaso Teofili <to...@apache.org>
Authored: Tue Aug 1 15:00:25 2017 +0200
Committer: Tommaso Teofili <to...@apache.org>
Committed: Tue Aug 1 15:01:21 2017 +0200

----------------------------------------------------------------------
 .../java/org/apache/lucene/index/TieredMergePolicy.java   | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/59997091/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java b/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
index c020a6d..bba57ef 100644
--- a/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
+++ b/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
@@ -298,7 +298,7 @@ public class TieredMergePolicy extends MergePolicy {
     // call size() once per segment and sort by that:
     Map<SegmentCommitInfo,Long> sizeInBytes = getSegmentSizes(writer, infos.asList());
     
-    Collections.sort(infosSorted, new SegmentByteSizeDescending(sizeInBytes));
+    infosSorted.sort(new SegmentByteSizeDescending(sizeInBytes));
 
     // Compute total index bytes & print details about the index
     long totIndexBytes = 0;
@@ -439,9 +439,7 @@ public class TieredMergePolicy extends MergePolicy {
           }
           final OneMerge merge = new OneMerge(best);
           spec.add(merge);
-          for(SegmentCommitInfo info : merge.segments) {
-            toBeMerged.add(info);
-          }
+          toBeMerged.addAll(merge.segments);
 
           if (verbose(writer)) {
             message("  add merge=" + writer.segString(merge.segments) + " size=" + String.format(Locale.ROOT, "%.3f MB", bestMergeBytes/1024./1024.) + " score=" + String.format(Locale.ROOT, "%.3f", bestScore.getScore()) + " " + bestScore.getExplanation() + (bestTooLarge ? " [max merge]" : ""), writer);
@@ -553,7 +551,7 @@ public class TieredMergePolicy extends MergePolicy {
       return null;
     }
 
-    Collections.sort(eligible, new SegmentByteSizeDescending(sizeInBytes));
+    eligible.sort(new SegmentByteSizeDescending(sizeInBytes));
 
     if (verbose(writer)) {
       message("eligible=" + eligible, writer);
@@ -614,7 +612,7 @@ public class TieredMergePolicy extends MergePolicy {
     // call size() once per segment and sort by that:
     Map<SegmentCommitInfo,Long> sizeInBytes = getSegmentSizes(writer, infos.asList());
 
-    Collections.sort(eligible, new SegmentByteSizeDescending(sizeInBytes));
+    eligible.sort(new SegmentByteSizeDescending(sizeInBytes));
 
     if (verbose(writer)) {
       message("eligible=" + eligible, writer);