Darrel Schneider created GEODE-1273:
---------------------------------------

             Summary: IndexManager.populateIndexes does extra work for off-heap 
and compression
                 Key: GEODE-1273
                 URL: https://issues.apache.org/jira/browse/GEODE-1273
             Project: Geode
          Issue Type: Bug
          Components: offheap
            Reporter: Darrel Schneider


IndexManager.populateIndexes call entry.getValue on every entry in a region.
It does this to make sure that entry is faulted in from disk before adding the 
region to multiple indexes. Here is the reason it gives for doing this:
        // Fault in the value once before index update so that every index
        // update does not have to read the value from disk every time.

But if the region is offheap then calling getValue does fault it in but also 
copies it to the heap as a VMCachedDeserializable or byte array. But this code 
never uses the result of getValue (it is just called for the side effect of 
faulting it in).
In the case of a compressed region getValue also has to decompress the value 
and deserialize it.

So the code does a bunch of work for offheap and compression that is not needed.

Instead of calling RegionEntry.getValue we need a call on RegionEntry that just 
does the fault in.




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

Reply via email to