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)