lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael McCandless (JIRA)" <>
Subject [jira] [Commented] (LUCENE-7563) BKD index should compress unused leading bytes
Date Mon, 05 Dec 2016 12:05:58 GMT


Michael McCandless commented on LUCENE-7563:

bq. I think there is just a redundant arraycopy in clone()?

Thanks, I pushed a fix!

bq. For the record, I played with another idea leveraging the fact that the prefix lengths
on two consecutive levels are likely close to each other,

I like this idea!  But I hit this test failure ... doesn't reproduce on trunk:

   [junit4]   2> NOTE: reproduce with: ant test  -Dtestcase=TestBKD -Dtests.method=testWastedLeadingBytes
-Dtests.seed=2E5F0E183BBA1098 -Dtests.locale=es-PR -Dtests.timezone=CST -Dtests.asserts=true
   [junit4] ERROR   0.90s J1 | TestBKD.testWastedLeadingBytes <<<
   [junit4]    > Throwable #1: java.lang.ArrayIndexOutOfBoundsException: -32
   [junit4]    > 	at __randomizedtesting.SeedInfo.seed([2E5F0E183BBA1098:ABD9D50B47794EFC]:0)
   [junit4]    > 	at org.apache.lucene.util.bkd.BKDReader$PackedIndexTree.readNodeData(
   [junit4]    > 	at org.apache.lucene.util.bkd.BKDReader$PackedIndexTree.<init>(
   [junit4]    > 	at org.apache.lucene.util.bkd.BKDReader.getIntersectState(
   [junit4]    > 	at org.apache.lucene.util.bkd.BKDReader.intersect(
   [junit4]    > 	at org.apache.lucene.util.bkd.TestBKD.testWastedLeadingBytes(
   [junit4]    > 	at

> BKD index should compress unused leading bytes
> ----------------------------------------------
>                 Key: LUCENE-7563
>                 URL:
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Michael McCandless
>             Fix For: master (7.0), 6.4
>         Attachments: LUCENE-7563-prefixlen-unary.patch, LUCENE-7563.patch, LUCENE-7563.patch,
LUCENE-7563.patch, LUCENE-7563.patch
> Today the BKD (points) in-heap index always uses {{dimensionNumBytes}} per dimension,
but if e.g. you are indexing {{LongPoint}} yet only use the bottom two bytes in a given segment,
we shouldn't store all those leading 0s in the index.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message