From 234ea3ef8954325923f4e85c5c0aa72c3bb15baa Mon Sep 17 00:00:00 2001 From: Adrien Grand Date: Wed, 3 Aug 2016 14:33:18 +0200 Subject: [PATCH] LUCENE-7403: Use blocks of exactly maxPointsInLeafNodes values in the 1D case. --- .../src/java/org/apache/lucene/util/bkd/BKDWriter.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lucene/core/src/java/org/apache/lucene/util/bkd/BKDWriter.java b/lucene/core/src/java/org/apache/lucene/util/bkd/BKDWriter.java index 8bd66d0a347..e11fc0874d0 100644 --- a/lucene/core/src/java/org/apache/lucene/util/bkd/BKDWriter.java +++ b/lucene/core/src/java/org/apache/lucene/util/bkd/BKDWriter.java @@ -562,11 +562,10 @@ public class BKDWriter implements Closeable { private class OneDimensionBKDWriter { final IndexOutput out; - final int pointsPerLeafBlock = (int) (0.75 * maxPointsInLeafNode); final List leafBlockFPs = new ArrayList<>(); final List leafBlockStartValues = new ArrayList<>(); - final byte[] leafValues = new byte[pointsPerLeafBlock * packedBytesLength]; - final int[] leafDocs = new int[pointsPerLeafBlock]; + final byte[] leafValues = new byte[maxPointsInLeafNode * packedBytesLength]; + final int[] leafDocs = new int[maxPointsInLeafNode]; long valueCount; int leafCount; @@ -608,7 +607,7 @@ public class BKDWriter implements Closeable { throw new IllegalStateException("totalPointCount=" + totalPointCount + " was passed when we were created, but we just hit " + pointCount + " values"); } - if (leafCount == pointsPerLeafBlock) { + if (leafCount == maxPointsInLeafNode) { // We write a block once we hit exactly the max count ... this is different from // when we flush a new segment, where we write between max/2 and max per leaf block, // so merged segments will behave differently from newly flushed segments: