[ 
https://issues.apache.org/jira/browse/LUCENE-2222?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12801895#action_12801895
 ] 

Paul Elschot edited comment on LUCENE-2222 at 1/18/10 6:49 PM:
---------------------------------------------------------------

ForDecompress.decodeAnyFrame() is pretty slow, it is mainly there as a fallback 
and I have also used it for testing initially.
For decoding blocks just shorter than 32, a few Simple9 blocks will be faster 
than ForDecompress.decodeAnyFrame().

Simple16 (4 bits for the cases, just as Simple9) would be good. I remember 
looking for a link to an implementation of Simple16 in one of the articles on 
Simple9, but the linked page had gone, so I just went ahead myself and started 
on Simple9.
One can also use 32 or 64 cases (5 or 6 bits for the cases) and use a variable 
number of ints (or bytes) in the encoded forms of such SimpleNN variants. Such 
variants nicely hit the middle ground between Simple9 and PFOR in block length 
and decoding speed. Perhaps we'd better continue the discussion on such methods 
at LUCENE-2189.

When there are sufficient methods available an issue could be opened for a 
general variable length block encoding/decoding that uses the best of such 
methods depending on the block length. This makes sense because in lucene 
indexes the block length is always known.

      was (Author: [email protected]):
    ForDecompress.decodeAnyFrame() is pretty slow, it is mainly there as a 
fallback and I have also used it for testing initially.
For decoding blocks just shorter than 32, a few Simple9 blocks will be faster 
than ForDecompress.decodeAnyFrame().

Simple16 (4 bits for the cases, just as Simple9) would be good. I remember 
looking for a link to an implementation of Simple16 in one of the articles on 
Simple9, but the linked page had gone, so I just went ahead myself and started 
on Simple9.
One can also use 32 or 64 cases (5 or 6 bits for the cases) and allow a 
variable number of ints (or bytes) in such SimpleNN variants. Such variants 
nicely hit the middle ground between Simple9 and PFOR in block length and 
decoding speed. Perhaps we'd better continue the discussion on such methods at 
LUCENE-2189.

When there are sufficient methods available an issue could be opened for a 
general variable length block encoding/decoding that uses the best of such 
methods depending on the block length. This makes sense because in lucene 
indexes the block length is always known.
  
> FixedIntBlockIndexInput.Reader does not initialise 'pending' int array
> ----------------------------------------------------------------------
>
>                 Key: LUCENE-2222
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2222
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Index
>    Affects Versions: Flex Branch
>            Reporter: Renaud Delbru
>            Priority: Minor
>             Fix For: Flex Branch
>
>         Attachments: LUCENE-2222.patch, LUCENE-2222.patch, LUCENE-2222.patch
>
>
> The FixedIntBlockIndexInput.Reader.pending int array is not initialised. As a 
> consequence, the FixedIntBlockIndexInput.Reader#next() method returns always 
> 0.
> A call to FixedIntBlockIndexInput.Reader#blockReader.readBlock() during the 
> Reader initialisation may solve the issue (to be tested).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to