jainankitk commented on code in PR #14397:
URL: https://github.com/apache/lucene/pull/14397#discussion_r2021747427


##########
lucene/core/src/java/org/apache/lucene/codecs/lucene90/compressing/Lucene90CompressingStoredFieldsReader.java:
##########
@@ -512,6 +512,7 @@ private void doReset(int docID) throws IOException {
           bytes.offset = bytes.length = 0;
           for (int decompressed = 0; decompressed < totalLength; ) {
             final int toDecompress = Math.min(totalLength - decompressed, 
chunkSize);
+            decompressor.reset();
             decompressor.decompress(fieldsStream, toDecompress, 0, 
toDecompress, spare);

Review Comment:
   > When the block changes, we must discard the cache in time, this operation 
can only be detected from external.
   
   I am not questioning that. My point is to not have `reset` method in the 
Decompressor interface, and add another decompress method that takes 
`reuseIfPossible` as one of the parameters. It ensures the functional 
correctness even if we don't make the `reset` call from somewhere in the code. 
And, allows explicit optimization wherever we deem appropriate. The risk in not 
explicitly making the `reset` call is much more than using original decompress 
without the reuse.
   
   ```
   public abstract class Decompressor implements Cloneable {
   
     protected Decompressor() {}
   
     public void decompress(
         DataInput in, int originalLength, int offset, int length, BytesRef 
bytes) throws IOException {
       decompress(in, originalLength, offset, length, bytes, false);
     }
   
     public abstract void decompress(
         DataInput in, int originalLength, int offset, int length, BytesRef 
bytes, boolean reuseIfPossible) throws IOException;
   
     @Override
     public abstract Decompressor clone();
   }
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to