[ 
https://issues.apache.org/jira/browse/LUCENE-7081?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Muir updated LUCENE-7081:
--------------------------------
    Attachment: LUCENE-7081.patch

initial patch after lots of experiments.

we can easily just compute how well we compress, by computing shared prefix for 
the first term (count % 16 == 0) and last term (count % 16 == 15) in each 
block. Thats because our terms dict here uses a single shared prefix for all 
terms in a block: e.g. terms are delta encoded against the first term in the 
block always.

we use prefix compression when we share at least 3 bytes per term on average: 
thats because prefix encoding has some overhead vs the alternative for 
fixed-width data (worst case 2 bytes per term for suffix lengths).


> Docvalues terms dict should sometimes prefix-compress fixed-length data.
> ------------------------------------------------------------------------
>
>                 Key: LUCENE-7081
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7081
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Robert Muir
>         Attachments: LUCENE-7081.patch
>
>
> For Sorted/SortedSet types, we encode ordinals and a term dictionary (similar 
> to old lucene 3 term dictionary).
> Originally we had no prefix compression, so we "save space" in the 
> fixed-width case by avoiding addressing, we can just use multiplication: 
> https://github.com/apache/lucene-solr/blob/master/lucene/core/src/java/org/apache/lucene/codecs/lucene54/Lucene54DocValuesConsumer.java#L423-L425
>  
> But it means no compression whatsoever of the actual bytes, even if values 
> are enormous, I don't think its necessarily a good tradeoff. The lack of 
> prefix compression can become much more magnified now that we have fixed 
> width 128-bit point types in the sandbox...



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to